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 есть, а тем ни менее на сайты не заходит, значит, вполне возможно, что вы забыли отключить прокси в настройках вашего браузера