Можно использовать для доступа удаленных клиентов в сеть вашего офиса,
или для связи сетей N офисов между собой в одну виртуальную сеть.
Рассмотрена так же установка канала со стороны FreeBSD.
Часть 1. Настройка VPN сервера на cisco.
Используемое оборудование: Cisco 871-SEC-K9 (должно работать и на
других cisco с поддержкой VPN).
Подразумевается, что связь cisco с интернетом вы уже настроили и у вас
"белый" IP во внешнем мире. То есть у циски один интерфейс имеет
внешний IP адрес X.X.X.X а другой интерфейс или Vlan смотрит в
локалку и имеет внутренний IP адрес, в моем примере 192.168.1.1/24
(/24 - это разрядность сети, аналогично 255.255.255.0). К
интерфейсу, смотрящему в интернет,применен Outgoing NAT. Все это можно
настроить с помощью cisco CP или прочитав статьи, лежащие рядом в
разделе cisco

Подключаемся к циске телнетом, или через ssl.. далее вводим следующее:
(у меня циска называлась kiev, так как расположена в киевском офисе..)
Код: Выделить всё
kiev#conf t (сокращение от configure terminal - войти в режим конфигурирования)
Enter configuration commands, one per line. End with CNTL/Z.
kiev(config)#vpdn enable (включаем vpn)
kiev(config)#vpdn-group TEST (создаем группу vpn с названием)
kiev(config-vpdn)#accept-dialin (разрешаем входящие подключения)
kiev(config-vpdn-acc-in)#protocol pptp (протокол pptp, как раз такой как и в windows vpn)
kiev(config-vpdn-acc-in)#virtual-template 1 (создаем виртуальный интерфейс 1)
kiev(config-vpdn-acc-in)#interface Virtual-Template1 (переходим к редактированию интерфейса)
kiev(config-if)#ip address 172.16.0.1 255.255.255.0 (IP адрес циски в нашей виртуальной сети)
kiev(config-if)#ip mroute-cache (Включает групповую быструю коммутацию IP,
для отладки или для обработки списков
доступа пишите no ip mroute-cache)
kiev(config-if)#peer default ip address pool TESTPOOL (выдавать IP адреса клиентам из пула TESTPOOL)
kiev(config-if)#ppp encrypt mppe auto required (шифрование. Для отладки можно убрать required)
kiev(config-if)#ppp authentication pap (авторизация по pap. Ну не люблю я усложнять)
kiev(config)#ip local pool MIKPOOL 172.16.0.2 172.16.0.10 (Пул IP адресов для клиентов)
kiev(config)#end (выход из режима конфигурирования)
kiev#write (запись конфигурации в startup-config, вбивайте,
когда проверили, что в результате ваших
манипуляций, у бугалтеров не отвалился инет :)
Добавляем пользователей, которые могут подключатся к нам. Дабы они не
могли лазить по циске, выставляем уровень привилегий 0 и выключаем для
уровня 0 команду enable.
Код: Выделить всё
kiev#conf t
kiev(config)#privilege exec level 1 enable (переводим команду enable на уровень 1)
kiev(config)#username USER privilege 0 password PASSWORD (повторить для всех пользователей)
kiev(config)#exit (аналог "end")
kiev#wr (сокращение от write)
Часть 2. Клиенты виндовс.
В windows запускаете мастер новых подключений, выбираете "Подключить к
сети на рабочем месте" и далее следуйте инструкциям

