简单易懂!Linux防火墙规则备份教程 (linux防火墙规则备份)

作为一名Linux运维人员,防火墙的设置和管理是我们日常工作中不可或缺的一项任务。为了保护服务器的安全,我们需要设置严格的防火墙规则,以禁止非授权访问和恶意攻击。然而,一旦防火墙规则设置完成后,我们需要对其进行备份,以便在出现问题时能够快速还原。本文将介绍一种简单易懂的Linux防火墙规则备份教程。

一、备份防火墙规则

在备份防火墙规则之前,我们需要先确认我们使用的Linux发行版以及防火墙软件。以下是常用的Linux发行版和防火墙软件:

– CentOS和RHEL:使用iptables

– Debian和Ubuntu:使用ufw

1.备份iptables规则

对于使用iptables防火墙的CentOS和RHEL系统,我们可以使用以下命令备份防火墙规则:

“`shell

iptables-save > /root/iptables_backup

“`

该命令将当前的iptables规则保存到/root/iptables_backup文件中。备份完成后可以使用以下命令来恢复规则:

“`shell

iptables-restore

“`

2.备份ufw规则

对于使用ufw防火墙的Debian和Ubuntu系统,我们可以使用以下命令备份防火墙规则:

“`shell

sudo ufw export backup_file

“`

该命令将当前的ufw规则保存到backup_file文件中。备份完成后可以使用以下命令来恢复规则:

“`shell

sudo ufw import backup_file

“`

二、恢复防火墙规则

一旦备份了防火墙规则,我们可以使用以下命令来恢复规则:

1.恢复iptables规则

对于iptables规则,我们需要使用以下命令进行恢复:

“`shell

iptables-restore

“`

其中/root/iptables_backup是你备份的iptables规则文件的路径。

2.恢复ufw规则

对于ufw规则,我们需要使用以下命令进行恢复:

“`shell

sudo ufw import backup_file

“`

其中backup_file是你备份的ufw规则文件的路径。

三、定期备份防火墙规则

为了确保服务器的安全,我们应该定期备份防火墙规则。建议每周备份一次。你可以使用定时任务来自动执行备份命令。在CentOS和RHEL系统中,你可以创建一个名为backup_iptables.sh的脚本,并将以下代码添加到其中:

“`shell

#!/bin/bash

iptables-save > /root/iptables_backup

“`

在Debian和Ubuntu系统中,你可以使用以下命令创建一个名为backup_ufw.sh的脚本,并将以下代码添加到其中:

“`shell

#!/bin/bash

sudo ufw export backup_file

“`

然后,你可以使用以下命令添加一个每周执行一次的定时任务:

“`shell

#执行iptables规则备份,并在周六的11:00执行

0 11 * * 6 /bin/bash /root/backup_iptables.sh

#执行ufw规则备份,并在周六的12:00执行

0 12 * * 6 /bin/bash /root/backup_ufw.sh

“`

以上例子将在每周六的11:00备份iptables规则,在每周六的12:00备份ufw规则。

结论

Linux防火墙规则备份是服务器安全管理中不可或缺的一部分。在这篇文章中,我们介绍了如何备份和恢复iptables规则和ufw规则,以及如何使用定时任务定期备份防火墙规则。希望这篇文章对你有所帮助。

相关问题拓展阅读:

如何迁移iptables防火墙规则到新服务器

将Linux系统设置成REJECT拒绝动作策略后,对方会看到本机的端口不可达的响应:

# ping -c 4 192.168.10.10

PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.

From 192.168.10.10 icmp_seq=1 Destination Port Unreachable

From 192.168.10.10 icmp_seq=2 Destination Port Unreachable

From 192.168.10.10 icmp_seq=3 Destination Port Unreachable

From 192.168.10.10 icmp_seq=4 Destination Port Unreachable

.168.10.10 ping statistics —

4 packets tranitted, 0 received, +4 errors, 100% packet loss, time 3002ms

将Linux系统设置成DROP拒绝动作策略后,对方会看到本机响应超时的提醒,无法判断流量是被拒绝,还是对方主机当前不在线:

# ping -c 4 192.168.10.10

PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.

.168.10.10 ping statistics —

4 packets tranitted, 0 received, 100% packet loss, time 3000ms

8.2.2 基本的命令参数

iptables是一款基于命令行的防火墙策略管理工具,由于该命令是基于终端执行且存在有大量参数的,咱们学习起来难度还是较大的,好在对于日常控制防火墙策略来讲,您无需深入的了解诸如“四表五链”的理论概念,只需要掌握常用的参数并做到灵活搭配即可,以便于能够更顺畅的胜任工作所需。iptables命令可以根据数据流量的源地址、目的地址、传输协议、服务类型等等信息项进行匹配,一旦数据包与策略匹配上后,iptables就会根据策略所预设的动作来处理这些数据包流量,另外再来提醒下同学们防火墙策略的匹配顺序规则是从上至下的,因此切记要把较为严格、优先级较高的策略放到靠前位置,否则有可能产生错误。下表中为读者们总结归纳了几乎所有常用的iptables命令参数,刘遄老师遵循《Linux就该这么学》书籍的编写初衷而设计了大量动手实验,让您无需生背硬记这些参数,可以结合下面的实例来逐个参阅即可。

