CentOS 和 Fedora 中默认的防火墙是 Firewalld ,我们今天来介绍如何从Firewalld切换到简单防火墙 (UFW) 。UFW 是 Ubuntu 中的默认防火墙,其命令更简单更直观。
UFW 和 FirwallD 都是 Linux 内核防火墙系统的前端,他们的存在是为了使防火墙系统更易于管理。而 UFW 在易用性方面做得比 FirewallD 更好,它的命令更直观,也更容易记忆。
首先要在系统上安装 UFW 软件包。先在 CentOS上安装epel源:
yum install epel-release
然后执行下面的命令:
yum -y install ufw
另外,我们还要导出当前的 FirewallD 规则。执行以下命令以显示当前的 FirewallD 规则:
firewall-cmd --permanent --list-all
最后,要检查套接字打开的端口。防火墙未阻止访问的服务,则可以通过 Internet 访问这些服务。执行以下命令将列出所有正在侦听的 sockets 的列表:
netstat -lpn --inet6
netstat -lpn --inet
套接字侦听对公共 IP 地址、或 0.0.0.0
和 ::
地址的公开访问,管理着哪些服务允许访问,哪些服务不允许访问。一旦确定要允许哪些端口/服务通过防火墙,就可以进行配置操作了。
第一步先禁用 FirewallD 服务。同时使用UFW和FirewallD会出问题。使用以下命令停止 FirewallD 并在下次启动时禁用该服务:
systemctl disable --now firewalld.service
然后,在启用服务之前向防火墙添加一组最少的规则。
第一条规则将防火墙配置为阻止所有传入连接,但其他防火墙规则明确允许的连接除外:
ufw default deny incoming
第二条规则从同一 IP 每 30 秒间隔,只允许六个传入连接到端口 22 上的 SSH 服务:
ufw limit in 22/tcp comment "rate-limit SSH"
我们无法调整 UFW 中的速率限制设置。但是,对于许多公共服务,比如 SSH、SMTP、XMPP 和最小的 HTTP 服务来说,默认值是合理的。第二个规则中使用的 comment
参数是可选的。
第三条规则允许来自私有10.0.0.0/8
IP 子网的 VNC 连接:
ufw allow proto tcp from 10.0.0.0/8 to any port 5900
默认情况下,UFW 允许一些重要的传入连接,比如 DHCP 和 IPv6 RA 以及网络自动配置,除非被规则明确阻止的。
现在可以使用以下命令启用 UFW 服务:
systemctl enable --now ufw.service
ufw status
status 命令是可选的,它会显示当前活动防火墙配置的概览。
如果担心自己屏蔽了不该屏蔽的服务,可以使用以下命令列出所有被阻止的连接:
journalctl -t kernel -fag "UFW BLOCK"
我们不用像FirewallD那样,重新加载防火墙配置使更改生效。在 UFW 中,所有的更改会立即生效。
作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/linux/centos-switch-firewalls-from-firewalld-to-ufw/