在Ubuntu 24.04中启用、禁用、配置防火墙[初学者指南]
在Ubuntu 24.04中启用、禁用、配置防火墙[初学者指南]
本文将向您介绍如何在Ubuntu 24.04中使用UFW(Uncomplicated Firewall)来启用、禁用和配置防火墙。UFW是一个用户友好的防火墙管理工具,特别适合初学者使用。
防火墙是一种网络安全系统,它监视传入和传出的网络流量,并根据预定义的安全规则决定是否允许或阻止特定流量。
Linux内核有Netfilter子系统,它被实现为数据包过滤器和防火墙。Iptables(以及nftables,iptables的后继者)是用户级命令行工具,用于通过添加/删除netfilter规则来配置防火墙。
iptables(和nftables)更加灵活,但对于初学者来说确实很难。UFW(简单防火墙),用户友好的iptables前端,就是我下面要讨论的。
在Ubuntu中启用防火墙
UFW通常预安装在Ubuntu桌面版和服务器版中,但默认情况下未启用。
以防万一,您可以打开终端(Ctrl+Alt+T)并运行命令来安装它:
sudo apt install ufw
如前所述,默认情况下通常不启用防火墙。要检查其状态,请使用命令:
sudo ufw status
它将向您显示“状态:处于活动状态”或“状态:活动状态”以及用户添加的规则。
注意:它支持在启用ufw之前添加规则。对于远程服务器,请先运行sudo ufw allowed ssh将ssh列入白名单,否则您将丢失SSH连接。如果正在使用非默认SSH端口(例如端口1234),请改用sudo ufw allowed 1234/tcp命令。
要启用防火墙,只需运行命令:
sudo ufw enable
如果命令成功完成,它应该输出“防火墙处于活动状态并在系统启动时启用”。
使用UFW配置防火墙
1. 检查状态并添加规则
如上所述,您可以通过运行以下命令来检查防火墙状态:
sudo ufw status
它将显示防火墙是否已激活。如果是,它还会显示所有用户添加的规则。
但是,要在防火墙未激活的情况下检查用户添加的规则,此命令可能会有所帮助:
sudo ufw show added
2. 配置UFW默认策略
默认防火墙策略允许任何传出流量,这意味着您可以从Ubuntu PC/服务器访问任何网站,使用apt、wget等命令在您的系统中安装/下载某些内容。
但是,传入默认情况下处于禁用状态。您需要添加自己的规则以允许外部系统连接到您的计算机。所有路由和转发也被禁用,如果您不将计算机用作路由器,则这是很好的默认设置。
要检查默认策略,请使用命令:
sudo ufw status verbose
如果要更改默认策略,例如拒绝传出,请使用命令:
sudo ufw default deny outgoing
之后,如果您想访问外部系统,则可以通过以下方式重新允许所有传出流量:
sudo ufw default allow outgoing
或者,手动为某些端口添加传出规则。例如,添加下面的防火墙规则以允许使用apt命令安装某些内容:
sudo ufw allow out 53/udp
sudo ufw allow out 80/tcp
完成后,您可以删除规则,以便再次拒绝所有传出:
sudo ufw delete allow out 53/udp
sudo ufw delete allow out 80/tcp
3. 添加UFW规则
正如上面提到的命令,您可以使用ufwallow命令允许传入(和/或传出)流量到特定端口,并使用ufwdeny命令拒绝流量。
例如,允许从任何位置传入端口80(tcp和udp),请使用命令:
sudo ufw allow 80
或者,仅允许udp传入端口53,使用命令:
sudo ufw allow 53/udp
更具体地说,您可以从哪里允许流量到达当前计算机上的某个端口。例如,以下命令将防火墙设置为允许192.168.0.0到192.168.0.255范围内的远程IP访问该主机的tcp端口22。
sudo ufw allow from 192.168.0.0/24 to any port 22 proto tcp
最后一条命令中的“any”表示本地主机中的任何网络接口。要在此主机中指定某个IP,例如192.168.0.100,则最后一个命令可以是:
sudo ufw allow from 192.168.0.0/24 to 192.168.0.100 port 22 proto tcp
如上所述,您还可以使用UFW命令中的服务名称来允许(或拒绝)某些流量。例如:
sudo ufw allow smtp
即使未安装该服务,此命令也将允许SMTP端口25。但是,它仅且始终会设置服务的默认端口(例如,ssh为22),即使在使用自定义端口时也是如此。
4. 删除UFW文件墙规则
要删除ufw规则,只需在ufw和allow(或deny)之间添加delete操作即可>)在您运行的最后一个命令中。
- 首先,通过命令列出添加的规则:
sudo ufw show added
- 然后,删除一条规则。例如,撤消allow 53/udp:
sudo ufw delete allow 53/udp
如果ufw处于激活状态,您可以列出所有添加的规则并附上行号,然后通过所需的号码删除:
- 首先,显示ufw状态以及添加的带有数字的规则:
sudo ufw status numbered
- 然后,通过以下方式删除第一条规则:
sudo ufw delete 1
5. 禁用IPv6
默认情况下,ufw防火墙规则适用于IPv6和IPv4。
如果您想在所有防火墙规则中排除IPv6,请通过命令编辑/etc/default/ufw文件:
sudo nano /etc/default/ufw
然后,将IPV6=yes更改为IPV6=no。最后,按Ctrl+S,然后按Ctrl+X退出。另外,运行sudo ufw reload来应用更改。
或者,在规则中指定IPv4地址。例如:
ufw allow to 0.0.0.0/0 port 80 proto tcp
此规则将允许从任何地方通过所有ipv4接口到达该主机上的端口80/tcp的流量。
禁用防火墙
要禁用防火墙,只需运行:
sudo ufw disable
它将显示“系统启动时防火墙已停止并禁用”。然而,所有用户添加的规则仍然保留在那里,尽管不起作用。
对于选择,您可以通过命令重置ufw:
sudo ufw reset
这将禁用防火墙(如果启用),然后将所有规则重置为安装的默认值。