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
上一篇
下一篇