среда, июля 30, 2008

Поднимаем pptp-сервер для работы удаленных клиентов в корпоративной локальной сети

Я уже писал как пробросить pptp-сессию на pptp-сервер, расположенный внутри корпоративной сети. Сегодня я расскажу как установить и настроить pptp сервер в ОС CentOS 5.1.

Работать будем от имени суперпользователя root, традиционно введя в терминале su:

[root@srv2 ~]# su


В стандартной поставке CentOS pptp сервера нет. Но пакет для RHEL-клонов собирает команда разработчиков pptp сервера. Нам необходимо лишь создать конфигурацию репозитария для установки пакета pptpd:

[root@srv2 ~]# nano -w /etc/yum.repos.d/pptpd.repo


Содержимое файла будет таким:

[pptpd]
name=CentOS 5 pptpd repo
baseurl=http://poptop.sourceforge.net/yum/stable/rhel5/i386/
enabled=1
gpgcheck=0

Синтаксис очень прост:
[pptpd]
- название репозитария
name - описание репозитария
baseurl - адрес репозитария
enabled — опция отвечает за то, включен репозитарий или нет. Принимает значения 0 и 1.
gpgcheck — проверка GPG ключа.


Теперь устанавливаем пакет pptpd. Это и есть наш pptp сервер.

[root@srv2 ~]# yum install pptpd


Первым делом после установки мы сохраним конфигурационный файл pptp сервера:

[root@srv2 ~]# cp /etc/pptpd.conf /etc/pptpd.conf.default


И приступаем к редактированию конфигурационного файла:

[root@srv2 ~]# nano -w /etc/pptpd.conf


Внесем в файл мы три строки. Вам, может быть, хватит и двух:

localip 192.168.254.249
remoteip 192.168.254.241-244
listen 192.168.254.250

localip — Адрес сервера, который выдается клиенту.
remoteip — Диапазон IP-адресов из которых клиенту выдается его адрес.
listen — Адрес на котором будет висеть демон сервера. Опция не обязательная, я использовал ее для привязки pptp сервера к определенному сетевому интерфейсу.

Видно, что я выдаю адреса из диапазона своей локальной сети: 192.168.254.0/24.


Далее следует необязательный шаг — я буду изменять идентификатор сервера. Первым делом сделаю копию файла опций pptp сервера:

[root@srv2 ~]# cp /etc/ppp/options.pptpd /etc/ppp/options.pptpd.default


И приступаем к редактированию файла:

[root@srv2 ~]# nano -w /etc/ppp/options.pptpd


Идентификатор описывается параметром «name», я поменял его на remote. По умолчанию было pptpd. Запомните этот идентификатор. Он пригодится нам во время редактирования файла логин/паролей.


Теперь приступаем к редактированию файла логин/паролей, предварительно сделав его копию:

[root@srv2 ~]# cp /etc/ppp/chap-secrets /etc/ppp/chap-secrets.default


Редактируем его:

[root@srv2 ~]# nano -w /etc/ppp/chap-secrets


Синтаксис у файла очень простой:

логин идентификатор(о нем писал выше) пароль *


Сохраняем файл, выходим, стартуем сервис pptpd:

[root@srv2 ~]# /etc/init.d/pptpd start


Если все успешно разрешаем цепочку FORWARD в правилах iptables (это уж вы сами, т.к. правила индивидуальны у каждого, либо отключите iptables) и разрешаем хождение пакетов между интерфейсами:

[root@srv2 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward


В заключении разрешаем сервису pptpd стартовать вместе с системой:

[root@srv2 ~]# chkconfig --level 35 pptpd on


На этом все. Как видим поднять pptp-сервер проще, чем к нему подключиться=)

3 комментария:

Анонимный комментирует...

Хм. А есть еще какие то решения кроме OpenVPN?

Smit комментирует...
Этот комментарий был удален автором.
Анонимный комментирует...

Тьфу ты черт совсем крышу срывает. Я имел ввиду решения для организации впн сетей. Кроме pptpd и openvpn. А то openvpn не подходит а pptpd староват