Назад | Перейти на главную страницу

iptables пакеты DNAT в туннель IPSEC openswan

У меня следующая настройка сети:

                                        +-----------------------------------+
                                        |                                   |
+------------------------+              |            Public Box             |
|       Client Box       |    IPSEC     |       public IP: x.x.x.x          |
|     192.168.13.21      +--------------+ source IP for IPSEC: 192.168.23.1 |
+------------------------+              |                                   |
                                        +-----------------------------------+

Клиентский ящик не имеет общедоступного IP-адреса (он скрыт за NAT-маршрутизатором, который сам получает адрес 10.xxx/8 от интернет-провайдера (NAT операторского уровня), но у него есть постоянно работающий туннель IPSEC к общедоступному ящику. Я могу общаются между общедоступным ящиком и клиентским ящиком по их адресам 192.xxx. Общий ящик настроен на использование IP-адреса 192.168.23.1 для связи внутри туннеля IPSEC, а также доступен через этот адрес из клиентского ящика и других ящиков. общедоступный IP-адрес Public Box не находится в доменах шифрования (левая подсеть / правая подсеть) конфигурации IPSEC.

Пока все работает отлично. Теперь цель состоит в том, чтобы сделать один IP-порт (443) клиентского ящика общедоступным из Интернета, перенаправляя любое соединение, направленное на порт 10443 общедоступного IP-адреса общего ящика, на порт 443 клиентского ящика через туннель IPSEC. .

Я пробовал использовать следующее правило (у меня все политики на ACCEPT)

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 10443 -j DNAT --to 192.168.13.21:443

Это не сработало. При попытке подключиться по telnet к порту 10443 Public Box я получаю сообщение «telnet: подключиться к адресу x.x.x.x: сеть недоступна»

Причина, по-видимому, в том, что Public Box пытается найти IP-адрес 192.168.13.31 через ARP, но не устанавливает соединение в туннель IPSEC.

00:26:42.649885 IP 88.217.180.252.34730 > x.x.x.x.10443: Flags [S], seq 17484960, win 65535, options [mss 1412,nop,wscale 5,nop,nop,TS val 1133369435 ecr 0,sackOK,eol], length 0
00:26:42.650012 ARP, Request who-has 192.168.13.21 tell x.x.x.x, length 28

Я считаю, что это связано с тем, что адрес ИСТОЧНИКА этого пакета является адресом источника отправителя соединения, поэтому он не будет упакован в туннель (туннель направляет только 192.168.23.0/24 <--> 192.168.13.0/24 ).

Итак, мой вопрос: возможно ли NAT адрес ИСТОЧНИКА входящего пакета на 192.168.23.1, чтобы он маршрутизировался через туннель IPSEC в клиентский ящик, и любой ответный пакет снова приходил в общий ящик, чтобы получить " un-masqued "и отправлен обратно отправителю?

Это вообще возможно?