Оригинал:OSPF over GRE over IPSec with OpenBSD
Перевод:Сгибнев Михаил
v2010000100
Очень простое и краткое руководство по настройке IPSec over GRE туннеля между OpenBSD и ScreenOS с передачей маршрутной информации между сетями по OSPF
Опуская все околотеоретические разглогольствования, с которыми каждый желающий может ознакомиться в оригинальной статье, перейдем к сути вопроса.
Давайте начнем с конфигурирования OpenBSD. Убедитесь, что в ядре включена функция маршрутизации пакетов и поддержка протокола GRE. Включить GRE можно задействовав специально для этого предназначенную переменную sysctl:
# sysctl net.inet.gre.allow=1
Для того, чтобы изменения действовали и после перезагрузки, не забудьте добавить строку net.inet.gre.allow=1 в файл /etc/sysctl.conf.
С маршрутизацией ситуация полностью аналогична:
# sysctl net.inet.ip.forwarding=1
Для работы IPsec, возможно, вам придется включить поддержку протокола ESP:
sysctl net.inet.esp.enable=1
Так же, нелишним будет отключить на время тестирования pf(4).
Альтернативой полному отключению брандмауэра служат две простые команды, помещенные в /etc/pf.conf:
set skip on enc0
set skip on gre0
Создаем GRE туннель:
# ifconfig gre0 create
# ifconfig gre0 tunnel myglobal.ip.addre.ss peerglobal.ip.addre.ss (outer header)
# ifconfig gre0 inet mygre.ip.addre.ss peergre.ip.addre.ss netmask 0xffffffff link0 up (inner header)
Пакеты между mygre.ip.addre.ss и peergre.ip.addre.ss будут инкапсулированы в GRE unicast с myglobal.ip.addre.ss и peerglobal.ip.addre.ss в качестве конечных точек. Учтите, что в данный момент никакого шифрования нет!
Использование в OpenBSD нового демона ipsec.conf(5) намного облегчает настройку IPSec. В качестве политики мы выбираем «шифровать весь трафик между указанными конечными точками с данными внешними IP-адресами», а ввиду ограничений аппаратной платформы используются алгоритмы SHA1 и 3DES:
# vi /etc/ipsec.conf
mypeer = "peerglobal.ip.addre.ss"
me = "myglobal.ip.addre.ss"
mypassword = "password"
ike esp from $me to $mypeer peer $mypeer \
main auth hmac-sha1 enc 3des group modp1024 \
srcid $me/32 dstid $mypeer/32 \
psk $mypassword
Запускаем isakmpd и указываем ему прочитать правила из файла /etc/ipsec.conf.
# isakmpd -K
# ipsecctl -f /etc/ipsec.conf
Для того, чтобы наш героически поднятый туннель не упал после перезагрузки хоста, необходимо добавить в /etc/rc.conf.local следующие строки:
isakmpd_flags="-K"
ipsec=YES
Проверить хождение зашифрованных пакетов можно командой:
# tcpdump -ni enc0
Конфигурация NS 5GT практически повторяет настройки для OpenBSD.
set interface tunnel.1 zone untrust
set interface tunnel.1 ip mygre.ip.addre.ss/30 (inner header)
set interface tunnel.1 tunnel encap gre
set interface tunnel.1 tunnel local-if untrust dst-ip global.ip.addre.ss (outer GRE header, GRE endpoints)
set interface tunnel.1 tunnel keep-alive (optional, but useful to see GRE packet on the wire)
set ike gateway mypeer address peerglobal.ip.addre.ss main outgoing-interface "untrust" preshare password sec-level compatible
set vpn mypeer gateway jp proposal "nopfs-esp-3des-sha"
set vpn mypeer bind interface tunnel.1
set vpn mypeer proxy-id local-ip global.ip.addre.ss/32 remote-ip peerglobal.ip.adre.ss/32 ANY
Обратите внимание на одну важную особенность: в OpenBSD туннели имеют p-t-p адреса /32, а в 5GT(впрочем, как и в Cisco IOS) используется сеть /30. Но работает же!
Проверяем связь:
# ping peergre.ip.addre.ss
PING peergre.ip.addre.ss (peergre.ip.addre.ss): 56 data bytes
64 bytes from peergre.ip.addre.ss: icmp_seq=0 ttl=64 time=277.665 ms
...
Окончательно убедимся в том, что трафик шифруется. Заманите пожалуйста vr0 на обозначение вашего внешнего интерфейса.
# ipsecctl -s all
FLOWS:
flow esp in from myglobal.ip.addre.ss to peerglobal.ip.addre.ss peer peerglobal.ip.addre.ss srcid myglobal.ip.addre.ss/32 dstid peerglobal.ip.addre.ss/32 type use
flow esp out from peerglobal.ip.addre.ss to myglobal.ip.addre.ss peer peerglobal.ip.addre.ss srcid peerglobal.ip.addre.ss/32 dstid myglobal.ip.addre.ss/32 type require
SAD:
esp tunnel from myglobal.ip.addre.ss to peerglobal.ip.addre.ss spi 0x1275cf8c auth hmac-sha1 enc aes
esp tunnel from peerglobal.ip.addre.ss to myglobal.ip.addre.ss spi 0x20eec763 auth hmac-sha1 enc aes
# tcpdump -tni vr0 -c 10
tcpdump: listening on vr0, link-type EN10MB
esp myglobal.ip.addre.ss > peerglobal.ip.addre.ss spi 0x61a862f2 seq 45586 len 372
esp peerglobal.ip.addre.ss > myglobal.ip.addre.ss spi 0x84cd621d seq 45973 len 132
После того, как заработал наш туннель, настроим OSPF. Не забудьте заменить vr1 на обозначение вашего внутреннего интерфейса.
# vi /etc/ospfd.conf
password="mypassword"
auth-md 1 $password
auth-type crypt
auth-md-keyid 1
area 0.0.0.0 {
interface gre0 { }
interface vr1 { passive }
}
Запускаем ospfd(8) в режиме отладки:
# ospfd -dv
Выполняем ответные действия на 5GT:
set vr trust-vr protocol ospf enable
set interface tunnel.1 protocol ospf area 0.0.0.0
set interface tunnel.1 protocol ospf authentication md5 mypassword key-id 1
set interface tunnel.1 protocol ospf authentication active-md5-key-id 1
set interface tunnel.1 protocol ospf enable
set interface trust protocol ospf area 0.0.0.0
set interface trust protocol ospf passive
set interface trust protocol ospf enable
Проверяем, виден ли сосед по OSPF:
# ospfctl show neighbor
ID Pri State DeadTime Address Iface Uptime
peergre.ip.addre.ss 1 FULL/P2P 00:00:30 peergre.ip.addre.ss vr1 00:00:23
Ну вот собственно и всё.
Рекомендую почитать по данной теме:
OSPF over GRE over IPSec with OpenBSD
Setting up IPSec over GRE on OpenBSD
Configuring IPSec with x509 certificates on OpenBSD
[ad name=»Google Adsense»]
Уважайте труд автора, сохраняйте копирайты.
Реклама на сайте висит не просто так и если статья Вам понравилась, с ее помощью Вы можете отблагодарить автора за проделанную работу. Спасибо!
На какой версии OpenBSD завелось? На 4.7 GRE что-то не пашет 🙂
в оригинальной статье есть косячок
внимательно смотрим конфигурацию шифрования:
«main auth hmac-sha1 enc 3des»
и смотрим на вывод ipsecctl -s all
«SAD:
auth hmac-sha1 enc aes»
ничего не смущает?
правльно… япошка настроил ипсек в режиме quick а не main
если особо не заморачиваться просто заменяется строчка в конфиге на
«quick auth hmac-sha1 enc 3des group modp1024» и вот теперь будет 3des
хотя я япошек не виню, с такими глазками тяжело наверно мануалу по ипсеку читать -_- сумимасе