编辑

参数 作用

-P 设置默认策略:iptables -P INPUT (DROP|ACCEPT)

-F 清空规则链

-L 查看规则链

-A 在规则链的末尾加入新规则

-I num 在规则链的头部加入新规则

-D num 删除某一条规则

-s 匹配来源地址IP/MASK,加叹号”!”表示除这个IP外。

-d 匹配目标地址

-i 网卡名称 匹配从这块网卡流入的数据

-o 网卡名称 匹配从这块网卡流出的数据

-p 匹配协议,如tcp,udp,icmp

–dport num 匹配目标端口号

–sport num 匹配来源端口号

使用iptables命令-L参数查看已有的防火墙策略:

# iptables -L

Chain INPUT (policy ACCEPT)

target prot opt source destination

ACCEPT all — anywhere anywhere ctstate RELATED,ESTABLISHED

ACCEPT all — anywhere anywhere

INPUT_direct all — anywhere anywhere

INPUT_ZONES_SOURCE all — anywhere anywhere

INPUT_ZONES all — anywhere anywhere

ACCEPT icmp — anywhere anywhere

REJECT all — anywhere anywhere reject-with icmp-host-prohibited

………………省略部分输出信息………………

使用iptables命令-F参数清空已有的防火墙策略:

# iptables -F

# iptables -L

Chain INPUT (policy ACCEPT)

target prot opt source destination

………………省略部分输出信息………………

将INPUT链的默认策略设置为拒绝:

如前面所提到的防火墙策略设置无非有两种方式,一种是“通”,一种是“堵”,当我们将INPUT链设置为默认拒绝后,咱们就要往里面写入允许策略了,否则所有流入的数据包都会被默认拒绝掉,同学们需要留意规则链的默认策略拒绝动作只能是DROP,而不能是REJECT。

# iptables -P INPUT DROP

# iptables -L

Chain INPUT (policy DROP)

target prot opt source destination

…………省略部分输出信息………………

向INPUT链中添加允许icmp数据包流入的允许策略:

在日常运维工作中经常会使用到ping命令来检查对方主机是否在线,而我们向防火墙INPUT链中添加一条允许icmp协议数据包流入的策略就是默认允许了这种ping命令检测行为。

# ping -c 4 192.168.10.10

PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.

.168.10.10 ping statistics —

4 packets tranitted, 0 received, 100% packet loss, time 3000ms

# iptables -I INPUT -p icmp -j ACCEPT

# ping -c 4 192.168.10.10

PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.

64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.156 ms

64 bytes from 192.168.10.10: icmp_seq=2 ttl=64 time=0.117 ms

64 bytes from 192.168.10.10: icmp_seq=3 ttl=64 time=0.099 ms

64 bytes from 192.168.10.10: icmp_seq=4 ttl=64 time=0.090 ms

.168.10.10 ping statistics —

4 packets tranitted, 4 received, 0% packet loss, time 2999ms

rtt min/avg/max/mdev = 0.090/0.115/0.156/0.027 ms

删除INPUT链中的那条策略,并将默认策略还原为允许:

# iptables -D INPUT 1

# iptables -P INPUT ACCEPT

# iptables -L

Chain INPUT (policy ACCEPT)

target prot opt source destination

………………省略部分输出信息………………

设置INPUT链只允许指定网段访问本机的22端口,拒绝其他所有主机的数据请求流量:

防火墙策略是按照从上至下顺序匹配的,因此请同学们一定要记得将允许动作放到拒绝动作上面,否则所有的流量就先被拒绝掉了,任何人都获取不到咱们的业务。文中提到的22端口是下面第九章节讲的ssh服务做占用的资源,这里再挖个小坑~等同学们稍后学完再回来验证这个实验效果吧~

# iptables -I INPUT -s 192.168.10.0/24 -p tcp –dport 22 -j ACCEPT

# iptables -A INPUT -p tcp –dport 22 -j REJECT

# iptables -L

Chain INPUT (policy ACCEPT)

target prot opt source destination

ACCEPT tcp.168.10.0/24 anywhere tcp dpt:ssh

REJECT tcp — anywhere anywhere tcp dpt:ssh reject-with icmp-port-unreachable

………………省略部分输出信息………………

使用IP地址在192.168.10.0/24网段内的主机访问服务器的22端口:

# ssh 192.168.10.10

The authenticity of host ‘192.168.10.10 (192.168.10.10)’ can’t be established.

