Настройка VPN-сервера в Windows Server

На тесте приведу пример настройки VPN-сервера в Windows Server 2008 R2.

Первым делом установим роль:

1) Открываем диспетчер сервера и нажимаем на ссылку «Добавить роль«.

2) Выбираем роль «Службы политики сети и доступа» и нажимаем «Далее«.

3) Выбираем «удаленного доступа» и нажимаем «Далее«.

4) Нажимаем «Установить» и по завершению установки кнопку «Закрыть«.

Теперь перейдем к настройке:

1) Открываем диспетчер сервера, раскрываем ветку «Роли«, выбираем роль «Службы политики сети и доступа«, правой кнопкой мыши жмем по «Маршрутизация и удаленный доступ«, выбираем «Настроить и включить маршрутизацию и удаленный доступ«.

2) В первом окошке жмем «Далее«, в следующем выберем «Особая конфигурация«, жмем кнопку «Далее«, отметим галочками три пункта: «Доступ к виртуальной частной сети (VPN)«, «Преобразование сетевых адресов (NAT)» и «Маршрутизация локальной сети«, жмем «Далее» и «Готово«.
В появившемся окне нажмем «Запустить службу«.

3) Добавим пул адресов для клиентов, открыв «Диспетчер сервера» — «Роли» — «Службы политики сети и доступа«, правой кнопкой мыши жмем по «Маршрутизация и удаленный доступ» и выбираем «Свойства«.
Во вкладке «IPv4» выберем «Статический пул адресов» и добавим любой диапазон после нажатия кнопки «Добавить«.
Чтобы можно было подключится к VPN серверу например с iPhone (по L2TP), во вкладке «Безопасность» поставим галочку на «Разрешить особые IPSec-политики для L2TP подключения» и укажем ключ.

4) Теперь настроим разрешения для пользователей. Переходим в «Диспетчер сервера — Конфигурация — Локальные пользователи и группы — Пользователи«:
Открываем «Свойства» нужного пользователя и во закладке «Входящие звонки«, где «Права доступа к сети» выбираем «Разрешить доступ«.

5) Добавим NAT правила, нужные маршруты и перезапустим службу, нажав правой кнопкой мыши по «Маршрутизация и удаленный доступ» — «Все задачи» — «Перезапуск«.

Для работы VPN используются и должны быть открыты порты:
TCP 1723 (для PPTP)
TCP 1701 и UDP 500 (для L2TP)
TCP 443 (для SSTP)

Готово.

Логи подключений можно увидеть в директории C:\Windows\System32\LogFiles

Настройка VPN IPSec/L2TP сервера на Mikrotik

Приведу пример настройки VPN IPSec/L2TP сервера на Mikrotik, чтобы можно было подключаться к нему из Windows, MacBook, iPhone и т.д.

1) Добавим диапазон IP-адресов для DHCP открыв «IP» — «Pool» и указав:
Name: vpn_pool
Addresses: 192.168.5.1-192.168.5.15
Next pool: none
Из терминала так:

ip pool add name=vpn_pool ranges=192.168.5.1-192.168.5.15

2) Добавим профиль в «PPP» — «Profiles»
Name: l2tp_profile
Local address: vpn_pool (можно указать default 192.168.88.1)
Remote address: vpn_pool
Change TCP MSS: yes
Остальное не трогаем и оставим в default
Из терминала так:

ppp profile add change-tcp-mss=yes local-address=vpn_pool name=l2tp_profile remote-address=vpn_pool

3) Добавим пользователя в «PPP» — «Secrets»
Name: ЛОГИН
Password: ПАРОЛЬ
Service: l2tp
Profile: l2tp_profile
Из терминала так:

ppp secret add name=ЛОГИН password=ПАРОЛЬ profile=l2tp_profile service=l2tp

4) Включим сервер в «PPP» — «Interface» — «L2TP Server»
Enabled: yes
MTU/MRU: 1450
Keepalive Timeout: 30
Default profile: l2tp_profile
Authentication: mschap2
Use IPSec: yes
IPSec Secret: КЛЮЧ_ШИФРОВАНИЯ (также указывается в клиентах)
Из терминала так:

