Setup:inet:l2tpipsec:freebsd

Материал из campus.mephi.ru

(Различия между версиями)
Перейти к: навигация, поиск
Строка 170: Строка 170:
*Проверьте доступность удалённого PtP хоста:  
*Проверьте доступность удалённого PtP хоста:  
-
  # ping 10.7.2.16
+
  # 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.
  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=1 ttl=63 time=0.745 ms

Версия 08:05, 11 сентября 2012

Настройка L2TP (IPSec) -соединения


Настройка соединения

В данной пошаговой инструкции описан способ реализации защищенного VPN соединения по протоколу L2TP через IPSec. Перед началом настойки удостоверьтесь, что у вас есть рабочее соединение с интернетом по какому-либо другому протоколу для установки требуемых пакетов. Возможность автономной установки пакетов в данной инструкции не рассматривается. Сервер туннельного режима доступен по адресу l2tp.campus.mephi.ru (10.50.0.20 или 10.50.0.16).

  • Проверьте наличие поддержки 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
  • Проверьте, установлен ли у вас демон 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
  • Откройте в Интернет-браузере 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";

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
  • Откройте файл /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;
  • Откройте в текстовом редакторе файл 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

Здесь и далее вместо foo следует указывать логин, вместо bar - пароль. Если файл ещё не существует, его следует создать. Будьте предельно внимательны с синтаксисом файла! Парсер чувствителен к пробелам, табуляции и порядку строк.

  • Создайте сетевой интерфейс с натированием:
# 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 nay in recv re0
# ipfw nat 123 config if re0
  • Создайте файл
# 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
  • Запустите демоны:
# setkey -f /etc/ipsec-tools.conf
# racoon -F -dddd -vvvv
# 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 есть, а тем ни менее на сайты не заходит, значит, вполне возможно, что вы забыли отключить прокси в настройках вашего браузера