Vpn клиент сервер

В среднем человек говорит 4 800 слов за 24 часа.

Развертывание VPN сервера в сети предприятия является более сложной задачей, чем настройка базовых служб - NAT, DHCP и файловых серверов. Перед тем как браться за дело необходимо четко представлять структуру будущей сети и задачи которые должны решаться с ее помощью. В этой статье мы затронем основные вопросы ответы на которые вы должны твердо знать еще до того, как подойдете к серверу. Такой подход позволит избежать множества типовых проблем и бездумного копирования настроек из примера, а также позволит правильно настроить VPN именно для своих задач и потребностей.

Что такое VPN?

VPN (Virtual Private Network) - виртуальная частная сеть, под этой аббревиатурой скрывается группа технологий и протоколов позволяющих организовать логическую (виртуальную) сеть поверх обычной сети. Широко применяется для разграничения доступа и повышения безопасности корпоративных сетей, организации безопасного доступа к ресурсам корпоративной сети извне (через интернет) и, в последнее время, провайдерами городских сетей для организации доступа в интернет.

Какие типы VPN бывают?

В зависимости от применяемого протокола VPN подразделяются на:

  • PPTP (Point-to-point tunneling protocol) -- туннельный протокол типа точка-точка, позволяет организовать защищенное соединение за счет создания специального туннеля поверх обычной сети. На сегодняшний день это наименее безопасный из всех протоколов и его не рекомендуется применять во внешних сетях для работы с информацией доступ к которой для посторонних лиц нежелателен. Для организации соединения используется две сетевых сессии: для передачи данных устанавливается PPP сессия с помощью протокола GRE, и соединение на ТСР порту 1723 для инициализации и управления соединением. В связи с этим нередко возникают сложности с установлением подобного соединения в некоторых сетях, например гостиничных или мобильных операторов.
  • L2TP (

    Layer 2 Tunneling Protocol

    ) -- протокол туннелирования второго уровня, более совершенный протокол, созданный на базе PPTP и L2F (протокол эстафетной передачи второго уровня от Cisco). К его достоинствам относится гораздо более высокая безопасность за счет шифрования средствами протокола IPSec и объединения канала данных и канала управления в одну UDP сессию.
  • SSTP (Secure Socket Tunneling Protocol) -- протокол безопасного туннелирования сокетов, основан на SSL и позволяет создавать защищенные VPN соединения посредством HTTPS. Требует для своей работы открытого порта 443, что позволяет устанавливать соединения из любого места, даже находясь за цепочкой прокси.

Для чего обычно применяют VPN?

Рассмотрим несколько наиболее часто используемые применения VPN:

  • Доступ в интернет. Чаще всего применяется провайдерами городских сетей, но также весьма распространенный способ и в сетях предприятий. Основным достоинством является более высокий уровень безопасности, так как доступ в локальную сеть и интернет осуществляется через две разные сети, что позволяет задать для них разные уровни безопасности. При классическом решении - раздача интернета в корпоративную сеть - выдержать разные уровни безопасности для локального и интернет трафика практически не представляется возможным.
  • Доступ в корпоративную сеть извне, также возможно объединение сетей филиалов в единую сеть. Это собственно то, для чего и задумывали VPN, позволяет организовать безопасную работу в единой корпоративной сети для клиентов находящихся вне предприятия. Широко используется для объединения территориально разнесенных подразделений, обеспечения доступа в сеть для сотрудников находящихся в командировке или на отдыхе, дает возможность работать из дома.
  • Объединение сегментов корпоративной сети. Зачастую сеть предприятия состоит из нескольких сегментов с различным уровнем безопасности и доверия. В этом случае для взаимодействия между сегментами можно использовать VPN, это гораздо более безопасное решение, нежели простое объединение сетей. Например, таким образом можно организовать доступ сети складов к отдельным ресурсам сети отдела продаж. Так как это отдельная логическая сеть, для нее можно задать все необходимые требования безопасности не влияя на работу отдельных сетей.

Настройка VPN соединения.

