Yvision.kz
kk
Разное
Разное
399 773 постов41 подписчиков
Всяко-разно
0
02:51, 24 августа 2011

PPTPD c аутентификацией в Active Directory на CentOS 5.

Создание VPN-сервера на базе pptpd и ppp с использованием аутентификации MSCHAP-V2. Доступ в сеть будет основываться на членстве в выделенной группе размещенной в Active Directory.

Исходные данные

Домен = asiainvest.local

Можете заменить asiainvest на company, то есть будет company.local

 

Установим PPP/PPTP

Для CentOS 6

#  rpm -Uvh http://pptpclient.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm
#  yum install pptpd ppp pptp -y

Для CentOS 5

# rpm -Uvh http://pptpclient.sourceforge.net/yum/stable/rhel5/pptp-release-current.noarch.rpm

# yum install pptpd ppp pptp -y

Откроем файл /etc/pptpd.conf

# cp /etc/pptpd.conf /etc/pptpd.conf.original

# vi /etc/pptpd.conf

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

speed 115200
option /etc/ppp/options.pptpd
bcrelay eth1
debug
localip 192.168.100.3
remoteip 192.168.110.1-254
logwtmp

Откроем файл /etc/ppp/options.pptpd

# cp /etc/ppp/options.pptpd /etc/ppp/options.pptpd.original

# vi /etc/ppp/options.pptpd

Запишем в него следующий текст:

name pptpd
debug
lock
### Authentication ###
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
nomppe-40
### Network Settings
nodefaultroute
ms-dns 192.168.100.10
ms-dns 192.168.100.11
proxyarp
nobsdcomp

Откроем файл /etc/ppp/chap-secrets

# cp /etc/ppp/chap-secrets /etc/ppp/chap-secrets.original

# vi /etc/ppp/chap-secrets

Впишите в него текст:

# client        server  secret                  IP addresses
guest           pptpd   qwerty                  *

Далее включаем форвардинг пакетов в /etc/sysctl.conf

# vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

Применим наши сетевые настройки:

# sysctl -p

Перезапустим демон pptdp и внесем его в автозагрузку:

# service pptpd start

# chkconfig --level 35 pptpd on

Отключаем встроенную цепочку RH-Input (фаервол) на время проверок:

# setup

Firewall -> убрать звездочку

Теперь можно создать новое подключение к сети, встроенными средствами windows.
Пуск – Подключения – Создание нового подключения – Подключение к сети на рабочем месте (VPN) – Подключение к виртуальной частной сети
вводим имя подключения, указываем адрес сервера. Затем заходим в свойства подключения и во вкладке “Безопасность” указываем дополнительные (выборочные) параметры, там казываем стойкое шифрование, и отмечаем использование протокола MSCHAP-V2, сохраняем настройки и пробуем подключиться. Логин и пароль при этом подключении : guest /qwerty

Для одновременной работы в частной сети, и чтобы оставался работоспособным интернет, необходимо в свойствах нового подключения зайти во вкладку Сеть и в параметрах протокола TCP\IPнажать кнопку “Дополнительно” и снять галочку “Использовать основной шлюз в удаленной сети”

Теперь сделаем аутентификацию через контроллер домена, с учетом того, что подключающийся юзер должен находится в группе VPN домена asiainvest.local. Я предполагаю что машина на которой будет размещен VPN-сервер уже введена в домен. Если нет то для начала следует ее вести, для этого выполните howto отсюда http://www.linuxmail.info/active-directory-integration-samba-centos-5/

Этот howto ориентирован на CentOS 5, в шестой версии возможно будет по другому.

Предварительно пропишите в файл /etc/hosts и /etc/samba/smb.conf ваши IP адреса доменного контроллера и VPN сервера:

vi /etc/hosts

192.168.50.1 PDC.ASIAINVEST.LOCAL PDC

vi /etc/samba/smb.cfg

192.168.50.2 FILESRV

Обязательно запустите команду вывода списка пользователей домена, перед тем чтобы продолжать дальше:

# wbinfo -u

administrator
guest
support_388945a0
iusr_server2003
iwam_server2003
krbtgt
vasya

На экране будет выведен список похожий на тот который вы видите.

Добавляем дополнительные настройки в конец файла /etc/ppp/options.pptpd указываем чтобы проверка осушествлялась на членстве домена. То есть если пользователь имеет доменную учетную запись, ему есть доступ к нашему серверу.

# vi /etc/ppp/options.pptpd

plugin winbind.so
ntlm_auth-helper "/usr/bin/ntlm_auth --helper-protocol=ntlm-server-1"
 

Если нужно давать доступ на членстве в определенной группе, в нашем случае группе vpn,  добавляем к конец файла /etc/ppp/options.pptpd, следующею строку, удалив предыдущею:

# vi /etc/ppp/options.pptpd

plugin winbind.so
ntlm_auth-helper "/usr/bin/ntlm_auth --require-membership-of='asiainvest\\vpn' --helper-protocol=ntlm-server-1"

 

# service pptpd restart

 

Теперь создаем подключение, и пробуем подключиться под доменным пользователем который в группе vpn.

Заведем нового пользователя vasya и включим его в группу vpn

Blog post image

Blog post image

Blog post image

Blog post image

Логинимся под учеткой vasya

Blog post image

Настроим подключение к нашему серверу: ПУСК -> Панель управления -> Сеть и подключения к Интернету -> Сетевые подключения -> Создание нового подключения

Все как обычно, вводим IP адрес нашего сервера, другие настройки оставляем по умолчанию.

В окошке  ввода логина и пароля, не надо вводить логин/пароль и домен!!!

Жмете только на кнопке "Подключение".

Теперь мы можем дать доступ в Интернет пользователям нашей виртуальной сети, для этого требуется настроить iptables, а точнее включить правило NAT.

# iptables -F
# iptables -t nat -F
# iptables -t mangle -F
# iptables -X
# iptables -t nat -X
# iptables -t mangle -X

# iptables -t nat -A POSTROUTING -s 192.168.110.0/24 -j SNAT --to-source 10.20.30.40

# service iptables save

В этом правиле NAT мы указали нашу виртульную подсеть с адресом 192.168.110.0/24, а также IP адрес сетевой карты которая подключена к провайдеру.

Также вы можете развернуть службу Bind для организации кэширущего DNS сервера.

_________________________________________________________________________

Дополнительные материалы:

1. http://sysadminwiki.ru/wiki/VPN_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_PPTP_%D1%81_%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B5%D0%B9_%D0%B2_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D0%B5_windows.

2. http://poptop.sourceforge.net/dox/replacing-windows-pptp-with-linux-howto.phtml

3. http://daevy.uzps.mh.ru/?p=113

0
1431
3