Linux安全防火墙(iptables)配置策略

目录

概念

防火墙的主要功能和特点:

防火墙分类

其他概念

通信五要素:

通信四要素

用户态和内核态

四个表五个链

四个表

五条链

数据包过滤的匹配流程

三种报文流向:

规则内的匹配顺序:

iptables

iptables命令的格式和相关选项

管理选项

匹配条件

数据包的控制类型

使用实例

实验准备

开机不自启 并且立即关闭

开机自启 并且 立即开启

查看

添加规则

删除规则

修改规则

通用匹配

网络协议:

IP地址:

IP范围匹配

网络接口:

使整个网段不能用指定的端口

端口匹配:

多端口匹配

MAC匹配

隐藏扩展模块

策略备份与还原

备份iptables设置

一键导入,设置为当前防火墙设置

修改iptables的默认设置

直接把配置导入配置文件:

自定义链

创建自定义链:

向自定义链添加规则,例如:


概念

防火墙(Firewall)是一种网络安全设备或软件,用于保护计算机网络免受未经授权的访问、恶意攻击和恶意软件的侵害。它充当了网络和互联网与内部网络之间的关卡,对流量进行过滤和监控,以确保网络安全和保护敏感数据。

防火墙可以部署在不同的层级,包括网络层、数据链路层和应用层,以提供不同级别的保护。有硬件防火墙和软件防火墙两种类型,它们可以独立运行或组合使用,以实现全面的网络安全。

综而言之,防火墙是网络安全的关键组成部分,有助于保护网络和系统免受恶意攻击、未经授权的访问和数据泄露。在建立防火墙策略时,必须根据网络需求和威胁模型来定义规则,以确保网络的安全性和可用性。

除此以外,还有防水墙,ensp:不透明的工作方式,就是你干什么都知道,但你自己不知道。

防火墙的主要功能和特点:

  1. 包过滤: 防火墙通过检查网络数据包的源地址、目标地址、端口号和协议等信息,根据预定义的规则来决定是否允许或拒绝这些数据包通过。这种方式可以防止未经授权的访问。

  2. 状态跟踪: 某些防火墙能够跟踪连接的状态,允许有关已建立的连接的数据包通过,从而实现应用层协议的连接。这有助于支持网络应用程序的正常通信。

  3. 代理服务: 防火墙可以充当代理服务器,对外部请求进行代理,以隐藏内部网络的细节和提供额外的安全性。

  4. 应用层检测: 高级防火墙可以检查数据包中的内容,以识别特定应用程序或恶意软件,从而提供更精细的控制和安全。

  5. 虚拟专用网络(VPN)支持: 防火墙通常支持建立虚拟专用网络,以加密和安全地连接远程站点或用户。

  6. 日志记录和报警: 防火墙可以记录网络活动并生成报告,以帮助管理员监控和分析网络流量,识别潜在的威胁。

  7. 更新和规则管理: 防火墙的规则和过滤策略可以进行定期更新,以应对新的威胁和安全漏洞。

