Linux防火墙 iptables详细介绍
- 格式:pdf
- 大小:486.89 KB
- 文档页数:8
Linux命令高级技巧使用iptables命令进行防火墙配置Linux系统中,iptables是一个非常常用的命令,用于配置Linux操作系统的防火墙规则。
掌握iptables的高级技巧,可以帮助我们更好地保护系统安全和网络通信。
本文将介绍使用iptables命令进行防火墙配置的一些高级技巧,以帮助读者更好地理解和运用这个强大的工具。
一、什么是iptables命令iptables是一个在Linux内核中实现的防火墙工具,用于管理网络通信规则。
它允许我们定义输入、输出和转发数据包的规则,从而控制网络流量。
使用iptables命令,我们可以过滤和转发数据包,以及进行网络地址转换和端口转发等操作。
二、iptables配置文件在开始使用iptables命令之前,了解iptables的配置文件将有助于更好地理解和调整防火墙规则。
iptables的配置文件位于"/etc/sysconfig/iptables"路径下,可以使用文本编辑器打开进行编辑。
三、基本的iptables规则1. 允许特定IP地址访问若想允许特定IP地址访问服务器的某个端口,可以使用如下命令:```iptables -A INPUT -p tcp -s IP地址 --dport 端口号 -j ACCEPT```例如,若要允许IP地址为192.168.1.100的主机访问SSH端口(22),可以使用以下命令:```iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT```2. 允许特定IP地址范围访问如果要允许一个IP地址范围访问特定端口,可以通过指定源IP范围来实现。
例如,要允许192.168.1.0/24子网段中的主机访问SSH端口,可以执行如下命令:```iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -j ACCEPT```此规则将允许192.168.1.0/24网段中的所有主机访问SSH端口。
Linux2 Iptables 防火墙Iptables 是与最新的2.6.x 版本Linux 内核集成的IP 信息包过滤系统。
如果Linux 系统连接到因特网或LAN (局域网)、服务器或连接LAN 和因特网的代理服务器,则该系统有利于在Linux 系统上更好地控制IP 信息包过滤和防火墙配置。
Iptables 只是一个管理内核包过滤的工具,可以加入、插入或删除核心包过滤表格(链)中的规则。
实际上真正执行这些过滤规则的是Netfilter (Linux 核心中的一个通用架构)及其相关模块(如Iptables 模块和nat 模块)。
Netfilter 是Linux 核心中的通用架构,其提供了一系列的表(tables ),每个表由若干链(chains )组成,而每条链可以由一条或数条规则(rule )组成。
简单的说,netfilter 是表的容器,表是链的容器,链是规则的容器。
Iptables 拥有3个表和5个链,其整个工作流程如图6-35所示:mangle natnat manglenatfiltermangle图6-35 Iptables 工作流程数据包进入防火墙以后,首先进入mangle 表的PREROUTING 链,如果有特殊设定,会更改数据包的TOS 等信息。
然后,数据包进入nat 表的PREROUTING 链,如有规则设置,通常进行目的地址转换。
数据包经过路由,判断该包是发送给本机,还是需要向其他网络转发。
如果是转发,就发送给mangle 表的FORWARD 链,根据需要进行相应的参数修改,送给filter 表的FORW ARD 链进行过滤,再转发给mangle 表的POSTROUTING 链。
如有设置,则进行参数调整,接着发送给nat 表的POSTROUTING 链。
在防火墙中,如果目的地为本机,数据包则会进入mangle 的INPUT 链,经过处理,进入filte 表的INPUT 链,经过相应的过滤,进入本机的处理进程。
iptables设置防火墙规则以iptables设置防火墙规则为标题,可以写一篇关于iptables防火墙规则的文章。
下面是一种可能的写作方式:标题:使用iptables设置防火墙规则保护网络安全导言:在当前的网络环境中,保护网络安全是至关重要的。
为了防止网络攻击和非法访问,我们可以使用iptables来设置防火墙规则。
本文将介绍iptables的基本概念和常用命令,并提供一些示例来帮助您理解如何使用iptables保护您的网络。
一、iptables简介iptables是一个在Linux系统上使用的防火墙工具,它可以监控和过滤网络流量,以及控制网络数据包的传输。
iptables可以根据预定义的规则集来允许或拒绝特定的网络连接。
二、iptables基本命令1. 添加规则:使用iptables的-A选项可以向规则链中添加新的规则。
例如,以下命令将允许从特定IP地址(192.168.1.100)访问SSH服务:iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT2. 删除规则:使用iptables的-D选项可以从规则链中删除指定的规则。
例如,以下命令将删除允许从特定IP地址(192.168.1.100)访问SSH服务的规则:iptables -D INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT3. 查看规则:使用iptables的-L选项可以查看当前规则链中的规则。
例如,以下命令将显示INPUT规则链中的所有规则:iptables -L INPUT三、常用的防火墙规则示例1. 允许特定IP地址的访问:以下命令将允许来自192.168.1.100的IP地址访问HTTP服务:iptables -A INPUT -s 192.168.1.100 -p tcp --dport 80 -j ACCEPT2. 允许特定端口的访问:以下命令将允许所有IP地址访问SSH服务:iptables -A INPUT -p tcp --dport 22 -j ACCEPT3. 拒绝特定IP地址的访问:以下命令将拒绝来自192.168.1.200的IP地址访问FTP服务:iptables -A INPUT -s 192.168.1.200 -p tcp --dport 21 -j DROP4. 阻止所有对外部SSH服务的访问:以下命令将阻止所有对外部SSH服务的访问:iptables -A INPUT -p tcp --dport 22 -j DROP四、更高级的防火墙规则设置1. 限制连接速率:可以使用iptables的限速模块来限制特定IP地址的连接速率。
Linux命令高级技巧使用iptables和ipset进行高级网络防火墙配置在网络安全领域,配置高级网络防火墙是至关重要的。
Linux操作系统提供了一些强大的工具来实现这一目的,其中最常用的是iptables和ipset。
本文将介绍如何使用这两个工具来进行高级网络防火墙配置。
一、iptables简介iptables是一个功能强大的Linux防火墙工具,它允许管理员配置、管理和维护网络安全规则集。
iptables使用内核的netfilter框架来实现数据包过滤和转发。
它可以根据网络协议、源IP地址、目标IP地址、端口号等多个条件来过滤和控制数据包的流动。
下面是一些常用的iptables命令及其功能:1. iptables -A chain -p protocol --source address --destination address --dport port -j action:添加规则到指定链,根据指定条件决定数据包的操作(动作)。
2. iptables -D chain rule-number:从指定链中删除指定规则。
3. iptables -L:列出当前的防火墙规则集。
4. iptables -F chain:清空指定链中的所有规则。
5. iptables -P chain target:设置指定链的默认策略。
二、ipset简介ipset是一个用于管理大规模IP地址和端口的工具,它可以与iptables一起使用,提高防火墙规则的效率和性能。
ipset通过将IP地址和端口号存储在内存中的数据结构中,可以更快地匹配和过滤数据包。
ipset的一些常用命令如下:1. ipset create setname type:创建一个新的ipset。
2. ipset add setname entry:将条目添加到指定的ipset中。
3. ipset del setname entry:从指定的ipset中删除条目。
Linux命令高级技巧使用iptables命令进行网络防火墙配置随着互联网的迅速发展和大规模应用,网络安全问题也变得愈发重要。
作为保障网络安全的重要手段,网络防火墙在服务器配置中占据了重要的位置。
Linux系统中,我们可以使用iptables命令进行网络防火墙的配置和管理。
一、什么是iptables命令iptables是Linux系统中用于配置和管理网络防火墙的命令行工具。
它的作用是根据预设的规则集来过滤、转发和修改数据包。
通过iptables命令的灵活配置,我们可以实现各种复杂的网络安全策略。
二、iptables命令的基本结构和用法iptables命令的基本结构如下:```shelliptables [-t 表名] 命令 [链名] [规则参数]```其中,-t 表名用于指定具体的表,有filter、nat和mangle三种表,filter表用于数据包过滤,nat表用于网络地址转换,mangle表用于数据包修改。
命令可以为-A(追加规则)、-D(删除规则)、-I(插入规则)、-R(替换规则)等。
链名指定了规则要应用到的具体链,常见的链有INPUT、OUTPUT和FORWARD。
规则参数为具体的规则内容,如源地址、目标地址、端口等。
下面以实际例子来介绍iptables命令的使用。
1. 添加规则要添加一条规则,可以使用-A选项,并指定表名、链名和规则参数。
```shelliptables -t filter -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT```以上命令表示在filter表的INPUT链上添加一条规则,允许来自192.168.1.0/24网段的TCP协议的22端口的数据包通过。
2. 删除规则要删除一条规则,可以使用-D选项,并指定表名、链名和规则参数。
```shelliptables -t filter -D INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT```以上命令表示在filter表的INPUT链上删除一条规则,该规则与添加规则的例子相同。
Linux命令高级技巧使用iptables和ufw命令进行网络防火墙配置Linux命令高级技巧:使用iptables和ufw命令进行网络防火墙配置在Linux操作系统中,网络防火墙是保护系统网络安全的重要组成部分。
通过合理配置网络防火墙规则,可以控制网络流量的进出,阻挡恶意攻击和未经授权的访问,确保系统的安全性。
本文将介绍Linux 中的两个重要命令iptables和ufw,以及使用它们进行网络防火墙配置的高级技巧。
一、iptables命令iptables是Linux中主要的防火墙工具,可以在内核级别对进出的网络流量进行过滤、转发和NAT(Network Address Translation)等操作。
下面是一些常用的iptables命令及其用法:1. 启用IP转发功能在做网络防火墙配置之前,需要确保系统开启了IP转发功能。
可以使用以下命令启用:```shellsysctl -w net.ipv4.ip_forward=1```此命令将系统的`net.ipv4.ip_forward`参数设置为1,即开启IP转发功能。
2. 基本规则设置使用以下命令创建一条基本的防火墙规则,允许本地主机的所有传入和传出流量:```shelliptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEPT```这些命令将INPUT、OUTPUT和FORWARD链的默认策略都设置为ACCEPT,即允许全部流量。
3. 添加规则可以使用iptables命令添加特定的防火墙规则,以允许或拒绝特定的流量。
例如,以下命令将允许来自192.168.1.100的主机的SSH连接:```shelliptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT```此命令将在INPUT链中添加一条规则,允许源IP为192.168.1.100,目标端口为22的TCP连接。
Linux命令高级技巧使用iptables命令配置和管理防火墙规则Linux系统中有许多命令可以使用,其中iptables命令是用于配置和管理防火墙规则的重要工具。
本文将介绍一些使用iptables命令的高级技巧,帮助读者更好地理解和使用这个命令。
一、iptables命令简介iptables是一个用于IPv4包过滤和控制Linux内核防火墙服务的用户空间工具。
它可以进行网络地址转换(NAT)、数据包过滤、端口重定向等操作,是保护计算机系统免受恶意攻击的重要工具。
二、iptables命令基本语法iptables命令的基本语法如下所示:iptables [选项] [链] [规则规格]其中,选项是可选的,用于指定不同的功能;链用于指定规则要应用的链,例如INPUT、FORWARD、OUTPUT等;规则规格用于指定具体的防火墙规则。
三、iptables命令常用选项1. -A:追加一条规则到某个链的末尾2. -I:向某个链中的指定位置插入一条规则3. -D:从某个链中删除一条规则4. -P:设置某个链的默认策略5. -L:列出某个链中的所有规则6. -F:清除某个链中的所有规则四、iptables命令高级技巧1. 配置端口转发使用iptables命令可以轻松实现端口转发,将外部请求转发到内部服务器。
例如,要将外部的SSH请求转发到内部服务器的SSH端口,可以使用如下命令:iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to-destination 内部服务器IP地址:22这样,外部用户连接到本机的22端口时,请求将被转发至内部服务器的22端口。
2. 过滤IP地址通过iptables命令,可以方便地过滤特定的IP地址或IP地址段。
例如,要拒绝来自某个IP地址的所有请求,可以使用如下命令:iptables -A INPUT -s 某个IP地址 -j DROP这样,来自该IP地址的请求将被直接拒绝。
Linux下防⽕墙iptables⽤法规则详及其防⽕墙配置转:iptables规则规则--顾名思义就是规矩和原则,和现实⽣活中的事情是⼀样的,国有国法,家有家规,所以要遵纪守法的嘛。
当然在防⽕墙上的规则,在内核看来,规则就是决定如何处理⼀个包的语句。
如果⼀个包符合所有的条件,我们就⽤相应的处理动作来处理。
书写规则的语法格式为:iptables [-t table] command chains [creteria] -j action-t table就是表名,filter/nat/mangle三个表中的⼀个,默认是filter表command告诉程序如何做,⽐如:插⼊⼀个规则,还是删除等chains 链,有五个,PREROUTING POSTROUTING INPUT OUTPUT FORWARDaction 处理动作,有ACCEPT DENY DROP REJECT SNAT DNAT理⼀下思路下⾯⼀点点的说⼀、Tables选项-t⽤来指定⽤哪个表,它可以是下⾯的任何⼀个,默认的是filter表⼆、COMMANDScommand指定iptables对我们提交的规则要做什么样的操作。
这些操作可能是在某个表⾥增加或删除⼀些东西,或其他的动作。
⼀下是iptables可⽤的command(如不做说明,默认表是filter)和命令结合常⽤的选项三、chains简单说⼀下五个链的作⽤:PREROUTING 是在包进⼊防⽕墙之后、路由决策之前做处理POSTROUTING 是在路由决策之后,做处理INPUT 在包被路由到本地之后,但在出去⽤户控件之前做处理OUTPUT在去顶包的⽬的之前做处理FORWARD在最初的路由决策之后,做转发处理四、匹配条件4.1 基本匹配4.2 隐含扩展匹配这种匹配操作是⾃动的或隐含的装⼊内核的。
例如使⽤-p tcp时,不需要再装⼊任何东西就可以匹配只有IP包才有的特点。
隐含匹配针对三种不同的协议,即TCP UDP ICMP。
四表五链Linux-iptables防⽕墙⼀、iptables概述Linux 系统的防⽕墙: IP信息包过滤系统,它实际上由两个组件netfilter和iptables组成主要⼯作在⽹络层,针对IP数据包。
体现在对包内的IP地址、端⼝等信息的处理上⼆、netfilter/iptables关系• 属于“内核态”(KernelSpace,⼜称为内核空间) 的防⽕墙功能体系• 是内核的⼀部分,由–些数据包过滤表组成,这些表包含内核⽤来控制数据包过滤处理的规则集• 属于“⽤户态”(User Space,⼜称为⽤户空间) 的防⽕墙管理体系• 是⼀种⽤来管理Linux防⽕墙的命令程序,它使插⼊、修改和删除数据包过滤表中的规则变得容易,通常位于/sbin/iptables⽬录下三、四表五链规则表的作⽤: 容纳各种规则链规则链的作⽤: 容纳各种防⽕墙规则四表raw表:确定是否对该数据包进⾏状态跟踪。
包含两个规则链,OUTPUT、 PREROUTINGmangle表:修改数据包内容,⽤来做流量整形的,给数据包设置标记。
包含五个规则链,INPUT、 OUTPUT、FORWARD、PREROUTING、 POSTROUTINGnat表:负责⽹络地址转换,⽤来修改数据包中的源、⽬标IP地址或端⼝。
包含三个规则链,OUTPUT、PREROUTING、 POSTROUTING filter表:负责过滤数据包,确定是否放⾏该数据包(过滤)。
包含三个规则链,INPUT、 FORWARD、0UTPUT五链INPUT:处理⼊站数据包,匹配⽬标IP为本机的数据包OUTPUT:处理出站数据包,–般不在此链.上做配置FORWARD:处理转发数据包,匹配流经本机的数据包PREROUTING:在进⾏路由选择前处理数据包,⽤来修改⽬的地址,⽤来做DNAT。
相当于把内⽹服务器的IP和端⼝映射到路由器的外⽹IP 和端⼝上POSTROUTING:在进⾏路由选择后处理数据包,⽤来修改源地址,⽤来做SNAT。
linux系统防火墙常用命令Linux系统防火墙常用命令Linux系统中的防火墙是网络安全的重要组成部分,它能够保护计算机免受来自网络的攻击和恶意访问。
为了管理和配置防火墙,我们需要掌握一些常用的命令。
本文将介绍一些常用的Linux防火墙命令,并详细解释它们的用法和作用。
1. iptables命令iptables是Linux系统中最常用的防火墙管理命令。
它可以用于配置防火墙规则、过滤网络数据包和网络地址转换等操作。
下面是一些常用的iptables命令:- iptables -L:列出当前防火墙规则;- iptables -F:清空当前防火墙规则;- iptables -A INPUT -p tcp --dport 22 -j ACCEPT:允许来自任意IP地址的TCP协议、目标端口为22的数据包通过防火墙;- iptables -A INPUT -s 192.168.0.0/24 -j DROP:禁止来自IP 地址段为192.168.0.0/24的数据包通过防火墙。
2. ufw命令ufw是Uncomplicated Firewall的简称,它是基于iptables的防火墙管理工具,提供了更简单的命令和配置方式。
下面是一些常用的ufw命令:- ufw status:显示当前防火墙的状态和规则;- ufw enable:启用防火墙;- ufw disable:禁用防火墙;- ufw allow 22:允许TCP协议、目标端口为22的数据包通过防火墙;- ufw deny from 192.168.0.0/24 to any port 80:禁止来自IP 地址段为192.168.0.0/24、目标端口为80的数据包通过防火墙。
3. firewalld命令firewalld是CentOS 7及以上版本中默认的防火墙管理工具,它支持动态更新防火墙规则,并提供了更灵活的配置选项。
下面是一些常用的firewalld命令:- firewall-cmd --state:显示当前防火墙的状态;- firewall-cmd --get-active-zones:显示当前活动的防火墙区域; - firewall-cmd --zone=public --add-service=http:将http 服务添加到public区域;- firewall-cmd --zone=public --remove-service=http:从public区域移除http服务;- firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" reject':拒绝来自IP地址段为192.168.0.0/24的IPv4数据包。
周旭光unixzhou@Linux防火墙iptables周旭光unixzhou@2011年5月10日目录1、Linux防火墙基础 (2)1、iptables的规则表、链结构 (2)1.1 规则表 (2)1.2 规则链 (2)2、数据包的匹配流程 (2)2.1 规则表之间的优先级 (2)2.2 规则链之间的优先级 (2)2.3 规则链内部各防火墙规则之间的优先顺序 (3)2、管理和设置iptables规则 (3)2.1 iptables的基本语法格式 (3)2.2 管理iptables规则 (3)iptables命令的管理控制项 (3)2.3 条件匹配 (5)2.3.1 通用(general)条件匹配 (5)2.3.2 隐含(implicit)条件匹配 (6)2.3.3 显示(explicit)条件匹配 (6)2.4 数据包控制 (7)3、使用防火墙脚本 (8)3.1 导出、导入防火墙规则 (8)3.2 编写防火墙脚本 (8)1、Linux防火墙基础1、iptables的规则表、链结构1.1 规则表iptables管理4个不同的规则表,其功能由独立的内核模块实现。
filter表:包含三个链INPUT , OUTPUT , FORWARDnat表:PREROUTING , POSTROTING , OUTPUTmangle表:PREROUTING , POSTROUTING , INPUT , OUTPUT , FORWARDraw表:OUTPUT , PREROUTING1.2 规则链INPUT链当收到访问防火墙本机的数据包(入站)时,应用此链中的规则OUTPUT链当防火墙本机向外发送数据包(出站)时,应用此链中的规则FORWARD链收到需要通过防火墙发送给其他地址的数据包,应用此链PREROUTING链做路由选择之前,应用此链POSTROUTING链对数据包做路由选择之后,应用此链中的规则2、数据包的匹配流程2.1 规则表之间的优先级Raw mangle nat filter2.2 规则链之间的优先级入站数据流向:来自外界的数据包到达防火墙,首先呗PREROUTING规则链处理(是否被修改地址),之后会进行路由选择(判断该数据包应该发往何处),如果数据包的目标地址是防火墙本机,那么内核将其传递给INPUT 链进行处理,通过以后再交给上次的应用程序进行响应转发数据流向:来自外界的数据包到达防火墙后,首先被PREROUTING规则链处理,之后进行路由选择,如果数据包的目标地址是其他外部地址,则内核将其传递给FPRWARD链进行处理,然后再交给POSTROUTIING 规则链(是否修改数据包的地址等)进行处理。
出站数据流向:防火墙本身向外部地址发送数据包,首先被OUTPUT规则链处理,之后进行路由选择,然后交给POSTROUTING规则链(是否修改数据包的地址等)进行处理。
2.3 规则链内部各防火墙规则之间的优先顺序依次按第1条规则、第2条规则、第3条规则……的顺序进行处理,找到一条能够匹配的数据包规则,则不再继续检查后面的规则(使用LOG记录日志的规则例外)。
如果找不到匹配规则,就按照规则链的默认策略进行处理2、管理和设置iptables规则2.1 iptables的基本语法格式iptables [-t 表名] 命令选项[链名] [条件匹配] [-j 目标动作或跳转]2.2 管理iptables规则iptables命令的管理控制项2.2.1 添加及输入规则# iptables -t filter -A INPUT -p tcp -j ACCEPT在filter表的INPUT链的末尾添加一条防火墙规则# iptables -I INPUT -p udp -j ACCEPT在filter表的INPUT链中插入一条防火墙规则(省略–t filter,按默认处理filter表)# iptables -I INPUT 2 -p icmp -j ACCEPT在filter表的INPUT链中插入一条防火墙规则,作为链中的第二条规则2.2.2 查看规则表# iptables -L INPUT - -line-numbers查看filter表中INPUT链中的所有规则,同时显示各条规则的顺序号# iptables –nvL-L选项放在最后,否则会将vn当成链名。
查看filter表各链中所有规则的详细信息,同时以数字形式显示地址和端口号2.2.3删除、清空规则# iptables -D INPUT 2删除filter表INPUT链中的第二条规则# iptables -F不指定表名时,默认情况filter表# iptables -t nat –F清空nat表中各链的所有规则# iptables -t mangle -F清空mangle表中各链的所有规则2.2.4 设置规则链的默认策略# iptables -t filter -P FORWARD DROP将filter表中FORWARD规则的默认策略设为DROP# iptables -P OUTPUT ACCEPT将filter表中OUTPUT规则的默认策略设为ACCEPT2.2.5 获得iptables相关选项的帮助信息# iptables -p icmp –h查看iptables命令中关于icmp协议的帮助信息2.2.6 新增、删除自定义规则链# iptables -t raw -N TCP_PACKETS在raw表中新增一条自定义的规则链,链名为TCP_PACKETS# iptables -t raw -X清空raw表中用户自定义的所有规则链2.3 条件匹配2.3.1 通用(general)条件匹配直接使用,而不依赖于其他的条件匹配及其扩展2.3.1.1 协议匹配(允许使用的协议名包含在/etc/protocols文件中)# iptables -I INPUT -p icmp REJECT拒绝进入防火墙的所有icmp数据包# iptables -I FORWARD -p ! icmp -j ACCEPT允许防火墙转发icmp协议以外的所有数据包(叹号表示取反)2.3.1.2 地址匹配拒绝转发来自192.168.1.11主机的数据,允许转发来自192.168.0./24网段的数据# iptables -A FORWARD -s 192.168.1.11 -j REJECT# iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT2.3.1.3 网络接口匹配丢弃从外网接口eth1进入防火墙本机的源地址为私网地址的数据# iptables -A INPUT -i eth1 -s 192.168.0.0/16 -j DROP# iptables -A INPUT -i eth1 -s 172.16.0.0/12 -j DROP# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP管理员在网关服务器上检测到来自某个IP网段(如10.10.30.0./24)的频繁扫描,希望设置iptables规则封堵IP 地址段,两个小时后解封# iptables -I INPUT -s 10.20.30.0/24 -j DROP//设置封堵策略# iptables -I FORWARD -s 10.20.30.0/24 -j DROP# at now +2 hoursat> iptables -D INPUT 1at>iptables -D FORWAD 1at> <EOT>job 5 at 2020-09-26 19:152.3.2 隐含(implicit)条件匹配需要指定的协议匹配为前提,其对应的功能由iptables自动(隐含)的装载入内核2.3.2.1 端口匹配仅允许系统管理员从202.13.0.0/16网段使用SSH方式远程登录防火墙主机# iptables -A INPUT -p tcp - -dport 22 -s 202.13.0.0/16 -j ACCEPT# iptables -A INPUT -p tcp - -dport 22 -j DROP允许本机开放从TCP端口20~1024提供的应用服务# iptables -A INPUT -P tcp - -dport 20:1024 -j ACCEPT# iptables -A OUTPUT -p tcp - -sport 20:1024 -j ACCEPT作为网关使用时,允许转发来自192.168.0.0/24局域网的DNS解析请求数据包# iptables -A FORWARD -p udp -s 192.168.0.0/24 - -dport 53 -j ACCEPT# ipatbles -A FORWARD -p udp -d 192.168.0.0./24 - -sport 53 -j ACCEPT2.3.2.2 TCP标记匹配拒绝从外网接口eth1直接访问防火墙本机的数据包,但是允许相应防火墙TCP请求的数据包进入# iptables -P INPUT DROP# iptables -I INPUT -i eth1 -p tcp - -tcp-flags SYN,RST,ACK SYN -j ACCEPT# iptables -I INPUT -i eth1 -p tcp - -tcp-flags ! - -syn -j ACCEPT2.3.2.3 ICMP类型匹配禁止其他主机ping防火墙主机,但是允许从防火墙上ping其他主机(允许接受ICMP回应数据)# iptables -A INPUT -p icmp - -icmp-type Echo-Request -j DROP# iptables -A INPUT -p icmp - -icmp-type Echo-Replay -j ACCEPT# iptables -A INPUT -p icmp - -icmp-type destination-Unreachable -j ACCEPTEcho-Request数字代码为8 请求Echo-Replay数字代码为0 回显destination-Unreachable 3 目标不可达2.3.3 显示(explicit)条件匹配由额外的内核模块提供,因此需要手工指定匹配方式lsmod 命令查看内核模块2.3.3.1 MAC地址匹配(主要用于检查数据包的源MAC地址)禁止转发来自MAC地址为00:0C:29:27:55:3F的主机数据包# iptables -A FORWARD -m mac - -mac-source 00:0C:29:27:55:3F -j DROP2.3.3.2 多端口匹配(检查数据包的源端口、目标端口时,用于匹配多个不连续的端口号)允许防火墙本机对外开放TCP端口20、21、25、110以及被动模式FTP端口1250~1280# iptables -A INPUT -p tcp -m multiport - -dport 20,21,25,110,1250:1280 -j ACCEPT2.3.3.3 多IP地址匹配禁止转发IP地址为192.168.1.20~192.168.1.99 的TCP的数据包# iptables -A FORWARD -p tcp -m iprange - -src-range 192.168.1.20-192.168.1.99 -j DROP2.3.3.4状态匹配禁止转发与正常TCP连接无关的非- -syn请求数据包# iptables -A FORWARD -m state - -state NEW -p tcp ! - -syn -j DROP拒绝访问防火墙的新数据包,但允许响应或与已有连接相关的数据包# iptables -A INPUT -p tcp -m state - -state NEW -j DROP# iptables -A INPUT -p tcp -m state - -state ESTABLISHED,RELATED -j ACCEPTNEW:与任何连接无关的ESTABLISHED:响应请求或已经建立的连接RELATED:与已有连接有相关性2.4 数据包控制ACCEPT :允许数据包通过DROP :直接丢弃数据包,不给出任何回应信息REJECT :拒绝数据包通过,必要时会给数据发送一个响应信息LOG :在/var/log/messange文件中记录日志信息,然后将数据包传递给下一条规则对于尝试通过SSH方式登录防火墙主机的访问数据,记录日志信息并禁止其访问# iptables -I INPUT -p tcp - -dport 22 -j DROP# iptables -I INPUT -P tcp - -dport 22 -j LOG将记录日志的频率限制为平均三次/分钟,允许的峰值为八次# iptables -R INPUT 1 -p tcp - -dport 22 -m limit - -limit 3/minite - -limit-burst 8 -j LOG用户自定义链:将数据包传递给用户自定义的链进行处理自定义一个新的链MyLAN1,转发自/至192.168.1.0/24网段的数据包均交给该链中的规则处理# iptables -t filter -N MyLAN1# iptables -A FORWARD -s 192.168.1.0/24 -j MyLAN1# iptables -A FORWARD -d 192.168.10./24 -j MyLAN1# iptables -A MyLAN1 -p icmp DROPSNAT :修改数据包的源IP地址DNAT :修改数据包的目标IP地址3、使用防火墙脚本3.1 导出、导入防火墙规则1.iptables-save把当前设置的防火墙规则信息输出到终端将当前调试好的iptables规则保存到配置文件,并通过iptables服务脚本自动加载# iptables-save > /etc/sysconfig/iptables 或service iptables save# service iptables restart# chkconfig - -level 35 iptables on2.iptalbes-restore从已保存的配置文件中导入iptables规则# iptables-retore < /etc/sysconfig/iptables3.2 编写防火墙脚本1.设置网段、网卡、IP地址等变量2.加载包过滤相关的内核模块3.开启路由转发功能4.用户设置的iptables规则。