URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 56975
[ Назад ]

Исходное сообщение
"IPsec via NAT (port forwarding)"

Отправлено dkond , 01-Июн-05 21:41 
Есть схема LAN1<->FBSD1<->internet<->Router(nat+port forwarding)<->FBSD2<->LAN2
Нужно поднять IPsec так, чтобы виделись LAN1 & LAN2. На router'е все соединения проброшены на FBSD2 (на fake адреса). Отключить NAT не реально, таковы условия подключения провайдера. Для обмена ключами исползую racoon. В ядре поддержка IPsec включена. Использую следующую конфигурацию:

FBSD1:rc.conf
gif_interfaces="gif0"
gifconfig_gif0="62.33.32.133 217.106.168.165"
ifconfig_gif0="inet 192.168.100.253 192.168.0.253 netmask 255.255.255.255"
static_routes="vpn"
route_vpn="192.168.0.0/24 -interface gif0"
ipsec_enable="YES"
ipsec_file="/etc/ipsec.conf"

FBSD1:ipsec.conf
flush;
spdflush;
spdadd 62.33.32.133/32 217.106.168.165/32 ipencap -P out ipsec esp/tunnel/62.33.32.133-217.106.168.165/require;
spdadd 192.168.50.2/32 62.33.32.133/32 ipencap -P in ipsec esp/tunnel/217.106.168.165-62.33.32.133/require;

FBSD1:ifconfig:
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet 62.33.32.133 netmask 0xffffffc0 broadcast 62.33.32.191
rl1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet 192.168.100.254 netmask 0xffffff00 broadcast 192.168.100.255
gif0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280
        tunnel inet 62.33.32.133 --> 217.106.168.165
        inet 192.168.100.253 --> 192.168.0.253 netmask 0xffffffff

FBSD2:rc.conf
gif_interfaces="gif0"
gifconfig_gif0="192.168.50.2 62.33.32.133"
ifconfig_gif0="inet 192.168.0.253 192.168.100.253 netmask 255.255.255.255"
static_routes="vpn"
route_vpn="192.168.100.0/24 -interface gif0"
ipsec_enable="YES"
ipsec_file="/etc/ipsec.conf"

FBSD2:ipsec.conf
flush;
spdflush;
spdadd 192.168.50.2/32 62.33.32.133/32 ipencap -P out ipsec esp/tunnel/192.168.50.2-62.33.32.133/require;
spdadd 62.33.32.133/32 217.106.168.165/32 ipencap -P in ipsec esp/tunnel/62.33.32.133-192.168.50.2/require;

FBSD2:ifconfig:
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet 192.168.50.2 netmask 0xfffffffc broadcast 192.168.50.3
rl1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
gif0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280
        tunnel inet 192.168.50.2 --> 62.33.32.133
        inet 192.168.0.253 --> 192.168.100.253 netmask 0xffffffff

На роутере IP: 217.106.168.165 port forwarding > 192.168.50.2

С выключеным IPsec все работет. Туннель пакеты пересылает пинги ходят. При включении IPsec транспорт не работает, в логах особых замечаний нет. Но пинги не идут. Реально реализовать такую схему с использованием NAT+Potr forwarding? Если видны ошибки прошу высказываться.

P.S. Без NAT данная схема работет уже не в одном месте.

Заранее благодарен всем за ответы


Содержание

Сообщения в этом обсуждении
"IPsec via NAT (port forwarding)"
Отправлено A Clockwork Orange , 02-Июн-05 04:14 
покажи как у тебя включен на роутере IP: 217.106.168.165 port forwarding > 192.168.50.2

"IPsec via NAT (port forwarding)"
Отправлено A Clockwork Orange , 02-Июн-05 04:15 
покажи правила фаерволла на всех трех машинах

"IPsec via NAT (port forwarding)"
Отправлено dkond , 02-Июн-05 08:13 
>покажи правила фаерволла на всех трех машинах

FBSD1:
add allow ip from any to any via lo0
add deny ip from any to 127.0.0.0/8
add deny ip from 127.0.0.0/8 to any
add pass udp from 217.106.168.165 to 62.33.32.133 isakmp
add pass udp from 62.33.32.133 to 217.106.168.165 isakmp
add pass esp from 217.106.168.165 to 62.33.32.133
add pass esp from 62.33.32.133 to 217.106.168.165
add pass all from 192.168.100.0/24 to 192.168.0.0/24
add pass all from 192.168.0.0/24 to 192.168.100.0/24
add divert natd all from any to any via rl0
add allow all from 192.168.100.0/24 to any
add allow ip from any to 192.168.100.0/24
add reject all from any to 62.33.32.133 3128
add reject all from any to 62.33.32.133 110
add reject all from any to 62.33.32.133 143
add allow all from 62.33.32.133 to any
add allow all from any to 62.33.32.133
add deny all from any to any

FBSD2:
add allow ip from any to any via lo0
add deny ip from any to 127.0.0.0/8
add deny ip from 127.0.0.0/8 to any
add allow all from any to any
add deny all from any to any

router это железка ADSL маршрутизатор HUAWEI MT800 работет в режиме IPoA, 2 интерфейса, на одном висит адрес  217.106.168.165, на другом 192.168.50.1, между ними NAT. Как там выполнен NAT и port forwarding я не знаю, но включается через web managment. nmap'ом проверял: прокидывает порты внутрь на адрес 192.168.50.2
Фильтрации никакой не включено.



"IPsec via NAT (port forwarding)"
Отправлено A Clockwork Orange , 02-Июн-05 09:14 
Мне думается не будет работать.
Когда пакет идет от BSD2 на BSD1, при прохождении маршрутизатора происходит изменение заголовка-меняется источник, что не есть гуд для IPsec

"IPsec via NAT (port forwarding)"
Отправлено Azazelo , 06-Июн-05 17:13 
>Мне думается не будет работать.
>Когда пакет идет от BSD2 на BSD1, при прохождении маршрутизатора происходит изменение
>заголовка-меняется источник, что не есть гуд для IPsec


мне тоже интересен этот вопрос . все -же что мешает использовать ipsec через nat - реализация gif тунеля в FreeBSD или сам протокол ipsec ?


"IPsec via NAT (port forwarding)"
Отправлено A Clockwork Orange , 06-Июн-05 17:18 
ipsec

"IPsec via NAT (port forwarding)"
Отправлено Azazelo , 06-Июн-05 18:03 
>ipsec


а более подробно можно ? , линку там ...


"IPsec via NAT (port forwarding)"
Отправлено A Clockwork Orange , 06-Июн-05 18:15 
Хотя вот такое нашел
Туннельный режим лучше всего подходит для обмена трафиком между
двумя маршрутизаторами, или узлом и маршрутизатором. Так как исходный
пакет находится в неприкосновенности, туннельный  режим ESP позволяет
пакетам проходить через NAT-сети.

"IPsec via NAT (port forwarding)"
Отправлено A Clockwork Orange , 06-Июн-05 18:18 
http://www.osp.ru/lan/2003/01/024.htm