Маршрутизация + IPSEC

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

yans
Сообщения: 29
ОС: FreeBSD

Маршрутизация + IPSEC

Сообщение yans »

Доброго всем!

есть сеть

GW1 ---|тунель IPSEC через инет|--- GW2 ---|тунель PPP через инет| --- GW3


ОС на GW1 и GW2 CentOS 5.3, установлен ipsec-tools, на GW3 Windows server 2003 + ISA

GW1 - 192.168.99.9
GW2 - 192.168.200.254
GW3 - 192.168.211.254

GW1 не видит GW3, из остальных мест все пинги ходят и все работает.

на GW1 прописан маршрут
route add 192.168.200.254 gw 192.168.99.9
route add -net 192.168.211.0/24 gw 192.168.200.254

Погуглил и вроде виноват IPSEC но как сделать, что бы работало не нашел :( помогите разобраться
Спасибо сказали:
neol
Сообщения: 600
ОС: Debian Stable

Re: Маршрутизация + IPSEC

Сообщение neol »

А на GW3 вы прописали маршрут до GW1?
Спасибо сказали:
yans
Сообщения: 29
ОС: FreeBSD

Re: Маршрутизация + IPSEC

Сообщение yans »

neol писал(а):
14.08.2009 17:30
А на GW3 вы прописали маршрут до GW1?


Да, конечно!
Еслибы небыло там маршрута то с него не шел бы пинг на gw1
Спасибо сказали:
NemesisSOAD
Сообщения: 94
ОС: Archlinux

Re: Маршрутизация + IPSEC

Сообщение NemesisSOAD »

tcpdump в руки.
Спасибо сказали:
yans
Сообщения: 29
ОС: FreeBSD

Re: Маршрутизация + IPSEC

Сообщение yans »

NemesisSOAD писал(а):
14.08.2009 20:27
tcpdump в руки.

tcpdump на GW2 при пинге с GW1 на 192.168.200.254 ловит пакеты, а при пинге с тогоже GW1 на 192.168.211.254 не ловит вообще ничего на всех интерфейсах.

Как я и писал выше подозрения падают на IPSEK, а конкретно на setkey - вот как у меня прописано на GW1:

Код: Выделить всё

# setkey -DP
192.168.200.0/24[any] 192.168.99.0/24[any] any
        in prio def ipsec
        esp/tunnel/GW2ext-GW1ext/require
        ah/tunnel/GW2ext-GW1ext/require
        created: Aug 14 19:02:29 2009  lastused: Aug 14 23:37:53 2009
        lifetime: 0(s) validtime: 0(s)
        spid=632 seq=18 pid=3907
        refcnt=2
192.168.99.0/24[any] 192.168.200.0/24[any] any
        out prio def ipsec
        esp/tunnel/GW1ext-GW2ext/require
        ah/tunnel/GW1ext-GW2ext/require
        created: Aug 14 19:02:29 2009  lastused: Aug 14 23:37:53 2009
        lifetime: 0(s) validtime: 0(s)
        spid=625 seq=17 pid=3907
        refcnt=2
192.168.200.0/24[any] 192.168.99.0/24[any] any
        fwd prio def ipsec
        esp/tunnel/GW2ext-GW1ext/require
        ah/tunnel/GW2ext-GW1ext/require
        created: Aug 14 19:02:29 2009  lastused:
        lifetime: 0(s) validtime: 0(s)
        spid=642 seq=16 pid=3907
        refcnt=1


На GW2 тоже сомое только на оборот.
Спасибо сказали:
yans
Сообщения: 29
ОС: FreeBSD

Re: Маршрутизация + IPSEC

Сообщение yans »

Добавил в setkey GW1 инфу о 211 сети.

Код: Выделить всё

/sbin/setkey -c >/dev/null 2>&1 << EOF
spdadd 192.168.211.0/24 192.168.99.0/24 any
   -P in ipsec esp/tunnel/213.208.182.173-194.6.223.212/require
   ah/tunnel/213.208.182.173-194.6.223.212/require;
spdadd 192.168.99.0/24 192.168.211.0/24 any
   -P out ipsec esp/tunnel/194.6.223.212-213.208.182.173/require
   ah/tunnel/194.6.223.212-213.208.182.173/require;
EOF



Теперь на GW2 на внешнем интерфейсе ловятся пакеты:

Код: Выделить всё

tcpdump -n -i eth1 host 192.168.99.9
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
10:54:19.742624 IP 192.168.99.9 > 192.168.211.253: ICMP echo request, id 2327, seq 9, length 64
10:54:20.745917 IP 192.168.99.9 > 192.168.211.253: ICMP echo request, id 2327, seq 10, length 64
10:54:21.741500 IP 192.168.99.9 > 192.168.211.253: ICMP echo request, id 2327, seq 11, length 64



но пинг всеравно не проходит
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Маршрутизация + IPSEC

Сообщение sash-kan »

yans писал(а):
17.08.2009 11:18
Теперь на GW2 на внешнем интерфейсе ловятся пакеты
это пакеты от gw1 к gw3? смотрите маршрутизацию на gw3. видимо, не туда он шлёт ответы.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
yans
Сообщения: 29
ОС: FreeBSD

Re: Маршрутизация + IPSEC

Сообщение yans »

Сейчас сделал новую сеть с нуля из 3х шлюзов, между ними интернет.
На всех трех шлюзах Centos 5.3
Схема такая
GW1 ---|тунель IPSEC через инет|--- GW2 ---|тунель IPSEC через инет| --- GW3

создавал так: http://www.linuxnotes.ru/ipsec-centos/
Внутренние IP:
GW1 192.168.99.9
GW2 192.168.0.115
GW3 192.168.212.244

После поднятия туннелей сразу пингуются:
с GW1 - GW2,
c GW2 - оба,
с GW3 - GW2

На GW1 прописываю маршрут:

Код: Выделить всё

route add 192.168.0.115 gw 192.168.99.9
route add -net 192.168.212.0/24 gw 192.168.0.115

На GW3:

Код: Выделить всё

route add 192.168.0.115 gw 192.168.212.244
route add -net 192.168.99.0/24 gw 192.168.0.115

На GW2 маршруты прописаны автоматически на 99.х и 212.х сети после поднятия туннеля.

После этого пробую с GW1 запустить пинг на GW3:

Код: Выделить всё

ping 192.168.212.244
PING 192.168.212.244 (192.168.212.244) 56(84) bytes of data.
From 192.168.0.115: icmp_seq=2 Redirect Host(New nexthop: 192.168.212.244)
From 192.168.0.115: icmp_seq=3 Redirect Host(New nexthop: 192.168.212.244)
From 192.168.0.115 icmp_seq=1 Destination Host Unreachable
From 192.168.0.115 icmp_seq=2 Destination Host Unreachable
From 192.168.0.115 icmp_seq=3 Destination Host Unreachable
From 192.168.0.115: icmp_seq=4 Redirect Host(New nexthop: 192.168.212.244)
From 192.168.0.115: icmp_seq=5 Redirect Host(New nexthop: 192.168.212.244)




в это время на GW2(eth1 внутренний интерфейс):

Код: Выделить всё

tcpdump -i eth1 host 192.168.99.9
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
19:09:41.785833 IP 192.168.99.9 > 192.168.212.244: ICMP echo request, id 38922, seq 9, length 64
19:09:42.785768 IP 192.168.99.9 > 192.168.212.244: ICMP echo request, id 38922, seq 10, length 64
19:09:43.786743 IP 192.168.99.9 > 192.168.212.244: ICMP echo request, id 38922, seq 11, length 64



и с GW3 на GW1:

Код: Выделить всё

ping 192.168.99.9
PING 192.168.99.9 (192.168.99.9) 56(84) bytes of data.
From 192.168.212.244 icmp_seq=2 Destination Host Unreachable
From 192.168.212.244 icmp_seq=3 Destination Host Unreachable
From 192.168.212.244 icmp_seq=4 Destination Host Unreachable
From 192.168.212.244 icmp_seq=5 Destination Host Unreachable
From 192.168.212.244 icmp_seq=6 Destination Host Unreachable
From 192.168.212.244 icmp_seq=7 Destination Host Unreachable


В это время на GW2 tcpdump молчит
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Маршрутизация + IPSEC

Сообщение Alex2ndr »

yans писал(а):
21.08.2009 12:11
Сейчас сделал новую сеть с нуля из 3х шлюзов, между ними интернет.
На всех трех шлюзах Centos 5.3
Схема такая
GW1 ---|тунель IPSEC через инет|--- GW2 ---|тунель IPSEC через инет| --- GW3

создавал так: http://www.linuxnotes.ru/ipsec-centos/
Внутренние IP:
GW1 192.168.99.9
GW2 192.168.0.115
GW3 192.168.212.244

После поднятия туннелей сразу пингуются:
с GW1 - GW2,
c GW2 - оба,
с GW3 - GW2

На GW1 прописываю маршрут:

Код: Выделить всё

route add 192.168.0.115 gw 192.168.99.9
route add -net 192.168.212.0/24 gw 192.168.0.115

На GW3:

Код: Выделить всё

route add 192.168.0.115 gw 192.168.212.244
route add -net 192.168.99.0/24 gw 192.168.0.115

На GW2 маршруты прописаны автоматически на 99.х и 212.х сети после поднятия туннеля.

можете дать route -n для каждого из шлюзов при поднятых тунелях . Я конечно в Ipsec не очень - но pptp настраивал. Думаю что принципиальных отличий в маршрутизации нету. И зачем это - route add 192.168.0.115 gw 192.168.99.9 и это - route add 192.168.0.115 gw 192.168.212.244 - если все тоже самое но без них, то не работает?
Спасибо сказали:
DSS
Сообщения: 390

Re: Маршрутизация + IPSEC

Сообщение DSS »

Похожая проблема.

GW1 ---|тунель IPSEC|--- GW2 ---|тунель IPSEC| --- GW3

Соответственно, сеть 1 - подключена к GW1 и т.д.

IPSec поднят на racoon.

Из сети 1 можно попасть в сеть 2.
Из сети 3 можно попасть в сеть 2.
Из сети 2 можно попасть в сети 1 и 3.

Поднять туннель GW1 - GW3 НЕВОЗМОЖНО.

Хотелось бы попадать из сети 1 в сеть 3.

Пробовал прописывать маршруты по типу:
ip route add сеть3 via GW2 - не принимает.

Добавлял в setkey.conf GW1 записи для сети 1 и сеть 3 через туннель, концами которого являются GW1 и GW2.
Туннель создаётся (setkey -D показывает что всё ок), но пакеты, идущие из сети 1 GW1 шлёт на шлюз по умолчанию, где пакет с серым адресом, естественно, режется.

В качестве ещё одной мелкой, но досадной проблемы - хотелось бы, чтобы с одного GW можно было попасть на другой. Ибо в данный момент нельзя. Можно только с компьютера изнутри сети попасть на внутренний интерфейс GW.
Спасибо сказали:
DSS
Сообщения: 390

Re: Маршрутизация + IPSEC

Сообщение DSS »

DSS писал(а):
02.12.2009 15:35
В качестве ещё одной мелкой, но досадной проблемы - хотелось бы, чтобы с одного GW можно было попасть на другой. Ибо в данный момент нельзя. Можно только с компьютера изнутри сети попасть на внутренний интерфейс GW.

Это решил самостоятельно.
надо сделать так:
ip route <адрес_соседа> via <шлюз_по_умолчанию> src <свой_внутренний_адрес>
Остальное по-прежнему актуально.
Спасибо сказали:
DSS
Сообщения: 390

Re: Маршрутизация + IPSEC

Сообщение DSS »

Оказывается, что не всё так просто в маршрутизации через IPSec туннели. Особенно, в модели Hub & Spokes.
Настолько непросто, что у Cisco есть специальная технология, призванная обойти данные грабли: http://en.wikipedia.org/wiki/Dmvpn

Собственно, первые подозрения начались ещё тут: IPseс и полносвязный VPN
Усилились после прочтения вот этого материала: http://www.blackhat.com/presentations/bh-u...-knight-vpn.ppt

В общем, надо либо думать на предмет перехода с tunnel на transport mode, либо ещё что-то (например, заказ VPN от провайдера).
Спасибо сказали: