Linux:-6-Centos7使用firewall详细讲解

一、基本规则***

  1. 同区域拒绝优先
  2. 如果数据包的源地址包(source)的源地址关联到特定的区域,则会应用该区域的规则对些数据包进行处理。
  3. 如果源地址没有关联到任何区域,则将使用传入网络接口所在区域的规则进行处理。
  4. 如果流量与不允许的端口、协议或者服务匹配则拒绝传入。
区域名描述用途注意事项
drop所有进入的网络连接将被丢弃,没有任何回复。只有出站连接被允许。最高安全级别的环境,拒绝所有入站连接。不适用于需要接受任何入站连接的环境。
block所有进入的网络连接将被拒绝,没有回复,但可以接受ICMP消息。拒绝所有入站连接,只允许基本的网络探测。适用于需要极高安全性的环境,不适合需要接收服务的网络。
public不信任的公共网络,只有指定的入站连接被允许。适用于公共场所或不信任的网络。确保只开放必要的服务端口,以减少潜在的攻击面。
external用于外部网络,启用IP伪装(NAT)。用于路由器或网关设备,保护内部网络。配置NAT规则时需确保内部网络的安全和隐私。
dmz用于非受信任网络中的计算机,可以有限地访问更受信任的网络。用于隔离受信任网络与不信任网络之间的区域。确保只允许必要的入站和出站流量,防止内部网络被攻击。
work用于工作网络,信任级别较高,允许更多入站连接。适用于公司或组织内部网络。确保仅开放工作所需的服务,防止不必要的风险。
home用于家庭网络,信任级别高,允许更多入站连接。适用于家庭网络,设备之间需要较高的互信。确保家庭网络设备的安全,防止外部攻击者利用开放的服务。
internal用于内部网络,信任级别最高,允许大部分入站连接。用于完全信任的内部网络。确保内部网络的设备都处于可信状态,防止内部威胁。
trusted所有网络连接都被接受。适用于完全信任的网络环境。仅在完全信任的网络环境中使用,防止外部威胁入侵

二、常用设置命令

#1、查看防火墙启动状态
systemctl status firewalld
#2、开启防火墙
systemctl start firewalld
#3、重启防火墙
systemctl restart firewalld
#4、重新加载防火墙
firewall-cmd --reload
#5、设置防火墙开机自启
systemctl enable firewslld
#6、关闭开机自启
systemctl disable firewslld
#7、查看防火墙开机启动是否成功;enadled 0 为设置成功
systemctl is-enabled firewalld;echo $?
#8、查看防火墙状态
firewall-cmd --state

#9、查看所有服务启用的状态
systemctl list-unit-files

#10、查看启动状态为enable的
systemctl list-unit-files --state=enadled

#11、查看启动状态为enable的类型为服务
systemctl list-unit-files --state=endbled --state=enadled

#12、查看防火墙或者是某个区域
firewall-cmd --list-all
firewall-cmd --list-all-zone
firewall-cmd --list-all --zone=work
firewall-cmd --list-all --zone=trusted
#13、列所有的区域
firewall-cmd --get-zones

#14、查看当前激活区域
firewall-cmd --get-active-zones

#15、查看开放所有端口
firewall-cmd --list-ports
#16、查看系统开放端口
netstat -nltp

参数解释:

  • –zone=public 表示该规则应用的于public区域;
  • –permanent 表示永久有效,(需要重启防火墙生效或者重新加载配置,临时设置不用重启)
  • –add 添加规则
  • –remove 移除规则

三、区域类别的详细配置(以public为例)

在这里插入图片描述

