iptable中文学习文档 三

摘自:linux宝库 (http://www.linuxmine.com)

 

 

unclean

此模块没有可选项,不过它试着匹配那些奇怪的、不常见的包。处在实验中。

 

tos

此模块匹配IP包首部的8位tos(服务类型)字段(也就是说,包含在优先位中)。

 

--tos tos

这个参数可以是一个标准名称,(用iptables -m tos -h 察看该列表),或者数值。

 

TARGET EXTENSIONS

iptables可以使用扩展目标模块:以下都包含在标准版中。

 

LOG

为匹配的包开启内核记录。当在规则中设置了这一选项后,linux内核会通过printk()打印一些关于全部匹配包的信息(诸如IP包头字段等)。

--log-level level

记录级别(数字或参看 syslog.conf(5))。

--log-prefix prefix

在纪录信息前加上特定的前缀:最多14个字母长,用来和记录中其他信息区别。

 

--log-tcp-sequence

记录TCP序列号。如果记录能被用户读取那么这将存在安全隐患。

 

--log-tcp-options

记录来自TCP包头部的选项。

--log-ip-options

记录来自IP包头部的选项。

 

MARK

用来设置包的netfilter标记值。只适用于mangle表。

 

--set-mark mark

 

REJECT

作为对匹配的包的响应,返回一个错误的包:其他情况下和DROP相同。

 

此目标只适用于INPUT、FORWARD和OUTPUT链,和调用这些链的用户自定义链。这几个选项控制返回的错误包的特性:

 

--reject-with type

Type可以是icmp-net-unreachable、icmp-host-unreachable、icmp-port- nreachable、icmp-proto-unreachable、 icmp-net-prohibited 或者 icmp-host-prohibited,该类型会返回相应的ICMP错误信息(默认是port-unreachable)。选项 echo-reply也是允许的;它只能用于指定ICMP ping包的规则中,生成ping的回应。最后,选项tcp-reset可以用于在INPUT链中,或自INPUT链调用的规则,只匹配TCP协议:将回应一个TCP RST包。

TOS

用来设置IP包的首部八位tos。只能用于mangle表。

 

--set-tos tos

你可以使用一个数值型的TOS 值,或者用iptables -j TOS -h 来查看有效TOS名列表。

MIRROR

这是一个试验示范目标,可用于转换IP首部字段中的源地址和目标地址,再传送该包,并只适用于INPUT、FORWARD和OUTPUT链,以及只调用它们的用户自定义链。

 

SNAT

这个目标只适用于nat表的POSTROUTING链。它规定修改包的源地址(此连接以后所有的包都会被影响),停止对规则的检查,它包含选项:

 

--to-source <ipaddr>[-<ipaddr>][:port-port]

可以指定一个单一的新的IP地址,一个IP地址范围,也可以附加一个端口范围(只能在指定-p tcp 或者-p udp的规则里)。如果未指定端口范围,源端口中512以下的(端口)会被安置为其他的512以下的端口;512到1024之间的端口会被安置为1024 以下的,其他端口会被安置为1024或以上。如果可能,端口不会被修改。

 

--to-destiontion <ipaddr>[-<ipaddr>][:port-port]

可以指定一个单一的新的IP地址,一个IP地址范围,也可以附加一个端口范围(只能在指定-p tcp 或者-p udp的规则里)。如果未指定端口范围,目标端口不会被修改。

 

MASQUERADE

只用于nat表的POSTROUTING链。只能用于动态获取IP(拨号)连接:如果你拥有静态IP地址,你要用SNAT。伪装相当于给包发出时所经过接口的IP地址设置一个映像,当接口关闭连接会终止。这是因为当下一次拨号时未必是相同的接口地址(以后所有建立的连接都将关闭)。它有一个选项:

 

--to-ports <port>[-port>]

指定使用的源端口范围,覆盖默认的SNAT源地址选择(见上面)。这个选项只适用于指定了-p tcp或者-p udp的规则。

 

REDIRECT

只适用于nat表的PREROUTING和OUTPUT链,和只调用它们的用户自定义链。它修改包的目标IP地址来发送包到机器自身(本地生成的包被安置为地址127.0.0.1)。它包含一个选项:

 

--to-ports <port>[<port>]

指定使用的目的端口或端口范围:不指定的话,目标端口不会被修改。只能用于指定了-p tcp 或 -p udp的规则。

 

DIAGNOSTICS

诊断

不同的错误信息会打印成标准错误:退出代码0表示正确。类似于不对的或者滥用的命令行参数错误会返回错误代码2,其他错误返回代码为1。

 

BUGS

臭虫

Check is not implemented (yet).

检查还未完成。

 

COMPATIBILITY WITH IPCHAINS

与ipchains的兼容性

iptables和Rusty Russell的ipchains非常相似。主要区别是INPUT 链只用于进入本地主机的包,而OUTPUT只用于自本地主机生成的包。因此每个包只经过三个链的一个;以前转发的包会经过所有三个链。其他主要区别是 -i 引用进入接口;-o引用输出接口,两者都适用于进入FORWARD链的包。当和可选扩展模块一起使用默认过滤器表时,iptables是一个纯粹的包过滤器。这能大大减少以前对IP伪装和包过滤结合使用的混淆,所以以下选项作了不同的处理:

-j MASQ

-M -S

-M -L

在iptables中有几个不同的链。

 

SEE ALSO

参见

iptables-HOWTO有详细的iptables用法,对netfilter-hacking-HOWTO也有详细的本质说明。

 

<think>嗯,用户想了解iptables的使用指南和配置示例。首先,我需要确定用户对iptables的了解程度。可能他们刚开始接触Linux防火墙,或者需要复习一些基本操作。根据提供的引用内容,我需要整合这些信息,确保回答准确且符合格式要求。 首先,系统级指令要求所有数学表达式用$...$,不过这里可能用不上,但要注意其他格式,比如代码块用反引号。然后,用户要求生成相关问题,放在最后。回答结构要清晰,分步骤说明,并且引用对应的引用标记。 用户提供的引用有关于保存规则、添加规则的命令、基本概念、firewalld的注意事项等。需要将这些信息组织成逻辑连贯的内容。可能需要分成几个部分,比如基本概念、常用命令、配置示例、注意事项等。 需要检查引用是否正确对应,比如引用[^1]对应保存规则,引用[^2]对应添加规则的命令,引用[^5]提到firewalld的替换。在回答中引用这些内容时,要自然地在相关段落末尾添加标识。 另外,用户可能对iptables和firewalld的关系有疑问,所以要在注意事项中提到CentOS 7以上版本使用firewalld,避免混淆。配置示例部分可以包括开放端口、禁止IP、NAT转发等常见场景,每个示例给出代码块,并说明用途。 最后,生成的相关问题要围绕用户可能进一步想了解的内容,比如表和链的作用、迁移到firewalld、调试技巧、规则顺序影响等。确保问题有针对性,帮助用户深入学习。 需要确保语言简洁,步骤清晰,避免技术术语过多,同时保持专业性。检查LaTeX语法是否正确,虽然这里可能用不上数学公式,但代码块和引用格式要正确。确认所有引用标记正确对应,没有遗漏或错误。</think>### iptables 使用指南及配置示例 #### 一、基本概念 iptables 是 Linux 系统中管理网络流量规则的核心工具,通过定义**表**(Tables)、**链**(Chains)和**规则**(Rules)来实现防火墙功能。主要表包括: - **filter 表**:默认表,用于数据包过滤 - **nat 表**:网络地址转换 - **mangle 表**:修改数据包头部信息 网络流量会依次经过不同链的处理流程,例如输入链(`INPUT`)、转发链(`FORWARD`)和输出链(`OUTPUT`)[^3][^4]。 --- #### 二、常用命令格式 1. **添加规则** ```bash sudo iptables -A <链名> -p <协议> --dport <端口> -j <动作> ``` 示例:允许 SSH 连接 ```bash sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT ``` 2. **查看规则** ```bash sudo iptables -L -n -v # 显示详细规则列表 ``` 3. **删除规则** ```bash sudo iptables -D <链名> <规则编号> # 按编号删除 sudo iptables -F # 清空所有规则 ``` --- #### 、配置示例 **场景 1:开放 Web 服务端口** ```bash sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # HTTP sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT # HTTPS ``` **场景 2:禁止特定 IP 访问** ```bash sudo iptables -A INPUT -s 192.168.1.100 -j DROP ``` **场景 3:配置 NAT 转发** ```bash sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # 共享上网 ``` --- #### 四、规则持久化 临时规则重启后会丢失,需保存至配置文件: ```bash sudo iptables-save > /etc/iptables/rules.v4 # IPv4规则保存[^1] ``` --- #### 五、注意事项 1. 操作前建议备份现有规则 2. CentOS 7+/RHEL 7+ 默认使用 `firewalld`,如需切换回 iptables: ```bash systemctl stop firewalld systemctl mask firewalld yum install iptables-services ``` [^5] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值