Простейшая установка VPN сервера с помощью PPTP

Наиболее востребованная услуга среди пользователей создание частного VPN сервера (обращаем Ваше внимание публичные прокси сервера на базе наших серверов запрещены). Самый оптимальный вариант для выполнения многих задач подходит OpenVPN, как наиболее безопасный сервер. Но наиболее простым, который прост как в установке, так и в настройке, который к тому же совместим практически со всеми мобильными устройствами, является PPTP (Point-To-Point Tunneling Protocol) и данная технология наименее всего потребляет ресурсы сервера.

Для настройки потребуется любой сервер с виртуализацией KVM. Еще раз, ни в коем случае не использовать сервера на базе OpenVZ, кроме того, что это запрещено нашим регламентом, у этих сервером там многие протоколы урезаны и настроенный сервер может не работать. Рекомендуем использовать сервера из локаций Нидерланды, Литва, США, т. к. в данных локациях интернет менее всего подвержен цензуре и Вы сможете попадать на заблокированные ресурсы правительством некоторых стран. Например для Украины таковыми являются Яндекс, Маил.Ру, Вконтакте, Одноклассники и пр.

Шаг 1 - Установка PPTP

Вам необходимо выбрать один сервер, который будет отвечать за раздачу IP-адресов другим серверам и авторизацию всех Ваших серверов в Вашей VPN. Он и станет Вашим PPTP-сервером.

Если выбрали операционню систему CentOS 6 x64::

 
rpm -i http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm
yum -y install pptpd

На Ubuntu 12.10 x64:

apt-get install pptpd


Теперь необходимо отредактировать файл

/etc/pptpd.conf


добавив в него следующие строчки:

localip 10.0.0.1
remoteip 10.0.0.100-200


В данном случае, localip - это IP-адрес вашего сервера, а remoteip - IP-адреса, которые будут присваиваться клиентам, которые в ним соединяются.

Затем Вам необходимо настроить авторизацию для PPTP путем добавления пользователей и их паролей. Просто добавьте их в /etc/ppp/chap-secrets:

PPTP

Здесь сlient - это имя пользователя (логин), server - тип сервиса (в нашем примере - pptpd), secret - пароль, а в IP addresses указывается, какие IP-адреса могут авторизоваться (с данным логином и паролем). Установив в поле IP-адресов звёздочку * Вы указываете, что данная пара логин/пароль должна приниматься с любого IP.

Шаг 2 - Добавление DNS-серверов в /etc/ppp/pptpd-options

ms-dns 8.8.8.8
ms-dns 8.8.4.4

Теперь Вы можете запустить PPTP-демон:

service pptpd restart

Проверьте, что он работает и принимает соединения:

PPTP2

Шаг 3 - Настройка форвардинга (Forwarding)

Очень важно включить форвардинг IP на Вашем PPTP-сервере. Это позволит Вам пересылать пакеты между публичным IP и приватными IP, которые Вы настроили при помощи PPTP. Просто отредактируйте /etc/sysctl.conf, добавив туда следующую строку, если ее там еще не было:

net.ipv4.ip_forward = 1

Для применения изменений выполните команду sysctl -p

Шаг 4 - Создание NAT-правил для iptables

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

Если Вы также хотите, чтобы Ваши PPTP-клиенты могли общаться между собой, добавьте следующие правила для iptables:

iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface eth0 -j ACCEPT

Теперь Ваш PPTP-сервер также работает и как роутер.

Если Вы хотите установить ограничение на то, какие сервера могут соединяться с Вашими дроплетами, Вы можете задать правило для IP-таблиц, которое ограничивает TCP-соединения к порту 1723.

Шаг 5 - Настройка клиентов

Установите PPTP-клиент на Ваших клиентских серверах:

yum -y install pptp

Шаг 6 - Добавление необходимого модуля ядра

modprobe ppp_mppe

Создайте новый файл

/etc/ppp/peers/pptpserver

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

pty "pptp 198.211.104.17 --nolaunchpppd"
name box1
password 24oiunOi24
remotename PPTP
require-mppe-128

Здесь 198.211.104.17 - публичный IP-адрес нашего PPTP-сервера, box1 и 24oiunOi24 - это пара логин/пароль, которые мы задали в файле /etc/ppp/chap-secrets на нашем PPTP-сервере.

Теперь мы можем "вызывать" этот PPTP-сервер. В следующей команде необходимо использовать имя, которое Вы дали файлу с пирами (peers) в директории /etc/ppp/peers/. Поскольку в нашем примере мы назвали этот файл pptpserver, наша команда выглядит следующим образом:

pppd call pptpserver

Вы должны увидеть успешное подключение в логах PPTP-сервера:

PPTP

На Вашем PPTP-клиенте настройте маршрутизацию на Вашу приватную сеть через интерфейс ppp0:

ip route add 10.0.0.0/8 dev ppp0

Ваш интерфейс ppp0 должен быть настроен, что можно проверить путем запуска ifconfig

PPTP4

Теперь Вы можете сделать пинг к Вашему PPTP-серверу и любым другим клиентам, подключенным к этой сети:

Мы можем добавить второй PPTP-клиент к этой сети:

PPTP5

yum -y install pptp
modprobe ppp_mppe

Добавьте необходимые строки в файл

/etc/ppp/peers/pptpserver

(заменяя логины и пароли своими):

pty "pptp 198.211.104.17 --nolaunchpppd"
name box2
password 239Aok24ma
remotename PPTP
require-mppe-128

Теперь на втором клиенте выполните следующие команды:

PPTP6

pppd call pptpserver
ip route add 10.0.0.0/8 dev ppp0

Вы можете сделать пинг к первому клиенту, при этом пакеты будут идти через PPTP-сервер и перенаправляться по правилам ip-таблиц, которые мы задали ранее:

PPTP7

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

PPTP8

Если Вы хотите, чтобы все ваши устройства общались безопасно в рамках одной сети, это наиболее быстрый способ сделать это.

Вы можете использовать такой подход совместно с Nginx, Squid, MySQL и любыми другими приложениями.

Поскольку трафик внутри сети шифруется 128-битным шифрованием, PPTP меньше нагружает процессор, чем OpenVPN, но все же обеспечивает дополнительный уровень безопасности Вашего трафика.

Leave a comment

Make sure you enter all the required information, indicated by an asterisk (*). HTML code is not allowed.