iptables-仅通过一个公共IP地址提供DMZ服务

时间:2019-03-09 23:39:18

标签: firewall iptables dmz

我正在尝试使用iptables使所有DMZ服务(当前托管在防火墙后面的私有地址中)通过一个唯一的公共IP地址(外部防火墙的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。

我想要实现的是A能够仅通过使用防火墙的公共IP地址访问B上的服务,而我实际上可以通过运行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进行访问,是否可以帮助我达到相同的结果?

0 个答案:

没有答案