В качестве клиентов VPN сервера с большой болей вероятности будут выступать рабочие станции под управлением Windows, в то время как сервер может работать как под Windows, так и под Linux или BSD, поэтому будем рассматривать настройки соединения на примере Windows 7. Мы не будем останавливаться на базовых настройках, они просты и понятны, Остановимся на одном тонком моменте.
При подключении обычного VPN соединения основной шлюз будет указан для VPN сети, то есть интернет на клиентской машине пропадет или будет использоваться через подключение в удаленной сети. Понятно, что это как минимум неудобно, а в ряде случаев способно привести к двойной оплате трафика (один раз в удаленной сети, второй раз в сети провайдера). Для исключения этого момента на закладке Сеть в свойствах протокола TCP/IPv4 нажимаем кнопку Дополнительно и в открывшемся окне снимаем галочку Использовать основной шлюз в удаленной сети.
vpn-gateway.pngМы бы не останавливались на этом вопросе столь подробно, если бы не массовое возникновение проблем и отсутствие элементарных знаний о причинах такого поведения VPN соединения у многих системных администраторов.
В следующей части нашей статьи мы рассмотрим другую актуальную проблему - правильную настройку маршрутизации для VPN клиентов, что является основой грамотного построения VPN сетей уровня предприятия.

10 Февраля 2011 14:48

Linux VPN

Давно хотелось иметь возможность попадать в свою домашнюю сеть из любой точки интернета. В большинстве случаев описанных в примерах роутер и VPN сервер являлись одной и тоже физической машиной, а в моем случае VPN сервер будет внутри сети за роутером и клиент, подключающийся по VPN должен будет попадать в мою сеть в том же диапазоне адресов что и локальные участники, чтоб максимально упростить совместную работу.

Все это мне удалось сделать из интернета от стрим, роутера D-link DSL-2640u/BRU/D и сервера на основе Ubuntu 9.10 и выглядит это примерно так:

Благо стим выдает реальные адреса при подключении и нет необходимости в подключении каких-либо услуг с его стороны за дополнительные деньги.

Настраиваем роутер 

Для начала идем на роутер и настраиваем проброс VPN: Advanced Setup → NAT → Virtual Servers → Add. Выбираем PPTP в списке, вводим IP сервера и жмем "Save/Apply". Отдельно разрешать протокол GRE нигде не нужно. Потом сужаем диапазон адресов, выдаваемых по DHCP: Advanced Setup → LAN, там меняем End IP Address, я поставил себе 192.168.1.99 для того чтобы они не пересекались с выдаваемыми VPN сервером.

Мой роутер поддерживает Dynamc DNS, это очень удобно чтоб при подключении к VPN не вводить IP, который у стрима меняется каждые 24 часа, а вместо него удобное DNS имя. Идем в Advanced Setup → DNS → Dynamic DNS, жмем Add и вводим параметры.

Устанавливаем VPN сервер 

Теперь переходим к серверу. Для начала нам понадобится сам VPN сервер (в linux он называется pptpd). Устанавливаем:

sudo apt-get install pptpd 

Демон запущен и слушает порт tcp/1723, если на сервере используется firewall, то в нем нужно разрешить входящие соединения по протоколу GRE, а так же входящие соединения на tcp порт 1723:

$IPTABLES -A INPUT -p gre -s 0/0 -j ACCEPT
$IPTABLES -A OUTPUT -p gre -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 0/0 --dport 1723 j ACCEPT

Если все прошло успешно, переходим к настройке.  Первым делом крутим /etc/pptpd.conf

#убеждаемся что закомментировано, чтоб клиенту вбрасывались адреса
#noipparam
# включим передачу VPN-клиентам широковещательных пакетов с внутреннего интерфейса
bcrelay eth0
#настроим IP сервера
localip 192.168.1.10
#и диапазон адресов для клиентов
remoteip 192.168.1.234-245

Теперь настраиваем /etc/ppp/pptpd-options

# Требовать от клиента обязательное аутентификации
auth
#требуем авторизации только через MS-CHAPv2
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
#включаем шифрование
require-mppe-128
#поскольку VPN-клиентам выделяются адреса из реальной Ethernet-сети
#то чтобы все видели друг друга
proxyarp 
#мы не хотим становиться маршрутом по умолчанию
#но под виндой все равно потребуется настройка*
nodefaultroute

