Linux防火墙 iptables详细介绍
Linux命令高级技巧使用iptables命令进行防火墙配置

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防火墙

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简介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进行高级网络防火墙配置在网络安全领域,配置高级网络防火墙是至关重要的。
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命令进行网络防火墙配置随着互联网的迅速发展和大规模应用,网络安全问题也变得愈发重要。
作为保障网络安全的重要手段,网络防火墙在服务器配置中占据了重要的位置。
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命令高级技巧:使用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命令配置和管理防火墙规则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用法规则详及其防火墙配置

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防火墙

四表五链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系统中的防火墙是网络安全的重要组成部分,它能够保护计算机免受来自网络的攻击和恶意访问。
为了管理和配置防火墙,我们需要掌握一些常用的命令。
本文将介绍一些常用的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数据包。
Linux命令高级技巧使用iptables进行网络防火墙配置

Linux命令高级技巧使用iptables进行网络防火墙配置Linux命令高级技巧:使用iptables进行网络防火墙配置在网络安全领域,配置网络防火墙是一项关键任务。
为了保护网络免受未授权访问和恶意攻击,管理员需要掌握一些高级技巧来使用Linux命令iptables进行网络防火墙配置。
本文将介绍iptables的基本概念和使用方法,并提供一些高级技巧来加强网络防火墙的安全性。
1. iptables简介iptables是Linux系统中一款强大的防火墙工具,它能够根据管理员设定的规则筛选、修改和重定向网络数据。
iptables提供了一套规则集,允许管理员创建自定义的规则来控制数据包的流向和处理方式。
常用的iptables命令包括iptables、iptables-save、iptables-restore和iptables-apply等。
2. 基本用法iptables命令的基本语法如下:```bashiptables [-t 表名] 命令 [链名] [规则选项]```其中,表名可以是filter、nat或mangle,命令可以是-A(追加规则)、-D(删除规则)、-I(插入规则)等,链名可以是INPUT、FORWARD或OUTPUT等,规则选项包括-s(源IP地址)、-d(目标IP地址)、-p(协议类型)和-j(动作)等。
3. 添加规则为了保护网络,我们需要添加一些规则来控制数据包的流向和允许的服务。
例如,我们可以使用以下命令允许SSH连接: ```bashiptables -A INPUT -p tcp --dport 22 -j ACCEPT```上述命令在INPUT链中追加了一条规则,允许TCP协议的22端口的连接请求。
可以根据需要设置源IP地址或目标IP地址等其他规则选项。
4. 删除规则如果某条规则不再需要,可以使用iptables命令删除。
例如,我们可以使用以下命令删除上一节中添加的SSH规则:```bashiptables -D INPUT -p tcp --dport 22 -j ACCEPT```上述命令将从INPUT链中删除匹配的规则。
如何使用iptables命令在Linux中配置防火墙和网络转发

如何使用iptables命令在Linux中配置防火墙和网络转发由于网络安全的重要性日益凸显,配置防火墙和网络转发成为Linux系统管理员必备的技能之一。
在Linux系统中,iptables命令提供了灵活的方式来配置防火墙规则和网络转发设置。
本文将介绍如何使用iptables命令来完成这些任务。
一、什么是iptables命令iptables是Linux操作系统中一个非常强大的防火墙工具,它可以通过管理网络数据包的流动来控制网络访问权限。
iptables命令可以根据预先定义的规则集过滤网络数据包,拒绝无效或危险的连接,从而保护系统的安全性。
二、基本概念与术语在开始使用iptables命令之前,我们需要了解一些基本的概念和术语。
1. 表(Table):iptables命令使用表来组织和管理规则。
常用的表有:filter、nat和mangle等。
2. 链(Chain):每个表都包含多个链,链是规则的组合。
常用的链有:INPUT、FORWARD和OUTPUT等。
3. 规则(Rule):规则是iptables命令的基本单位,它定义了针对网络数据包的动作和匹配条件。
4. 动作(Action):动作定义了对匹配到的数据包的处理方式,常见的动作有:ACCEPT、DROP和REJECT等。
5. 匹配条件(Match):匹配条件定义了规则在应用到数据包时需要满足的条件。
常见的匹配条件有:source、destination和protocol等。
三、配置防火墙规则配置防火墙规则是保护系统安全的第一步。
使用iptables命令可以轻松地添加、修改和删除防火墙规则。
1. 查看当前防火墙规则首先,我们需要查看当前的防火墙规则,可以使用以下命令:```iptables -L```该命令将列出当前的防火墙规则,包括表、链、规则和动作等信息。
2. 添加规则要添加一个防火墙规则,可以使用以下命令:```iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT```该命令将允许来自192.168.0.0/24网段的TCP连接访问本地的SSH 服务。
linux防火墙iptables参数详解

