Arm1.ru

Tag: «pptp»

Быстрая настройка VPN-сервера (PPTP) на Ubuntu Server

 

Шпаргалка как поднять быстро VPS на серверной убунте. Пока осилил только PPTP. Все команды от root:

apt-get install pptpd

nano /etc/pptpd.conf
В нём:

option /etc/ppp/pptpd-options
logwtmp
localip 10.1.0.1
remoteip 10.1.0.2-255
bcrelay eth0

nano /etc/ppp/pptpd-options
В нём:

name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 8.8.8.8
ms-dns 8.8.4.4
proxyarp
nodefaultroute
lock
nobsdcomp

nano /etc/ppp/chap-secrets
В нём:

 # client server secret IP addresses
username pptpd password *

sudo nano /etc/ppp/ip-up
В нём добавляем в конец:

 ifconfig $1 mtu 1492

nano /etc/sysctl.conf
раскоментить строчку net.ipv4.ip_forward=1

sysctl -p

Смотрим, через какой интерфейс в интернет смотрит сервер:
ifconfig

В моём случае eth0 (да и в большинстве других случаев, думаю, тоже).

И самое главное, в моём случае - правила iptables. PPTP работает через TCP-порт 1723, он должен быть открыт. Например:

nano run-iptables.sh
В него вставляем:

iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.1.0.0/24 -i ppp0 -j ACCEPT #подсеть, которая выставлена в /etc/pptpd.conf
iptables --append FORWARD --in-interface eth0 -j ACCEPT

Сохраняем, выходим.

chmod +x run-iptables.sh
./run-iptables.sh
service pptp restart

Работает с iOS-устройствами и с Mac OS X (там в Системные настройки -> Сеть нужно добавить новое VPN-соединение и поставить галку в его дополнительных свойствах "Отправлять весь трафик через VPN").

Я долго с этим промучался, т.к. делать всё бездумно по мануалам оказалось битьём головой о стену. Раньше мануалы мне помогали, а теперь, похоже, затык был с настройками firewall на сервере. Пришлось копать.

В общем, PPTP работает на порту 1723, быстрая диагностика, например, выполнить на сервере:
netstat -an | grep 1723

Будет что-то вроде:

tcp 0 0 0.0.0.0:1723 0.0.0.0:* LISTEN

Ну и в Mac OS X запустить Сетевую утилиту и во вкладке Port Scan вбить IP-адрес сервера и порт, чтобы определить - доступен он снаружи или нет. В работающем случае будет что-то вроде этого:

comment comments