Часть 3. Клиенты FreeBSD
Во FreeBSD для подключения pptp используют порт MPD
Код: Выделить всё
# cd /usr/ports/net/mpd
# make && make install && make clean
Код: Выделить всё
# ee /etc/rc.conf
mpd_enable="YES"
Конфигурируем MPD:
Файл /usr/local/etc/mpd/mpd.conf
Код: Выделить всё
default:
load cisco-pptp (подгружаем часть конфига, отвечающую за связь с циской)
cisco-pptp: (собственно вот она)
new -i ng0 cisco-pptp pptp (создаем виртуальный интерфейс ng0, тут pptp это название
раздела в /usr/local/etc/mpd/mpd.links)
set iface idle 0 (таймаут = 0)
set iface disable on-demand (не выключать интерфейс)
set bundle authname miktest (miktest это пользователь на циске)
set ipcp ranges 172.16.0.10/32 172.16.0.1/32 (Вначале наш IP, потом IP сервера. В данном
случае я указал их явно, потому как связывал
2 сети, и мне нужно было знать. куда
прописывать маршрут со стороны циски)
set ipcp yes vjcomp (не знаю, что это, но без нее не работает)
set link disable chap pap (выключаем chap, включаем pap)
set link accept pap (разрешаем pap. У этих 2-х строк непонятная для меня логика
и вообще у mpd непонятный конфиг, есть команды yes, no, enable,
disable, accept, deny и непонятно, когда какие использовать :( )
set link deny chap-msv1 (не спрашивайте, почему не set link disable chap-msv1)
set link yes acfcomp protocomp (без этой непонятной штуки тоже не работает)
set bundle disable multilink (выключаем мультилинк, хотя в доках писано, что по
умолчанию он и так выключен)
set bundle enable encryption (Включаем шифрование на этой связке)
set bundle enable crypt-reqd (Если на циске в строке #ppp encrypt mppe auto required
вы убрали required, то закомменьте эту строку, и страшный
хакер задампит сессию 1С вашего главбуха. Это ужасно.)
#set bundle enable compression (сжатие данных, на ваше усмотрение, у меня выключено)
#set ccp yes mppc (протокол сжатия данных, коментить/раскоментить
вместе с предыдущей)
set ccp no mpp-e40
set ccp yes mpp-e128 (протокол шифрования, совместимый с windows клиентами)
set ccp yes mpp-stateless
set iface up-script /usr/local/etc/mpd/office-up.sh (скрипт, добавляющий маршрут
в сеть гл.офиса)
set iface down-script /usr/local/etc/mpd/office-down.sh (скрипт, убирающий маршрут
в сеть гл.офиса)
open iface (Поехали :)
Код: Выделить всё
pptp:
set link type pptp (а вот тут pptp это уже указание протокола :)
set pptp peer X.X.X.X (pptp "смотрит" в IP адрес X.X.X.X )
set pptp enable originate (разрешить исходящее соединение)
set pptp disable incoming (запретить входящее)
Код: Выделить всё
miktest 12345
файл /usr/local/etc/mpd/office-up.sh
Код: Выделить всё
#!/bin/sh
/sbin/route add -net 192.168.1.0/24 172.16.0.1 (добавляем маршрут в сеть гл.офиса. Не забудьте зайти на
cisco и добавить там статический маршрут в нашу сеть:
kiev(config)#ip route 192.168.2.0 255.255.255.0 172.16.0.10
как добавлять маршруты на cisco, по мере подключения
клиентов я пока не знаю)
Код: Выделить всё
#!/bin/sh
/sbin/route del 10.1.5.0
Ну и стартуем хозяйство:
Код: Выделить всё
/usr/local/etc/rc.d/./mpd start
Часть 4. Заметки.
Удачи ребят!
Я так подробно описал, как выключать шифрование потому, что у меня
самого оно не заработало.
Хотя с протоколом mpp-e128 мне удалось связать
windows-->cisco
и
windows-->FreeBSD (MPD)
но
FreeBSD-->cisco
не работает
В логах MPD:
[kiev] rec'd unexpected protocol CCP on link 0, rejecting
Почемуто протокол cpp-e128 на моей циске не дружит с таким на FreeBSD,
или может они обмениваются немного разными управляющими командами, не
знаю

support@mik.zp.ua , буду благодарен.
Автор: АццкийГерман