HCRM博客

如何配置和管理CentOS 7防火墙?

CentOS 7中的防火墙(firewall)是一个重要的安全功能,用于管理和控制网络流量,CentOS 7默认使用firewalld来管理netfilter子系统,尽管底层仍然是通过iptables命令实现的,以下是关于CentOS 7防火墙的详细介绍:

基本操作

1、安装:yum install firewalld firewallconfig

如何配置和管理CentOS 7防火墙?-图1
(图片来源网络,侵权删除)

2、启动:systemctl start firewalld

3、查看状态:systemctl status firewalld

4、停止:systemctl stop firewalld

5、禁用:systemctl disable firewalld

配置方法

1、查看版本:firewallcmd version

2、显示状态:firewallcmd state

如何配置和管理CentOS 7防火墙?-图2
(图片来源网络,侵权删除)

3、查看所有打开的端口:firewallcmd zone=public listports

4、更新防火墙规则:firewallcmd reload

5、查看已激活的区域信息:firewallcmd getactivezones

6、查看指定接口所属区域:firewallcmd getzoneofinterface=eth0

7、拒绝所有包:firewallcmd panicon

8、取消拒绝状态:firewallcmd panicoff

如何配置和管理CentOS 7防火墙?-图3
(图片来源网络,侵权删除)

9、查看是否拒绝:firewallcmd querypanic

信任级别和区域管理

1、信任级别的分类

信任级别 描述
drop 丢弃所有进入的包,而不给出任何响应
block 拒绝所有外部发起的连接,允许内部发起的连接
public 允许指定的进入连接
external 同上,对伪装的进入连接,一般用于路由转发
dmz 允许受限制的进入连接
work 允许受信任的计算机被限制的进入连接,类似 workgroup
home 同上,类似 homegroup
internal 范围针对所有互联网用户
trusted 信任所有连接

2、配置IP地址伪装

查看:firewallcmd zone=external querymasquerade

打开:firewallcmd zone=external addmasquerade

关闭:firewallcmd zone=external removemasquerade

3、端口转发

打开端口转发:firewallcmd zone=external addmasquerade

转发tcp 22端口至3753:firewallcmd zone=external addforwardport=22:port=tcp:toport=3753

转发端口数据至另一个IP的相同端口:firewallcmd zone=external addforwardport=port=tcp:toaddr=X.X.X.X:toport=Y

管理服务

以SMTP服务为例,添加到work zone:

1、添加:firewallcmd zone=work addservice=smtp

2、查看:firewallcmd zone=work queryservice=smtp

3、删除:firewallcmd zone=work removeservice=smtp

配置文件管理

1、查看XX区域的永久配置文件:cat /etc/firewalld/zones/XX.XML

2、配置方法:firewallconfig是图形化工具,firewallcmd是命令行工具,对于Linux来说,大家更习惯使用命令行方式的操作,所以这里不介绍firewallconfig

3、什么是服务?在/usr/lib/firewalld/services/目录中,还保存了另外一类配置文件,每个文件对应一项具体的网络服务,如SSH服务等。

4、自定义服务端口:假如服务器的FTP不使用默认端口21改为1121,但想通过服务的方式操作防火墙,复制模版到/etc,以便修改和调用cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services/,修改模版配置vim /etc/firewalld/services/ftp.xml,重新加载防火墙配置firewallcmd reload

FAQs

1、如何查看当前防火墙的状态?

答:可以通过以下命令查看当前防火墙的状态:

```bash

systemctl status firewalld

```

或者使用firewallcmd命令:

```bash

firewallcmd state

```

2、如何在CentOS 7中开放一个端口?

答:要在CentOS 7中开放一个端口,可以使用以下命令:

```bash

firewallcmd zone=public addport=80/tcp permanent

firewallcmd reload

```

zone=public表示在公共区域中开放端口,addport=80/tcp表示开放TCP协议的80端口,permanent表示永久生效,最后使用reload重新加载防火墙规则。

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