sudo -s
apt-get install pptpd
Сервис автоматически запустился демоном. Проверим это:
netstat -anp | grep pptpd
tcp 0 0 0.0.0.0:1723 0.0.0.0:* LISTEN 21900/pptpd
unix 2 [ ] DGRAM 6144232 21900/pptpd
Демон запущен и слушает порт tcp/1723. Теперь нам нужно его настроить.
Откроем первый его конфиг, предварительно сделав бекап файла:
cp /etc/pptpd.conf /etc/pptpd.conf_bak
vim /etc/pptpd.conf
и в нем настраиваем:
# IP-адрес сервера в VPN-сети:
localip 192.168.91.1
# Диапазон адресов для выдачи VPN-клиентам:
remoteip 192.168.91.102-154,192.168.91.101
# Включим передачу VPN-клиентам широковещателных пакетов с внутреннего интерфейса роутера:
bcrelay eth0
# Смотрим, чтобы было закомментировано, иначе клиенту не будет передаваться его IP-адрес:
#noipparam
Теперь второй файл. Открываем и правим:
vim /etc/ppp/pptpd-options
# Требовать от клиента обязательное авутентификации:
auth
# Укажем файл, в который писать лог:
logfile /var/log/pptpd.log
# Адрес DNS-сервера, указываемого клиентам:
ms-dns 192.168.3.151
# Чтобы не сбивался маршрут по умолчанию:
nodefaultroute
# Опция proxyarp имеет смысл только если вы VPN-клиентам выделяете адреса
# из вашей реальной Ethernet-сети. У нас все VPN-клиенты находятся в другой VPN-подсети,
# поэтому эту опцию закомментируем:
#proxyarp
Теперь нам нужно создать юзеров, которыми будут подключатся клиенты. Они прописываются в файле /etc/ppp/chap-secrets.
vim /etc/ppp/chap-secrets
# client server secret IP addresses
test * testpass *
testa * testapass 192.168.91.101
Здесь создан пользователь test с паролем testpass, который может подключаться откуда угодно и выдаваться ему будет любой свободный IP. А вот пользователю testa всегда будет выдаваться IP 192.168.91.101.
Перезапускаем сервис:
service pptpd restart
Теперь необходимо настроить фаерфолл на роутере (VPN-сервере). Необходимо разрешить входящие соединения по 47 протоколу, а так же входящие соединения на tcp порт 1723. Вот выдержка из моего скрипта правил iptables:
# VPN - PPTPD
$IPTABLES -A INPUT -p gre -s 0/0 -j ACCEPT
$IPTABLES -A OUTPUT -p gre -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 0/0 --dport 1723 j ACCEPT
Источник: http://morfair.livejournal.com/3614.html