* не смотря на на nodefaultroute, под Windows при установке VPN все равно маршрут по-умолчанию вставал на VPN, чтобы этого не происходило идем в свойства VPN соединения → Сеть → Протокол TCP/IP → Свойства → Дополнительно, там снимаем галку "Использовать основной шлюз в удаленной сети".

Добавляем пользователей в /etc/ppp/chap-secrets

# client server secret IP addresses
user * password *

Здесь можно жестко задать IP для определенных пользователей.

Перезапускаем демона pptpd

sudo /etc/init.d/pptpd restart

Важно!

Теперь наш сервер будет работать роутером, поэтому для нормальной работы он должен уметь форвардить пакеты, иначе клиенты и локальные пользователи просто не увидят друг друга. Убеждаемся что

cat /proc/sys/net/ipv4/ip_forward

выдает 1 (0=disabled, 1=enabled). Если это не так, то нужно включить ip forwarding в ядре. Для этого открываем /etc/sysctl.conf  находим и меняем

net.ipv4.ip_forward=1

потом выполняем

sudo sysctl -p  

Все готово

Просим друзей создать VPN соединение к нашему серверу и проверить работоспособность, у меня все получилось с первого раза, чего и Вам желаю :)

А если все подключается, но ничего не работает 

И роутер не DSL, а устанавливает VPN-соединение с провайдером для доступа в интернет, то вполне возможно нужно изменить размер MTU, таким образом, чтобы он был меньше MTU соединения с провайдером. Например, вы подключаетесь к провайдеру с MTU=1400 (см. в настройках роутера), тогда для своего VPN сервера нужно задать меньшее значение, например 1300. Для этого идем в /etc/ppp/pptpd-options и дописываем

mru 1300
mtu 1300 

При написании были использованы следующие материалы:

VitGun

Песака


Аватар для VitGun

Регистрация: 20.03.2006

Адрес: Оренбург

Сообщений: 58

Поблагодарили 0 раз(а) в 0 сообщениях

По умолчанию
Как я понял, если все правильно настроить, то при подключении VPN к терминалу будет доступно подключение (с удаленной машины) по адресу 192.168.0.2? Или я неправ?
З.ы. при подключении VPN клиент сам себя пингует (192.168.1.2), а сервер (192.168.1.1) - нет.
Теперь добился захода на RDP из инета, но он заходит в любом случае...а мне нужно только при работающем VPN и никак иначе.

После некоторого шаманства ВПН-сервер (192.168.1.1) пингуецца, 192.168.0.1 (шлюз с Керио) тоже, локалки не видно и Терминал-сервер (192.168.0.2) не пингуеццо
Добавлено через 6 часов 7 минут
Так. Вопрос снимается...усе пашет....почти. Теперь еще вот что...могу я с удаленного компа (клиента) получить доступ ко всей локальной сети? Т.е видеть компы в сетевом окружении? Пинги ходят до локальных машин, но в сетевом окружении их не видно.:insane:

Из инета. Из локалки коннект к терминалу работает как часы.Как я понял, если все правильно настроить, то при подключении VPN к терминалу будет доступно подключение (с удаленной машины) по адресу 192.168.0.2? Или я неправ?З.ы. при подключении VPN клиент сам себя пингует (192.168.1.2), а сервер (192.168.1.1) - нет.Теперь добился захода на RDP из инета, но он заходит в любом случае...а мне нужно только при работающем VPN и никак иначе.После некоторого шаманства ВПН-сервер (192.168.1.1) пингуецца, 192.168.0.1 (шлюз с Керио) тоже, локалки не видно и Терминал-сервер (192.168.0.2) не пингуеццоТак. Вопрос снимается...усе пашет....почти. Теперь еще вот что...могу я с удаленного компа (клиента) получить доступ ко всей локальной сети? Т.е видеть компы в сетевом окружении? Пинги ходят до локальных машин, но в сетевом окружении их не видно.:insane:

Последний раз редактировалось VitGun; 04.07.2007 в

11:05

. Причина: Добавлено сообщение