Fedora 29管理防火墙
服务器最重要的事情之一就是端口啦
管理防火墙,我们主要用于打开端口,管理端口
打开和关闭端口
Fedora 29使用的是Firewalld
来管理防火墙的,它的官网上面有详细的使用文档
而我更喜欢使用配置文件来添加服务的方式来管理端口。打开一个端口主要分为以下步骤:
- 拷贝并修改配置文件
- 主要是
名称
和端口
- 主要是
- 添加服务
- 从文件添加服务
- 刷新防火墙规则
- 激活生效的区域
- 刷新防火墙规则
- 验证
端口
是否打开
首先,我们来查看当前系统生效的是哪个区域,cat /etc/firewalld/firewalld.conf | grep "DefaultZone"
,默认状态下是public
。下面我们开始在public
区域添加端口服务。我们的配置文件可以放在这两个路径/etc/firewalld/services
和路径/usr/lib/firewalld/services
,官方推荐放在/usr/lib/firewalld/services
,好处是the admin or user is able to modify the service and that he could go back to the original service easily by loading the defaults of the service.
那好,我们就放在这个目录下面👇:
比如我要添加一个名为OhMyG
的一个服务,它将负责打开8467
端口,首先我们来看看这个端口的占用情况,使用lsof -i :8467
查看。可以看到这个端口是没有在使用的,我们拿端口22
(我此时正通过ssh连接服务器),它显示了如下的结果:
1 | lsof -i :22 |
显示结果:
1 | COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME |
外部通过telnet
来查看
1 | telnet 192.168.18.136 22 |
显示结果:
1 | Trying 192.168.18.136... |
拷贝文件
1 | sudo cp /usr/lib/firewalld/services/https.xml /usr/lib/firewalld/services/OhMyG.xml |
我将https.xml
里面的内容拷贝到OhMyG.xml
里面。接下来我们要修改下这个文件:
1 | sudo vim /usr/lib/firewalld/services/OhMyG.xml |
我们来看看这个文件里面的内容:
1 | <?xml version="1.0" encoding="utf-8"?> |
修改那些地方
short
你随便起个名字就可以了descriptions
这是你对他的描述protocol
这个是控制方式,出站还是入站,我只是打开端口tcp
没问题port
这就是我们要打开的端口
修改后内容为:
1 | <?xml version="1.0" encoding="utf-8"?> |
接下来,我们就要将添加服务
了
添加服务
1 | sudo firewall-cmd --zone=public --permanent --new-service-from-file=/usr/lib/firewalld/services/OhMyG.xml --name=OhMyG_s |
上面的命令表示我要永久添加服务OhMyG_s
到public
空间,这里我们不能使用OhMyG
这个服务名了,因为这两个路径中有一个路径存在这个文件,所以我们得换个名字。
执行如下命令
1 | sudo ls /etc/firewalld/services/OhMyG_s.xml |
这个文件确实已经生成了,我们来看看,这个文件里面的内容和我们之前的文件里面的内容用什么异同。
1 | sudo more /etc/firewalld/services/OhMyG_s.xml |
貌似什么异同,其中查看public
空间的命令为:
1 | firewall-cmd --zone=public --list-port |
- 在运行环境中
添加服务
1
sudo firewall-cmd --permanent --zone=public --add-service=OhMyG_s
我们接下来让防火墙重新载入规则
1 | sudo firewall-cmd --reload |
接下我们用telnet
来测试测试
1 | telnet 192.168.18.136 8467 |
结果为:
1 | Trying 192.168.18.136... |
怎么会这样?
我们这个端口只是打开
了,并没有软件占用这个端口,我们用caddy
来占用一下这个端口
1 | sudo dnf install -y caddy |
再在外部执行,结果就变成这个样子了:
1 | Trying 192.168.18.136... |
查看public
空间的服务:
1 | firewall-cmd --zone=public --list-services |
- 本文链接: https://ourfor.top/article/Fedora-Firewalld/
- 版权声明: 本博客所有文章除特别声明外,均采用 ©BY-NC-SA 许可协议。转载请注明出处!