iptables - сделать службы DMZ доступными только через один публичный IP-адрес - PullRequest
0 голосов
/ 10 марта 2019

Используя iptables, я пытаюсь сделать все службы DMZ (в настоящее время размещенные на частных адресах за брандмауэром) доступными через один и только один общедоступный IP-адрес - внешний брандмауэр.Я достиг этого с помощью NATTing, однако посторонние все еще могут получить доступ к частным адресам DMZ, чего я хочу избежать.

Пример диаграммы следующий:

A__________________________FW______________________B

Description:

(public internet)______(firewall)_______(DMZ server in private IP)

Interface(s) alongside IP addresses:

eth0__________________eth0_&_eth1__________________eth0

1.1.1.2___________1.1.1.2__&__2.2.2.1_____________2.2.2.2

B работает nc -lp 2000, чтобы открыть общедоступный порт 2000.

Я хочу добиться того, чтобы А мог получить доступ к службе на В, используя только общедоступный IP-адрес брандмауэра, и на самом деле я могу добиться этого благодаряNAT, запустив:

nc 1.1.1.1 2000

ОДНАКО, моя проблема в том, что я могу добиться того же, запустив

nc 2.2.2.2 2000

, чего я не хочу, потому что кто-то извне теперь можетдоступ к частному IP-адресу.

Я использую следующие правила iptables:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2000 -j DNAT --to-destination 2.2.2.2

iptables -A FORWARD -i eth0 -o eth1 -p tcp --syn --dport 2000 -m conntrack --ctstate NEW -j ACCEPT

iptables -A FORWARD -i eth0 -o eth1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Не могли бы вы помочь мне достичь того же результата, разрешив доступ только через 1.1.1.1?

...