2016-03-18 3 views
-1

У меня есть следующая конфигурация:Блокирование до пункта назначения с NAT и IPTables

ServerA: 192.168.168.200
ServerB: 172.23.10.10

Они разделены коробкой RedHat Я пытаюсь настроить как устройство NAT. Коробка настраивается следующим образом:

eth0: 172.23.10.1
eth1: 192.168.168.254
eth1: 0: 192.168.168.10

Я пытаюсь разрешить ServerA только общаться с ServerB используя адрес 192.168.168.10, который должен отображаться через NAT на адрес 172.23.10.10.

ServerA (192.168.168.x) <-NAT ServerB (172.23.10.x)

Я установил следующие IPTables править только на коробке RedHat:

iptables -t nat -A PREROUTING -d 192.168.168.10 -j DNAT --to-destination 172.23.10.10

Это, как представляется, успешно реализовать NAT перевода. Например, когда я пинг 192.168.168.10 из ServerA, он успешно достигает ServerB на его интерфейс 172.23.10.10 (и получает ответ).

ПРОБЛЕМА заключается в том, что ServerA по-прежнему может достигать ServerB непосредственно над 172.23.10.10, что я хочу запретить.

Как я могу сохранить это сопоставление NAT на месте, блокируя доступ к фактическому адресу назначения?

ответ

0

Вы не вставляете свой полный выход iptables (iptables -vL -n nat), так что это предположение, но я ставлю, так как это RHEL, что ваша таблица PREROUTING имеет политику «ACCEPT» по умолчанию, поэтому трафик пропускает линию NAT, попадает в политику и принимается.

попробовать: iptables -n nat -P PREROUTING DROP

+0

Я не уверен, что NAT был пропуск (так как NAT работает), но, видимо, вы правы, что по умолчанию ACCEPT на PREROUTING позволяет через все (даже трафик, не NAT). Я не совсем уверен, что понимаю, почему PRETOUTING таблицы NAT управляет трафиком, отличным от NAT, но ваше решение работает ... с одной небольшой опечаткой: 'iptables -t nat -P PREROUTING DROP' – BenH