HCRM博客

如何在CentOS 7上配置防火墙规则?

CentOS 7防火墙

一、CentOS 7 防火墙简介

如何在CentOS 7上配置防火墙规则?-图1
(图片来源网络,侵权删除)

CentOS 7 中的 firewalld 是基于 Netfilter 的防火墙服务,支持动态配置,无需重启服务即可生效,它通过区域管理网络流量,每个区域可以设置不同的防火墙规则,默认区域为 puBLic,可以通过命令行工具 firewallcmd 进行管理和配置,firewalld 提供了丰富的预定义服务和区域,方便用户根据需求进行灵活配置。

二、firewalld 的优点

1、动态配置:在运行时所做的任何配置更改都不需要重新加载或重新启动 firewalld 服务。

2、区域管理:通过将整个网络流量安排到区域中来简化防火墙管理。

3、多配置支持:每个系统可以设置多个防火墙配置以更改网络环境。

4、DBus 交互:使用 DBus 消息系统来交互/维护防火墙设置。

如何在CentOS 7上配置防火墙规则?-图2
(图片来源网络,侵权删除)

5、与 iptables 的兼容性:在 CentOS 7 或更高版本中,我们仍然可以使用经典的 iptables,但需要停止并禁用 firewalld 服务。

三、安装与启动 firewalld

安装 firewalld

sudo yum install firewalld y

启动 firewalld

sudo systemctl start firewalld.service

查看服务状态

sudo systemctl status firewalld l

四、firewalld 的基本操作

开启防火墙

sudo systemctl start firewalld

关闭防火墙

sudo systemctl stop firewalld

设置开机启用防火墙

sudo systemctl enable firewalld

设置开机禁用防火墙

sudo systemctl disable firewalld

检查防火墙状态

sudo systemctl status firewalld

五、firewalld 的配置

查看所有可用区域

sudo firewallcmd getzones

输出示例:

block dmz docker drop external home internal nmshared public trusted work

查看默认区域

sudo firewallcmd getdefaultzone

输出示例:

如何在CentOS 7上配置防火墙规则?-图3
(图片来源网络,侵权删除)
public

活动区域和相关网络接口

sudo firewallcmd getactivezones

输出示例:

public
interfaces: ens18

公共区域的规则

sudo firewallcmd listall zone="public"

输出示例:

public (active)
target: default
icmpblockinversion: no
interfaces: ens18
sources: 
services: cockpit dhcpv6client ssh
ports: 
protocols: 
masquerade: no
forward: yes
icmpblocks: 
rich rules: rule family="address" source address="192.168.250.0/24" accept

查看所有可用区域的规则

sudo firewallcmd listallzones

输出示例:

block (active)
target: %%REJECT%% ...
...

六、添加和删除防火墙规则

1. 添加开放端口(SSH 端口 22)

sudo firewallcmd addport=22/tcp permanent
sudo firewallcmd reload

2. 删除开放端口(SSH 端口 22)

sudo firewallcmd removeport=22/tcp permanent
sudo firewallcmd reload

查看开放的端口

sudo firewallcmd listports

输出示例:

22/tcp 80/tcp ...

查看防火墙规则

sudo firewallcmd listall

输出示例:

public (active)
target: default
icmpblockinversion: no
interfaces: ens18
sources: 
services: cockpit dhcpv6client ssh
ports: 22/tcp ...
protocols: 
masquerade: no
forward: yes
icmpblocks: 
rich rules: rule family="address" source address="192.168.250.0/24" accept ...

七、配置 IP 地址伪装和端口转发

1. 查看是否启用 IP 地址伪装(NAT)

sudo firewallcmd zone=external querymasquerade

输出示例:

no

启用 IP 地址伪装(NAT)

sudo firewallcmd zone=external addmasquerade

禁用 IP 地址伪装(NAT)

sudo firewallcmd zone=external removemasquerade

4. 打开端口转发,首先需要打开 IP 地址伪装(NAT)

sudo firewallcmd zone=external addmasquerade
sudo firewallcmd zone=external addforwardport=22:porto=tcp:toport=3753

命令将外部区域的 tcp 22 端口转发到内部区域的 tcp 3753 端口。

八、归纳与注意事项

正确配置和使用防火墙可以有效地保护系统的安全性和稳定性,避免未经授权的访问、攻击和数据泄露等问题,在使用 firewalld 时,需要根据实际需求进行规则的添加和删除,以提高服务器的安全性,注意以下几点:

1、定期备份配置:在进行大规模修改前,建议备份当前的防火墙规则。

2、测试环境验证:在生产环境中应用新规则前,最好在测试环境中进行验证。

3、日志监控:定期检查防火墙日志,及时发现并处理异常情况。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/13052.html

分享:
扫描分享到社交APP
上一篇
下一篇