Установка VPN-сервера для работы по протоколу L2TP на FreeBSD 6-STABLE

Данная статья описывает как установить VPN-сервер, работающий по

протоколу L2TP. Эта статья будет полезна для администраторов, которые

хотят настроить удаленный доступ в свою корпоративную сеть, а также для

абонентов сети "СКАЙЛИНК".

Установка MPD на FreeBSD.

В рамках распространения программного обеспечения с "открытым кодом" (open source), а также в целях оптимизации затрат абонентов на дополнительное оборудование, которое необходимо для организации защищенного канала между мобильными клиентами и виртуальной частной сетью (VPN), СКАЙЛИНК предлагает своим абонентам воспользоваться бесплатно распространяемым пакетом MPD for Unix. Для работы с пакетом MPD потребуется обычный сервер (LNS роутер) с установленной операционной системой FreeBSD.

Пакет MPD необходимо устанавливать на роутер (LNS), который служит шлюзом между виртуальной частной сетью (VPN) и сетью Интернет. Роутером может быть любой современный персональный компьютер под управлением ОС

FreeBSD. NAS-сервер СКАЙЛИНК со своей стороны перенаправляет все запросы мобильных клиентов на роутер (LNS), который в свою очередь выполняет процесс авторизации мобильных клиентов и выдаёт им заранее определенные

IP-адреса из пула IP-адресов.

Системные требования:

1) FreeBSD 6.x (желательно устанавливать последнюю версию ветки 6.x). Делается это для того, чтобы не надо было дополнительно перекомпилировать ядро системы.

2) Пакет MPD (версии не ниже 4.2). Скачать его можно с официального сайта http://mpd.sourceforge.net/

Установка пакета MPD:

- Сборка пакета на FreeBSD

- Правка конфигурационных файлов

- Отладка

- Запуск в фоновом режиме

Внимание! После установки пакета и настройки оборудования, необходимо произвести следующие действия:

1. Передать в СКАЙЛИНК публичный адрес роутера, который будет выступать в качестве LNS.

2. Передать в СКАЙЛИНК пароль для соединения (туннеля).

1. Сборка пакета на FreeBSD

Под FreeBSD пакет MPD желательно собирать из портов. В этом случае в исходные файлы пакета вносится больше изменений, и, как следствие, собранный пакет работает стабильнее. Подробную информацию об установке и использовании портов можно получить здесь:

http://www.freebsd.org.ru/handbook/ports-using.html

http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cvsup.html#CVSUP-MIRRORS

Пример:

Дерево портов можно скачать с официального сайта FreeBSD с помощью программы (пакета) cvsup.

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

root@gate:/usr/ports ~> cat /etc/ports-supfile

*default host=cvsup.FreeBSD.org

#*default host=cvsup.ru.FreeBSD.org если подсоединяться к зеркалу RU.FreeBSD

*default base=/usr

*default prefix=/usr

*default release=cvs tag=.

*default delete use-rel-suffix

*default compress

ports-all

Пакет cvsup должен быть установлен в системе:

root@gate:/usr/ports ~> which cvsup

В противном случае, пакет cvsup необходимо, скачать и установить (минимальная версия: cvsup-without-gui-16.1h.tgz).

// Обновление портов:

root@gate:/usr/ports ~> cvsup -g -L2 /etc/ports-supfile

Parsing supfile "/etc/ports-supfile"

Connecting to cvsup.ru.FreeBSD.org

Running

Updating collection ports-all/

Shutting down connection to server

Finished successfully.

//Переход в директорию /usr/ports/net/mpd4

root@gate:/usr/ports ~> cd /usr/ports/net/mpd4

//Если пакет уже был установлен, его следует удалить:

root@gate:/usr/ports/net/mpd4 ~> make deinstall && make clean

//Установка пакета:

root@gate:/usr/ports/net/mpd4 ~> make install clean

2. Правка конфигурационных файлов

В директории /usr/local/etc/mpd4/ находятся примеры конфигурационных файлов пакета MPD.

Пример работающих конфигурационных файлов mpd.conf (для девяти одновременных соединений):

startup:

set global enable tcp-wrapper

set console port 5005

set console ip 0.0.0.0

set console user user userpassword

set console open

default:

load l2tp0

load l2tp1

load l2tp2

load l2tp3

load l2tp4

load l2tp5

load l2tp6

load l2tp7

