Linux安全防火墙(iptables)配置计谋
目次概念
防火墙的主要功能和特点:
防火墙分类
其他概念
通信五要素:
通信四要素
用户态和内核态
四个表五个链
四个表
五条链
数据包过滤的匹配流程
三种报文流向:
规则内的匹配顺序:
iptables
iptables命令的格式和相关选项
管理选项
匹配条件
数据包的控制范例
利用实例
实行预备
开机不自启 而且立即关闭
开机自启 而且 立即开启
查看
添加规则
删除规则
修改规则
通用匹配
网络协议:
IP所在:
IP范围匹配
网络接口:
使整个网段不能用指定的端口
端口匹配:
多端口匹配
MAC匹配
隐藏扩展模块
计谋备份与还原
备份iptables设置
一键导入,设置为当前防火墙设置
修改iptables的默认设置
直接把配置导入配置文件:
自界说链
创建自界说链:
向自界说链添加规则,例如:
概念
https://img-blog.csdnimg.cn/a5e3b00ec84247c0af09e603bbb9e6e8.png
防火墙(Firewall)是一种网络安全设备或软件,用于保护计算机网络免受未经授权的访问、恶意攻击和恶意软件的陵犯。它充当了网络和互联网与内部网络之间的关卡,对流量举行过滤和监控,以确保网络安全和保护敏感数据。
防火墙可以部署在不同的层级,包括网络层、数据链路层和应用层,以提供不同级别的保护。有硬件防火墙和软件防火墙两种范例,它们可以独立运行或组合利用,以实现全面的网络安全。
综而言之,防火墙是网络安全的关键构成部分,有助于保护网络和系统免受恶意攻击、未经授权的访问和数据走漏。在建立防火墙计谋时,必须根据网络需求和威胁模型来界说规则,以确保网络的安全性和可用性。
除此以外,另有防水墙,ensp:不透明的工作方式,就是你干什么都知道,但你自己不知道。
防火墙的主要功能和特点:
[*] 包过滤: 防火墙通过查抄网络数据包的源所在、目标所在、端标语和协议等信息,根据预界说的规则来决定是否允许或拒绝这些数据包通过。这种方式可以防止未经授权的访问。
[*] 状态跟踪: 某些防火墙可以或许跟踪毗连的状态,允许有关已建立的毗连的数据包通过,从而实现应用层协议的毗连。这有助于支持网络应用程序的正常通信。
[*] 署理服务: 防火墙可以充当署理服务器,对外部请求举行署理,以隐藏内部网络的细节和提供额外的安全性。
[*] 应用层检测: 高级防火墙可以查抄数据包中的内容,以辨认特定应用程序或恶意软件,从而提供更精致的控制和安全。
[*] 虚拟专用网络(VPN)支持: 防火墙通常支持建立虚拟专用网络,以加密和安全地毗连远程站点或用户。
[*] 日记记载和报警: 防火墙可以记载网络运动并天生陈诉,以帮助管理员监控和分析网络流量,辨认潜伏的威胁。
[*] 更新和规则管理: 防火墙的规则和过滤计谋可以举行定期更新,以应对新的威胁和安全毛病。
防火墙分类
[*]按部署位置分类:
[*] 边界防火墙(Perimeter Firewall):位于内部网络和外部网络之间的边界,用于过滤进入和离开内部网络的流量,通常用于保护整个内部网络。
[*] 个人防火墙(Personal Firewall):通常安装在个人计算机上,用于保护个人计算机免受恶意软件和网络攻击的陵犯。
[*] 混淆防火墙(Hybrid Firewall):结合了边界防火墙和个人防火墙的特性,可在构造和个人层面提供安全性。
[*]按技术分类:
[*] 包过滤型防火墙(Packet Filtering Firewall):基于数据包的源所在、目标所在、端标语和协议等信息来过滤流量。iptables就是包过滤防火墙
[*] 应用署理型防火墙(Application Proxy Firewall):署理服务器充当客户端和服务器之间的中介,查抄和控制应用层数据,提供更精致的应用层安全。
[*] 复合型防火墙(Next-Generation Firewall):结合了包过滤和应用署理功能,具备更全面的安全性和应用层检测本领。
[*]按硬件或软件分类:
[*] 软件防火墙(Software Firewall):运行在一台服务器或计算机上的软件,通常用于保护单个设备或主机。
[*] 硬件防火墙(Hardware Firewall):独立的硬件设备,通常位于网络的入口点,用于保护整个网络。
[*]按防火墙结构分类:
[*] 单一主机防火墙(Host-based Firewall):部署在单个主机上,用于保护该主机免受攻击。
[*] 路由器集成式防火墙(Router-Integrated Firewall):防火墙功能集成在路由器中,用于保护整个网络。
[*] 分布式防火墙(Distributed Firewall):多个防火墙设备协同工作,以提供更大规模的网络保护。
[*]按性能分类:
[*] 百兆级防火墙(100Mbps Firewall):可以或许处理百兆位速度的网络流量。
[*] 千兆级防火墙(1Gbps Firewall):可以或许处理千兆位速度的网络流量。
[*]按利用方法分类:
[*] 网络层防火墙(Network Layer Firewall):操纵在网络层,通常用于过滤IP数据包。
[*] 物理层防火墙(Physical Layer Firewall):操纵在物理数据链路层,用于控制网络物理毗连。
[*] 链路层防火墙(Link Layer Firewall):操纵在数据链路层,通常用于控制访问局域网内的网络设备。
其他概念
通信五要素:
源ip和目标ip
源端口和目标端口
协议(tcp/udp)
通信四要素
源ip和目标ip
源端口和目标端口
用户态和内核态
https://img-blog.csdnimg.cn/92a25197938c4587ae91e82b8ad8e3c3.png
用户态防火墙:面向利用对象,就是利用工具,配置计谋
[*] 位置: 用户态防火墙是运行在操纵系统的用户空间(User Space)的防火墙。它是一个独立的应用程序,不直接访问操纵系统内核。
[*] 特点: 用户态防火墙通常是第三方应用程序,它们利用操纵系统提供的网络套接字 API 来监控和控制网络流量。它们提供了更灵活的配置选项,允许用户根据需要界说规则和计谋。
[*] 优点: 用户态防火墙具有更高的可配置性,可以支持高级的应用层规则和应用程序特定的计谋。它们通常更容易管理和调解,适用于特定网络应用的定制需求。
[*] 缺点: 用户态防火墙的性能通常较低,因为它们需要将网络数据包从内核空间复制到用户空间,然后再举行处理。这可能会导致性能瓶颈。
内核态防火墙:代码层(开辟)
[*] 位置: 内核态防火墙是运行在操纵系统内核空间(Kernel Space)的防火墙。它直接与操纵系统内核交互,可以更有用地控制网络流量。
[*] 特点: 内核态防火墙通常是操纵系统的一部分,它们可以或许在数据包到达操纵系统时立即处理,无需复制到用户空间。
[*] 优点: 内核态防火墙具有较高的性能,因为它们可以在操纵系统内核中直接操纵。它们适用于需要快速和高效的网络流量处理的情况,如防止网络攻击和快速数据包过滤。
[*] 缺点: 内核态防火墙通常具有较少的可配置性,因为它们可能受限于内核模块的特定规则。定制化程度较低,难以满足某些高级网络需求。
iptables就属于用户态防火墙,配置规则见效后,立即见效,无需重启。centos7之前,iptables是默认配置,现在默认是firewalld。centos7之后要利用iptables要把firewalld关闭
https://img-blog.csdnimg.cn/289b1a8075fa4943944b29e4f1eb0439.png
四个表五个链
https://img-blog.csdnimg.cn/c57cadb14bac4d208aa81db5bec977bf.png
https://img-blog.csdnimg.cn/bbcd54539d7148f3a8d0f20885e51e20.png
在 Linux 上,iptables 防火墙系统通常利用四个主要表来控制网络数据包的过滤和处理。这四个表分别是:filter、mangle、nat 和 raw。每个表有不同的目标和功能,用于管理不同条理的数据包处理。
四个表
[*]raw 表:关闭启用的毗连跟踪机制,加速封包穿越防火墙速度
[*] 用途:raw 表用于配置原始数据包处理,通常用于在数据包进入毗连跟踪系统之前举行特殊处理,如毗连跟踪追踪。
[*] 链:raw 表包括两个主要链:PREROUTING(数据包到达路由前处理)和 OUTPUT(出站数据包处理)。
[*]mangle 表:修改数据标记位规则表
[*] 用途:mangle 表主要用于数据包的修改和特殊处理,如修改数据包头部信息、更改数据包的 TOS(Type of Service)字段等。
[*] 链:mangle 表包括一系列链,如 PREROUTING(数据包到达路由前处理)、INPUT(进入系统前处理)、FORWARD(转发前处理)等。
[*]nat 表:network address translation 所在转换规则表
[*] 用途:nat(Network Address Translation)表用于举行网络所在转换,允许内部网络中的多个设备共享单一公共 IP 所在,以及实现端口映射和端口转发等功能。
[*] 链:nat 表包括三个主要链:PREROUTING(数据包到达路由前处理,用于端口映射和 DNAT)、POSTROUTING(数据包离开路由后处理,用于源所在转换和 SNAT)、OUTPUT(出站数据包处理,通常用于本地流量的 NAT)。
[*]filter 表:过滤规则表,根据预界说的规则过滤符合条件的数据包,默认表
[*] 用途:filter 表是最常用的表,用于控制数据包的过滤和计谋路由。
[*] 链:filter 表包括三个主要链:INPUT(用于处理进入系统的数据包)、FORWARD(用于处理转发的数据包)和 OUTPUT(用于处理离开系统的数据包)。
这四个表共同构成了 iptables 防火墙的核心,允许管理员通过配置规则和链来控制数据包的流向、处理和修改。这种细粒度的控制有助于实行网络安全计谋和网络所在转换等功能。管理员可以利用不同链和规则来自界说防火墙行为,以满足网络情况的需求。
五条链
[*] PREROUTING链:处理数据包进入本机之前的规则。
[*] INPUT链:处理数据包进入本机的规则。
[*] FORWARD链:处理数据包转发到其他主机的规则。
[*] OUTPUT链:处理本机发出的数据包的规则,一样平常不做处理。
[*] POSTROUTING链:处理数据包离开本机之后的规则。
四表五链
规则表的作用:容纳各种规则链
规则链的作用:容纳各种防火墙规则
总结:表里有链,链里有规则
数据包过滤的匹配流程
https://img-blog.csdnimg.cn/a3181dfdb0b84492bfcc3d352d4dddfa.png
[*] 当一个数据包进入网卡时,数据包首先进入PREROUTING链,内核根据数据包目标IP判断是否需要转送出去。
[*] 假如数据包是进入本机的,数据包就会沿着图向下移动,到达INPUT链。 数据包到达INPUT链后, 任何进程都会收到它。本机上运行的程序可以发送数据包, 这些数据包经过OUTPUT链,然后到达
[*] 假如数据包是要转发出去的,且内核允许转发,数据包就会向右移动, 经过FORWARD链,然后到达POSTROUTING链输出
三种报文流向:
流入本机:PREROUTING --> INPUT-->用户空间进程 httpd服务-目标转换-httpd 流出本机:用户空间进程 -->OUTPUT--> POSTROUTING httpd服务-out-源所在 转发:PREROUTING --> FORWARD --> POSTROUTING -----FOR------
规则内的匹配顺序:
自上向下按顺序依次举行查抄,找到相匹配的规则即制止(LOG计谋例外,表示记载相关日记) 若在该链内找不到相匹配的规则,则按该链的默认计谋处理(未修改的状况下,默认计谋为允许)
iptables
iptables命令的格式和相关选项
https://img-blog.csdnimg.cn/6afd00fe521b45e88b41f5ba773b4e5a.png
管理选项
匹配规则:从上到下按照顺序依次查抄,找到匹配的规则立刻制止匹配。找到匹配规则,会按照链的默认规则举行实行。假如不指定表名,默认就是filter
[*] -A:向指定的链(如INPUT、OUTPUT、FORWARD)的末尾追加一条规则。
[*] iptables -A INPUT (操纵)
[*] -I:在指定链的指定位置插入一条规则,根据编号来举行插入,不指定序号,直接插入当前链中的第一条(不推荐)。
[*] iptables -I INPUT (操纵)
[*] -P:设置指定链的默认计谋(如ACCEPT、DROP)。
[*] iptables -P OUTPUT ACCEPT (操纵)
[*] -D:从指定的链中删除一条规则。
[*] iptables -t nat -D INPUT 2 (操纵)
[*] -R:替换指定链中的一条规则。
[*] iptables -t nat -R INPUT (操纵)
[*] -L:列出指定链中的全部规则。
[*] iptables -t nat -L (查看)
[*] -n:全部字段以数字形式展示
[*] iptables -L -n,iptables -nL,iptables -vnL (查看)
[*] -v:表现具体信息
[*] 常跟-L一起利用 (查看)
[*] -F:清除指定链中的全部规则。
[*] iptables -F
[*] -N:创建一个新的自界说链。
[*] iptables -N
[*] -X:删除一个自界说链。
[*] iptables -X
[*] -Z:将全部链中的数据包计数器归零。
iptables -Z
[*] -S:看链的全部规则或者某个链的规则/某个具体规则背面跟编号
匹配条件
匹配条件是用来确定是否应用某个规则的依据。
[*] -p:指定传输层协议(如TCP、UDP、ICMP)。
[*] -s:指定源IP所在或所在范围。
[*] -d:指定目标IP所在或所在范围。
[*] -i:指定进入网络接口。
[*] -o:指定离开网络接口。
[*] --sport:指定源端标语或端口范围。
[*] --dport:指定目标端标语或端口范围。
[*] --protocol:指定协议(与 -p 类似)。
[*] -m state:根据毗连状态匹配规则(如ESTABLISHED、RELATED)。
[*] -m multiport:匹配多个端口。
[*] -m mac:根据MAC所在匹配规则。
[*] -m comment:为规则添加注释。
数据包的控制范例
ACCPET:允许数据包通过
DROP:直接丢弃数据包,没有任何回应信息
REJECT:拒绝数据包通过,会给一个相应信息
SNAT:修改数据包的源所在
DNAT:修改数据包的目标所在
利用实例
实行预备
CentOS7默认利用firewalld防火墙,没有安装iptables,若想利用iptables防火墙。必须先关闭firewalld防火墙, 再安装iptables
bash systemctl stop firewalld.service
setenforce 0
systemctl disable --now firewalld.service
开机不自启 而且立即关闭
systemctl enable --now firewalld.service
开机自启 而且 立即开启
yum -y install iptables iptables-services systemctl start iptables.service systemctl enable iptables.service
查看
大略查看默认规则:
#iptables -L
数字化的形式查看规则: #iptables -nL
注意:当-nL同时利用时,n一定要在L 的前面,否则会报错,利用-vnL时也是如此,L要在最背面
指定表查看:
#iptables -t filter -vnL
查看指定表中的指定链
#iptables -t filter -vnL INPUT #不指定表,默认就是filter
pkts:对应规则匹配到的报文的个数。
bytes:对应匹配到的报文包的巨细总和。
target:规则对应的target,通常表示规则对应的”动作”,即规则匹配成功后需要接纳的步调。
prot:表示规则对应的协议,是否只针对某些协议应用此规则。
opt:表示规则对应的选项。
in:表示数据包由哪个接口(网卡)流入,我们可以设置通过哪块网卡流入的报文需要匹配当前规则。
out:表示数据包由哪个接口(网卡)流出,我们可以设置通过哪块网卡流出的报文需要匹配当前规则。
source:表示规则对应的源头所在,可以是一个IP,也可以是一个网段。
destination:表示规则对应的目标所在。可以是一个IP,也可以是一个网段。
https://img-blog.csdnimg.cn/c6b7b33258fe4a128b114903ad9c20da.png
列出当前防火墙规则,并表现每条规则的行号、具体信息、以数值格式表现的 IP 所在和端标语
[*] iptables: 这是用于配置Linux内核防火墙规则的命令。
[*] -vnL: 这是一组参数,具体寄义如下:
[*] -v: 用于表现更具体的信息,包括数据包计数和字节计数。
[*] -n: 用于表现数值格式的 IP 所在和端标语,而不是解析为主机名和服务名称。
[*] -L: 用于列出防火墙规则。
[*] --line-numbers: 这个参数用于表现规则的行号(line numbers),以便更容易辨认和引用特定规则。
这个命令的作用是列出当前防火墙规则,并表现每条规则的行号、具体信息、以数值格式表现的 IP 所在和端标语。
[*] 添加规则
添加新的防火墙规则时,利用管理选项“-A”、“-I”,前者用来追加规则,后者用来插入规则。
[*] 克制全部主机ping本机和允许(假如先允许,那么就不会克制。匹配到了就不在匹配背面的规则)
https://img-blog.csdnimg.cn/8bf04042766649839534a8612dd6a481.png
[*] iptables: 这是用于配置Linux防火墙规则的命令。
[*] -t filter: 这部分指定了利用名为 "filter" 的表(table)。iptables支持不同的表,用于管理不同范例的规则。 "filter" 表用于过滤数据包。
[*] -A INPUT: 这部分表示要将规则附加(Append)到 INPUT 链中。"INPUT" 链用于处理进入系统的数据包。
[*] -p icmp: 这部分指定了要匹配的协议范例,这里是 ICMP 协议。ICMP(Internet Control Message Protocol)是用于网络通信和诊断的协议,包括 ping 请求和相应。
[*] -j ACCEPT: 这部分表示假如数据包匹配了上述条件(ICMP协议),则将其接受(ACCEPT)。这意味着允许 ICMP 数据包通过防火墙,允许系统相应 ping 请求和其他 ICMP 请求。
因此,这个命令的作用是将一个规则添加到 "filter" 表的 "INPUT" 链中,以允许全部的 ICMP 数据包通过防火墙。
[*] 指定序号插入
[*] 插入到第一条:iptables -t filter -I INPUT 1 -p icmp -j ACCEPT
[*] iptables: 这是用于配置Linux防火墙规则的命令。 -t filter: 这部分指定了利用名为 "filter" 的表(table)。 "filter" 表用于过滤数据包。 -I INPUT 1: 这部分表示要在 "INPUT" 链的位置 1(即第一个规则位置)插入(Insert)规则。之前的命令利用的是 -A INPUT,将规则附加到 INPUT 链的末尾,而这个命令将规则插入到 INPUT 链的开头。 -p icmp: 这部分指定了要匹配的协议范例,这里是 ICMP 协议。 -j ACCEPT: 这部分表示假如数据包匹配了上述条件(ICMP协议),则将其接受(ACCEPT),即允许 ICMP 数据包通过防火墙。
[*] 因此,这个命令的作用是将一个规则插入到 "filter" 表的 "INPUT" 链的第一个位置,以允许全部的 ICMP 数据包通过防火墙。
[*] 克制任何主机tcp
https://img-blog.csdnimg.cn/83e34de55ec2451b89e465ce3ddbad46.png
[*] 拒绝来自特定源IP所在 192.168.41.13,目标端口为 80 的 TCP 数据包。
https://img-blog.csdnimg.cn/ce07f80853c4461185da25212dc08fbe.pngiptables -t filter -I INPUT 1 -s 192.168.41.13 -p tcp --dport 80 -j REJECT
[*] -t filter: -t 参数指定了要操纵的表(table),在这里是 filter 表。filter 表用于数据包过滤,允许或者拒绝数据包通过防火墙。
[*] -I INPUT 1: -I 参数表示要在特定链(chain)中插入一条规则。INPUT 链是指数据包进入本地系统的网络数据包处理链。1 表示将规则插入到链的第一个位置。
[*] -s 192.168.41.13: -s 参数用于指定源 IP 所在,这个规则将仅适用于源IP所在为 192.168.41.13 的数据包。
[*] -p tcp: -p 参数指定匹配的协议范例,这里是 TCP 协议。
[*] --dport 80: --dport 参数指定目标端标语为 80,这意味着这个规则将匹配目标端标语为 80 的 TCP 数据包。
[*] -j REJECT: -j 参数用于指定假如规则匹配成功,应该实行的动作。在这个规则中,当匹配成功时,动作是拒绝(REJECT)匹配的数据包。这将导致系统向发送方发送拒绝毗连的消息。
[*] 拒绝多态主机,用,毗连ip
[*] iptables -t filter -A INPUT -s 192.168.41.11,192.168.41.13 -p icmp -j REJECT
[*] 拒绝单台主机,其他主机可以毗连
[*] iptables -t filter -A INPUT -s 192.168.41.11 -p icmp -j REJECT
https://img-blog.csdnimg.cn/3e685f52c6a74df0b6529bc5233ac663.png
[*] 拒绝主机发出数据包
[*] iptables -t filter -A OUTPUT -s 192.168.41.10 -p icmp -j REJECT
https://img-blog.csdnimg.cn/aacc02c6f1404e12bcd054510fcfd391.png
删除规则
[*] 根据序号删除内容 iptables -D INPUT 1 #删除指定的INPUT链中的第一条规则
[*] 从 INPUT 链中删除第二条规则
iptables -D INPUT 2
iptables: 这是用于配置Linux内核防火墙规则的命令。 -D INPUT 2: -D 参数表示删除规则,INPUT 是规则所在的链(chain),2 是要删除的规则的位置或规则编号。在这个例子中,它指示删除 INPUT 链中的第二条规则。 这个命令的作用是从 INPUT 链中删除第二条规则。防火墙规则是按顺序实行的,以是删除一条规则后,后续规则的编号会向前移动。
[*]按照内容匹配删除
内容匹配删除(有两个相同的则作用为去重) 如果有两个重复的规则,则删除序号较小的 # iptables -D INPUT -p icmp -j REJECT #删除序号小的
演示删除序号较小的 # iptables -t filter -A INPUT -p icmp -j REJECT
# iptables -t filter -A INPUT -p icmp -j ACCEPT
# iptables -t filter -A INPUT -p icmp -j REJECT
# iptables -nL INPUT --line-number
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 REJECT icmp -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
# iptables -D INPUT -p icmp -j REJECT #第二次就时删除指定。 # iptables -nL INPUT --line-numbers
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
注意:按照内容匹配删除规则,只能每次删除内容相同序号较小的规则。
直到删除最后一条时,才能将该规则全部清除 。
一定要报保证该匹配的内容存在,且完全匹配规则才能删除,不然报错。 修改规则
-R 直接修改。
为了保险起见,我们可以尝试着先添加一条新的规则,
确保新规则不会带来任何不利的影响再删除旧的规则(也能达到替换的效果)
# iptables -t filter -A INPUT -p icmp -j ACCEPT
# iptables -nL INPUT --line-number#查看规则
Chain INPUT (policy ACCEPT)
numtarget prot opt source destination
1 ACCEPT icmp --0.0.0.0/0 0.0.0.0/0
# iptables -R INPUT 1 -p icmp -j REJECT #替换
# iptables -nL INPUT --line-number#ACCEPT替换成了REJECT
Chain INPUT (policy ACCEPT)
numtarget prot opt source destination
1 REJECT icmp --0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
[*] 设置默认计谋
[*] 指定当没有与已有规则匹配的情况下,如何处理进入系统的数据包
[*] iptables -P INPUT DROP
这个命令的结果是,假如没有特定规则匹配一个进入系统的数据包,那么该数据包将被拒绝,从而增强了系统的安全性。
[*] -P INPUT 意味着这个计谋将应用于 "INPUT" 链,用于处理进入系统的数据包。
[*] DROP 意味着默认情况下,全部不匹配已有规则的进入数据包将被丢弃(DROP),即拒绝通过防火墙。
[*] 设置一条允许,相当于白名单
[*] iptables -t filter -A INPUT -p ICMP -j ACCEPT
[*] 1.-F 仅仅是清空链中的规则,并不影响 -P 设置的规则,默认规则需要手动举行修改 2.-P 设置了DROP后,利用 -F 一定要警惕!
#防止把允许远程毗连的相关规则清除后导致无法远程毗连主机,此情况假如没有保存规则可重启主机办理
此时的办理方案有三种:
第一种:我的防火墙设置只是暂时设置,并为保存,重启服务器即可
第二种:操纵服务器,重启iptables服务
第三种:进入机房操纵该服务器(将设置规复,重新修改规则)炸!
在生产中都是默认DROP
通用匹配
[*]网络协议、IP所在、网络接口等条件。
[*]协议匹配: -p协议名
[*]所在匹配: -s 源所在、-d目标所在
[*]#可以是IP、网段、域名、空(任何所在)
[*]接口匹配: -i入站网卡、-o出站网卡
[*]感叹号”!”表示取反
[*] 网络协议:
[*]# iptables -A INPUT ! -p icmp -j ACCEPT #除了icmp以外,全部的协议都可以进入
#这是假的取反。界说的默认计谋还在实行ACCEPT,只有该变默认计谋,才能见效
#iptables -P INPUT DROP #这时候才能取反
其他的服务不受影响,这个时候,把计谋清空,全部的协议都将被DROP
#iptables -F
只能进虚拟机重启
[*] IP所在:
[*] # iptables -A INPUT -s 192.168.41.13 -j DROP #克制22的数据进入
[*] IP范围匹配
[*] -m iprange --src-range 源IP范围
[*] -m iprange --dst-range 目标IP范围
[*] # iptables -A INPUT -p icmp -m iprange --src-range 192.168.233.20-192.168.233.30 -j REJECT
克制网段内的ip所在ping主机
[*] 网络接口:
[*] # iptables -I INPUT 1 -i ens33 -s 192.168.41.0/24 -j DROP #克制指定的网络设备名称ens33的全部网段
[*] 使整个网段不能用指定的端口
[*] # iptables -t filter -A INPUT -s 192.168.41.0/24 -p tcp --dport 80 -j REJECT #克制整个网段访问80端口
[*] 端口匹配:
[*] # iptables -A INPUT -p tcp --dport 22:80 -j REJECT #克制整个网段访问22和80端口
这里写发要注意,小的数字写在前面,大的写在背面
[*] 多端口匹配
要求以“-m 扩展模块”的形式明白指出范例,包括多端口、MAC所在、IP范围、数据包状态等条件
[*] -m multiport --sport 源端口列表
[*] -m multiport --dport 目标端口列表
[*] # iptables -A INPUT -p tcp -m multiport --dport 80,22,21,20,53 -j REJECT 多端口匹配,一次性克制多个tcp网络协议的端口匹配规则
# iptables -A INPUT -p udp -m multiport --dport 53,54,55 -j ACCEP 多端口匹配,一次性放通多个udp网络协议的端口匹配规则
[*] MAC匹配
[*] -m mac --mac-source MAC所在
[*] # iptables -A INPUT -m mac --mac-source 00:0c:29:f7:24:38 -j DROP
[*] 隐藏扩展模块
[*] iptables在利用-p 指定协议时,若指明特定协议后就无须再利用-m指明扩展模块的扩展机制。 例如若已经指明是 -p tcp协议则利用--dport及--sport等tcp模块内容时即可省略-m tcp。
计谋备份与还原
https://img-blog.csdnimg.cn/9237f351216145ae84835efade760bac.png
https://img-blog.csdnimg.cn/1e09104c67d64ac79938d8524ed77957.png
yum -y install iptables iptables-services
systemctl start iptables.service
systemctl enable iptables.service
我们对iptables命令行中的设置,都是暂时设置,只要遇到服务器关机,或者服务重启时,
全部的设置都会清空且还原为原来的设置。
为此,我们可以对已经测试完毕符合我们需求的防火墙设置举行备份,在须要时,可以一键还原
备份iptables设置
格式:iptables-save >/指定的文件
# iptables-save >/opt/iptables.bak
一键导入,设置为当前防火墙设置
#iptables-restore </opt/iptables.bak
修改iptables的默认设置
iptables的默认配置文件存在于 cat /etc/sysconfig/iptables
直接把配置导入配置文件:
cat /opt/iptables.bak >/etc/sysconfig/iptables
立即见效了,实行情况下,了解就可以了。不要尝试
# systemctl restart iptables #重启之后见效的就是配置文件中的内容,操纵需谨慎,
注意拍快照,方便还原
自界说链
创建自界说链:
iptables -N MYCHAIN
向自界说链添加规则,例如:
iptables -A MYCHAIN -s 192.168.1.0/24 -j DROP
这条规则将克制192.168.1.0/24网段的访问,丢弃源所在的流量。
https://img-blog.csdnimg.cn/badd080382a94bdb83542570414b2004.png
可以利用类似的命令来添加更多规则到自界说链中,根据需求举行配置。假如想要删除自界说链,确保满足以下条件:
[*] 自界说链没有被任何默认链引用,即自界说链的引用计数为0。
[*] 自界说链中没有任何规则,即自界说链为空。
可以利用-x选项来删除自界说链,例如:
iptables -X MYCHAIN
示例
自界说链利用
自界说链添加:iptables -N custom(链名) 创建链
自界说链改名:iptables -E custom(原来名称) ky29(新名称) 自界说链改名
创建自界说链规则:iptables -t filter -I ky29 -p icmp -j REJECT 创建自界说规则,
iptables的链中添加一条对应到自界说链中才能见效
iptabales创建对应链规则然后跳转自界说链web:iptables -t filter -I INPUT -p icmp -j custom
删除自界说规则链:先删除iptables INPUT链中的对应关系,然后删除自界说链中的规则。 iptables -D INPUT 1
iptables -D ky27 1
然后再用 iptables -X ky27 删除这个链
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]