linux防⽕墙iptables参数详解先来看iptables 防⽕墙的⼀些常⽤设置:1. iptables-A INPUT -p tcp -s x.x.x.x/x --dport 22 -j ACCEPT // 允许源地址为x.x.x.x/x的主机通过22(ssh)端⼝.2. iptables -A INPUT -p tcp --dport 80 -j ACCEPT // 允许80(http)端⼝的数据包进⼊3. iptables -A INPUT -p tcp --dport 110 -j ACCEPT // 允许110(pop3)端⼝的数据包进⼊如果不加这规则,就只能通过web页⾯来收信(⽆法⽤OE或Foxmail等来收)4. iptables -A INPUT -p tcp --dport 25 -j ACCEPT // 允许25(smtp)端⼝的数据包进⼊,如果不加这规则,就只能通过web页⾯来发信(⽆法⽤OE或Foxmail等来发)5. iptables -A INPUT -p tcp --dport 21 -j ACCEPT // 允许21(ftp)端⼝的数据包进⼊(传数据)6. iptables -A INPUT -p tcp --dport 20 -j ACCEPT // 允许20(ftp)端⼝的数据包进⼊(执⾏ftp命令,如dir等)7. iptables -A INPUT -p tcp --dport 53 -j ACCEPT // 允许53(dns)端⼝的数据包进⼊(tcp)8. iptables -A INPUT -p udp --dport 53 -j ACCEPT // 允许53(dns)端⼝的数据包进⼊(udp)9. iptables -A INPUT -p icmp -j ACCEPT // 允许ICMP包通过10. iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT //利⽤ iptables 对连接状态的⽀持11. iptables -P INPUT DROP//把INPUT链的默认规则设置为DROPIptalbes 防⽕墙主要参数和设置说明:TARGETS防⽕墙的规则指定所检查包的特征,和⽬标。
Linux安全应用-iptables防火墙(PPT 30张)

—— 上述2种称呼都可以表示Linux防火墙
Linux包过滤防火墙概述2-2
包过滤的工作层次
主要是网络层,针对IP数据包 体现在对包内的IP地址、端口等信息的处理上
应用层 传输层 网络层 链路层 外部网络
应用代理 传输层 网络层 链路层 网络层防火墙
应用层 传输层 网络层 链路层 受保护网络
iptables的表、链结构3-2
规则表
表的作用:容纳各种规则链 表的划分依据:防火墙规则的作用相似 raw表:确定是否对该数据包进行状态跟踪 mangle表:为数据包设置标记 nat表:修改数据包中的源、目标IP地址或端口 filter表:确定是否放行该数据包(过滤)
默认包括4个规则表
iptables的基本语法2-1
语法构成
iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]
[root@localhost ~]# iptables -t filter -I INPUT -p icmp -j REJECT
几个注意事项
不指定表名时,默认指 filter表 C:\Users\Administrator> ping 192.168.4.254 正在 Ping 192.168.4.254 具有 32 字节的数据: 不指定链名时,默认指表内的所有链 来自 192.168.4.254 的回复: 无法连到端口。 除非设置链的默认策略,否则必须指定匹配条件 来自 192.168.4.254 的回复: 无法连到端口。 阻止ping测试 ……
基本语法、控制类型 编写防火墙规则
添加、查看、删除规则 规则的匹配条件
Linux包过滤防火墙概述2-1
Linux防火墙iptables命令详解

