cd /usr/ports/net/mpd5; make && make install && make clean
Создаем конфиги:
/usr/local/etc/mpd5# touch mpd.conf; touch mpd.secret
Правим конфиг mpd.conf:
/usr/local/etc/mpd5# ee mpd.conf
И вставляем наш рабочий конфиг для работы по протоколу L2TP:
startup: set user foo bar admin set user foo1 bar1 set console self 127.0.0.1 5005 set console open set web self 0.0.0.0 5006 set web open default: load l2tp_server l2tp_server: # Создаем диапазон присваиваемых IP адрессов. # Define dynamic IP address pool. set ippool add pool1 10.10.0.5 10.10.0.100 # Create clonable bundle template named B create bundle template B set iface enable proxy-arp set iface idle 1800 set iface enable tcpmssfix set ipcp yes vjcomp # Specify IP address pool for dynamic assigment. set ipcp ranges 10.10.0.1/24 ippool pool1 set ipcp dns 10.10.0.1 # The five lines below enable Microsoft Point-to-Point encryption # (MPPE) using the ng_mppc(8) netgraph node type. set bundle enable compression set ccp yes mppc set mppc yes e40 set mppc yes e128 set mppc yes stateless # Create clonable link template named L create link template L l2tp # Set bundle template to use set link action bundle B # Multilink adds some overhead, but gives full 1500 MTU. set link enable multilink set link yes acfcomp protocomp set link no pap chap set link enable chap set link keep-alive 10 60 # We reducing link mtu to avoid GRE packet fragmentation set link mtu 1460 # Configure l2tp # IP адресс нашего VPN сервера. (Собственно адресс машины с фряхой) set l2tp self 192.168.1.10 # Allow to accept calls set link enable incoming
Далее нужно править конфиг mpd.secret где и прописываем Username, Password, IP:
test testpass 10.10.0.5 test1 test1pass 10.10.0.6
Эсли IP не прописать, то mpd сам выдаст машине произвольный IP заданого пула в конфиге mpd.confДля автозапуска MPD, прописываем следующие строки в /etc/rc.conf:
echo 'mpd_enable="YES"' >> /etc/rc.conf echo 'mpd_flags="-b"' >> /etc/rc.conf
Чтобы у нас были логи нашего MPD, в файле /etc/syslog.conf добавляем:
!mpd *.* /var/log/mpd.log
Создадим этот файл и зададим ему права только на чтение root:
# touch /var/log/mpd.log chmod 600 /var/log/mpd.log
Теперь перезагружаем syslog:
# /etc/rc.d/syslogd reload
Дальше нужно пересобрать ядро с поддержкой файрвола PF, ну или в худшем случая подгрузить модулем.Опишу оба варианта - 1) Сборка ядра с поддержкой PF, 2) Подгрузка Модуля.1) Сборка ядра с поддержкой PFДля начала нужно обновить сорсы системы, но тут речь пойдет не об этом, про обновление поднобно можно прочитать здесь.Если машина с архитектуры i386, как в моем случае с виртуалкой VMWare, то идем в /usr/src/sys/i386/confИ копируем ядро GENERIC с новым именем нашего ядра.
# cp GENERIC VPN_Server
Чтобы собрать ядро с поддержкой фарвола PF, нужно в наш конфиг файл ядра - VPN_Server, добавть опции
device pf device pflog device pfsync options ALTQ options ALTQ_CBQ options ALTQ_RED options ALTQ_RIO options ALTQ_HFSC options ALTQ_CDNR options ALTQ_PRIQ options ALTQ_NOPCC options ALTQ_DEBUG
Ну и собственно собираем все по быстрому:
# cd /usr/src/ # rm -rf /usr/obj # make clean && make cleandir # make buildkernel KERNCONF=VPN_Server # make installkernel KERNCONF=VPN_Server && shutdown -r now
2) Подгрузка Модуля.Для подгрузки файрвола модулем:
# kldload pf.ko
Для того чтобы модуль подгружался при стартапе в /etc/rc.conf добавляем:
# echo 'pf_enable="YES"' >> /etc/rc.conf
Теперь продолжаем - если вы пересобрали ядро то после перазагрузки надо править конфиг файрвола, если подгрузили модулем то перезагрузка необязательня и сразуже приступаем к правке /etc/pf.conf:
nat on nfe0 from 10.10.0.0/24 to any -> 192.168.1.10 pass in all pass out all
Где 10.10.0.0/24 диапазон IP присваеваемых VPN клиентам. А 192.168.1.10 IP сервера.И запускаем наши правила:
pfctl -f /etc/pf.conf
Теперь можно наблюдать за логом и коннектится с винды:
tail -f /var/log/mpd.log
Чтобы создать VPN соединение в Windows XP:
Control Panel -> Network Connections -> Create a New Connection -> Next -> Connect to the network at my workplace -> Next -> Virtual Private Network connection -> Next -> "Имя Соединения (Любое) " -> Next -> "Имя хоста или IP VPN сервера" -> Finish
Чтобы подключится к нашему серверу, нужно убрать IPSec в Windows VPN клиенте, для этого нужно добавить в ветке реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters
ключь:
ProhibitIpSec dword 1
Нам нужно подключится по средствам L2TP, для этого, в свойствах нами созданного VPN соединения идем на вкладку Networking и меняем Type of VPN - "Automatic" на "L2TP IPSec VPN".Для того чтобы при коннекте к VPN-у ваша клиентская машина не меняла шлюз, и не выходила бы в инет через инет того сервера к которому приконнекчена (т.е. машина с Фрей) надо в настройках VPN подключения перейти в:
Networking -> Internet Protocol(TCP/IP) -> Properties -> Advanced