我正在用虚拟机构build一个小型办公室networking。 我的模式是这样的:
NAT正在工作,而计算机B可以使用A的网关访问互联网。 我将一些传入端口从Aredirect到B(例如,如果A接收到端口80的请求,它将自动进入计算机B的Apache)。
问题是我真的不知道如何从计算机A打开/closures计算机B的端口。我知道如何closures一个端口:
iptables -A INPUT -p tcp --dport 80 -j DROP
它将拒绝所有到端口80的input(不是输出)连接。但是,这对于主接口eth0是有效的。 举例来说,我试图为计算机B,端口80放入和传出连接:
iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 -j DROP iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j DROP
但它不起作用。 而我无法弄清楚我做错了什么。 任何线索?
第一条线应与运动(源端口是80)。 还要小心使用-A。 这将规则附加到链(最后添加规则)。 如果一条规则匹配,那么其余规则不再被评估。 所以如果你想确保使用-I(在链的开头插入):
iptables -I FORWARD -i eth1 -o eth0 -p tcp --sport 80 -j DROP iptables -I FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j DROP
我相信你错过了“OUTPUT”指令。
请试试这个:
iptables -A OUTPUT -p tcp --dport 80 -j DROP
这将丢弃端口80上的所有出站stream量。