ECDSA key fingerprint is 70:3b:5d:37:96:7b:2e:a5:28:0d:7e:dc:47:6a:fe:5c.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added ‘192.168.10.10’ (ECDSA) to the list of known hosts.

‘s password:

Last login: Sun Feb 12 01:50:

#

使用IP地址在192.168.20.0/24网段外的主机访问服务器的22端口:

# ssh 192.168.10.10

Connecting to 192.168.10.10:22…

Could not connect to ‘192.168.10.10’ (port 22): Connection failed.

向INPUT链中添加拒绝所有人访问本机12345端口的防火墙策略:

# iptables -I INPUT -p tcp –dportj REJECT

# iptables -I INPUT -p udp –dportj REJECT

# iptables -L

Chain INPUT (policy ACCEPT)

target prot opt source destination

REJECT udp — anywhere anywhere udp dpt:italk reject-with icmp-port-unreachable

REJECT tcp — anywhere anywhere tcp dpt:italk reject-with icmp-port-unreachable

ACCEPT tcp.168.10.0/24 anywhere tcp dpt:ssh

REJECT tcp — anywhere anywhere tcp dpt:ssh reject-with icmp-port-unreachable

………………省略部分输出信息………………

向INPUT链中添加拒绝来自于指定192.168.10.5主机访问本机80端口(web服务)的防火墙策略:

# iptables -I INPUT -p tcp -s 192.168.10.5 –dport 80 -j REJECT

# iptables -L

Chain INPUT (policy ACCEPT)

target prot opt source destination

REJECT tcp.168.10.5 anywhere tcp dpt:http reject-with icmp-port-unreachable

REJECT udp — anywhere anywhere udp dpt:italk reject-with icmp-port-unreachable

REJECT tcp — anywhere anywhere tcp dpt:italk reject-with icmp-port-unreachable

ACCEPT tcp.168.10.0/24 anywhere tcp dpt:ssh

REJECT tcp — anywhere anywhere tcp dpt:ssh reject-with icmp-port-unreachable

………………省略部分输出信息………………

向INPUT链中添加拒绝所有主机不能访问本机1000至1024端口的防火墙策略:

# iptables -A INPUT -p tcp –dport 1000:1024 -j REJECT

# iptables -A INPUT -p udp –dport 1000:1024 -j REJECT

# iptables -L

Chain INPUT (policy ACCEPT)

target prot opt source destination

REJECT tcp.168.10.5 anywhere tcp dpt:http reject-with icmp-port-unreachable

REJECT udp — anywhere anywhere udp dpt:italk reject-with icmp-port-unreachable

REJECT tcp — anywhere anywhere tcp dpt:italk reject-with icmp-port-unreachable

ACCEPT tcp.168.10.0/24 anywhere tcp dpt:ssh

REJECT tcp — anywhere anywhere tcp dpt:ssh reject-with icmp-port-unreachable

REJECT tcp — anywhere anywhere tcp dpts:cadlock2:1024 reject-with icmp-port-unreachable

REJECT udp — anywhere anywhere udp dpts:cadlock2:1024 reject-with icmp-port-unreachable

………………省略部分输出信息………………

是不是还意犹未尽?但是同学们对于iptables防火墙管理命令的学习到此就可以结束了,考虑到以后防火墙的发展趋势,同学们只要能把上面的实例看懂看熟就可以完全搞定日常的iptables防火墙配置工作了。但请特别留意下,iptables命令配置的防火墙规则默认会在下一次重启时失效,所以如果您想让配置的防火墙策略永久的生效下去,还要执行一下保存命令:

# service iptables save

iptables: Saving firewall rules to /etc/sysconfig/iptables:

具体iptable还有很多的知识点:

当使用linux作为网络防火墙时,在哪个链上配置防火墙规则

一、基本查看命令

chkconfig命令只是查看和设置服务的自动启动情况,并不能反映当前服务的状态.

二、服务查看方式

service iptables status可以查看到iptables服务的当前状态

但是袭知即使服务运行了,防火墙也不一定起作用,你还得看防火墙规则的设置

iptables -L

上述命令的返回值如果显示没有防火墙规则,那就拍昌消是不起作用;反之就是防火墙在起作用.

三、查看服务状态

iptables 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

四、Linux运行级别

linux有六个运行级别,0(关机),1单迅带用户,2多用户(无NFS),3完全多用户, 4(未使用),5图形界面X11,6重启,

五、不同操作系统服务配置文件路径

CENTOS/redhat,service iptables status

debian,/etc/init.d/iptables

linux防火墙规则备份的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux防火墙规则备份,简单易懂!Linux防火墙规则备份教程,如何迁移iptables防火墙规则到新服务器,当使用linux作为网络防火墙时,在哪个链上配置防火墙规则的信息别忘了在本站进行查找喔。


数据运维技术 » 简单易懂!Linux防火墙规则备份教程 (linux防火墙规则备份)