Setup:inet:l2tpipsec:freebsd
Материал из campus.mephi.ru
Настройка L2TP (IPSec) -соединения
Содержание |
Настройка соединения
В данной пошаговой инструкции описан способ реализации защищенного VPN соединения по протоколу L2TP через IPSec. Перед началом настойки удостоверьтесь, что у вас есть рабочее соединение с интернетом по какому-либо другому протоколу для установки требуемых пакетов. Возможность автономной установки пакетов в данной инструкции не рассматривается. Сервер туннельного режима доступен по адресу l2tp.campus.mephi.ru (10.50.0.20 или 10.50.0.16).
Обращаем ваше внимание, что настройку IPSec можно пропустить. IPSec используется исключительно для защиты вашего трафика.
Настройка IPsec
- Проверьте наличие поддержки IPSec в вашем ядре:
# firewall options IPFIREWALL options IPFIREWALL_VERBOSE options IPFIREWALL_VERBOSE_LIMIT=1000 options IPFIREWALL_DEFAULT_TO_ACCEPT options IPFIREWALL_FORWARD options IPFIREWALL_NAT options IPDIVERT options LIBALIAS # IPSEC device crypto device cryptodev device enc options IPSEC options IPSEC_DEBUG options IPSEC_FILTERTUNNEL options IPSEC_NAT_T
Конфигурационный файл ядра находится в usr/src/sys/<архитектура>/conf/<имя ядра> Если некоторые опции не поддерживаются, вам необходимо переконфигурировать ядро ОС.
- Установите порт ipsec-tools:
# whereis ipsec-tools ipsec-tools: /usr/ports/security/ipsec-tools # cd /usr/ports/security/ipsec-tools # make
Переконфигурировать порт не надо, просто выберите ОК в меню конфигурации.
# make install
- Откройте в Интернет-браузере http://gencert.campus.mephi.ru/. В поле "Login" вводим номер своей зачётной книжки (например, 112358), в поля "Password" вводим пароль для защиты сертификата (этот пароль не обязательно должен совпадать с паролем для доступа в Интернет) и нажимаем "Generate!". Сохраните сертификат в формате tar.
- Далее, необходимо извлечь сертификаты стандарта X.509 из архива и переместить их в директорию /etc/racoon/certs
# tar -xvf omg.tar # mkdir /usr/local/etc/racoon # mkdir /usr/local/etc/racoon/certs # mv certs/useromg.crt /usr/local/etc/racoon/certs # mv keys/useromg.key /usr/local/etc/racoon/certs
- Скопируйте файл /usr/local/etc/racoon/racoon.conf
# cp /usr/ports/security/ipsec-tools/work/ipsec-tools-0.8.0/src/racoon/samples/racoon.conf /usr/local/etc/racoon
и заполните его следующим содержимым:
log notify; path pre_shared_key "/usr/local/etc/racoon/psk.txt"; path certificate "/usr/local/etc/racoon/certs"; remote anonymous { exchange_mode main; certificate_type x509 "useromg.crt" "useromg.key"; verify_cert off; nat_traversal on; generate_policy on; proposal { encryption_algorithm blowfish; hash_algorithm sha1; authentication_method rsasig; dh_group modp1024; } } sainfo anonymous { encryption_algorithm blowfish; authentication_algorithm hmac_sha1; compression_algorithm deflate; }
- Откройте файл /etc/*ipsec-tools.conf в текстовом редакторе и заполните его следующим содержимым:
flush; spdflush; spdadd 0.0.0.0/0 194.67.76.11/32[1701] udp -P out ipsec esp/tunnel/192.168.57.1-194.67.76.11/require; spdadd 194.67.76.11/32[1701] 0.0.0.0/0 udp -P in ipsec esp/tunnel/194.67.76.11-192.168.57.1/require;
- Создайте сетевой интерфейс с натированием:
# ifconfig lo0 alias 192.168.57.1 # ipfw add nat 123 ip from 192.168.57.1 to any out xmit re0 # ipfw add nat 123 ip from any to any in recv re0 # ipfw nat 123 config if re0
- Запустите демон:
# setkey -f /etc/ipsec-tools.conf # racoon -F -dddd -vvvv
Настройка mpd5
- Проверьте, установлен ли у вас демон mpd5:
# whereis mpd5 mpd5: /usr/local/sbin/mpd5 /usr/local/man/man8/mpd5.8.gz /usr/ports/net/mpd5
Если он не уставлен, скомпилируйте и установите его:
# whereis mpd5 mpd5: /usr/ports/net/mpd5 # cd /usr/ports/net/mpd5 # make # make install
- Откройте в текстовом редакторе файл /usr/local/etc/mpd5/mpd.conf и заполните его следующим содержимым (для студентов и аспирантов):
default: load l2tp_client l2tp_client: create bundle static B1 set iface up-script /usr/local/etc/mpd5/up.sh set iface down-script /usr/local/etc/mpd5/down.sh create link static L1 l2tp set link action bundle B1 set auth authname foo set auth password bar set link max-redial 5 set link accept chap set link no pap eap set link mtu 1400 set link keep-alive 20 75 set l2tp peer l2tp.campus.mephi.ru open
, или (для сотрудников):
default: load l2tp_client l2tp_client: create bundle static B1 set iface up-script /usr/local/etc/mpd5/up.sh set iface down-script /usr/local/etc/mpd5/down.sh create link static L1 l2tp set link action bundle B1 set auth authname foo set auth password bar set link max-redial 5 set link no eap chap set link accept pap set link mtu 1400 set link keep-alive 20 75 set l2tp peer l2tp.campus.mephi.ru open
Здесь и далее вместо foo следует указывать логин, вместо bar - пароль. Если файл ещё не существует, его следует создать. Будьте предельно внимательны с синтаксисом файла! Парсер чувствителен к пробелам, табуляции и порядку строк.
- Создайте файл
# touch /usr/local/etc/mpd5/up.sh
со следующим содержимым:
#!/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin DEFAULT_GW=$(netstat -nr | awk '{if($1=="0.0.0.0" && $3=="0.0.0.0") print $2}' | head -1) route add -host l2tp.campus.mephi.ru gw "$DEFAULT_GW" route add -net 0.0.0.0/1 "$4" route add -net 128.0.0.0/1 "$4"
- Это скрипт, позволяющий автоматически настраивать таблицу маршрутизации для вашей системы при запуске mpd5. Аналогично, создайте файл
# touch /usr/local/etc/mpd5/down.sh
со следующим содержимым:
#!/bin/sh route del l2tp.campus.mephi.ru route del 0.0.0.0/1 route del 128.0.0.0/1
- Сделайте скрипты исполняемыми
# chmod +x /usr/local/etc/mpd5/up.sh # chmod +x /usr/local/etc/mpd5/down.sh
- Запустите демоны:
# mpd5
- Проверьте доступность удалённого PtP хоста:
# ping `netstat -nr | awk '{if($3=="255.255.255.255" && $8=="ppp0") print $1}' | head -1` PING 10.7.2.16 (10.7.2.16) 56(84) bytes of data. 64 bytes from 10.7.2.16: icmp_req=1 ttl=63 time=0.745 ms 64 bytes from 10.7.2.16: icmp_req=2 ttl=63 time=0.617 ms 64 bytes from 10.7.2.16: icmp_req=3 ttl=63 time=0.650 ms 64 bytes from 10.7.2.16: icmp_req=4 ttl=63 time=0.606 ms --- 10.7.2.16 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3003ms rtt min/avg/max/mdev = 0.606/0.654/0.745/0.060 ms
Если сервер доступен, то настройка соединения прошла успешно.
Отладка
Proxy
Если в командной строке "ping 8.8.8.8" сообщает о том, что связь до 8.8.8.8 есть, а тем ни менее на сайты не заходит, значит, вполне возможно, что вы забыли отключить прокси в настройках вашего браузера