load l2tp8

l2tp0:

new -i ng0 l2tp0 l2tp0

set ipcp ranges 10.173.29.1/32 10.173.29.2/32

load l2tp_standart

l2tp1:

new -i ng1 l2tp1 l2tp1

set ipcp ranges 10.173.29.1/32 10.173.29.3/32

load l2tp_standart

l2tp2:

new -i ng2 l2tp2 l2tp2

set ipcp ranges 10.173.29.1/32 10.173.29.4/32

load l2tp_standart

l2tp3:

new -i ng3 l2tp3 l2tp3

set ipcp ranges 10.173.29.1/32 10.173.29.5/32

load l2tp_standart

l2tp4:

new -i ng4 l2tp4 l2tp4

set ipcp ranges 10.173.29.1/32 10.173.29.6/32

load l2tp_standart

l2tp5:

new -i ng5 l2tp5 l2tp5

set ipcp ranges 10.173.29.1/32 10.173.29.7/32

load l2tp_standart

l2tp6:

new -i ng6 l2tp6 l2tp6

set ipcp ranges 10.173.29.1/32 10.173.29.8/32

load l2tp_standart

l2tp7:

new -i ng7 l2tp7 l2tp7

set ipcp ranges 10.173.29.1/32 10.173.29.9/32

load l2tp_standart

l2tp8:

new -i ng8 l2tp8 l2tp8

set ipcp ranges 10.173.29.1/32 10.173.29.10/32

load l2tp_standart

l2tp_standart:

set iface disable on-demand

set bundle disable multilink

set link yes acfcomp protocomp

#Требуем chap авторизации

set link no pap chap

set link enable chap

set link keep-alive 60 180

set ipcp yes vjcomp

#Устанавливаем DNS и Wins

set ipcp dns 10.173.1.6

set ipcp nbns 10.173.1.8

#Включаем proxy-arp, чтобы компьютер "видел" без маршрутизации корпоративную сеть (по протоколу arp)

set iface enable proxy-arp

set bundle disable compression

set ccp no mppc

set ccp no mpp-e40

set ccp no mpp-e128

set ccp no mpp-stateless

set bundle no crypt-reqd

#Задаем адрес для входящих соединений (этот IP-адрес и следует сообщить СКАЙЛИНК)

set l2tp self 10.173.1.1

#Задаем пароль для установления туннеля (этот пароль и следует сообщить СКАЙЛИНК)

set l2tp secret skylink

#Разрешаем входящие соединения

set l2tp enable incoming

set l2tp disable originate

Конфигурационный файл mpd.links:

l2tp0:

set link type l2tp

l2tp1:

set link type l2tp

l2tp2:

set link type l2tp

l2tp3:

set link type l2tp

l2tp4:

set link type l2tp

l2tp5:

set link type l2tp

l2tp6:

set link type l2tp

l2tp7:

set link type l2tp

l2tp8:

set link type l2tp

Файл авторизации mpd.secret:

test@vpdn "testpasssword"

Параметр vpdn в данном случае будет являться realm (его и нужно сообщить СКАЙЛИНК)

3. Отладка

Для начала нужно запустить mpd4 в консоли:

root@gate:/usr/ports ~> mpd4

Должно появиться такое:

Multi-link PPP daemon for FreeBSD

process 13214 started, version 4.2.1 (root@gate 11:43 6-Jul-2007)

CONSOLE: listening on 0.0.0.0 5005

[l2tp0] using interface ng0

[l2tp1] using interface ng1

[l2tp2] using interface ng2

[l2tp3] using interface ng3

[l2tp4] using interface ng4

[l2tp5] using interface ng5

[l2tp6] using interface ng6

[l2tp7] using interface ng7

[l2tp8] using interface ng8

L2TP: waiting for connection on 10.173.1.1 1701

Если произошли какие-то ошибки при запуске, то они выведутся на консоль.

Как правило, они подробно объясняют причину не запуска приложения.

Если ошибок нет, то следует запустить процесс mpd в режиме "background":

root@gate:/usr/ports ~> mpd4 -b

Далее следует добавить в файл /etc/rc.conf строчки:

mpd_enable="YES"

mpd_flags="-b"

Таким образом процесс mpd будет запускаться при каждом запуске системы.

Ориганал статьи http://www.snaut.ru/showthread.php?t=14

Обновлено: 12.03.2015