From Fedora Project Wiki
Line 11: | Line 11: | ||
== CLI(命令行接口) == | == CLI(命令行接口) == | ||
=== 对 iptables 的更改即时生效 === | === 对 iptables 的更改即时生效 === | ||
下面的过程可以在防火墙运行的情况下改变防火墙策略。 | |||
{{admon/caution|警告|不当的 iptables 规则可能会破坏 Fedora 系统的网络连接。}} | |||
阅读 man 手册中关于 iptables 的部分(man iptables)来获取深入的解释和高级复杂的规则实例。 | |||
{{admon/important|需要超级用户权限|这些命令必须要有超级用户权限才能执行,请使用 sudo 或者 su 来获取超级用户权限。}} | |||
==== 列出现有规则 ==== | ==== 列出现有规则 ==== | ||
使用 <pre>iptables -L</pre> 命令可以查看当前正在使用的 iptables 规则。 | |||
{{admon/note|端口数值|使用 -L 选项列出的端口数值是其对应的服务名称而不是端口号。如果要看端口号,请包含 '''-n''' 选项。 | |||
<pre>iptables -L -n</pre> }} | |||
{{admon/note|查看计数器|使用 -L 选项列出的规则并不包含匹配的计数。使用 '''-v''' 选项来显示匹配计数。 | |||
<pre>iptables -L -v</pre> }} | |||
允许已经建立及其相关的连接、icmp 请求、所有本地数据和 ssh 通讯的 iptables 规则例子: | |||
<pre>[root@server ~]# iptables -L | |||
Chain INPUT (policy DROP) | |||
target prot opt source destination | |||
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED | |||
ACCEPT icmp -- anywhere anywhere | |||
ACCEPT all -- anywhere anywhere | |||
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh | |||
Chain FORWARD (policy ACCEPT) | |||
target prot opt source destination | |||
Chain OUTPUT (policy ACCEPT) | |||
target prot opt source destination </pre> | |||
注意规则是按顺序匹配的,只要有匹配的规则便不会再往下接着检查。因此,举个例子来说,如果一条规则拒绝 ssh 连接,其后又有一条规则允许 ssh,那么就会应用拒绝 ssh 的规则,后面允许 ssh 连接的规则就不会应用,也就无法起到作用。 | |||
==== 追加规则 ==== | ==== 追加规则 ==== | ||
Line 23: | Line 61: | ||
==== 清空规则 ==== | ==== 清空规则 ==== | ||
=== 使规则永久生效 === | === 使规则永久生效 === |
Revision as of 09:39, 23 February 2014
在这篇文档里里我们将主要举例介绍三种编辑 iptables 规则的方式:
- CLI: iptables 命令行接口和系统配置文件 /etc/sysconfig/iptables.
- TUI 基于文本的接口: setup 或 system-config-firewall-tui
- GUI: system-config-firewall
需要注意的是本篇文章只是说明了如何编辑已有 iptables 规则,并不包含开始的创建规则链。
CLI(命令行接口)
对 iptables 的更改即时生效
下面的过程可以在防火墙运行的情况下改变防火墙策略。
阅读 man 手册中关于 iptables 的部分(man iptables)来获取深入的解释和高级复杂的规则实例。
列出现有规则
使用
iptables -L
命令可以查看当前正在使用的 iptables 规则。
允许已经建立及其相关的连接、icmp 请求、所有本地数据和 ssh 通讯的 iptables 规则例子:
[root@server ~]# iptables -L Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT icmp -- anywhere anywhere ACCEPT all -- anywhere anywhere ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
注意规则是按顺序匹配的,只要有匹配的规则便不会再往下接着检查。因此,举个例子来说,如果一条规则拒绝 ssh 连接,其后又有一条规则允许 ssh,那么就会应用拒绝 ssh 的规则,后面允许 ssh 连接的规则就不会应用,也就无法起到作用。