Linux防⽕墙iptables命令详解iptables -Fiptables -Xiptables -F -t mangleiptables -t mangle -Xiptables -F -t natiptables -t nat -X⾸先,把三个表清空,把⾃建的规则清空。
iptables -P INPUT DROPiptables -P OUTPUT DROPiptables -P FORWARD ACCEPT设定INPUT、OUTPUT的默认策略为DROP,FORWARD为ACCEPT。
iptables -A INPUT -i lo -j ACCEPTiptables -A OUTPUT -o lo -j ACCEPT先把“回环”打开,以免有不必要的⿇烦。
iptables -A INPUT -i eth+ -p icmp --icmp-type 8 -j ACCEPTiptables -A OUTPUT -o eth+ -p icmp --icmp-type 0 -j ACCEPT在所有⽹卡上打开ping功能,便于维护和检测。
iptables -A INPUT -i eth0 -s 192.168.100.250 -d 192.168.100.1 -p tcp --dport 22 -j ACCEPTiptables -A OUTPUT -o eth0 -d 192.168.100.250 -s 192.168.100.1 -p tcp --sport 22 -j ACCEPT打开22端⼝,允许远程管理。
(设定了很多的附加条件:管理机器IP必须是250,并且必须从eth0⽹卡进⼊)iptables -A INPUT -i eth0 -s 192.168.100.0/24 -p tcp --dport 3128 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -d 192.168.100.0/24 -p tcp --sport 3128 -m state --state ESTABLISHED -j ACCEPTiptables -A INPUT -i eth1 -s 192.168.168.0/24 -p tcp --dport 3128 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth1 -d 192.168.168.0/24 -p tcp --sport 3128 -m state --state ESTABLISHED -j ACCEPTiptables -A INPUT -i eth2 -p tcp --dport 32768:61000 -m state --state ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth2 -p tcp --sport 32768:61000 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth2 -p udp --dport 53 -j ACCEPTiptables -A INPUT -i eth2 -p udp --sport 53 -j ACCEPT上⾯这⼏句是⽐较头痛的,我做逐⼀解释。
防火墙配置文件iptables详解

防火墙配置文件iptables详解对于Internet上的系统,不管是什么情况都要明确一点:网络是不安全的。
因此,虽然创建一个防火墙并不能保证系统100%安全,但却是绝对必要的。
Linux提供了一个非常优秀的防火墙工具—netfilter/iptables。
它完全免费、功能强大、使用灵活、可以对流入和流出的信息进行细化控制,且可以在一台低配置机器上很好地运行。
本文将简单介绍使用netfilter/iptables实现防火墙架设和Internet连接共享等应用。
netfilter/iptabels应用程序,被认为是Linux中实现包过滤功能的第四代应用程序。
netfilter/iptables包含在2.4以后的内核中,它可以实现防火墙、NAT(网络地址翻译)和数据包的分割等功能。
netfilter工作在内核内部,而iptables则是让用户定义规则集的表结构。
netfilter/iptables从ipchains和ipwadfm(IP防火墙管理)演化而来,功能更加强大。
下文将netfilter/iptabels统一称为iptables。
可以用iptables为Unix、Linux和BSD个人工作站创建一个防火墙,也可以为一个子网创建防火墙以保护其它的系统平台。
iptales只读取数据包头,不会给信息流增加负担,也无需进行验证。
要想获得更好的安全性,可以将其和一个代理服务器(比如squid)相结合。
基本概念典型的防火墙设置有两个网卡:一个流入,一个流出。
iptables读取流入和流出数据包的报头,将它们与规则集(Ruleset)相比较,将可接受的数据包从一个网卡转发至另一个网卡,对被拒绝的数据包,可以丢弃或按照所定义的方式来处理。
通过向防火墙提供有关对来自某个源地址、到某个目的地或具有特定协议类型的信息包要做些什么的指令,规则控制信息包的过滤。
通过使用iptables系统提供的特殊命令iptables建立这些规则,并将其添加到内核空间特定信息包过滤表内的链中。
嵌入式Linux可用的防火墙——iptables:实现ip白名单、mac地址白名单

