黑基网 首页 学院 系统管理 查看内容

运维——Linux防火墙iptables语法详解

2017-7-9 12:32| 投稿: xiaotiger |来自: 互联网

摘要: 在Linux防火墙中,对于数据报而言,有以下几个流向:PREROUTING--FORWARD--POSTROUTINGPREROUTING--INPUT--本机OUTPUT--POSTROUTING数据报的流向主要流向其实也是iptables的两种工作模式:用作NAT路由器用作主机防火 ...

在Linux防火墙中,对于数据报而言,有以下几个流向:

PREROUTING-->FORWARD-->POSTROUTING

PREROUTING-->INPUT-->本机OUTPUT-->POSTROUTING

数据报的流向主要流向其实也是iptables的两种工作模式:

  • 用作NAT路由器

  • 用作主机防火墙

iptables会根据不同的数据处理包处理功能不同的规则表。它包括如下3个表:filter、nat和mangle。

  • filter是默认的表,包含真正的防火墙过滤规则。内建的规则链包括:INPUT、OUTPUT和FORWARD。

  • nat表包含源、目的地址及端口转换使用的规则,内建的规则链包括PERROUTING、OUTPUT和POSTROUTING。

  • mangle表包含用于设置特殊的数据包路由标志的规则。随后filter表中的规则会检查这些标志。内建的规则链包括:PERROUTING、INPUT、FORWARD、POSTROUTING和OUTPUT。

表中相应的相关规则链功能如下:

  • INPUT链:当一个数据包由内核中的路由计算确定为本地的Linux系统后,它会通过INPUT链的检查。

  • OUTPUT链:保留给系统自身生出的数据包

  • FORWARD键:经过Linux系统路由的数据包(即当iptables防火墙用于连接两个网络时,两个网络之间的数据包必须流经该防火墙)

  • PREROUTING链:用于修改目的地址(DNAT)

  • POSTROUTING链:用于修改源地址(SNAT)

iptables详细语法

iptables [-t 表名] <-A|I|D|R> 链名[规则编号] [-i|o 网卡名称] [-p 协议类型] [-s 源IP地址|源子网] [--sport 源端口号] [-d 目标IP地址|目标子网] [--dport 目标端口号] <-j 动作>

注意:此语法规则详细,逻辑清晰,推荐记忆此语法格式。在刚开始写iptables规则时就应该养成良好的习惯,用此语法规则来规范脚本,对今后的工作会大有帮助。

下面关于语法的详细说明:

(1)、定义默认策略

作用:当数据包不符合链中任意一条规则时,iptables将根据该链预先定义的默认策略来处理数据包。

默认策略定义格式为:

iptables [-t 表名] <-P> <链名> <动作>

参数说明如下:

  • [-t 表名] :将指定默认策略应用于哪个表,可以使用filter、nat和mangle,如果没有指定使用哪个表,iptables就默认使用filter表。

  • <-P> :定义默认策略

  • <链名> :指定默认策略应用于哪个链,可以使用INPUT、OUTPUT、FORWARD、PREROUTING和POSTROUTING。

  • <动作> : 处理数据包的动作,可以使用ACCEPT(接收数据包)和DROP(丢弃数据包)。

(2)查看iptables规则

查看iptables规则的命令格式为:

iptables [-t 表名] <-L> [链名]

参数说明如下:

  • [-t 表名] :指查看哪个表的规则列表,表名可以使用filter、nat和mangle,如果没有指定使用哪个表,iptables默认会查看filter。

  • <-L> :查看指定表和指定链的规则列表。

  • [链名]:指定查看表中哪个链的规则列表,可以使用INPUT、OUTPUT、FORWARD、PREROUTING和POSTROUTER,如果不注明哪个链,则查看某个表中所有链的规则列表。

(3)增加、插入、删除、替换iptables规则

iptables [-t 表名] <-A|I|D|R> 链名[规则编号] [-i|o 网卡名称] [-p 协议类型] [-s 源IP地址|源子网] [--sport 源端口号] [-d 目标IP地址|目标子网] [--dport 目标端口号] <-j 动作>

