mpd связь по vpn или подключение windows к серверу FreeBSD

Установка и настройка VPN-сервера с помощью MPD на FreeBSD 10.0

vpn-icon_nowmMPD (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   ·   Комментариев нет

 

Данная статья описывает как установить 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/viewtopic.php?f=3&t=5
Автор: Дмитрий <snaut@snaut.ru.></snaut@snaut.ru.>

 

Смотрите также:

Tags: , , , ,

 

Related Images:

Leave a Reply

Your email address will not be published. Required fields are marked *