воскресенье, 9 января 2011 г.

Простенький PPTP server

Как -то раз поставили передо мной такую задачу - настроить PPTP сервер, для того чтобы раздавать интернет юзверям в одной конторе.
Ну прям таки скажем задача проще некуда, но на всякий случай опишу как это делается (мало ли кому пригодится).
    Для начала нам необходимо установить этот самый pptp сервер во многих дистрибутивах он есть но вот например в CentOS его нет, чтож исправим это доустановив  соответствующий репозитарий:
rpm -Uvh http://pptpclient.sourceforge.net/yum/stable/rhel5/pptp-release-current.noarch.rpm
Далее установим сам демон:
yum install -y pptpd
После инсталляции нам необходимо поправить два файла(далее просто приведу их содержание)
1) /etc/pptpd.conf
ppp /usr/sbin/pppd
option /etc/ppp/options.pptpd
logwtmp
connections 250
#(далее следуют ip виртуальной сети)
localip 192.168.100.1
remoteip 192.168.100.2-251 
2) /etc/ppp/options.pptpd

name pptpd
require-pap
require-chap
#(в качестве DNS серверов можете прописать сервера провайдера или гугла)
ms-dns 8.8.8.8
ms-dns 192.168.0.1
#debug
lock
nobsdcomp 
novj
novjccomp
nologfd


Ну вот собственно и все теперь осталось только завести пользователей в файле /etc/ppp/chap-secrets  и включить NAT[смотри пост про iptables] (ну или вкорячить прозрачную проксю).

P.S. Если увидите в логах ерунду подобную этой:
pptpd[2474]: GRE: Bad checksum from pppd.
pptpd[2474]: CTRL: Ignored a SET LINK INFO packet with real ACCMs!
не пугайтесь все нормально это у pptpd отродясь, разработчики уже давно на этот баг заби и просто задокументировали его.
А как известно - задокументированный баг - это не баг, а фича. :-)