Поднимаем VPN — PPTP сервер на Ubuntu
Почему именно PPTP? У каждого свои цели и задачи, кому-то нужен PPTP, кому-то L2TP/IPSec, кому-то IKEv2, а может и OpenVPN. Я постараюсь написать статьи по установке и настройке хотя бы двух протоколов VPN на Ubuntu и начну с PPTP. Все описанные действия производились на Ubuntu 14.04.5 LTS.
Напоминаю, что дешевые VPS во Франции для запуска своего VPN вы можете посмотреть здесь.
Для установки понадобятся права root пользователя или sudo.
1. Устанавливаем необходимые пакеты:
После окончания установки, нам понадобится отредактировать несколько файлов. Для изменения файлов вы можете пользоваться любым удобным для вас способом, хоть nano, хоть визуальными редакторами и т.д.
Теперь вам необходимо определиться с локальной подсетью для клиентов VPN. Вы можете сделать себе подсеть из любой подсети, которая не маршрутизируется в интернете:
2. Открываем файл /etc/pptpd.conf, находим и раскоментируем (если вдруг закоментированы) строки localip и remoteip, затем прописываем свою ip адресацию.
3. Открываем файл /etc/ppp/pptpd-options и добавляем в конце файла:
В этом же файле при необходимости вы можете указать конкретные DNS, которые будут использоваться при подключении через VPN. Найдите и раскоментируйте строки ms-dns:
4. Открываем стандартный файл /etc/sysctl.conf, находим и раскоментируем строку:
5. Добавляем необходимые правила в iptables:
Обратите внимание, что eth0 – имя вашего сетевого интерфейса. Вы можете узнать его с помощью команды ifconfig
Если вам необходимо, чтобы была локальная сеть между клиентами, подключенными к VPN, добавьте следующие правила в iptables:
Обратите внимание, что 172.16.0.0/24 – локальная подсеть, которую вы себе выбрали, а ppp0 – имя pptp интерфейса.
Для сохранения iptables, выполните команду:
6. Пользователей для подключения к VPN серверу добавляем в файле /etc/ppp/chap-secrets
Ваш PPTP сервер на Ubuntu запущен!
P.S. Если вдруг вы столкнетесь с тем, что добавленные правила iptables PPtP Ubuntu пропадают после рестарта firewall или перезагрузки машины, то сделайте действия, описанные ниже. 1. Добавляем заново все правила, как описано в 5-м шаге. 2. Сохраняем правила в конфиг:
3. Открываем файл /etc/network/interfaces и добавляем в самый конец:
Теперь можете перезагрузить Firewall или всю машину и убедиться, что правила iptables сохраняются.
1
|
apt–get install ppp pptpd
|
1
2
3
4
5
6
7
8
9
|
10.0.0.0/8
172.16.0.0/12
192.0.2.0/24
192.88.99.0/24
192.168.0.0/16
198.18.0.0/15
224.0.0.0/4
240.0.0.0/4
100.64.0.0/10
|
1
2
|
localip 172.16.0.1
remoteip 172.16.0.2–254
|
- localip – ip адрес из выбранной вами подсети, который будет являться локальным шлюзом для клиентов VPN.
- remoteip – пул ip адресов для раздачи клиентам VPN.
1
|
listen внешний_ip
|
1
2
3
4
|
mtu 1400
mru 1400
auth
require–mppe
|
1
2
|
ms–dns 8.8.8.8
ms–dns 8.8.4.4
|
1
|
net.ipv4.ip_forward=1
|
1
2
3
|
iptables –A INPUT –p gre –j ACCEPT
iptables –A INPUT –m tcp –p tcp —dport 1723 –j ACCEPT
iptables –t nat –A POSTROUTING –o eth0 –j MASQUERADE
|
1
2
3
|
iptables —table nat —append POSTROUTING —out–interface ppp0 –j MASQUERADE
iptables –I INPUT –s 172.16.0.0/24 –i ppp0 –j ACCEPT
iptables —append FORWARD —in–interface eth0 –j ACCEPT
|
1
|
iptables–save
|
1
2
|
user1 pptpd password1 “*”
user2 pptpd password2 “172.16.0.2”
|
- user1 – имя пользователя
- password1 – пароль пользователя
- “*” – локальный ip будет выдаваться из пула, указанного в файле /etc/pptpd.conf
- “172.16.0.2” – пользователю будет присвоен указанный ip адрес.
1
|
service pptpd restart
|
P.S. Если вдруг вы столкнетесь с тем, что добавленные правила iptables PPtP Ubuntu пропадают после рестарта firewall или перезагрузки машины, то сделайте действия, описанные ниже. 1. Добавляем заново все правила, как описано в 5-м шаге. 2. Сохраняем правила в конфиг:
1
|
iptables–save > /etc/iptables.conf
|
1
|
pre–up /sbin/iptables–restore < /etc/iptables.conf
|