东风不来
三月的柳絮不飞

玩转 firewalld ,会这几招就够了 并没有那么难

相信很多小伙伴在配置服务器时,最常干的一件事便是直接关闭防火墙,为自己省去了很多麻烦,但是这也隐藏这很多风险。所以博主建议建站的小伙伴们,买到服务器之后,第一件事就是做好安全措施,保护自己的服务器,已免成为肉鸡!

一般而言,服务器到手之后都会干这几件事来保护自己的服务器:
1. 修改登录密码(废话)
2. 修改 ssh 端口
3. 配置防火墙,严格控制开放的端口
4. 使用密匙登录,禁止密码登录
5. 安装 fail2ban 防止暴利破解 ssh ftp 等服务帐号

当然今天博主主要是讲 firewalld 防火墙的配置!可能很多小伙伴都像博主一样喜欢使用 iptables 来作为防火墙,但今天博主自己的看了一下 firewalld 的一些说明,发现并没有那么难,相比 iptables ,感觉 firewalld 在规则上还要稍微简单一些!

1. 安装 firewalld

yum -y install firewalld

注意事项:
运行 firewalld 之前的准备,这一点真的非常重要,博主之前直接关闭防火墙也是因为这个原因,每次安装完 firewalld 之后,SSH 就连不上服务器了。。。

firewalld 默认规则已经放行 SSH 服务( 22 端口),但如果你修改过 SSH 端口,则必须先放行,否则一旦启用 firewalld 将被阻挡在外,无法连接服务器,那就只能重装系统了。。。

比如将 SSH 端口修改为了 2019,可以直接编辑 firewalld 的配置文件, 使用以下指令

vi /etc/firewalld/zones/public.xml

里面加入下面这条规则:

<port protocol="tcp" port="2019"/>

添加位置如下面所示:

<?xml version="1.0" encoding="utf-8"?>
<zone>
 <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="dhcpv6-client"/>
  <service name="ssh"/>
  <port protocol="tcp" port="2019"/>
</zone>

接着输入命令: systemctl start firewalld 来启动 firewalld ,这样就不会被阻挡。

2. firewalld 常用指令

这里博主在这里一般习惯使用 service
2.1 查看 firewalld 的状态

service firewalld status
或
systemctl status firewalld
或
firewall-cmd --state

2.2 启动、停止、重启

# 启动
service firewalld start
或
systemctl start firewalld

# 停止
service firewalld stop
或
systemctl stop firewalld

# 重启
service firewalld restart
或
systemctl restart firewalld

如果在启动的时候提示 “Failed to start firewalld.service: Unit firewalld.service is masked.”,输入下面的命令可解决:

systemctl unmask firewalld.service

2.3 开机自启动的关闭与开启

# 开启开机自启动
systemctl enable firewalld

# 关闭开机自启动
systemctl disable firewalld

2.4 查看防火墙的规则

firewall-cmd --list-all

3. 端口配置

# 查询 8080 端口是否开放
firewall-cmd --query-port=8080/tcp

# 开放 80 端口
firewall-cmd --zone=public --add-port=80/tcp --permanent

# 删除已经放行的 8080 端口:
firewall-cmd --zone=public --remove-port=8080/tcp --permanent

#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

#查看监听(Listen)的端口
netstat -lntp

# 参数解释
1、firwall-cmd:是 Linux 提供的操作 firewall 的一个工具;
2、--zone:表示作用域 
3、--add-port=80/tcp:表示添加端口,格式为:端口/通讯协议 
4、--permanent:表示永久生效,没有此参数重启后失效;
5、--add-port:标识添加的端口;

这里博主只讲一点,就是使用 netstat -lntp 来查看到底有哪些端口被程序占用,如果不是非法占用就开启此端口,比如 80 端口被 nginx 占用,就开启 80 端口即可!

赞(7) 打赏
未经允许不得转载:文字咖 » 玩转 firewalld ,会这几招就够了
分享到:

评论 3

2 + 6 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #3
    Baby Zhou

    过来看看,学习一下!

    Baby Zhou 7个月前 (04-19) 来自天朝的朋友 谷歌浏览器 Windows 8.1 回复
  2. #2

    大咖啊,我来学习了,要收藏!

    王抱枕 7个月前 (04-12) 来自天朝的朋友 Safari浏览器 iPhone iPhone OS 12_1_4 like Mac OS X) AppleWebKit 回复
  3. #1

    广告布局基本一致,上边距改小点就好看了

    驿站博客 7个月前 (04-11) 来自天朝的朋友 谷歌浏览器 Windows 10 回复

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