嵌⼊式Linux可⽤的防⽕墙——iptables:实现ip⽩名单、mac地址⽩名单iptables是linux系统下的⼀个功能强⼤的模块,不仅可以⽤作防⽕墙,还可以实现NAT等众多路由功能。
iptables的容器有很清晰的层次关系:1. iptables是表的容器,iptables包含表(4张表)2. 表是链的容器,每个表都包含若⼲个链3. 链是规则的容器,真正的过滤规则是属于链⾥⾯的iptables是采⽤数据包过滤机制⼯作的,它会对请求的数据包的包头数据进⾏分析,并根据预先设定的规则来进⾏匹配,决定是否可以进⼊主机,流程如下:从上图不难看出,防⽕墙是⼀层层过滤的,按照配置规则的顺序从上到下,从前到后进⾏过滤。
如果匹配上规则,即明确了是阻⽌还是通过,此时数据包就不再往下匹配新规则了。
否则⼀直向下匹配,直到匹配到默认规则,得到明确的阻⽌或通过;防⽕墙的默认规则是对应链的所有规则执⾏完后才会执⾏的。
iptables根据功能和表的定义划分包含三个表,filter,nat,mangle,其每个表⼜包含不同的操作链(Chains)。
要使⽤iptables实现ip⽩名单、mac地址⽩名单,只需使⽤filter表。
filter表包含的操作链有三个:INPUT、FORWARD、OUTPUT:1.INPUT负责过滤所有⽬标地址是本机地址的数据包,即进⼊主机的数据包2.FORWARD负责转发流经主机的数据包3.OUTPUT负责处理所有源地址是本机地址的数据包,即主机发出的数据包防⽕墙功能主要设定INPUT链的规则。
⾸先加载如下模块到Linux内核:modprobe ip_tablesmodprobe iptable_filtermodprobe iptable_natmodprobe ip_conntrack 连接跟踪modprobe ip_conntrack_ftp 连接跟踪modprobe ip_nat_ftpmodprobe ipt_stateiptables的语法如下:iptables -P INPUT DROPiptables [-A/-I num] INPUT -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT-A: 添加规则到指定链的结尾,最后⼀条-I num: 添加规则到指定链的指定⾏,num默认为1,即添加到第⼀条-t: 指定表,不指定默认为filter-p: 指定协议(all,tcp,udp,icmp),默认为all--dport: 指定端⼝-j: 处理的⾏为, ACCEPT, DROP, REJECT(最好使⽤drop⽽⾮reject,因为'拒绝'会返回给⽤户信息)-P: 设置默认策略-s: 匹配来源地址IP/MASK-i: 接⽹卡名称,匹配从这块⽹卡流⼊的数据-o: 接⽹卡名称,匹配从这块⽹卡流出的数据#setting for loopback interfaceiptables -A INPUT -i lo -j ACCEPTiptables -A OUTPUT -o lo -j ACCEPT-m mac --mac-source XX:XX:XX:XX:XX:XX-m state --state NEW/ESTABLISHED/RELATED/INVALID //可以⽤,连接多个可以看到,实例的第⼆句即是将某个MAC地址加⼊⽩名单中。
linux关于防火墙的命令

linux关于防火墙的命令Linux防火墙命令详解防火墙是保护计算机和网络免受恶意攻击的重要组成部分。
在Linux系统中,我们可以使用一些命令来配置和管理防火墙。
本文将详细介绍几个常用的Linux防火墙命令,帮助读者更好地理解和使用防火墙。
1. iptables命令iptables命令是Linux系统中最常用的防火墙管理工具之一。
它允许管理员配置和管理数据包过滤规则,以控制网络流量。
以下是一些常用的iptables命令及其功能:(1)iptables -L:列出当前的防火墙规则。
可以使用该命令查看当前生效的规则,以及规则的来源和目的地。
(2)iptables -A INPUT -p tcp --dport 22 -j ACCEPT:允许通过SSH协议访问本地主机的22端口。
可以将此命令中的端口号和协议类型更改为需要允许的端口和协议。
(3)iptables -A INPUT -s 192.168.0.0/24 -j DROP:拒绝来自192.168.0.0/24子网的所有数据包。
可以根据需要更改源IP地址和子网掩码。
(4)iptables -A INPUT -p icmp --icmp-type echo-request -mlimit --limit 1/s -j ACCEPT:限制每秒只允许接收一个ping请求。
可以根据需要调整限制速率。
(5)iptables -P INPUT DROP:将默认的输入策略设置为拒绝。
这将导致防火墙拒绝除了已经明确允许的流量之外的所有流量。
2. ufw命令ufw(Uncomplicated Firewall)是一个简单易用的防火墙管理工具,可以让用户更方便地配置和管理防火墙规则。
以下是一些常用的ufw命令及其功能:(1)ufw enable:启用ufw防火墙。
此命令将激活防火墙并根据默认规则进行配置。
(2)ufw disable:禁用ufw防火墙。
此命令将停止防火墙并允许所有流量通过。
linux iptable 规则

