VPN в Ubuntu на примере PPTP
Устанавливаем:
$ sudo apt-get install ppp pptpd iptables-persistent
Дописываем в конец файла /etc/pptpd.conf строки
localip 192.168.11.1 remoteip 192.168.11.10-254
Приводим /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
Добавляем пользователей в /etc/ppp/chap-secrets
# Secrets for authentication using CHAP # client server secret IP addresses user1 * password1 * # динамический адрес user2 * password2 192.168.11.251 # статический адрес
Разрешаем форвардинг пакетов - проверяем чтобы в файле /etc/sysctl.conf была строка
net.ipv4.ip_forward=1
а чтобы заработало без перезагрузки перечитываем файл настроек:
$ sudo sysctl -p
или делаем так:
$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward
Добавляем в правила iptables строки (какие именно - смотреть по ситуации)
-A INPUT -p gre -j ACCEPT # Пропускать GRE -A FORWARDING -p gre -j ACCEPT # Форвардить GRE -A INPUT -i eth1 -p tcp --dport 1723 -j ACCEPT # Разрешить соединения на порт PPTPD -A POSTROUTING -s 192.168.11.0/24 -o eth0 -j MASQUERADE # Разрешить маскарадинг для VPN-клиентов -A FORWARD -p tcp --syn -s 192.168.0.0/24 -j TCPMSS --set-mss 1356 # Устанавливать MSS для стабильного соединения
Перезапускаем, проверяем:
$ sudo service pptpd restart