我已经运行了 iptables 并且应用了最新的规则(即我重新启动了服务并且它显示一切“正常”)。
我只使用 system-config-firewall 编辑/定义任何规则,因此我不应该犯手动错误。如果可以避免,我不想手动编辑它。
我以为我已经配置好了,这样我的 Apache 端口80
和443
就打开了,但 Tomcat 监听的端口(即 )没有打开8080
。8443
然而,事实并非如此... 我可以在任何机器上毫无问题地浏览它们。
最终我确实希望 Tomcat 端口可访问,但我不明白为什么它们已经可以访问。我原以为我需要明确打开它们。
此外,在我添加规则明确打开它们之前,我的所有邮件端口也都是可以访问的(110
,,,,... )同样,我确实希望它们保持打开状态143
,但我不明白为什么它们总是打开的?587
993
995
这是我的 iptables 输出。为什么一切似乎都是开放的?可能是因为没有 OUTPUT 规则?此外,为什么似乎有重复的规则?system-config-firewall 不控制此类重复吗?我该如何清理它?我想只能通过手动编辑...
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 2834 692K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 5 511 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
3 14 990 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
4 114 6717 ACCEPT all -- eth0 * 0.0.0.0/0 0.0.0.0/0
5 0 0 ACCEPT all -- eth1 * 0.0.0.0/0 0.0.0.0/0
6 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
7 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
8 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443
9 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25
10 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:993
11 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:995
12 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
13 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
14 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443
15 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:993
16 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:995
17 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:110
18 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:143
19 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:587
20 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:465
21 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
3 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
4 0 0 ACCEPT all -- eth0 * 0.0.0.0/0 0.0.0.0/0
5 0 0 ACCEPT all -- eth1 * 0.0.0.0/0 0.0.0.0/0
6 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT 3208 packets, 1537K bytes)
num pkts bytes target prot opt in out source destination
答案1
参见 INPUT 链中的第 3、4 和 5 行 - 这些规则允许来自接口 eth0、eth1 和 lo 的任何端口的任何数据包通过。IPTables 使用 first-match-rule,因此当数据包获得允许/拒绝它的第一个规则时,它将被应用。您应该只设置针对确切端口的规则并拒绝任何其他流量。