HCRM博客

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

CentOS防火墙(Firewalld)是一种强大的网络流量管理工具,用于保护服务器免受恶意网络活动的影响,以下是对CentOS防火墙的详细介绍:

基础概念

1、区域(Zone)

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

Firewalld将网络接口分组到不同的区域中,每个区域可以定义一组预定义的安全规则,常见的区域包括公共(public)、私有(home)、内部(internal)、外部(external)、工作(work)和信任(trusted)等。

2、服务(Service)

服务是一组预定义的规则集合,可以通过名称来指代一组特定的端口和协议,HTTP服务通常使用端口80,HTTPS服务通常使用端口443。

3、端口(Port)

端口是用于标识网络服务的数字,每个网络服务都会监听特定的端口以便于通信,防火墙可以通过允许或者拒绝端口的访问来控制网络流量。

常用命令

1、启动/停止/重启Firewalld服务

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

sudo systemctl start firewalld

sudo systemctl stop firewalld

sudo systemctl restart firewalld

2、查看Firewalld状态

sudo firewallcmd state

3、查看所有区域

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

sudo firewallcmd getzones

4、查看指定区域的规则

sudo firewallcmd zone=public listall

5、开放端口

sudo firewallcmd zone=public addport=80/tcp permanent

sudo firewallcmd reload

6、添加服务

sudo firewallcmd zone=public addservice=http permanent

sudo firewallcmd reload

7、删除端口/服务

sudo firewallcmd zone=public removeport=80/tcp permanent

sudo firewallcmd zone=public removeservice=http permanent

sudo firewallcmd reload

实例操作

1、开放SSH访问(端口22)

```bash

sudo firewallcmd zone=public addport=22/tcp permanent

sudo firewallcmd reload

```

2、开放HTTP和HTTPS服务

```bash

sudo firewallcmd zone=public addservice=http permanent

sudo firewallcmd zone=public addservice=https permanent

sudo firewallcmd reload

```

3、将网络接口从默认的public区域移动到trusted区域

```bash

sudo firewallcmd zone=trusted changeinterface=eth0

sudo firewallcmd reload

```

4、禁止Ping请求

```bash

sudo firewallcmd zone=public addrichrule='rule family="ipv4" protocol="icmp" icmptype="echorequest" drop' permanent

sudo firewallcmd reload

```

5、允许特定IP访问SSH端口

```bash

sudo firewallcmd zone=public addrichrule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept' permanent

sudo firewallcmd reload

```

配置文件路径

Firewalld的配置文件位于/etc/firewalld/目录下,其中主要的配置文件有:

firewalld.conf:Firewalld的主要配置文件。

zones:每个区域的配置文件都在这个目录下,例如public.XMLinternal.xml等。

services:包含每个服务的XML文件,例如http.xmlssh.xml等。

相关问答FAQs

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

你可以使用以下命令来查看当前防火墙的状态:

```bash

sudo firewallcmd state

```

或者:

```bash

systemctl status firewalld

```

2、如何设置开机自动启动Firewalld?

你可以使用以下命令来设置开机自动启动Firewalld:

```bash

sudo systemctl enable firewalld

```

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