配置项说明示例配置解释
target默认策略target: ACCEPT默认允许所有流量。如果没有匹配的规则,则接受数据包。
icmp-block-inversionICMP 阻塞反转icmp-block-inversion: yes启用ICMP阻塞反转,阻止所有未显式允许的ICMP类型。
interfaces应用此区域的网络接口interfaces: eth0, wlan0将规则应用于eth0和wlan0接口。
sources应用此区域的源地址sources: 192.168.1.0/24, 10.0.0.0/8允许来自192.168.1.0/24和10.0.0.0/8网络的流量。
services允许的服务services: ssh, http允许SSH和HTTP服务。
ports允许的端口ports: 80/tcp, 443/tcp, 3306/tcp允许通过TCP端口80(HTTP)、443(HTTPS)和3306(MySQL)的流量。
protocols允许的协议protocols: icmp, tcp允许ICMP和TCP协议。
masquerade启用或禁用地址伪装(NAT)masquerade: yes启用网络地址转换功能。
forward-ports端口转发规则forward-ports: port=80:proto=tcp:toport=8080将流量从端口80转发到端口8080。
source-ports源端口重定向source-ports: port=12345:proto=tcp:toport=54321将源端口12345的流量重定向到端口54321。
icmp-blocks阻塞的ICMP类型icmp-blocks: echo-request, echo-reply阻止ICMP回显请求和回显应答。
rich rules详细的防火墙规则rich rules: rule family=“ipv4” source address=“192.168.1.100” service name=“ssh” accept rule family=“ipv4” source address=“10.0.0.0/8” port port=“8080” protocol=“tcp” accep允许来自192.168.1.100的SSH流量和来自10.0.0.0/8网络的TCP端口8080流量。

3.1、 设置默认策略

firewall-cmd --set-default-zone=public

3.2、启用 ICMP 阻塞反转

firewall-cmd --zone=public --set-target=DROP
firewall-cmd --zone=public --add-icmp-block-inversion

3.2、指定网络接口

firewall-cmd --zone=public --add-interface=eth0
firewall-cmd --zone=public --add-interface=wlan0
firewall-cmd --zone=public --change-interface=nes33 --permanent

3.3、 添加源地址

#添加网段
firewall-cmd --zone=public --add-source=192.168.1.0/24
firewall-cmd --zone=public --add-source=10.0.0.0/8
#添加单独IP
firewall-cmd --zone=public --add-source=192.168.10.137

3.4、允许服务

firewall-cmd --zone=public --add-service=ssh
firewall-cmd --zone=public --add-service=http
## --permanent表示永久加入(重启生效)
firewall-cmd --zone=public --add-service=mysql  --permanent

3.5、允许端口

firewall-cmd --zone=public --add-port=80/tcp
firewall-cmd --zone=public --add-port=443/tcp
firewall-cmd --zone=public --add-port=3306/tcp
firewall-cmd --zone=public --add-port=8080/tcp --permanent

3.6、允许协议

firewall-cmd --zone=public --add-protocol=icmp
firewall-cmd --zone=public --add-protocol=tcp

3.7、 启用地址伪装

firewall-cmd --zone=public --add-masquerade

3.8、 设置端口转发

firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080

3.9、设置源端口重定向

firewall-cmd --zone=public --add-source-port=port=12345:proto=tcp:toport=54321

3.10、阻止ICMP类型

firewall-cmd --zone=public --add-icmp-block=echo-request
firewall-cmd --zone=public --add-icmp-block=echo-reply

3.11、 添加/移除详细防火墙规则(富规则)

#添加富规则
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="ssh" accept'
#移除富规则
firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="10.0.0.0/8" port port="8080" protocol="tcp" accept'
#添加特定的ip特定服务mysql能永久通过
firewall-cmd --zone=public --add-rich-rule="rule family='ipv4' source address='192.168.10.247' service name=mysql  accept" --permanent
#添加防火墙drop永久规则,不指定区域会添加到默认public区域
firewall-cmd --add-rich-rule="rule family='ipv4' source address='192.168.10.86' drop"  --permanent
#删除防火墙规则
firewall-cmd --remove-rich-rule="rule family='ipv4' source address='192.168.10.86' drop"  --permanent

四、防火墙规则的备份和恢复

4.1、备份防火墙规则

firewall-cmd --runtime-to-permanent
firewall-cmd --permanent --list-all > firewall_rules_backup.txt

4.2、恢复防火墙规则

firewall-cmd --permanent --add-rich-rule="$(cat firewall_rules_backup.txt)"
firewall-cmd --reload
  • 14
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值