linux iptable 规则Linux iptables规则是网络安全中常用的工具之一。
在本文中,我们将介绍iptables规则的基本概念以及如何使用它来保护我们的网络。
我们将按照以下步骤逐步讲解iptables规则的使用。
第一步:什么是iptables?iptables是一个Linux内核中的工具集,用于管理网络连接和数据包过滤。
它允许我们在Linux系统上设置和配置防火墙规则,以保护网络免受未经授权的访问和网络攻击。
第二步:iptables的基本概念在开始详细了解iptables规则之前,我们需要理解一些基本概念。
1. 链(Chain):链是iptables规则的核心。
它们是iptables规则列表的一部分,用于定义要应用的规则的位置。
常见的链包括INPUT(对入站数据包进行过滤)、OUTPUT(对出站数据包进行过滤)和FORWARD(用于路由数据包)。
2. 表(Table):iptables规则集合在一起形成表。
常见的表包括filter(用于数据包过滤)、nat(用于网络地址转换)和mangle(用于分析和修改数据包)。
3. 规则(Rule):规则是iptables中实际执行的指令。
它们定义了应用于特定数据包的操作,例如允许、丢弃、重定向或修改数据包。
第三步:使用iptables规则在这一步中,我们将详细介绍如何使用iptables规则来保护我们的网络。
1. 查看当前的iptables规则:要查看当前的iptables规则,可以使用以下命令:iptables -L2. 添加规则:要添加规则,可以使用以下命令:iptables -A <链> -p <协议> dport <端口> -j <动作>其中,`<链>`是要添加规则的链,`<协议>`是数据包的协议(如TCP 或UDP),`<端口>`是数据包的目标端口,`<动作>`是对数据包的处理动作(如ACCEPT、DROP或REJECT)。
linux配置防火墙详细步骤(iptables命令使用方法)