参数说明如下:

  • [-t 表名] :指查看哪个表的规则列表,表名可以使用filter、nat和mangle,如果没有指定使用哪个表,iptables默认使用filter。

  • -A :新增一条规则,该规则会增加到规则列表的最后一行,该参数不能使用规则编号。

  • -I : 插入一条规则,原本该位置上的规则将会往后顺序移动,如果没有指定规则编号,则在第一条规则前插入。

  • -D:从规则列表中删除一条规则,可以输入要删除的完整规则,或者直接指定规则编号加以删除。

  • -R:替换某条规则,规则被替换并不会改变顺序,必须要指定被替换的规则编号。

  • <链名>:指定查看表中哪个链的规则列表,可以使用INPUT、OUTPUT、FORWARD、PREROUTING和POSTROUTER

  • [规则编号] :规则编号在插入、删除和替换规则时使用,编号是按照规则列表的顺序排列的,规则列表中的第一条规则的编号为1。

  • [-i | o 网卡名称] :是指定数据包从哪块网卡进入,o是指定数据包从哪块网卡输出。网卡名称可以使用ppp0、eth0和eth1等。

  • [-p 协议类型]:可以指定规则应用的协议,包含TCP、UDP和ICMP等。

  • [-s 源IP地址|源子网] :-s后面接源主机的IP地址或子网地址。

  • [--sport 源端口号] : --sport后面接数据包的IP源端口号。

  • [-d 目标IP地址|目标子网] :-d后面接目标主机的IP地址或子网地址

  • [--dport 目标端口号] :--dport后面接数据包的IP目标端口号。

  • <-j 动作>

下面是处理数据包的动作,以及各个动作的详细说明。

  • ACCEPT:接收数据包。

  • DROP:丢弃数据包。

  • REDIRECT:将数据包重新转向到本机或另一台主机的某一个端口,通常实现透明代理或对外开放内网的某些服务。

  • REJECT:拦截该数据封包,并发回封包通知对方。

  • SNAT:源地址转换,即改变数据包的源地址。例如:将局域网的IP(10.0.0.1/24)转化为广域网的IP(203.93.236.141/24),在NAT表的POSTROUTING链上进行该动作。

  • DNAT:目标地址转换,即改变数据包的目标地址。例如:将广域网的IP(203.93.236.141/24)转化为局域网的IP(10.0.0.1/24),在NAT表的PREROUTING链上进行该动作。

  • MASQUERADE:IP伪装,即常说的NAT技术,MASQUERADE只能用于ADSL等拨号上网的IP伪装,也就是主机的IP是由ISP动态分配的,如果主机的IP地址是静态固定的,就要使用SNAT。

  • LOG:日志功能,将符合规则的数据包的相关信息记录在日志中,以便管理员的分析和排错。

(4)清除规则和计数器

在新建规则时,往往需要清除原有的旧规则,以免它们影响新设定的规则。如果规则比较多,逐条删除就会十分麻烦,这时可以使用iptables提供的清除规则参数达到快速删除所有的规则的目的。

定义参数的格式为:

iptables [-t 表名] <-F | Z>

参数说明如下:

  • [-t 表名] :指定将默认策略应用于哪个表,可以使用filter、nat和mangle,如果没有指定使用哪个表,iptables就默认使用filter表。

  • -F :通过如下命令删除指定表中的所有规则。

  • -Z :将指定表中的数据包计数器和流量计数器归零。

小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!

本文出自:http://www.toutiao.com/a6440310251804066049/

免责声明:本文由投稿者转载自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,让我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

发表评论

最新评论

引用 游客 2017-11-30 14:40
Gj6g5k  <a href="http://voqdefwbvmgx.com/">voqdefwbvmgx</a>, [url=http://meufczznpqpz.com/]meufczznpqpz[/url], [link=http://ipcpybctgnzf.com/]ipcpybctgnzf[/link], http://zarntzdrgetu.com/
引用 游客 2017-11-29 03:21
th3B4x http://www.LnAJ7K8QSpfMO2wQ8gO.com

查看全部评论(2)


新出炉

返回顶部