防火墙分类

  1. 按部署位置分类:
  • 边界防火墙(Perimeter Firewall):位于内部网络和外部网络之间的边界,用于过滤进入和离开内部网络的流量,通常用于保护整个内部网络。

  • 个人防火墙(Personal Firewall):通常安装在个人计算机上,用于保护个人计算机免受恶意软件和网络攻击的侵害。

  • 混合防火墙(Hybrid Firewall):结合了边界防火墙和个人防火墙的特性,可在组织和个人层面提供安全性。

  1. 按技术分类:
  • 包过滤型防火墙(Packet Filtering Firewall):基于数据包的源地址、目标地址、端口号和协议等信息来过滤流量。iptables就是包过滤防火墙

  • 应用代理型防火墙(Application Proxy Firewall):代理服务器充当客户端和服务器之间的中介,检查和控制应用层数据,提供更精细的应用层安全。

  • 复合型防火墙(Next-Generation Firewall):结合了包过滤和应用代理功能,具备更全面的安全性和应用层检测能力。

  1. 按硬件或软件分类:
  • 软件防火墙(Software Firewall):运行在一台服务器或计算机上的软件,通常用于保护单个设备或主机。

  • 硬件防火墙(Hardware Firewall):独立的硬件设备,通常位于网络的入口点,用于保护整个网络。

  1. 按防火墙结构分类:
  • 单一主机防火墙(Host-based Firewall):部署在单个主机上,用于保护该主机免受攻击。

  • 路由器集成式防火墙(Router-Integrated Firewall):防火墙功能集成在路由器中,用于保护整个网络。

  • 分布式防火墙(Distributed Firewall):多个防火墙设备协同工作,以提供更大规模的网络保护。

  1. 按性能分类:
  • 百兆级防火墙(100Mbps Firewall):能够处理百兆位速度的网络流量。

  • 千兆级防火墙(1Gbps Firewall):能够处理千兆位速度的网络流量。

  1. 按使用方法分类:
  • 网络层防火墙(Network Layer Firewall):操作在网络层,通常用于过滤IP数据包。

  • 物理层防火墙(Physical Layer Firewall):操作在物理数据链路层,用于控制网络物理连接。

  • 链路层防火墙(Link Layer Firewall):操作在数据链路层,通常用于控制访问局域网内的网络设备。

其他概念

通信五要素:

源ip和目的ip

源端口和目的端口

协议(tcp/udp)

通信四要素

源ip和目的ip

源端口和目的端口

用户态和内核态

用户态防火墙:面向使用对象,就是使用工具,配置策略

  1. 位置: 用户态防火墙是运行在操作系统的用户空间(User Space)的防火墙。它是一个独立的应用程序,不直接访问操作系统内核。

  2. 特点: 用户态防火墙通常是第三方应用程序,它们使用操作系统提供的网络套接字 API 来监控和控制网络流量。它们提供了更灵活的配置选项,允许用户根据需要定义规则和策略。

  3. 优点: 用户态防火墙具有更高的可配置性,可以支持高级的应用层规则和应用程序特定的策略。它们通常更容易管理和调整,适用于特定网络应用的定制需求。

  4. 缺点: 用户态防火墙的性能通常较低,因为它们需要将网络数据包从内核空间复制到用户空间,然后再进行处理。这可能会导致性能瓶颈。

内核态防火墙:代码层(开发)

  1. 位置: 内核态防火墙是运行在操作系统内核空间(Kernel Space)的防火墙。它直接与操作系统内核交互,可以更有效地控制网络流量。

  2. 特点: 内核态防火墙通常是操作系统的一部分,它们能够在数据包到达操作系统时立即处理,无需复制到用户空间。

  3. 优点: 内核态防火墙具有较高的性能,因为它们可以在操作系统内核中直接操作。它们适用于需要快速和高效的网络流量处理的情况,如防止网络攻击和快速数据包过滤。

  4. 缺点: 内核态防火墙通常具有较少的可配置性,因为它们可能受限于内核模块的特定规则。定制化程度较低,难以满足某些高级网络需求。

iptables就属于用户态防火墙,配置规则生效后,立即生效,无需重启。centos7之前,iptables是默认配置,现在默认是firewalld。centos7之后要使用iptables要把firewalld关闭

四个表五个链

在 Linux 上,iptables
防火墙系统通常使用四个主要表来控制网络数据包的过滤和处理。这四个表分别是:​​​​filter​​​​、​​​​mangle​​​​、​​​​nat​​​​
和 ​​​​raw​​​​。每个表有不同的目的和功能,用于管理不同层次的数据包处理。

