以下命令均按预期运行。我发布此信息只是为了确保我所做的事情不会影响其他服务。我有两个问题:
1) 我注意到默认情况下有一些防火墙规则。为什么我再也看不到它们了?
2)停止服务后 iptables 如何工作?
[root@server home]# /etc/init.d/iptables status
Table: filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
Chain RH-Firewall-1-INPUT (2 references)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
3 ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0
5 ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353
6 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631
7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:631
8 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
9 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
10 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
[root@server home]# /etc/init.d/iptables stop
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
[root@server home]# /sbin/iptables -t nat -I PREROUTING -s ! 127.0.0.1 -p tcp --dport 3306 -j REDIRECT --to-ports 4040
[root@server home]# echo $?
0
[root@server home]# /etc/init.d/iptables status
Table: nat
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination
1 REDIRECT tcp -- !127.0.0.1 0.0.0.0/0 tcp dpt:3306 redir ports 4040
Chain POSTROUTING (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
[root@server home]# /sbin/iptables -t nat -D PREROUTING -s ! 127.0.0.1 -p tcp --dport 3306 -j REDIRECT --to-ports 4040
[root@server home]# echo $?
0
[root@server home]# /etc/init.d/iptables status
Table: nat
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
答案1
iptables 目录不是实际上,像 apache 这样的服务就是服务。iptables 是内核防火墙(称为 Netfilter)的用户空间接口。因此,通过停止 iptables“服务”,您实际上只是卸载了所有防火墙规则并将默认策略设置为ACCEPT
。
关于您第一个关于默认规则的问题,您需要查看发行版的 iptables 配置文件。如果您使用的是基于 RHEL 的发行版,则该文件通常是/etc/sysconfig/iptables
。这些规则未显示的原因是,当您停止 iptables“服务”时,它们都从防火墙配置中清除了。您希望保留的所有防火墙规则都需要添加到此文件中。如果您在命令行上添加 iptables 规则,则下次重新启动 iptables 或重新启动服务器时,它将丢失。