Setup:inet:l2tpipsec:freebsd

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

(Различия между версиями)
Перейти к: навигация, поиск
м
 
(7 промежуточных версий не показаны.)
Строка 3: Строка 3:
=Настройка соединения=
=Настройка соединения=
 +
 +
В данной пошаговой инструкции описан способ реализации защищенного VPN соединения по протоколу L2TP через IPSec. Перед началом настойки удостоверьтесь, что у вас есть рабочее соединение с интернетом по какому-либо другому протоколу для установки требуемых пакетов. Возможность автономной установки пакетов в данной инструкции не рассматривается. Сервер туннельного режима доступен по адресу l2tp.campus.mephi.ru (10.50.0.20 или 10.50.0.16).
 +
 +
'''Обращаем ваше внимание, что настройку IPSec можно пропустить. IPSec используется исключительно для защиты вашего трафика.'''
 +
 +
=Настройка IPsec=
*Проверьте наличие поддержки IPSec в вашем ядре:
*Проверьте наличие поддержки IPSec в вашем ядре:
Строка 36: Строка 42:
Переконфигурировать порт не надо, просто выберите ОК в меню конфигурации.
Переконфигурировать порт не надо, просто выберите ОК в меню конфигурации.
-
# 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
  # make install
Строка 71: Строка 64:
  path certificate "/usr/local/etc/racoon/certs";
  path certificate "/usr/local/etc/racoon/certs";
   
   
-
  default:
+
  remote anonymous {
-
  load l2tp_client
+
  exchange_mode main;
-
+
  certificate_type x509 "useromg.crt" "useromg.key";
-
l2tp_client:
+
  verify_cert off;
-
+
  nat_traversal on;
-
  create bundle static B1
+
  generate_policy on;
-
set iface up-script /usr/local/etc/mpd5/up.sh
+
  proposal {
-
set iface down-script /usr/local/etc/mpd5/down.sh
+
encryption_algorithm blowfish;
-
  create link static L1 l2tp
+
hash_algorithm sha1;
-
  set link action bundle B1
+
              authentication_method rsasig;
-
  set auth authname foo
+
              dh_group modp1024;
-
  set auth password bar
+
  }
-
set link max-redial 5
+
}
-
set link accept chap
+
sainfo anonymous {
-
set link no pap eap
+
        encryption_algorithm blowfish;
-
set link mtu 1400
+
        authentication_algorithm hmac_sha1;
-
  set link keep-alive 20 75
+
        compression_algorithm deflate;
-
set l2tp peer l2tp.campus.mephi.ru
+
}
-
open
+
*Откройте файл /etc/*ipsec-tools.conf в текстовом редакторе и заполните его следующим содержимым:
*Откройте файл /etc/*ipsec-tools.conf в текстовом редакторе и заполните его следующим содержимым:
Строка 101: Строка 93:
  esp/tunnel/194.67.76.11-192.168.57.1/require;
  esp/tunnel/194.67.76.11-192.168.57.1/require;
-
*Откройте в текстовом редакторе файл usr/local/etc/mpd5/mpd.conf и заполните его следующим содержимым:
+
*Создайте сетевой интерфейс с натированием:
 +
 
 +
# 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 и заполните его следующим содержимым (<b>для студентов и аспирантов</b>):
  default:
  default:
Строка 123: Строка 142:
     open
     open
-
Здесь и далее вместо foo следует указывать логин, вместо bar - пароль. Если файл ещё не существует, его следует создать. Будьте предельно внимательны с синтаксисом файла! Парсер чувствителен к пробелам, табуляции и порядку строк.
+
, или (<b>для сотрудников</b>):
-
*Создайте сетевой интерфейс с натированием:
+
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
-
# ifconfig lo0 alias 192.168.57.1
+
Здесь и далее вместо foo следует указывать логин, вместо bar - пароль. Если файл ещё не существует, его следует создать. Будьте предельно внимательны с синтаксисом файла! Парсер чувствителен к пробелам, табуляции и порядку строк.
-
# 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
+
*Создайте файл
*Создайте файл
Строка 162: Строка 196:
*Запустите демоны:
*Запустите демоны:
-
# setkey -f /etc/ipsec-tools.conf
 
-
# racoon -F -dddd -vvvv
 
  # mpd5
  # mpd5
*Проверьте доступность удалённого 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:40, 5 октября 2012

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