四个表
  1. raw 表: 关闭启用的连接跟踪机制,加快封包穿越防火墙速度
  • 用途:raw 表用于配置原始数据包处理,通常用于在数据包进入连接跟踪系统之前进行特殊处理,如连接跟踪追踪。

  • 链:raw 表包括两个主要链:PREROUTING(数据包到达路由前处理)和 OUTPUT(出站数据包处理)。

  1. mangle 表: 修改数据标记位规则表
  • 用途:mangle 表主要用于数据包的修改和特殊处理,如修改数据包头部信息、更改数据包的 TOS(Type of Service)字段等。

  • 链:mangle 表包括一系列链,如 PREROUTING(数据包到达路由前处理)、INPUT(进入系统前处理)、FORWARD(转发前处理)等。

  1. nat 表: network address translation 地址转换规则表
  • 用途:nat(Network Address Translation)表用于进行网络地址转换,允许内部网络中的多个设备共享单一公共 IP 地址,以及实现端口映射和端口转发等功能。

  • 链:nat 表包括三个主要链:PREROUTING(数据包到达路由前处理,用于端口映射和 DNAT)、POSTROUTING(数据包离开路由后处理,用于源地址转换和 SNAT)、OUTPUT(出站数据包处理,通常用于本地流量的 NAT)。

  1. filter 表: 过滤规则表,根据预定义的规则过滤符合条件的数据包,默认表
  • 用途:filter 表是最常用的表,用于控制数据包的过滤和策略路由。

  • 链:filter 表包括三个主要链:INPUT(用于处理进入系统的数据包)、FORWARD(用于处理转发的数据包)和 OUTPUT(用于处理离开系统的数据包)。

这四个表共同构成了 iptables
防火墙的核心,允许管理员通过配置规则和链来控制数据包的流向、处理和修改。这种细粒度的控制有助于实施网络安全策略和网络地址转换等功能。管理员可以使用不同链和规则来自定义防火墙行为,以满足网络环境的需求。

五条链
  • PREROUTING链:处理数据包进入本机之前的规则。

  • INPUT链:处理数据包进入本机的规则。

  • FORWARD链:处理数据包转发到其他主机的规则。

  • OUTPUT链:处理本机发出的数据包的规则,一般不做处理。

  • POSTROUTING链:处理数据包离开本机之后的规则。

四表五链
规则表的作用:容纳各种规则链
规则链的作用:容纳各种防火墙规则
总结:表里有链,链里有规则

数据包过滤的匹配流程

  1. 当一个数据包进入网卡时,数据包首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。

  2. 如果数据包是进入本机的,数据包就会沿着图向下移动,到达INPUT链。 数据包到达INPUT链后, 任何进程都会收到它。本机上运行的程序可以发送数据包, 这些数据包经过OUTPUT链,然后到达

  3. 如果数据包是要转发出去的,且内核允许转发,数据包就会向右移动, 经过FORWARD链,然后到达POSTROUTING链输出

三种报文流向:

流入本机:PREROUTING --> INPUT–>用户空间进程 httpd服务-目的转换-httpd 流出本机:用户空间进程 -->OUTPUT–>
POSTROUTING httpd服务-out-源地址 转发:PREROUTING --> FORWARD --> POSTROUTING
-----FOR------

规则内的匹配顺序:

自上向下按顺序依次进行检查,找到相匹配的规则即停止(LOG策略例外,表示记录相关日志)
若在该链内找不到相匹配的规则,则按该链的默认策略处理(未修改的状况下,默认策略为允许)

iptables

iptables命令的格式和相关选项

管理选项

匹配规则:从上到下按照顺序依次检查,找到匹配的规则立刻停止匹配。找到匹配规则,会按照链的默认规则进行执行。如果不指定表名,默认就是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:看链的所有规则或者某个链的规则/某个具体规则后面跟编号

匹配条件

匹配条件是用来确定是否应用某个规则的依据。

  1. -p:指定传输层协议(如TCP、UDP、ICMP)。

  2. -s:指定源IP地址或地址范围。

  3. -d:指定目标IP地址或地址范围。

  4. -i:指定进入网络接口。

  5. -o:指定离开网络接口。

  6. --sport:指定源端口号或端口范围。

  7. --dport:指定目标端口号或端口范围。

  8. --protocol:指定协议(与 -p 类似)。

  9. -m state:根据连接状态匹配规则(如ESTABLISHED、RELATED)。

