в Администририрование

О том что такое VPN и для чего он используется — рассказано неоднократно. Но если вкратце — то VPN это технология, которая позволяет создавать сетевые соединения поверх уже имеющихся с использованием средств защиты передаваемых данных. Её используют для объединения географически разбросанных сетей в одну целую, для соединения рабочего места (сети) с домашней (клиентской), а так же — для обеспечения безопасности передаваемых данных по общественным сетям.

Объясню — не редко те же публичные (бесплатные) точки доступа в кафе или торговых центрах используются злоумышленниками для перехвата данных, передаваемых вами посредством всевозможных гаджетов. Начиная от содержания переписки (паролей) и заканчивая встраиванием рекламных баннеров прямо в запрашиваемые вами страницы.

С сожалению — явление это становится всё чаще возникающее, и не брезгует этим даже Еблайн. Для решения обозначенной проблемы мы как раз таки и будем использовать VPN. Можно купить VPN доступ — но если у нас есть свой сервер — можем использовать для этих целей именно его.

Выбор VPN сервера

Передо мной стоял выбор между openvpn и pptpd. Первый — хардкорный, мощный, расширяемый, с кучей всего. Но как следствие — более требовательный к ресурсам, и не позволяющий подключаться к нему бОльшому количеству гаджетов «из коробки». Второй — менее секьюрный, имеет уязвимости, но аскетичен к ресурсам и работает почти везде «из коробки».

Так как подключать к серверу планирую в первую очередь — мобильные гаджеты, а способы защиты данных у pptp избыточны для не секретной информации — выбор пал на pptpd.

Настройка VPN на iPhoneНастройка VPN на Android

Установка и настройка pptpd

Ставим при помощи yum:

$ yum install pptpd

Разрешаем IP-forwarding. Для этого в файл /etc/sysctl.conf добавляем следующую строку:

net.ipv4.ip_forward = 1

После этого изменяем файл /etc/pptpd.conf поправив в нем 2 опции (указываем адрес сервера и диапазон адресов для vpn-клиентов):

# Не нужно прописывать сюда внешний IP сервера, или IP других сетевых интерфейсов сервера
localip 10.0.0.1
# Диапазон или через запятую
remoteip 10.0.0.10-50

Переходим к файлу /etc/ppp/options.pptpd (он был указан в pptpd.conf в опции option):

name pptpd
# Запрещаем откровенно не безопасные
refuse-pap
refuse-chap
refuse-mschap
# Требуем значительно более безопасные
require-mschap-v2
require-mppe-128
# DNS от Google
#ms-dns 8.8.8.8
#ms-dns 8.8.4.4
# DNS от Yandex
ms-dns 77.88.8.8
ms-dns 77.88.8.1
proxyarp
nodefaultroute
lock
nobsdcomp
novj
novjccomp
nologfd
noipx

Теперь создадим учетки для VPN-клиентов, добавив в файл /etc/ppp/chap-secrets следующие строки (пароли и логины, разумеется, меняем на свои):

# Secrets for authentication using CHAP
# client / server / password / IP addresses
client1 pptpd 5R2T0w7r *
client2 pptpd jy17JTzh *

После чего применяем настройки, перезапускаем демона, и проверяем чтоб в выводе netstat наличие открытого порта 1723 от pptpd:

$ sysctl -p
$ service pptpd restart
$ netstat -alpn | grep :1723
tcp        0      0 0.0.0.0:1723            0.0.0.0:*               LISTEN      25215/pptpd

Если всё так как на примере выше — то создаем правила для iptables и сохраняем их:

$ iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE && iptables-save
$ service iptables save

На этот моменте необходимо протестировать работу сервера подключением клиента, например, на Windows 7 (в качестве имени сервера указываем его DNS имя или IP адрес):

win7-vpn-cfg

Соединение должно успешно установиться, а состояние подключения иметь вид:

win7-vpn-cfg2

Если всё работает — добавляем pptpd в автозапуск:

$ systemctl enable pptpd.service

И прописываем указанные в /etc/ppp/chap-secrets на самих гаджетах под управлением iOS и Android. Всё должно успешно заработать и на них.

Ссылки по теме:

Бабахнуть комментарий

Комментарии