Страница 1 из 1

pfSense IPSec+NAT-Traversal не получается пробится через NAT

Добавлено: 2014-03-18 19:17:53
Lazy caT
Привет всем.

Поставил на виртуалку pfSense решил попробовать связать два pfSense'а посредством IPSec c использованием NAT-Traversal.
Только вот, один смотрит в инет прямым IP, а второй за NAT'ом. При совершенно идентичных настройках обоих pfSense'ов по
каким-то, непонятным причинам, IPSec не "поднимается".

Причем первый pfSense, (который с прямым IP), при настройке IPSec без NAT-Traversal, совершенно без проблем подключается
к шлюзу (FreeBSD+racoon, тоже с прямым IP). А вот к pfSense'у, который за NAT'ом (за этим же шлюзом), подключаться не хочет.

Firewall и там и там настроен на пропуск ISAKMP ESP и NAT-T

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

Правила firewall'а
IPv4 ESP 	pass 	all 	any to any
IPv4 UDP 	pass 	all 	any to any 500 (ISAKMP)
IPv4 UDP 	pass 	all 	any to any 4500 (IPsec NAT-T)
и
правило IPSec'а "all from any to any"
Конфиг того что за NAT'ом:

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

VPN: IPsec: Edit Phase 1

Internet Protocol: IPv4
Interface: WAN
Remote gateway: XXX.XXX.XXX.XXX

Phase 1 proposal (Authentication)

Authentication method: Mutual PSK
Negotiation mode: main

My identifier: pfsense.home.net
Peer identifier: pfsense.remote.net

Pre-Shared Key: 123456

Policy Generation: Unique
Proposal Checking: Obey
Encryption algorithm: AES 128bit
Hash algorithm: SHA-1
DH key group: 2 (1024 bit)
Lifetime seconds: 86400

NAT Traversal: Enable
Dead Peer Detection: Enable
seconds: 10
retries: 5


VPN: IPsec: Edit Phase 2

Mode: Tunnel IPv4
Local Network
	Type: Network 
	Address: 192.168.1.0/24