interface l2tp-server server set authentication=mschap2 default-profile=l2tp_profile enabled=yes ipsec-secret=КЛЮЧ use-ipsec=yes

5) «IP» — «IPSec» — «Peers»
Address: 0.0.0.0/0
Port: 500
Auth method: pre shared key
Exchange mode: main l2tp
Passive: yes (set)
Secret: КЛЮЧ_ШИФРОВАНИЯ (также указывается в клиентах)
Policy template group: default
Send Initial Contact: yes
NAT Traversal: yes
My ID Type: auto
Generate policy: port override
Lifitime: 1d 00:00:00
DPD Interval: 120
DPD Maximum failures: 5
Proposal check: obey
Hash algorithm: sha1
Encryption Algorithm: 3des aes-128 aes-256
DH Group: modp 1024
Из терминала так:

ip ipsec peer add address=0.0.0.0/0 enc-algorithm=aes-256,aes-128,3des exchange-mode=main-l2tp generate-policy=port-override passive=yes secret=КЛЮЧ

6) «IP» — «IPSec» — «Proposals»
Name: default
Auth algorithms: sha1
Enrc. algorithms: 3des, aes-256 cbc, aes-256 ctr
Life time: 00:30:00
PFS Group: mod 1024
Из терминала так:

ip ipsec proposal set [ find default=yes ] enc-algorithms=aes-256-cbc,aes-256-ctr,3des

7) «Firewall» — «Add New»
Добавим первое правило разрешающее входящие VPN соединения:
Chain: Input
Protocol: udp
Any. Port: 1701,500,4500
Action: Accept
И второе:
Chain: Input
Protocol: ipsec-esp
Action: Accept
Из терминала так:

ip firewall filter add chain=input action=accept protocol=udp port=1701,500,4500
ip firewall filter add chain=input action=accept protocol=ipsec-esp

Правила должны находится в начале списка.

На этом настройка завершена, можно подключаться.

Смотрите также:
Настройка удаленного доступа в маршрутизаторах Mikrotik

Настройка VPN подключения в Windows 8

Опишу по пунктам как настроить VPN подключение в Windows 8:

1) Откроем Панель Управления, для этого например в стартовой панели нажмём «Все приложения» и выберем там «Панель Управления»

2) В Панели Управления выберем «Сеть и интернет» — «Центр управления сетями и общим доступом«, потом слева «Изменения параметров адаптера»

3) В открывшемся окне выберем «Подключение к рабочему месту»

4) В следующем окне выберем «Настройка нового подключения или сети» — «Подключение к рабочему месту» — «Использовать моё подключение к Интернету (VPN)»

5) В следующем окне, укажем адрес VPN-сервера и по желанию имя подключения либо оставим его стандартным

6) Вернемся в раздел «Изменения параметров адаптера«, там будем новое только что созданное VPN подключение, нажимаем по нему два раза клавишей мыши и в открывшемся окне введем логин и пароль, после чего жмём «Подключить«. Если необходимо в подключении дополнительно указать например параметры безопасности, то нажав правой клавишей мыши по нему выберем «Свойства» и перейдем во вкладку «Безопасность», после сделанных изменений нажмем «ОК».

Все.

Установка и настройка OpenVPN в Ubuntu

Приведу пример установки и настройки OpenVPN в Ubuntu, на примере будет использована Ubuntu 14.04 LTS, для других версий установка аналогична.

Установим OpenVPN и easy-rsa для шифрования соединений:

sudo apt-get install openvpn easy-rsa

Чтобы не вводить команду sudo временно переключимся на root пользователя набрав:

sudo -s -H

Создадим директорию и скопируем скрипты для генерации ключей:

mkdir /etc/openvpn/easy-rsa
cp -r /usr/share/easy-rsa /etc/openvpn/easy-rsa
mv /etc/openvpn/easy-rsa/easy-rsa /etc/openvpn/easy-rsa/2.0

Перейдем в директорию и отредактируем некоторые переменные:

