Настройка PPTP в Debian Ubuntu сервера и клиента
Среда, 23 июня 2010 г.Рубрика: *NIX_*BSD сиcтемы -> В помощь сисадмину
Метки: debian | PPTP | PPTP Client | PPTP server | Ubuntu | VPN
Просмотров: 61506
Подписаться на комментарии по RSS
В качестве исходных данных будем использовать:
Debian Lenny 5.0.4 с адресом в локальной сети 192.168.0.10.
Для начала устанавливаем всё необходимое:
apt-get install ppp pptpd
Далее приступаем к настройке. Всё достаточно просто.
Первым делом открываем в редакторе файл /etc/pptpd.conf и дописываем в конец следующие строки:
$ nano /etc/pptpd.conf
... .. ..
# IP-адрес сервера в локальной сети
localip 192.168.0.10
# Диапазон адресов для клиентов PPTP-сервера
remoteip 192.168.0.200-235
... .. ..
Так же добавляем в /etc/ppp/pptpd-options следующие строчки:
$ nano /etc/ppp/pptpd-options
... .. ..
# требуем авторизацию у клиентов
auth
# Используем шифрование
require-mppe
... .. ..
# Укажем файл, в который писать лог:
logfile /var/log/pptpd.log
$ touch /var/log/pptpd.log
Добавляем наших пользователей в /etc/ppp/chap-secrets, таким видом:
$ nano /etc/ppp/chap-secrets
# Если пользователь должен динамически получать IP-адрес
# из диапазона remoteip в pptpd.conf:
user1 pptpd password "*"
# Если мы хотим привязать определённый IP к логину:
user2 pptpd password2 "192.168.0.205"
Быстрое и удобное добавления пользователей из консоли:
$ echo "test1 pptpd 11111 * " >> /etc/ppp/chap-secrets
Рестанем pptpd:
$ /etc/init.d/pptpd restart
Настройка PPTP-клиента в Debian/Ubuntu
$ apt-get install pptp-linux
Для простоты введем переменные:
название нашего соединения ($NameVPN)
IP address(host) нашего сервера - ($SERVER),
наше имя пользователя (username)($USERNAME),
наш пароль (password)($PASSWORD),
так же если есть домен (domain)($DOMAIN)
Приводим наши файлы до следующего вида:
$ nano /etc/ppp/options.pptp
lock
nodetach
noauth
refuse-eap
refuse-chap
refuse-mschap
nobsdcomp
nodeflate
$ nano /etc/ppp/chap-secrets
Внимание: параметр nodetach, выводит в стандартный поток вывода ошибок — stderr, выводится на терминал. Это удобно для отладки соединения. После того, как Вы убедились, что скрипт работает, как задумано, параметр nodetach можно убрать и pppd при запуске будет уходить в фоновый режим, перенаправляя stderr скрипта в файл /etc/ppp/connect-errors.
# Secrets for authentication using CHAP
# client server secret IP addresses
($USERNAME) PPTP ($PASSWORD) *
Замечания: если вы используете домен, то используете косые черты и имя домена.
$DOMAIN\\$USERNAME PPTP $PASSWORD *
Создаем файл $NameVPN в /etc/ppp/peers/:
$ nano /etc/ppp/peers/$NameVPN
pty "pptp $SERVER --nolaunchpppd"
name $DOMAIN\\$USERNAME
remotename PPTP
require-mppe-128
defaultroute
file /etc/ppp/options.pptp
ipparam $TUNNEL
Если нам ни нужна поддержка MPPE,то удаляем строчку из require-mppe-128 из файла.
Подключения:
$ pon $NameVPN
Разрыв связи:
$ poff $NameVPN
Если нужно увидеть отладочную информацию:
pon $NameVPN debug nodetach
Если нужен автоматический запуск при загрузке системы, добавьте в файл /etc/network/interfaces следующие строки:
$ nano /etc/network/interfaces
auto tunnel
iface tunnel inet ppp
provider $NameVPN
up route del default
up route add default dev ppp0
Заметка: мне пришлось поставить апперанд & после ($NameVPN&), иначе загрузка шла до подключения ppp и на этом останавливалась.
Добавлено:
так же можно прописать в rc.local
pon [$NameVPN]
sleep 5
route add default dev ppp0
# если надо другие роуты
route add -net 192.0.0.0 netmask 255.255.0.0 gw 192.168.0.7
Комментариев: 3
Спасибо за статью. Но что писать взамен $TUNNEL? о_О
Я в $TUNNEL пишу названия, т. е myvpn, все работает.
Мой рабочий конфиг c автоматическим поднятием шлюза по умолчанию через ppp :
$ cat /etc/ppp/peers/vpn
$ cat /etc/network/interfaces
$ route