Как настроить собственный VPN с помощью PPTP
Статус: устарело
Эта статья устарела и больше не поддерживается.
Причина
Ubuntu 12.04 достиг конца срока службы (EOL) 28 апреля 2017 г. и больше не получает исправления или обновления безопасности.
Смотрите вместо этого
Эта статья может по-прежнему быть полезной в качестве справочного материала, но может не следовать рекомендациям или работать с этим или другими выпусками Ubuntu. Мы настоятельно рекомендуем использовать недавнюю статью, написанную для используемой вами версии Ubuntu.
Если вы в настоящее время используете сервер под управлением Ubuntu 12.04, мы настоятельно рекомендуем обновить или перейти на поддерживаемую версию Ubuntu:
- Как обновить Ubuntu 12.04 до Ubuntu 14.04.
- Как перейти с Ubuntu 14.04 на Ubuntu 16.04
- Как перенести данные сервера в поддерживаемую версию
вступление
Один из часто задаваемых вопросов от наших пользователей — как добавить еще один IP-адрес на свой сервер. Вы можете назначить дроплету свой собственный частный IP-адрес, создав VPN-туннель. Если вы хотите создать свою собственную виртуальную частную сеть (VPN) или назначить SSL-сертификат этому IP-адресу, у вас есть несколько вариантов. Из всех возможных вариантов самые оптимальные — между PPTP и OpenVPN. Протокол туннелирования «точка-точка» (PPTP) позволяет очень быстро реализовать собственную VPN и совместим с большинством мобильных устройств. Несмотря на то, что PPTP менее безопасен, чем OpenVPN, он также быстрее и использует меньше ресурсов процессора.
Шаг 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:
Где клиент — это имя пользователя, сервер — это тип службы — в нашем примере pptpd, секрет — это пароль, а IP-адреса указывают, какой 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
Убедитесь, что он работает и принимает соединения:
Шаг 3 - Настройка переадресации
Важно включить переадресацию 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-сервер также выступает в роли маршрутизатора.
Если вы хотите ограничить, какие серверы могут подключаться к вашим дроплетам, вы можете настроить правило iptables, которое ограничивает 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-сервер, так как это протокол «точка-точка». Какое бы имя вы ни дали файлу пиров в /etc/ppp/peers/, оно должно использоваться в следующей строке. Поскольку мы назвали наш файл pptpserver:
pppd call pptpserver
Вы должны увидеть успешное подключение из журналов сервера PPTP:
На вашем PPTP-клиенте настройте маршрутизацию в вашу частную сеть через интерфейс ppp0:
ip route add 10.0.0.0/8 dev ppp0
Ваш интерфейс ppp0 должен появиться на клиентском сервере PPTP, и его можно проверить, запустив ifconfig
Теперь вы можете пропинговать свой PPTP-сервер и любых других клиентов, подключенных к этой сети:
Мы можем добавить нашего второго клиента PPTP в эту сеть:
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
Теперь запустите на втором клиенте следующее:
pppd call pptpserver
ip route add 10.0.0.0/8 dev ppp0
Вы также можете пропинговать первого клиента, так как пакеты будут проходить через сервер PPTP и маршрутизироваться с использованием правил iptables, которые мы разместили ранее:
Эта настройка позволяет вам создать собственную виртуальную частную сеть:
Если вы хотите, чтобы все ваши устройства безопасно обменивались данными в одной сети, это быстрый способ реализовать это.
Вы можете использовать его с Nginx, Squid, MySQL и любым другим приложением, о котором вы только можете подумать.
Поскольку трафик шифруется 128-битным ключом, он менее требователен к процессору, чем OpenVPN, и при этом обеспечивает дополнительный уровень безопасности вашего трафика.