Установка и настройка VPN-сервера с помощью MPD на FreeBSD 10.0
MPD (Multi-link PPP daemon) — это основанная на netgraph реализация ppp-протокола мультисвязи для FreeBSD. © Wikipedia
Для подключения к сети предприятия 192.168.0.0 необходимо пробросить порт TCP 1723 и 5006 (если будет необходимость в использовании web-интерфейса).
В данной статье рассмотрим установку и настройку MPD в качестве VPN-сервера, поддерживающего подключения по протоколам PPTP и L2TP (без IPSec). Перед тем, как выполнить все действия, описанные в этой статье, необходимо, чтобы была настроена сеть, обновлены порты и установлен Midnight Commander. Всю первичную настройку FreeBSD можно прочитать здесь.
Устанавливаем MPD5 из портов:
cd /usr/ports/net/mpd5
make all install clean
Открываем файл /etc/rc.conf
vi /etc/rc.conf
и дописываем в него следующие строчки:
mpd_enable=»YES»
mpd_flags=»-b»
Затем перейдём в каталог /usr/local/etc/mpd5
cd /usr/local/etc/mpd5
и создадим там 2 файла:
конфигурация mpd
touch mpd.conf
с таким содержимым
startup:
set user login PASSWORD admin
set web self 0.0.0.0 5006
set web open
default:
load pptp_server
load l2tp_server
pptp_server:
set ippool add pool1 192.168.0.225 192.168.0.235
create bundle template B
set iface enable proxy-arp
set iface idle 0
set iface enable tcpmssfix
set ipcp yes vjcomp
set ipcp ranges 192.168.0.1/32 ippool pool1
set ipcp dns 8.8.8.8
set bundle enable compression
set ccp yes mppc
set mppc yes e40
set mppc yes e128
set mppc yes stateless
create link template L pptp
set link action bundle B
set link enable multilink
set link yes acfcomp protocomp
set link no pap chap
set link enable chap
set link keep-alive 0
set link mtu 1460
set pptp self 0.0.0.0
set link enable incoming
set pptp disable windowing
set pptp enable always-ack
l2tp_server:
set ippool add pool2 192.168.0.236 192.168.0.250
create bundle template C
set iface enable proxy-arp
set iface idle 1800
set iface enable tcpmssfix
set ipcp yes vjcomp
set ipcp ranges 192.168.0.1/32 ippool pool2
set ipcp dns 8.8.8.8
set bundle enable compression
set ccp yes mppc
set mppc yes e40
set mppc yes e128
set mppc yes stateless
create link template N l2tp
set link action bundle C
set link enable multilink
set link yes acfcomp protocomp
set link no pap chap
set link enable chap
set link keep-alive 0
set link mtu 1460
set l2tp self 0.0.0.0
set link enable incoming
и файл доступа
touch mpd.secret
примерно с таким
#login password ip
user1 pass1 192.168.0.251
user2 pass2 192.168.0.252
user3 pass3 *.*
user4 pass4 *.*
user5 pass5 *.*
Краткое описание файла mpd.conf
Первые четыре строки описывают конфигурацию web-интерфейса MPD.
В описании PPTP присутствует строчка диапазона IP-адресов:
set ippool add pool1 192.168.0.225 192.168.0.235
Это означает, что клиенты, подключаясь по протоколу PPTP, будут получать адреса, указанные для соединения PPTP (pool1).
В описании L2TP присутствует строчка диапазона IP-адресов:
set ippool add pool2 192.168.0.236 192.168.0.250
Это означает, что клиенты, подключаясь по протоколу L2TP, будут получать адреса, указанные для соединения L2TP (pool2).
Всё это надо учесть при настройке DHCP-сервера в локальной сети предприятия.
Краткое описание файла mpd.secret
В данном примере описаны 5 пользователей. Первые два (user1 и user2) при подключении получают статические IP-адреса 192.168.0.251 и 192.168.0.252. Остальные пользователи получат динамические IP-адреса из диапазона pool1 или pool2 в зависимости от типа подключения.
Это также следует учесть при настройки DHCP-сервера в локальной сети предприятия.
Также необходимо учесть, что в этом файле между логином, паролем и IP-адресом используются не пробелы, а табуляция. То есть разделены они клавишей Tab, а не Space!!!
Для ведения логов в файл /etc/syslog.conf добавляем (после !ppp и *.*)
!mpd
*.* /var/log/mpd.log
и создадим этот файл:
touch /var/log/mpd.log
Выставим на него права:
chmod 600 /var/log/mpd.log
перезапустим syslogd
service syslogd restart
теперь запустим MPD5
service mpd5 start
Windows клиент:
Чтобы не возиться с IPSEC и клиенты с Windows могли цепляться по L2TP, в реестре Windows в раздел
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters
добавим ключ ProhibitIpSec с параметром DWORD 1
и перезагрузить Windows.
Теперь можно создавать L2TP соединения и подключаться к серверу без проблем.
Возвращаемся к серверу, перезагружаем его
shutdown -r now
при загрузке системы видим такое предупреждение:
WARNING: attempt to domain_add(netgraph) after domainfinalize()
Для того, чтоб в дальнейшем его не было, сделаем следущее:
переходим в каталог с конфигурацией ядра
cd /sys/amd64/conf
или
cd /sys/i386/conf
в зависимости от разрядности ОС
скопируем файл GENERIC в VPNSERVER
cp GENERIC VPNSERVER
открываем файл VPNSERVER
vi VPNSEREVR
исправляем
ident GENERIC
на
ident VPNSERVER
и добавляем в него такие строчки:
# NETGRAPH support
options NETGRAPH
options NETGRAPH_ASYNC
options NETGRAPH_BPF
options NETGRAPH_ECHO
options NETGRAPH_ETHER
options NETGRAPH_HOLE
options NETGRAPH_IFACE
options NETGRAPH_KSOCKET
options NETGRAPH_L2TP
options NETGRAPH_LMI
options NETGRAPH_MPPC_ENCRYPTION
options NETGRAPH_ONE2MANY
options NETGRAPH_PPP
options NETGRAPH_PPTPGRE
options NETGRAPH_RFC1490
options NETGRAPH_SOCKET
options NETGRAPH_TEE
options NETGRAPH_TTY
options NETGRAPH_UI
options NETGRAPH_VJC
переходим в каталог /usr/src
cd /usr/src
собираем ядро
make buildkernel KERNCONF=VPNSERVER
и устанавливаем его
make installkernel KERNCONF=VPNSERVER
после этого перезагрузим машину
shutdown -r now
и видим, что предупреждение исчезло.
теперь избавляемся от предупреждений sendmail:
открываем /etc/rc.conf:
vi /etc/rc.conf
и дописываем следующие строчки:
sendmail_enable=»NO»
sendmail_submit_enable=»NO»
sendmail_msp_queue_enable=»NO»
sendmail_outbound_enable=»NO»
для проверки перезагрузим машину:
shutdown -r now
В MPD5 также имеется web-интерфейс, где можно управлять подключениями и просмотреть состояние VPN-сервера.
На другой машине через браузер войдём в web-интерфейс MPD: http://IP-адрес:5006. Браузер спросит логин и пароль. Указать надо то, что прописано в файле mpd.conf. set user login PASSWORD admin. То есть, логин будет login, а пароль — password.
Всё! Сервер готов.
поправляю – у меня что то линк pptp не запускается -на 11 версии, а так все верно, поправил – был порт занят 1723 из за проброса с локалки…
перечислить на WMR кошелёк (WebMoney): R301575071888
перечислить на Яндекс.Кошелёк: 410011003938168
или на PayPal:
Статьи по теме:
Вы можете оставить комментарий, или ссылку на Ваш сайт.
Установка VPN-сервера для работы по протоколу L2TP на FreeBSD 6-STABLE (vpn l2tp tunnel freebsd mpd)
Published on Январь 11, 2009 by admin · Комментариев нет
Данная статья описывает как установить 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.
Примерное содержимое конфигурационного файла для установки дерева портов:
*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 должен быть установлен в системе:
В противном случае, пакет cvsup необходимо, скачать и установить
(минимальная версия: cvsup-without-gui-16.1h.tgz).
// Обновление портов:
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
//Если пакет уже был установлен, его следует удалить:
//Установка пакета:
2. Правка конфигурационных файлов
В директории /usr/local/etc/mpd4/ находятся примеры конфигурационных
файлов пакета MPD.
Пример работающих конфигурационных файлов mpd.conf (для девяти
одновременных соединений):
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:
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:
Параметр vpdn в данном случае будет являться realm (его и нужно сообщить СКАЙЛИНК)
3. Отладка
Для начала нужно запустить mpd4 в консоли:
Должно появиться такое:
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»:
Далее следует добавить в файл /etc/rc.conf строчки:
mpd_flags=“-b”
Таким образом процесс mpd будет запускаться при каждом запуске системы.
Ориганал статьи http://www.snaut.ru/viewtopic.php?f=3&t=5
Автор: Дмитрий <snaut@snaut.ru.></snaut@snaut.ru.>
Смотрите также:
- Планировщик заданий Windows server 2008
- Посмотреть фрагментацию таблиц ms sql
- Установить сертификат на компьютер
- Принт сервер на Windows server
- Нстройка впн server 2008
Tags: freebsd, l2tp, mpd, tunnel, vpn