1. `-m multiport`:匹配多个端口。2. `-m mac`:根据MAC地址匹配规则。3. `-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

查看

粗略查看默认规则:

[root@localhost ~]#iptables -L

数字化的形式查看规则: [root@localhost ~]#iptables -nL

注意:当-nL同时使用时,n一定要在L 的前面,否则会报错,使用-vnL时也是如此,L要在最后面

指定表查看:

[root@localhost ~]#iptables -t filter -vnL

查看指定表中的指定链

[root@localhost ~]#iptables -t filter -vnL INPUT #不指定表,默认就是filter

pkts:对应规则匹配到的报文的个数。

bytes:对应匹配到的报文包的大小总和。

target:规则对应的target,往往表示规则对应的”动作”,即规则匹配成功后需要采取的措施。

prot:表示规则对应的协议,是否只针对某些协议应用此规则。

opt:表示规则对应的选项。

in:表示数据包由哪个接口(网卡)流入,我们可以设置通过哪块网卡流入的报文需要匹配当前规则。

out:表示数据包由哪个接口(网卡)流出,我们可以设置通过哪块网卡流出的报文需要匹配当前规则。

source:表示规则对应的源头地址,可以是一个IP,也可以是一个网段。

destination:表示规则对应的目标地址。可以是一个IP,也可以是一个网段。

列出当前防火墙规则,并显示每条规则的行号、详细信息、以数值格式显示的 IP 地址和端口号

  • iptables: 这是用于配置Linux内核防火墙规则的命令。

  • -vnL: 这是一组参数,具体含义如下:

    • -v: 用于显示更详细的信息,包括数据包计数和字节计数。

    • -n: 用于显示数值格式的 IP 地址和端口号,而不是解析为主机名和服务名称。

    • -L: 用于列出防火墙规则。

  • --line-numbers: 这个参数用于显示规则的行号(line numbers),以便更容易识别和引用特定规则。

这个命令的作用是列出当前防火墙规则,并显示每条规则的行号、详细信息、以数值格式显示的 IP 地址和端口号。

  • 添加规则

添加新的防火墙规则时,使用管理选项“-A”、“-I”,前者用来追加规则,后者用来插入规则。

  • 禁止所有主机ping本机和允许(如果先允许,那么就不会禁止。匹配到了就不在匹配后面的规则)

* 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

  • 拒绝来自特定源IP地址 192.168.41.13,目标端口为 80 的 TCP 数据包。

iptables -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

  • 拒绝主机发出数据包

    • iptables -t filter -A OUTPUT -s 192.168.41.10 -p icmp -j REJECT

删除规则
  • 根据序号删除内容 iptables -D INPUT 1 #删除指定的INPUT链中的第一条规则

  • INPUT 链中删除第二条规则

iptables -D INPUT 2

iptables: 这是用于配置Linux内核防火墙规则的命令。 -D INPUT 2: -D 参数表示删除规则,INPUT
是规则所在的链(chain),2 是要删除的规则的位置或规则编号。在这个例子中,它指示删除 INPUT 链中的第二条规则。 这个命令的作用是从 INPUT
链中删除第二条规则。防火墙规则是按顺序执行的,所以删除一条规则后,后续规则的编号会向前移动。

  • 按照内容匹配删除

    内容匹配删除(有两个相同的则作用为去重) 如果有两个重复的规则,则删除序号较小的 [root@localhost ~]# iptables -D INPUT -p icmp -j REJECT #删除序号小的

    演示删除序号较小的 [root@localhost ~]# iptables -t filter -A INPUT -p icmp -j REJECT

    [root@localhost ~]# iptables -t filter -A INPUT -p icmp -j ACCEPT

    [root@localhost ~]# iptables -t filter -A INPUT -p icmp -j REJECT

    [root@localhost ~]# 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

    [root@localhost ~]# iptables -D INPUT -p icmp -j REJECT #第二次就时删除指定。 [root@localhost ~]# 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 直接修改。
为了保险起见,我们可以尝试着先添加一条新的规则,
确保新规则不会带来任何不利的影响再删除旧的规则(也能达到替换的效果)[root@localhost ~]# iptables -t filter -A INPUT -p icmp -j ACCEPT[root@localhost ~]# iptables -nL INPUT --line-number  #查看规则
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0[root@localhost ~]# iptables -R INPUT 1 -p icmp -j REJECT #替换
[root@localhost ~]# iptables -nL INPUT --line-number  #ACCEPT替换成了REJECT
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
  • 设置默认策略

    • 指定当没有与已有规则匹配的情况下,如何处理进入系统的数据包

    • 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出站网卡
    • 感叹号”!”表示取反
  • 网络协议:
  • [root@localhost ~]# iptables -A INPUT ! -p icmp -j ACCEPT #除了icmp以外,所有的协议都可以进入

#这是假的取反。定义的默认策略还在执行ACCEPT,只有该变默认策略,才能生效

[root@localhost ~]#iptables -P INPUT DROP #这时候才能取反

其他的服务不受影响,这个时候,把策略清空,所有的协议都将被DROP

[root@localhost ~]#iptables -F

只能进虚拟机重启

禁止网段内的ip地址ping主机

这里写发要注意,小的数字写在前面,大的写在后面

  • 多端口匹配

要求以“-m 扩展模块”的形式明确指出类型,包括多端口、MAC地址、IP范围、数据包状态等条件

  • -m multiport --sport 源端口列表

  • -m multiport --dport 目的端口列表

  • [root@localhost ~]# iptables -A INPUT -p tcp -m multiport --dport 80,22,21,20,53 -j REJECT 多端口匹配,一次性禁止多个tcp网络协议的端口匹配规则

[root@localhost ~]# iptables -A INPUT -p udp -m multiport --dport 53,54,55 -j
ACCEP 多端口匹配,一次性放通多个udp网络协议的端口匹配规则

策略备份与还原

yum -y install iptables iptables-services

systemctl start iptables.service

systemctl enable iptables.service

我们对iptables命令行中的设置,都是临时设置,只要遇到服务器关机,或者服务重启时,

所有的设置都会清空且还原为原本的设置。

为此,我们可以对已经测试完毕符合我们需求的防火墙设置进行备份,在必要时,可以一键还原

备份iptables设置

格式:iptables-save >/指定的文件

[root@localhost ~]# iptables-save >/opt/iptables.bak

一键导入,设置为当前防火墙设置

[root@localhost ~]#iptables-restore </opt/iptables.bak

修改iptables的默认设置

iptables的默认配置文件存在于 cat /etc/sysconfig/iptables

直接把配置导入配置文件

cat /opt/iptables.bak >/etc/sysconfig/iptables

立即生效了,实验环境下,了解就可以了。不要尝试

[root@localhost opt]# systemctl restart iptables #重启之后生效的就是配置文件中的内容,操作需谨慎,

注意拍快照,方便还原

自定义链

创建自定义链:

iptables -N MYCHAIN

向自定义链添加规则,例如:

iptables -A MYCHAIN -s 192.168.1.0/24 -j DROP

这条规则将禁止192.168.1.0/24网段的访问,丢弃源地址的流量。

可以使用类似的命令来添加更多规则到自定义链中,根据需求进行配置。如果想要删除自定义链,确保满足以下条件:

  1. 自定义链没有被任何默认链引用,即自定义链的引用计数为0。

  2. 自定义链中没有任何规则,即自定义链为空。

可以使用-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 删除这个链

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

网络安全学习资源分享:

最后给大家分享我自己学习的一份全套的网络安全学习资料,希望对想学习 网络安全的小伙伴们有帮助!

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)

在这里插入图片描述

1.网络安全学习路线图

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

在这里插入图片描述

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本【点击领取技术文档】

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

3.技术文档和电子书

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本【点击领取书籍】

在这里插入图片描述

4.工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

在这里插入图片描述

最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

在这里插入图片描述

在这里插入图片描述

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/503174.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

十四、Vue 混入(Mixins)详解

文章目录 简介一、基本语法定义混入对象使用混入对象二、混入的数据合并数据合并规则深度合并(对象类型数据)三、混入的生命周期钩子生命周期钩子的合并规则利用生命周期钩子合并的优势四、混入的方法合并方法合并规则调用被覆盖的方法(高级用法)五、混入的应用场景多个组件…

每日AIGC最新进展(80): 重庆大学提出多角色视频生成方法、Adobe提出大视角变化下的人类视频生成、字节跳动提出快速虚拟头像生成方法

Diffusion Models专栏文章汇总:入门与实战 Follow-Your-MultiPose: Tuning-Free Multi-Character Text-to-Video Generation via Pose Guidance 在多角色视频生成的研究中,如何实现文本可编辑和姿态可控的角色生成一直是一个具有挑战性的课题。现有的方法往往只关注单一对象的…

【C++面向对象——类的多态性与虚函数】计算图像面积(头歌实践教学平台习题)【合集】

目录&#x1f60b; 任务描述 相关知识 1. 纯虚函数 一、特点 二、使用场景 三、作用 四、注意事项 五、相关概念对比 2. 抽象类的使用 一、定义与概念 二、使用场景 编程要求 测试说明 通关代码 测试结果 任务描述 本关任务&#xff1a;设计一个矩形类、一个圆形…

STM32 拓展 电源控制

目录 电源控制 电源框图 VDDA供电区域 VDD供电区域 1.8V低电压区域 后备供电区域 电压调节器 上电复位和掉电复位 可编程电压检测器(PVD) 低功耗 睡眠模式(只有CUP(老板)睡眠) 进入睡眠模式 退出睡眠模式 停机(停止)模式(只留核心区域(上班)) 进入停…

c# CodeFirst生成表字段加注释

前置&#xff1a;ORM框架工具使用的FreeSql 背景&#xff1a;开发环境中运行接口&#xff0c;所有的表字段以及备注会自动加上&#xff0c;但是在测试环境时运行就只生成了表&#xff0c;没有把每个字段的注释加上 问题检查&#xff1a; FreeSql CodeFirst 支持将 c# 代码内的注…

Python连接和操作Elasticsearch详细指南

Python连接和操作Elasticsearch详细指南 一、服务器端配置1. 修改 Elasticsearch 配置文件2. 开放防火墙端口 二、本地 Python 连接 Elasticsearch1. 连接 Elasticsearch2. 索引操作3. 文档操作4. 搜索内容5. 聚合查询6. 批量操作 三、注意事项四、故障排除结论 Elasticsearch …

五个不同类型的数据库安装

一、 官方首页下载 打开 MySQL 官方首页&#xff0c;链接为&#xff1a; MySQL 进去社区后选择合适的版本进行安装 安装细节 依图一路next 点击finish结束安装 二、 在线YUM仓库 将该安装包的下载链接在 Linux 操作系统中按照以下命令直接进行下载 三、 二进制本地 通过该链接…

用户界面软件01

Jens Coldewey 著&#xff0c;Tom.X 译 本文中的模式语言逐步深入地探讨用户界面架构的设计&#xff0c;它基于人机工程学&#xff0c;足以形成一套完整的体系。如果你对这方面有兴趣&#xff0c;请参考[Tog92]&#xff0c;[Coo95]和[Col95]。 本文不讨论用户界面的布局&…

Android 性能优化:内存优化(实践篇)

1. 前言 前一篇文章Android性能优化&#xff1a;内存优化 &#xff08;思路篇&#xff09; 大概梳理了Android 内存原理和优化的必要性及应该如何优化&#xff0c;输出了一套短期和长期内存优化治理的SOP方案。 那么这一篇文章就总结下我最近在做内存优化如何实践的&#xff0…

stm32第一次烧录或者上电运行卡死问题分析

问题描述 单片机烧录代码&#xff08;刚上电&#xff09;无法立即运行&#xff0c;必须要复位一次或多次才能运行&#xff1b;跟踪调试会进入HardFault_Handler中断。 问题分析 烧录配置如下图&#xff0c;首先排除配置问题那么该问题就比较让人头大了&#xff0c;理论上&am…

Unity中 Xlua使用整理(一)

1.安装: 从GitHub上下载Xlua源码 Tencent/xLua: xLua is a lua programming solution for C# ( Unity, .Net, Mono) , it supports android, ios, windows, linux, osx, etc. (github.com) 下载Xlua压缩包&#xff0c;并解压将Aseet文件夹中的Xlua和Plugins文件夹复制到Unit…

git理解记录

文章目录 1. 背景2. 基本概念3. 日常工作流程4. 其他常见操作4.1 merge合并操作4.2 tag打标签操作4.3 remoute远程操作4.4 撤销修改 git理解记录 1. 背景 git作为分布式版本控制系统&#xff0c;开源且免费&#xff0c;相比svn集中式版本控制系统存在速度快(HEAD指针指向某次co…

js复制数据到剪切板

方法一&#xff1a; 在下面方法传入你想要复制的字符 &#xff0c;直接调用该方法就好 export function copyText(text: string) {if (navigator.clipboard) {// clipboard api 复制navigator.clipboard.writeText(text)} else {const textarea document.createElement(text…

服务器Ubuntu22.04系统下 ollama的详细部署安装和搭配open_webui使用

服务器Ubuntu22.04系统下 ollama的详细部署安装和搭配open_webui使用 一、ubuntu和docker基本环境配置1.更新包列表&#xff1a;2. 安装docker依赖3. 添加docker密钥4.添加阿里云docker软件源5.安装docker6.安装完成docker测试7. docker配置国内镜像源 二、安装英伟达显卡驱动1…

LInux单机安装Redis

1. 安装gee工具包 由于Redis是基于c语言编写的所以安装的时候需要先安装gee以及gcc的依赖,yum云用不了可以看一下这个 linux 替换yum源镜像_更换yum镜像源-CSDN博客 yum install -y gcc tcl 2. 添加redis的压缩包 3. 上传到Linux 上传到 /usr/local/src 目录、这个目录一般用于…

西门子200smart存储卡作用

最近维修设备时&#xff0c;遇到一个问题&#xff0c;设备PLC是200smart SR20,PLC程序需要修改某个程序段&#xff0c;由于手里没有源程序&#xff0c;联系厂家后&#xff0c;厂家发了一段程序&#xff0c;后缀是.s7s。通过查询官网资料&#xff0c;其中S7_JOB.S7S为脚本任务&a…

QT上实现SVM进行数据分类

针对不了解SVM的原理的同学强推下面这个课程&#xff1a; 6.机器学习课程&#xff08;六&#xff09;支持向量机&#xff08;线性模型&#xff09;问题_哔哩哔哩_bilibili 一、QT实现SVM的方法 1.调用SVM的C语言库&#xff1a;麻烦&#xff0c;要专门去找库&#xff0c;cmak…

【C++】字符串与字符数|组操作详解:strcpy 和 strcat 的使用与解析

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;一、字符串数组的基本操作&#x1f4af;二、strcpy 的用法详解1. strcpy 的功能与原型2. 使用示例与代码演示3. 注意事项4. 扩展&#xff1a;为什么不能直接用 &#xff1f…

GWAS数据和软件下载

这部分主要是数据获取,以及软件配置方法。 一、配套数据和代码 数据和代码目前在不断的更新,最新的教程可以私信,我通过后手动发送最新版的pdf和数据代码。发送的压缩包,有电子版的pdf和数据下载链接,里面是最新的百度网盘的地址,下载到本地即可。然后根据pdf教程,结合配套的…

Vue笔记-001-声明式渲染

https://cn.vuejs.org/tutorial/#step-2https://cn.vuejs.org/tutorial/#step-2 Vue 单文件组件 (Single-File Component&#xff0c;缩写为 SFC) 单文件组件是一种可复用的代码组织形式&#xff0c;它将从属于同一个组件的 HTML、CSS 和 JavaScript 封装在使用 .vue 后缀的文件…