L2TPD VPN + Radius MS IAS
Saturday, December 27, 2008 9:05:36 AM
Еще одна статья из цикла VPN. На этот раз возьмет L2TP, у него есть ряд преимуществ, он нативно поддерживается в windows и не нужно ничего устанавливать в отличии от OpenVPN, а второе он работает по UDP, что дает ему преимущество перед PPTP.[почему?]
И опять решил я это сделать все в связки с MS IAS, ибо заморачиваться на отдельных паролях для каждого пользователя и каждого сервиса не совсем верно (хотя безопаснее), в случае с офисом всегда удобно иметь централизованное управление пользователями, т.е логин/пароль будет опять из MS AD.
И опять решил я это сделать все в связки с MS IAS, ибо заморачиваться на отдельных паролях для каждого пользователя и каждого сервиса не совсем верно (хотя безопаснее), в случае с офисом всегда удобно иметь централизованное управление пользователями, т.е логин/пароль будет опять из MS AD.
Сразу скажу, что я отказался от OpenSwan для шифрования и проверки подлинности L2TP через ipsec, не было необходимости, используется только встроенный модуль mppe-128, поэтому для клиентов c windows xp, необходимо подправить реестр. В vista помоему вариант без ipsec уже поддерживается без лишний вмешательств в реестр.
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters] "ProhibitIpSec"=dword:00000001
Перезагрузиться и клиент готов. Логин будет естесственного вида user@windows.domain
На стороне сервера. Ubuntu server 8.04
Ставим если не установлено radiusclient-ng, xl2tp, pppd
Настройки radiusclient вполне стандартны, и если уже настроен был до этого pptpd через MS IAS, то вообще ничего трогать не придется.
Но на всякий случай
/etc/radiusclient/radiusclient.conf
auth_order radius,local login_tries 4 login_timeout 60 nologin /etc/nologin issue /etc/radiusclient-ng/issue authserver 192.168.2.10 # MS IAS acctserver 192.168.2.10 # MS IAS servers /etc/radiusclient-ng/servers dictionary /etc/radiusclient-ng/dictionary # В этот файл не забыть подключить словать от microsoft login_radius /usr/sbin/login.radius seqfile /var/run/radius.seq mapfile /etc/radiusclient-ng/port-id-map default_realm radius_timeout 10 radius_retries 3 login_local /bin/login
/etc/radiusclient/server
# Сервер где стоит MS IAS, и пароль для radius клиента. 192.168.2.10 radiuspass
Словарь радиус атрибутов от Микрософта. Без него pppd будет ругаться на то что ему передают неизвестные атрибуты radius.
/etc/radiusclient/dictionary.microsoft.
Даю только заголовок, ибо в интернете их полно. Вот например
# # Microsoft's VSA's, from RFC 2548 # # $Id: dictionary.microsoft,v 1.1 2002/03/06 13:23:09 dfs Exp $ #
Теперь настраиваем демона L2TP.
Конфиг очень простой и в оригинале очень хорошо прокомментирован.
/etc/xl2tp/xl2tpd.conf
[global] port = 1701 access control = no rand source = dev [lns default] exclusive = no ip range = 192.168.3.100-192.168.3.150 hidden bit = yes local ip = 192.168.2.1 length bit = yes require chap = yes refuse pap = yes refuse chap = no refuse authentication = no require authentication = no unix authentication = no name = gw.office.ru ppp debug = yes pppoptfile = /etc/ppp/l2tpd-options flow bit = yes hidden bit = yes
А так же конфиг с настройками pppd
/etc/ppp/l2tpd-options
name l2tp mtu 1410 mru 1410 lcp-echo-interval 3 lcp-echo-failure 8 require-mppe-128 logfile /var/log/pppd nodeflate nobsdcomp nopcomp noaccomp noproxyarp defaultroute lock auth plugin radius.so plugin radattr.so
Вот и все, в firewall не забыть порт 1701 открыть, протокол udp.
Запускаем и слушаем.
#netstat -nlp --udp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name udp 0 0 0.0.0.0:1701 0.0.0.0:* 5378/xl2tpd
Все работает? Пытаемся подключиться...
P.S
Замечено что после старта процесс xl2tpd грузит камень на 100%
Решение вот здесь
Если кратко то косяк в инит скрипте привел к тому что создался катало /var/run/xl2tpd/xl2tpd-control
а потом пытается создаться такой же файл. Удаляем этот каталог нахрен.. и все проходит....







