LINUX.ORG.RU
ФорумAdmin

IpSec между ubuntu server и pfsense. Не проходит pharse1


0

1

Добрый день! Ситуация такая: Раньше стоял pfsense шлюз с поднятым ipsec'ом, по которому осуществлялось соединение с двумя удалёнными офисами. Pfsense по неизвестным причинам перестал пропускать какие либо пакеты (даже знакомые гуру по сенсу не помогли). Был поставлен шлюз на ubuntu server 14.04, настроены интерфейсы, открыты порты для хождения почты и доступа к ней с внешних устройств. Осталась проблема с ipsec'ом - по моему скромному разумению не проходит аутентификацию. Был поставлен racoon и ipsec-tools.

eth0 - внешний интерфейс 213.79.*.162 eht1 - внутренний интерфейс 192.168.1.2

/etc/racoon/racoon.conf

log notify; path pre_shared_key «/etc/racoon/psk.txt»; path certificate «/etc/racoon/certs»;

listen { isakmp 213.79.*.162[500]; isakmp_natt 213.79.*.162[4500]; strict_address; } remote 79.171.*.10 { # IP нашего пира exchange_mode main; # режим обмена my_identifier address; peers_identifier address; lifetime time 24 hour; # время жизни первой фазы proposal { # секция определения предложений encryption_algorithm aes 256; # алгоритм криптования hash_algorithm md5; # алгоритм хеширования authentication_method pre_shared_key; #метод аутентификации, у нас - шаренные ключи dh_group modp1024; # группа Диффи-Хеллмана } generate_policy off; nat_traversal on; # отключаем nat-traversal } sainfo address 192.168.1.0/24 any address 192.168.2.0/24 any { # IPSEC SA pfs_group modp1024; # группа Диффи-Хеллмана lifetime time 1 hour; # время жизни второй фазы encryption_algorithm aes 256; # алгоритм криптования authentication_algorithm hmac_md5; # алгоритм аутентификации compression_algorithm deflate; # алгоритм компрессии }

remote 109.195.*.144 { # IP нашего пира my_identifier address; peers_identifier address; exchange_mode main; lifetime time 24 hour; # время жизни первой фазы proposal { # секция определения предложений encryption_algorithm aes 256; # алгоритм криптования hash_algorithm md5; # алгоритм хеширования authentication_method pre_shared_key; #метод аутентификации, у нас - шаренные ключи dh_group modp1024; # группа Диффи-Хеллмана } generate_policy off; nat_traversal on; # отключаем nat-traversal } sainfo address 192.168.1.0/24 any address 192.168.7.0/24 any { # IPSEC SA pfs_group modp1024; # группа Диффи-Хеллмана lifetime time 1 hour; # время жизни второй фазы encryption_algorithm aes 256; # алгоритм криптования authentication_algorithm hmac_md5; # алгоритм аутентификации compression_algorithm deflate; # алгоритм компрессии }

/etc/ipsec-tools.conf

flush; #сбросить ассоциации безопасности (SAD) spdflush; # сбросить политики безопасности (SPD)

spdadd 192.168.1.0/24 192.168.2.0/24 any -P out ipsec esp/tunnel/213.79.*.162-79.171.*.10/require; # добавление (SPD), исходящий трафик

spdadd 192.168.2.0/24 192.168.1.0/24 any -P in ipsec esp/tunnel/79.171.*.10-213.79.*.162/require; # добавление (SPD), входящий трафик

spdadd 192.168.1.0/24 192.168.7.0/24 any -P out ipsec esp/tunnel/213.79.*.162-109.195.*.144/require; # добавление (SPD), исходящий трафик

spdadd 192.168.7.0/24 192.168.1.0/24 any -P in ipsec esp/tunnel/109.195.*.144-213.79.*.162/require; # добавление (SPD), входящий трафик

Правила для iptables

iptables -A INPUT -i eth0 -s 79.171.*.10 -p udp --sport 500 --dport 500 -j ACCEPT iptables -A INPUT -i eth0 -s 79.171.*.10 -p udp --sport 4500 --dport 4500 -j ACCEPT iptables -A INPUT -s 79.171.*.10 -p esp -j ACCEPT iptables -A INPUT -s 192.168.2.0/24 -d 192.168.1.2 -m policy --dir in --pol ipsec --proto esp --mode tunnel --tunnel-src 79.171.*.10 -j ACCEPT iptables -A FORWARD -s 192.168.2.0/24 -d 192.168.1.0/24 -m policy --dir in --pol ipsec --proto esp --mode tunnel --tunnel-src 79.171.*.10 -j ACCEPT iptables -A FORWARD -s 192.168.1.0/24 -d 192.168.2.0/24 -m policy --dir out --pol ipsec --proto esp --mode tunnel --tunnel-dst 79.171.*.10 -j ACCEPT

iptables -A INPUT -i eth0 -s 109.195.*.144 -p udp --sport 500 --dport 500 -j ACCEPT iptables -A INPUT -i eth0 -s 109.195.*.144 -p udp --sport 4500 --dport 4500 -j ACCEPT iptables -A INPUT -s 109.195.*.144 -p esp -j ACCEPT iptables -A INPUT -s 192.168.7.0/24 -d 192.168.1.2 -m policy --dir in --pol ipsec --proto esp --mode tunnel --tunnel-src 109.195.*.144 -j ACCEPT iptables -A FORWARD -s 192.168.7.0/24 -d 192.168.1.0/24 -m policy --dir in --pol ipsec --proto esp --mode tunnel --tunnel-src 109.195.*.144 -j ACCEPT iptables -A FORWARD -s 192.168.1.0/24 -d 192.168.7.0/24 -m policy --dir out --pol ipsec --proto esp --mode tunnel --tunnel-dst 109.195.*.144 -j ACCEPT

В логах такая чехорда

Jul 21 17:56:57 gate racoon: WARNING: PF_KEY EXPIRE message received from kernel for SA being negotiated. Stopping negotiation. Jul 21 17:57:39 gate racoon: ERROR: phase1 negotiation failed due to time up. 5eaa6c5086a34cb1:1347626190b6d087 Jul 21 17:57:57 gate racoon: WARNING: PF_KEY EXPIRE message received from kernel for SA being negotiated. Stopping negotiation. Jul 21 17:58:43 gate racoon: ERROR: phase1 negotiation failed due to time up. d27de5fad48a13f6:368fb0a734ee2168 Jul 21 17:58:57 gate racoon: WARNING: PF_KEY EXPIRE message received from kernel for SA being negotiated. Stopping negotiation. Jul 21 17:59:43 gate racoon: ERROR: phase1 negotiation failed due to time up. cecdd6a4a16e5f97:1121b8b11f578a53 Jul 21 18:00:43 gate racoon: ERROR: phase1 negotiation failed due to time up. 5efa387377de67fc:69d2a8646a4e434a Jul 21 18:01:43 gate racoon: ERROR: phase1 negotiation failed due to time up. b0b49b87bbdea377:c57f065f7543fa9f Jul 21 18:02:43 gate racoon: ERROR: phase1 negotiation failed due to time up. 3abf8438d1033435:de7e003616256c5b Jul 21 18:03:43 gate racoon: ERROR: phase1 negotiation failed due to time up. 07bb694a52615e65:4a16504d3c616bf1

tcpdump -n -i eth0 port 500

18:09:13.928505 IP 109.195.*.144.500 > 213.79.*.162.500: isakmp: phase 2/others ? inf[E] 18:09:13.928701 IP 213.79.*.162.500 > 109.195.*.144.500: isakmp: phase 2/others ? inf[E] 18:09:23.970355 IP 109.195.*.144.500 > 213.79.*.162.500: isakmp: phase 2/others ? inf[E] 18:09:23.970543 IP 213.79.*.162.500 > 109.195.*.144.500: isakmp: phase 2/others ? inf[E] 18:09:25.844919 IP 213.79.*.162.500 > 79.171.*.10.500: isakmp: phase 1 I ident 18:09:25.850394 IP 79.171.*.10.500 > 213.79.*.162.500: isakmp: phase 1 R ident 18:09:25.853138 IP 213.79.*.162.500 > 79.171.*.10.500: isakmp: phase 1 I ident 18:09:25.882199 IP 79.171.*.10.500 > 213.79.*.162.500: isakmp: phase 1 R ident 18:09:25.885132 IP 213.79.*.162.500 > 79.171.*.10.500: isakmp: phase 1 I ident[E]

Что не так и как это поправить?

Читать LORCODE и расставлять теги, форматирующие текст.

Посмотрите дампом все пакеты ″host 79.171.*.10″, может какие пакеты от удалённой стороны пытаются идти по другим портам, по порту 4500 что-нибудь проходит? Сделайте ″log debug″, может понятнее будет.

mky ★★★★★ ()
Ответ на: комментарий от mky

Спасибо за пинок в сторону LORCODE)

дамп по 79.171.*.10

09:41:01.306357 IP 79.171.1*.10.500 > 213.79.*.162.500: isakmp: phase 1 ? ident[E]
09:41:11.274446 IP 213.79.*.162.500 > 79.171.1*.10.500: isakmp: phase 1 ? ident
09:41:11.279291 IP 79.171.1*.10.500 > 213.79.*.162.500: isakmp: phase 1 ? ident[E]
09:41:11.307151 IP 79.171.1*.10.500 > 213.79.*.162.500: isakmp: phase 1 ? ident[E]
09:41:31.276410 IP 213.79.*.162.500 > 79.171.1*.10.500: isakmp: phase 1 ? ident
09:41:31.281356 IP 79.171.1*.10.500 > 213.79.*.162.500: isakmp: phase 1 ? ident[E]
09:41:42.650071 IP 79.171.1*.10.500 > 213.79.*.162.500: isakmp: phase 1 I ident
09:41:42.651557 IP 213.79.*.162.500 > 79.171.1*.10.500: isakmp: phase 1 R ident
09:41:42.680668 IP 79.171.1*.10.500 > 213.79.*.162.500: isakmp: phase 1 I ident
09:41:42.684132 IP 213.79.*.162.500 > 79.171.1*.10.500: isakmp: phase 1 R ident
09:41:42.711932 IP 79.171.1*.10.500 > 213.79.*.162.500: isakmp: phase 1 I ident[E]
09:41:51.277779 IP 213.79.*.162.500 > 79.171.1*.10.500: isakmp: phase 1 ? ident
09:41:51.282681 IP 79.171.1*.10.500 > 213.79.*.162.500: isakmp: phase 1 ? ident[E]
09:41:52.713274 IP 79.171.1*.10.500 > 213.79.*.162.500: isakmp: phase 1 I ident[E]
09:42:02.684874 IP 213.79.*.162.500 > 79.171.1*.10.500: isakmp: phase 1 R ident
09:42:02.689749 IP 79.171.1*.10.500 > 213.79.*.162.500: isakmp: phase 1 I ident[E]
09:42:02.715085 IP 79.171.1*.10.500 > 213.79.*.162.500: isakmp: phase 1 I ident[E]

по 4500 тишина - вообще пакеты не ходят.
log debug сижу читаю, пока нет ничего, что может натолкнуть в нужную сторону

Zombie_Troll ()

обе фазы для 109.195.*.144 прошли успешно.

с 79.171.*.10 всё та же фигня
racoon: ERROR: phase1 negotiation failed due to time up.

При этом 109.195.*.144 и 79.171.*.10 отлично соединяются друг с другом и стабильно держат канал... Мозг уже лопается -_-

Zombie_Troll ()

Логи со стороны 79.171.*.10

Jul 22 16:58:05	racoon: [CentOffise]: [213.79.*.162] ERROR: phase2 negotiation failed due to time up waiting for phase1 [Remote Side not responding]. ESP 213.79.*.162[0]->79.171.*.10[0]
Jul 22 16:58:05	racoon: INFO: delete phase 2 handler.
Jul 22 16:58:09	racoon: [CentOffise]: INFO: IPsec-SA request for 213.79*.162 queued due to no phase1 found.
Jul 22 16:58:09	racoon: [CentOffise]: INFO: initiate new phase 1 negotiation: 79.171.*.10[500]<=>213.79.*.162[500]
Jul 22 16:58:09	racoon: INFO: begin Identity Protection mode.
Jul 22 16:58:09	racoon: INFO: received Vendor ID: RFC 3947
Jul 22 16:58:09	racoon: INFO: received Vendor ID: DPD
Jul 22 16:58:09	racoon: INFO: received broken Microsoft ID: FRAGMENTATION
Jul 22 16:58:09	racoon: [CentOffise]: [213.79.*.162] INFO: Selected NAT-T version: RFC 3947
Jul 22 16:58:09	racoon: [CentOffise]: [213.79.*.162] INFO: Hashing 213.79.*.162[500] with algo #1
Jul 22 16:58:09	racoon: [Self]: [79.171.*.10] INFO: Hashing 79.171.*.10[500] with algo #1
Jul 22 16:58:09	racoon: INFO: Adding remote and local NAT-D payloads.
Jul 22 16:58:09	racoon: [Self]: [79.171.*.10] INFO: Hashing 79.171.*.10[500] with algo #1
Jul 22 16:58:09	racoon: INFO: NAT-D payload #0 verified
Jul 22 16:58:09	racoon: [CentOffise]: [213.79.*.162] INFO: Hashing 213.79.*.162[500] with algo #1
Jul 22 16:58:09	racoon: INFO: NAT-D payload #1 verified
Jul 22 16:58:09	racoon: INFO: NAT not detected
Jul 22 16:58:13	racoon: NOTIFY: the packet is retransmitted by 213.79.*.162[500] (1).
Jul 22 16:58:29	racoon: NOTIFY: the packet is retransmitted by 213.79.*.162[500] (1).
Jul 22 16:58:40	racoon: [CentOffise]: [213.79.*.162] ERROR: phase2 negotiation failed due to time up waiting for phase1 [Remote Side not responding]. ESP 213.79.*.162[0]->79.171.*.10[0]
Jul 22 16:58:40	racoon: INFO: delete phase 2 handler.
Jul 22 16:58:49	racoon: NOTIFY: the packet is retransmitted by 213.79.*.162[500] (1).
Jul 22 16:58:51	racoon: [CentOffise]: [213.79.*.162] INFO: request for establishing IPsec-SA was queued due to no phase1 found.
Jul 22 16:58:59	racoon: ERROR: phase1 negotiation failed due to time up. 7dac4b78b10d5959:b872d62e36cb2b98

Zombie_Troll ()
Ответ на: комментарий от Zombie_Troll

Лог-файл можно указать racoon'у в командной строке. В Убунту, если я правильно понял, нужно редактировать файл ″/etc/default/racoon″, добавляя/изменяя строку

RACOON_ARGS="-l /var/log/racoon/racoon.log"

mky ★★★★★ ()
Ответ на: комментарий от Zombie_Troll

Не уверен, но по моему, после этого должен начать использоваться порт 4500:

2 16:58:09 racoon: [CentOffise]: [213.79.*.162] INFO: Selected NAT-T version: RFC 3947

Если есть возможность, посмотрите дамп пакетов со стороны 79.171.*.10, может там будут пакеты по порту 4500, которые просто не доходят до 213.79.*.162.

mky ★★★★★ ()
Ответ на: комментарий от mky

На 213.79.*.162 стоит прослушивание порта 4500
# tcpdump -n -i pppoe0 host 213.79.*.162

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on pppoe0, link-type NULL (BSD loopback), capture size 96 bytes
21:03:58.015422 IP 213.79.*.162.500 > 79.171.*.10.500: isakmp: phase 1 ? ident[E]
21:04:38.003668 IP 213.79.*.162.500 > 79.171.*.10.500: isakmp: phase 1 I ident
21:04:38.004234 IP 79.171.*.10.500 > 213.79.*.162.500: isakmp: phase 1 R ident
21:04:38.013158 IP 213.79.*.162.500 > 79.171.*.10.500: isakmp: phase 1 I ident
21:04:38.037294 IP 79.171.*.10.500 > 213.79.*.162.500: isakmp: phase 1 R ident
21:04:38.046547 IP 213.79.*.162.500 > 79.171.*.10.500: isakmp: phase 1 I ident[E]
21:04:48.039619 IP 79.171.*.10.500 > 213.79.*.162.500: isakmp: phase 1 R ident
21:04:48.044933 IP 213.79.*.162.500 > 79.171.*.10.500: isakmp: phase 1 I ident[E]
21:04:58.041487 IP 79.171.*.10.500 > 213.79.*.162.500: isakmp: phase 1 R ident
21:04:58.046944 IP 213.79.*.162.500 > 79.171.*.10.500: isakmp: phase 1 I ident[E]
21:04:58.047254 IP 213.79.*.162.500 > 79.171.*.10.500: isakmp: phase 1 I ident[E]
21:05:08.043346 IP 79.171.*.10.500 > 213.79.*.162.500: isakmp: phase 1 R ident
21:05:08.048757 IP 213.79.*.162.500 > 79.171.*.10.500: isakmp: phase 1 I ident[E]
21:05:18.045211 IP 79.171.*.10.500 > 213.79.*.162.500: isakmp: phase 1 R ident
21:05:18.048062 IP 213.79.*.162.500 > 79.171.*.10.500: isakmp: phase 1 I ident[E]
21:05:18.050324 IP 213.79.*.162.500 > 79.171.*.10.500: isakmp: phase 1 I ident[E]
21:05:38.048471 IP 213.79.*.162.500 > 79.171.*.10.500: isakmp: phase 1 I ident[E]
21:05:58.048766 IP 213.79.*.162.500 > 79.171.*.10.500: isakmp: phase 1 I ident[E]
21:06:38.031935 IP 213.79.*.162.500 > 79.171.*.10.500: isakmp: phase 1 I ident
21:06:38.032500 IP 79.171.*.10.500 > 213.79.*.162.500: isakmp: phase 1 R ident
21:06:38.041498 IP 213.79.*.162.500 > 79.171.*.10.500: isakmp: phase 1 I ident
21:06:38.065602 IP 79.171.*.10.500 > 213.79.*.162.500: isakmp: phase 1 R ident
21:06:38.078231 IP 213.79.*.162.500 > 79.171.*.10.500: isakmp: phase 1 I ident[E]
^C
23 packets captured
694 packets received by filter
0 packets dropped by kernel

На втором шлюзе, с которым удалось наладить работу, идёт дальше тоже по 500 порту... по крайней мере на 213.79.*.162 вообще ни кто не стучится.

Zombie_Troll ()
Ответ на: комментарий от Zombie_Troll

Не знаю, может порт 4500 и не используется, но я бы попробовал получить tcpdump с обоих сторон (после перезапуска racoon'ов), чтобы стравнить все ли пакеты проходят. Ну или попробовать назначить другой порт (порты).

mky ★★★★★ ()
Ответ на: комментарий от mky

Дам по этим портам пустой. Пробовал nat_traversal в режиме force, пакеты начинают идти по 4500 с тем же результатом что и по 500.

Zombie_Troll ()

Проблему не решил, а скорее обошёл: Создал GRE тунели на ubuntu и на pfsense и прописал маршрутизацию для них. IPSec так и не захотел поднимать, даже в туннелях.

Zombie_Troll ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.