我的技术博客

分享计算机科学与技术的学习笔记和实践经验

CentOS 7 防火墙的基本使用

在服务器管理过程中经常需要对防火墙进行配置,Centos 7 的防火墙采用firewalld守护进程,通过对firewalld的一些管理可以很方便的开启或者关闭某些端口。当然实际上firewalld的使用远比本文记录的内容要复杂,其中"区域"、"富规则"、"地址转换"等内容本文暂不涉及。

firewalld官方文档:https://firewalld.org/documentation/

开启和关闭防火墙

防火墙默认一般是不打开的我们需要手动打开,并设置开机自启动

查看防火墙是否运行

sudo systemctl status firewalld

打开防火墙

sudo systemctl start firewalld

设置开机自启动

sudo systemctl enable firewalld

关闭防火墙和取消其开机自启动

sudo systemctl stop firewalld
sudo systemctl disable firewalld

开闭某个端口

打开端口

sudo firewall-cmd --add-port=8080/tcp --permanent

8080替换成你像打开的端口号,tcp替换成你想要使用的协议tcp/udp,--permanent是永久有效的意思,即使你重启了防火墙这条规则依然有效。

关闭端口

sudo firewall-cmd --remove-port=8080/tcp --permanent

不管是打开还是关闭了某个端口都需要重新加载一些防火墙才可以生效

sudo firewall-cmd --reload

查看所有打开的端口

sudo firewall-cmd --list-all

实际上开闭端口的方式除了指定端口号/协议还可以指定服务的名称,例如ssh就代表了22号端口,http就代表了80号端口,https就代表了443端口等,如下

sudo firewall-cmd --add-service=http --permanent

此时http服务对应的端口(众所周知端口)已经打开,如下图

image-20201017074824751

这里可能会造成一点误导,注意不是说我们的http服务就和80号端口绑定了,实际上只是http服务通常用80号端口,显然我们也可以用其他端口,这是后就只能通过端口/协议的方式开发防火墙。