cd /etc/openvpn/easy-rsa/2.0
mkdir keys
nano vars

Изменим информацию о сертификатах:

export KEY_COUNTRY="RU"
export KEY_PROVINCE
и т.д.

Копируем конфигурационный файл:

cp openssl-1.0.0.cnf openssl.cnf

Загружаем переменные:

source ./vars

Очистим папку keys от старых сертификатов:

./clean-all

Создадим сертификаты:

./build-ca
./build-key-server ИМЯ_СЕРВЕРА
./build-dh
openvpn --genkey --secret keys/ta.key

Переместим:

cd /etc/openvpn/easy-rsa/2.0/keys/
cp -r server.crt server.key ca.crt dh2048.pem ta.key /etc/openvpn/

Создадим файл конфигурации сервера:

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
cd /etc/openvpn
gunzip -d /etc/openvpn/server.conf.gz

Отредактируем его указав пути к ключам:

nano /etc/openvpn/server.conf

Команда перезапуска OpenVPN сервера:

service openvpn restart

Проверить запущен ли OpenVPN можно командой:

netstat -tuwpan

Выйдем из под пользователя root набрав:

exit

Все.

Настройка PPTP (VPN) сервера на Mikrotik

Сначала опишу первый простой вариант настройки PPTP (VPN) сервера на Mikrotik через web-интерфейс или Winbox. В этом варианте к серверу может подключаться только один клиент.
1) Активируем сервер открыв меню «PPP» -> «PPTP Server» -> где поставим галочку «Enabled«.
2) Добавим параметры подключения к серверу, для этого откроем «PPP» -> «Secrets» и добавим:
Name: логин
Password: пароль
Service: pptp
Local Address: внутренний IP роутера, например 192.168.88.1
Remote Address: IP который будет назначен клиенту, например 192.168.88.2
жмем OK.
3) Добавим правило в фаервол чтобы можно было подключатся к серверу из вне, для этого откроем меню «IP» -> «Firewall» и во вкладке «Filter Rules» добавим правило:
Chain: input
Dst. Address: внешний IP роутера
Protocol: tcp
Dst. Port: 1723
In. Interface: WAN порт роутера, например ether1-gateway
Action: accept
жмем OK, на этом простая настройки завершена.

 

Теперь опишу вариант настройки из командной строки. К серверу может подключатся много клиентов и они будут получать IP по DHCP.

Включение pptp сервера:

interface pptp-server server set enabled=yes

Просмотр параметров pptp сервера:

interface pptp-server server print

Добавление интерфейса pptp сервера:

interface pptp-server server add add name=pptpserver user=пользователь

Установка пула адресов которые будут выдаваться подключившимся пользователям:

ip pool add name="pptp-pool" ranges=172.20.1.10/28

Добавление профиля для pptp сервера:

ppp profile add name="pptp" local-address=172.20.1.11 remote-address=pptp-pool use-compression=no use-vj-compression=no use-encryption=default only-one=default change-tcp-mss=yes

Добавление данных для аутентификации:

ppp secret add name="пользователь" service=pptp caller-id="" password="пароль" profile=pptp

Также необходимо разрешить трафик по протоколу TCP на порт 1723 из вне и разрешить протокол GRE.
Для этого добавляем первое правило, chain = input, protocol = tcp, Dst.Port = 1723, action = accept.
И второе, chain = input, protocol = gre, action = accept.
Эти два правила необходимо разметить перед стандартными запрещающими правилами, иначе они не будут работать.

В параметрах созданного VPN соединения в Windows необходимо выбрать тип PPTP и шифрование «необязательно, подключатся даже без шифрования».

Немного полезной информации:
PAP (Password Authentication Protocol) — протокол проверки подлинности, проверяет имя и пароль.
CHAP (Challenge Handshake Authentication Protocol) — широко распространённый протокол, в котором серверу передается не пароль пользователя, а косвенные сведения о нём.
MS-CHAP (Microsoft Challenge Handshake Authentication Protocol) — протокол от Microsoft для проверки подлинности удалённых компьютеров.