In case you need NAT/BINAT on this network specify the address to be translated
Type: Address
Address: 192.168.5.13 (!!! Здесь указывал IP шлюза, который находится за NAT'ом)

Remote Network
	Type:	Network
	Address: 192.168.18.0/24

Phase 2 proposal (SA/Key Exchange)

Protocol: ESP
Encryption algorithms: AES 128-bit
Hash algorithms: SHA1
PFS key group: off
Lifetime 	seconds: 28800

Automatically ping host IP address: 192.168.18.1
Конфиг того что с прямым IP:

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

VPN: IPsec: Edit Phase 1

Internet Protocol: IPv4
Interface: WAN
Remote gateway: YYY.YYY.YYY.YYY (!!! тут указан внешний IP шлюза за которым находится второй pfSense)

Phase 1 proposal (Authentication)

Authentication method: Mutual PSK
Negotiation mode: main

My identifier: pfsense.remote.net
Peer identifier: pfsense.home.net

Pre-Shared Key: 123456

Policy Generation: Unique
Proposal Checking: Obey
Encryption algorithm: AES 128bit
Hash algorithm: SHA-1
DH key group: 2 (1024 bit)
Lifetime seconds: 86400

NAT Traversal: Enable
Dead Peer Detection: Enable
seconds: 10
retries: 5


VPN: IPsec: Edit Phase 2

Mode: Tunnel IPv4
Local Network
	Type: Network 
	Address: 192.168.18.0/24

	In case you need NAT/BINAT on this network specify the address to be translated
	Type: None
	Address:

Remote Network
	Type:	Network
	Address: 192.168.1.0/24

Phase 2 proposal (SA/Key Exchange)

Protocol: ESP
Encryption algorithms: AES 128-bit
Hash algorithms: SHA1
PFS key group: off
Lifetime 	seconds: 28800

Automatically ping host IP address: 192.168.1.1
В конечном итоге, один сервак до другого достучаться не может...

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

Mar 18 19:50:37 	racoon: ERROR: phase1 negotiation failed due to time up. 3bf28ebc9a474745:7ade12ff14755e90
Mar 18 19:50:54 	racoon: [YYY.YYY.YYY.YYY]: INFO: IPsec-SA request for YYY.YYY.YYY.YYY queued due to no phase1 found.
Mar 18 19:50:54 	racoon: [YYY.YYY.YYY.YYY]: INFO: initiate new phase 1 negotiation: XXX.XXX.XXX.XXX[500]<=>YYY.YYY.YYY.YYY[500]
Mar 18 19:50:54 	racoon: INFO: begin Identity Protection mode.
Mar 18 19:51:26 	racoon: [YYY.YYY.YYY.YYY]: [YYY.YYY.YYY.YYY] ERROR: phase2 negotiation failed due to time up waiting for phase1 [Remote Side not responding]. ESP YYY.YYY.YYY.YYY[0]->XXX.XXX.XXX.XXX[0]
Mar 18 19:51:26 	racoon: INFO: delete phase 2 handler.
и

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

Mar 18 21:46:12 	racoon: ERROR: phase1 negotiation failed due to time up. 401a1fc0abda8c7f:0000000000000000
Mar 18 21:49:47 	racoon: [XXX.XXX.XXX.XXX]: INFO: IPsec-SA request for XXX.XXX.XXX.XXX queued due to no phase1 found.
Mar 18 21:49:47 	racoon: [XXX.XXX.XXX.XXX]: INFO: initiate new phase 1 negotiation: 192.168.5.13[500]<=>XXX.XXX.XXX.XXX[500]
Mar 18 21:49:47 	racoon: INFO: begin Identity Protection mode.
Mar 18 21:50:18 	racoon: [XXX.XXX.XXX.XXX]: [XXX.XXX.XXX.XXX] ERROR: phase2 negotiation failed due to time up waiting for phase1 [Remote Side not responding]. ESP XXX.XXX.XXX.XXX[0]->192.168.5.13[0]
Mar 18 21:50:18 	racoon: INFO: delete phase 2 handler.
Видимо где-то что-то не так настраивал... IPSec c NAT-Traversal первый раз пытаю.

Есть у кого-нибудь соображения, что где надо донастроить?

И вообще, как правильно настроить IPSec c NAT-Traversal?...
В инете к сожалению нет толковой статьи на эту тему...

Re: pfSense IPSec+NAT-Traversal не получается пробится через

Добавлено: 2014-05-26 19:40:04
andrian_freebsd
Для начала в конфиге "racoon" на хосте что за NAT впишы:

listen
{
isakmp 192.168.255.3 [500];
}


192.168.255.3 - свой адрес.

Re: pfSense IPSec+NAT-Traversal не получается пробится через

Добавлено: 2014-05-26 19:46:54
andrian_freebsd
Такое впечатление что NAT во внутрь пакеты не пропускает!

Re: pfSense IPSec+NAT-Traversal не получается пробится через

Добавлено: 2014-05-27 3:58:39
Lazy caT
andrian_freebsd писал(а):Для начала в конфиге "racoon" на хосте что за NAT впишы:

listen
{
isakmp 192.168.255.3 [500];
}


192.168.255.3 - свой адрес.
Не, я могу конечно зайти в консоль pfSense и в самом конфиге самого racoon'a это прописать но, там web-интерфейс...

Re: pfSense IPSec+NAT-Traversal не получается пробится через

Добавлено: 2014-05-27 16:17:48
andrian_freebsd
pfSense - файрвол, а я тебе про racoon пишу ( http://www.freebsd.org/doc/en_US.ISO885 ... ipsec.html )! Извени но проще использовать голый "pf" чем pfSense, который и эсть - pf только с веб мордой ...

Re: pfSense IPSec+NAT-Traversal не получается пробится через

Добавлено: 2014-05-27 19:22:31
Lazy caT
andrian_freebsd писал(а): ... pfSense, который и эсть - pf только с веб мордой ...
Ну, я бы не сказал... Сам всё гораздо сложнее и запутанней чем есть всё на самом деле...

Ну да ладно, я не об этом...
andrian_freebsd писал(а):pfSense - файрвол, а я тебе про racoon пишу ( http://www.freebsd.org/doc/en_US.ISO885 ... ipsec.html )!...
Так это-то всё понятно, я не однократно перелопачивал эту документацию...
В подтверждении этому контора, в которой работаю, использует, и уже достаточно продолжительное время, для связи с удаленными филиалами IPSec (racoon) на основном шлюзе + racoon, D-Link DI824, D-Link DI808, D-Link DSR-150N ну и racoon на pfSense и т.д., в качестве шлюзов в филиалах... И, собственно всё работает... Но, работает только на белых IP...
А вот заставить весь этот зоопарк работать из внутренних подсетей, без белого IP (есть пара филиалов, работают из подсети провайдера, белый IP им провайдер не выдает, ну никак), используя NAT-T, ну никак не получается...

Я конечно буду продолжать "копать"... Как чего накопаю выложу сюда... :)

Re: pfSense IPSec+NAT-Traversal не получается пробится через

Добавлено: 2014-05-27 20:16:38
andrian_freebsd
Запусти на проблемном хосте tcpdump и посмотри что за пакеты к тебе идут в мометн обмена служебной информации для установления впн. Временно на файрволе (pfSense) добав исключения айпи адрес соседа. 1. С соседа пропингуй хост что за натом (если файрвол прокидивает пакеты во внутрь - tcpdump ето тебе покажет, если нет, смотри на файрвол (pfSense) почему ...) Посмотри на самом pfSense что творится (если оно такое может, судя что pfSense на freebsd - значит tcpdump должен быть ) с пакетами и куда они идут с назначением на твой проблемний хост что за натом ...
Посмотрел ищораз твой лог установления соединения
-------
Mar 18 21:50:18 racoon: [XXX.XXX.XXX.XXX]: [XXX.XXX.XXX.XXX] ERROR: phase2 negotiation failed due to time up waiting for phase1 [Remote Side not responding]. ESP XXX.XXX.XXX.XXX[0]->192.168.5.13[0
-------
и мне кажется что pfSense инициирует соединение по tcp 500, а за натом нужно udp 500 ... потому .... for phase1 [Remote Side not responding или нат не прокидывает пакеты во внутрь ...

Re: pfSense IPSec+NAT-Traversal не получается пробится через

Добавлено: 2014-05-27 20:23:44
andrian_freebsd
У меня имено так и работает три отделения за натом, потому пишу куда надо смотреть в первую очередь... Правда без pfSense - а голый pf и голый ipsec ...