linux配置防⽕墙详细步骤(iptables命令使⽤⽅法)通过本教程操作,请确认您能使⽤linux本机。
如果您使⽤的是ssh远程,⽽⼜不能直接操作本机,那么建议您慎重,慎重,再慎重!通过iptables我们可以为我们的Linux服务器配置有动态的防⽕墙,能够指定并记住为发送或接收信息包所建⽴的连接的状态,是⼀套⽤来设置、维护和检查Linux内核的IP包过滤规则的命令包。
iptables定义规则的⽅式⽐较复杂,本⽂对Linux防⽕墙Iptables规则写法进⾏详细介绍:⑴、Iptables规则写法的基本格式是: Iptables [-ttable] COMMAND chain CRETIRIA -j ACTION⑵、Iptables规则相关参数说明: -t table:3个filter nat mangle :定义如何对规则进⾏管理 chain:指定你接下来的规则到底是在哪个链上操作的,当定义策略的时候,是可以省略的; CRETIRIA:指定匹配标准; -j ACTION:指定如何进⾏处理;⑶、Iptables规则其他写法及说明: Iptables -L -n -v #查看定义规则的详细信息 Iptables是Linux服务器上防⽕墙配置必备的设置⼯具,是我们在做好服务器安全及部署⼤型⽹络时,常会⽤到的重要⼯具,很好的掌握iptables,可以让我们对Linux服务器整个⽹络的结构有⼀个⽐较透彻的了解,更能够很好的掌握Linux服务器的安全配置技巧。
我们来配置⼀个filter表的防⽕墙.(1)查看本机关于IPTABLES的设置情况复制代码代码如下:[root@tp ~]# iptables -L -nChain INPUT (policy ACCEPT)target prot opt source destination</p> <p>Chain FORWARD (policy ACCEPT)target prot opt source destination</p> <p>Chain OUTPUT (policy ACCEPT)target prot opt source destination</p> <p>Chain RH-Firewall-1-INPUT (0 references)target prot opt source destinationACCEPT all -- 0.0.0.0/0 0.0.0.0/0ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0ACCEPTah--0.0.0.0/00.0.0.0/0ACCEPTudp--0.0.0.0/0224.0.0.251udpdpt:5353ACCEPTtcp--0.0.0.0/00.0.0.0/0stateNEWtcpdpt:80ACCEPTtcp--0.0.0.0/00.0.0.0/0stateNEWtcpdpt:25REJECTall--0.0.0.0/00.0.0.0/0reject-withicmp-host-prohibited可以看出我在安装linux时,选择了有防⽕墙,并且开放了22,80,25端⼝.如果你在安装linux时没有选择启动防⽕墙,是这样的复制代码代码如下:[root@tp ~]# iptables -L -nChain INPUT (policy ACCEPT)target prot opt source destination </p> <p>Chain FORWARD (policy ACCEPT)target prot opt source destination </p> <p>Chain OUTPUT (policy ACCEPT)target prot opt source destination什么规则都没有.(2)清除原有规则.不管你在安装linux时是否启动了防⽕墙,如果你想配置属于⾃⼰的防⽕墙,那就清除现在filter的所有规则.复制代码代码如下:[root@tp ~]# iptables -F 清除预设表filter中的所有规则链的规则[root@tp ~]# iptables -X 清除预设表filter中使⽤者⾃定链中的规则我们在来看⼀下复制代码代码如下:[root@tp ~]# iptables -L -nChain INPUT (policy ACCEPT)target prot opt source destination </p> <p>Chain FORWARD (policy ACCEPT)target prot opt source destination </p> <p>Chain OUTPUT (policy ACCEPT)target prot opt source destination什么都没有了吧,和我们在安装linux时没有启动防⽕墙是⼀样的.(提前说⼀句,这些配置就像⽤命令配置IP⼀样,重起就会失去作⽤),怎么保存.复制代码代码如下:[root@tp ~]# /etc/rc.d/init.d/iptables save复制代码代码如下:[root@tp ~]# service iptables restart现在IPTABLES配置表⾥什么配置都没有了,那我们开始我们的配置吧(3)设定预设规则复制代码代码如下:[root@tp ~]# iptables -P INPUT DROP[root@tp ~]# iptables -P OUTPUT ACCEPT[root@tp ~]# iptables -P FORWARD DROP上⾯的意思是,当超出了IPTABLES⾥filter表⾥的两个链规则(INPUT,FORWARD)时,不在这两个规则⾥的数据包怎么处理呢,那就是DROP(放弃).应该说这样配置是很安全的.我们要控制流⼊数据包⽽对于OUTPUT链,也就是流出的包我们不⽤做太多限制,⽽是采取ACCEPT,也就是说,不在着个规则⾥的包怎么办呢,那就是通过.可以看出INPUT,FORWARD两个链采⽤的是允许什么包通过,⽽OUTPUT链采⽤的是不允许什么包通过.这样设置还是挺合理的,当然你也可以三个链都DROP,但这样做我认为是没有必要的,⽽且要写的规则就会增加.但如果你只想要有限的⼏个规则是,如只做WEB服务器.还是推荐三个链都是DROP.注:如果你是远程SSH登陆的话,当你输⼊第⼀个命令回车的时候就应该掉了.因为你没有设置任何规则.怎么办,去本机操作呗!(4)添加规则.⾸先添加INPUT链,INPUT链的默认规则是DROP,所以我们就写需要ACCETP(通过)的链为了能采⽤远程SSH登陆,我们要开启22端⼝.复制代码代码如下:[root@tp ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT[root@tp ~]# iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT(注:这个规则,如果你把OUTPUT 设置成DROP的就要写上这⼀部,好多⼈都是望了写这⼀部规则导致,始终⽆法SSH.在远程⼀下,是不是好了.其他的端⼝也⼀样,如果开启了web服务器,OUTPUT设置成DROP的话,同样也要添加⼀条链:复制代码代码如下:[root@tp ~]# iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT如果做了WEB服务器,开启80端⼝.复制代码代码如下:[root@tp ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT如果做了邮件服务器,开启25,110端⼝.复制代码代码如下:[root@tp ~]# iptables -A INPUT -p tcp --dport 110 -j ACCEPT[root@tp ~]# iptables -A INPUT -p tcp --dport 25 -j ACCEPT如果做了FTP服务器,开启21端⼝复制代码代码如下:[root@tp ~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT[root@tp ~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT如果做了DNS服务器,开启53端⼝复制代码代码如下:[root@tp ~]# iptables -A INPUT -p tcp --dport 53 -j ACCEPT如果你还做了其他的服务器,需要开启哪个端⼝,照写就⾏了.上⾯主要写的都是INPUT链,凡是不在上⾯的规则⾥的,都DROP允许icmp包通过,也就是允许ping,复制代码代码如下:[root@tp ~]# iptables -A OUTPUT -p icmp -j ACCEPT (OUTPUT设置成DROP的话) [root@tp ~]# iptables -A INPUT -p icmp -j ACCEPT (INPUT设置成DROP的话)允许loopback!(不然会导致DNS⽆法正常关闭等问题)IPTABLES -A INPUT -i lo -p all -j ACCEPT (如果是INPUT DROP)IPTABLES -A OUTPUT -o lo -p all -j ACCEPT(如果是OUTPUT DROP)下⾯写OUTPUT链,OUTPUT链默认规则是ACCEPT,所以我们就写需要DROP(放弃)的链.减少不安全的端⼝连接复制代码代码如下:[root@tp ~]# iptables -A OUTPUT -p tcp --sport 31337 -j DROP[root@tp ~]# iptables -A OUTPUT -p tcp --dport 31337 -j DROP有些些特洛伊⽊马会扫描端⼝31337到31340(即⿊客语⾔中的 elite 端⼝)上的服务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
周旭光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规则。