Объединить VPN двух брандмауэров Watchguard в один брандмауэр

У меня два разных межсетевых экрана Watchguard XTM 515. В каждом из них создан собственный набор виртуальных частных сетей.

Теперь мне нужно использовать только один межсетевой экран для обработки виртуальных частных сетей обоих. Но проблема в том, что я не знаю PSK VPN (я унаследовал этот брандмауэр после того, как присоединился к моей работе). Попросить клиентов изменить PSK не вариант для меня.

Теперь я знаю , что когда я экспортирую конфигурацию (файл XML) брандмауэра, он включает PSK всех VPN. Который' s причина того, что восстановление этой конфигурации на другом брандмауэре работает. Но я не знаю, как получить эти PSK. Я проверяю XML-файлы конфигурации с помощью текстового редактора, и кажется, что они зашифрованы (здесь неудивительно). Но они должны быть зашифрованы с использованием статического ключа, поскольку эту конфигурацию можно загрузить на любой брандмауэр. Просто я не знаю схему и ключ дешифрования.

Моя цель, конечно же, не в том, чтобы взломать шифрование файлов конфигурации Watchguard XML. Все, что мне нужно сделать, это объединить два межсетевых экрана в один. Я думал о ручном объединении разделов файлов конфигурации XML, экспортированных из обоих брандмауэров, но это кажется сложной задачей. Я могу общаться с контейнерами через интерфейс, как с физической машиной. Один из этих контейнеров - постфикс ...

У меня есть система со статическим IP-адресом, в которой работает несколько контейнеров LXC.
Я могу связываться с контейнерами через интерфейс, как с физической машиной.
Один из таких контейнеров - постфиксный сервер. Я перенаправляю порт 25 от хоста к контейнеру, однако в процессе исходный IP-адрес заменяется интерфейсным, что приводит к сбоям проверки rDNS postfix.

Настройка
Доступ хоста к Интернету через интерфейс eth0 , IP 188.xxx.xxx.xxx
IP-адрес контейнера 192.168.1.12 ( br2 ) на сайте хостов и 192.168.1.2 ( eth0 ) на стороне контейнера.
Контейнер получает доступ в Интернет через хост в качестве шлюза по умолчанию и правила iptable.

Существуют и другие контейнеры с аналогичными настройками, контейнеры не взаимодействуют друг с другом напрямую, а по правилам iptable для указанных портов.

Я публикую все правила iptable на случай, если они мешают друг другу

# Generated by iptables-save v1.4.21
*nat
:PREROUTING ACCEPT [760:48985]
:INPUT ACCEPT [707:45761]
:OUTPUT ACCEPT [114:7445]
:POSTROUTING ACCEPT [50:2740]

# Route HTTP & HTTPS to web container
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.1:80
-A PREROUTING -i eth0 -p tcp -m tcp --dport 443 -j DNAT --to-destination 192.168.1.1:443

# Route internal mysql request to mysql container
-A PREROUTING -i br1 -p tcp -m tcp --dport 3306 -j DNAT --to-destination 192.168.1.3:3306
-A PREROUTING -i br2 -p tcp -m tcp --dport 3306 -j DNAT --to-destination 192.168.1.3:3306

# Route mail from outside to mail container
-A PREROUTING -i eth0 -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.1.2:25
-A PREROUTING -i eth0 -p tcp -m tcp --dport 143 -j DNAT --to-destination 192.168.1.2:143
-A PREROUTING -i eth0 -p tcp -m tcp --dport 587 -j DNAT --to-destination 192.168.1.2:587
-A PREROUTING -i eth0 -p tcp -m tcp --dport 993 -j DNAT --to-destination 192.168.1.2:993
-A PREROUTING -i eth0 -p tcp -m tcp --dport 4190 -j DNAT --to-destination 192.168.1.2:4190

# Route mail from web container to mail container
-A PREROUTING -i br1 -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.1.2:25
-A PREROUTING -i br1 -p tcp -m tcp --dport 143 -j DNAT --to-destination 192.168.1.2:143
-A PREROUTING -i br1 -p tcp -m tcp --dport 587 -j DNAT --to-destination 192.168.1.2:587
-A PREROUTING -i br1 -p tcp -m tcp --dport 993 -j DNAT --to-destination 192.168.1.2:993
-A PREROUTING -i br1 -p tcp -m tcp --dport 4190 -j DNAT --to-destination 192.168.1.2:4190

# Mark packages
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -o br1 -j MASQUERADE
-A POSTROUTING -o br2 -j MASQUERADE
-A POSTROUTING -o br3 -j MASQUERADE

COMMIT
# Completed
# Generated by iptables-save v1.4.21
*filter
:INPUT ACCEPT [35371:3912708]
:FORWARD ACCEPT [48:2620]
:OUTPUT ACCEPT [29159:6870938]

# All containers are allowed to place calls from inside to outside
-A FORWARD -i eth0 -o br1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o br2 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o br3 -m state --state RELATED,ESTABLISHED -j ACCEPT

COMMIT
# Completed

IP Route, если это имеет значение

192.168.1.1     *               255.255.255.255 UH    0      0        0 br1
192.168.1.2     *               255.255.255.255 UH    0      0        0 br2
192.168.1.3     *               255.255.255.255 UH    0      0        0 br3

Как мне изменить эти правила, чтобы сохранить исходный IP, или мне следует подойти к этому по-другому?

0
задан 18 July 2016 в 00:14
1 ответ

Бросьте эти правила:

-A POSTROUTING -o br1 -j MASQUERADE
-A POSTROUTING -o br2 -j MASQUERADE

Они выполняют SNAT на всем трафике, идущем к br1 и br2. Обычно вам нужно только одно правило MASQUERADE на интерфейсе, подключенном к Интернету.

Если бы каждый контейнер находился на отдельном мосту, я бы разместил контейнеры в разных подсетях. Они не должны быть полными /24s. A /30 будет достаточно для маршрутизации одного IP-адреса.

2
ответ дан 4 December 2019 в 13:39

Теги

Похожие вопросы