在Ubuntu 18.04上配置Ubuntu防火墙UFW
Hrh
・7 分钟阅读
安装UFW
在Ubuntu 18.04中默认安装了UFW,你可以这样验证:
which ufw
你应该收到以下输出:
/usr/sbin/ufw
如果你没有收到输出,这意味着没有安装UFW,如果是这种情况,你可以自己安装它:
sudo apt-get install ufw
允许连接
如果你正在运行Web服务器,你希望全世界都能够访问你的网站。因此,你需要确保web的默认TCP端口是打开的。
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
通常,通过使用以下格式,可以允许任何端口:
sudo ufw allow <port>/<optional: protocol>
拒绝连接
如果需要拒绝对某个端口的访问,请使用deny
命令:
sudo ufw deny <port>/<optional: protocol>
例如,你可以拒绝访问默认的MySQL端口:
sudo ufw deny 3306
UFW还支持最常见的服务端口的简化语法:
root@ubuntu:~$ sudo ufw deny mysql
Rule updated
Rule updated (v6)
强烈建议你限制访问你的SSH端口,(默认情况下,端口是22 ),可信的IP地址除外。
允许从受信任的IP地址访问
通常,你需要只允许访问公开开放的端口,例如,端口80
,应限制或限制对所有其他端口的访问。你可以将家庭或办公室IP地址(最好是静态IP)列入白名单,以便能够通过SSH或FTP访问你的服务器:
sudo ufw allow from 192.168.0.1 to any port 22
你还可以允许访问MySQL端口:
sudo ufw allow from 192.168.0.1 to any port 3306
启用UFW
在启用(或重新启动)UFW之前,你需要确保允许SSH端口从你的IP地址接收连接。要启动/启用UFW防火墙请使用以下命令:
sudo ufw enable
你将看到以下输出:
root@ubuntu:~$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
按Y键,然后按回车键启用防火墙:
Firewall is active and enabled on system startup
检查UFW状态
打印UFW规则列表
sudo ufw status
你将看到类似以下内容的输出:
Status: active
To Action From
-- ------ ----
80/tcp DENY Anywhere
443/tcp DENY Anywhere
3306 DENY Anywhere
22 ALLOW 192.168.0.1
3306 ALLOW 192.168.0.1
80/tcp (v6) DENY Anywhere (v6)
443/tcp (v6) DENY Anywhere (v6)
3306 (v6) DENY Anywhere (v6)
使用verbose
参数可以查看更详细的状态报告:
sudo ufw status verbose
输出将类似于以下内容:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
80/tcp DENY IN Anywhere
443/tcp DENY IN Anywhere
3306 DENY IN Anywhere
22 ALLOW IN 192.168.0.1
3306 ALLOW IN 192.168.0.1
80/tcp (v6) DENY IN Anywhere (v6)
443/tcp (v6) DENY IN Anywhere (v6)
3306 (v6) DENY IN Anywhere (v6)
Disable/reload/restart UFW
如果需要重新加载防火墙规则,请执行以下操作:
sudo ufw reload
要禁用或停止UFW
复制代码 sudo ufw禁用要重新启动UFW你需要先禁用它,然后再次启用它,
sudo ufw disable
sudo ufw enable
注意:在启用UFW之前,请确保你的IP地址允许使用SSH端口。
删除规则
要管理UFW规则,需要列出它们,你可以通过使用编号参数检查UFW状态来执行此操作:
sudo ufw status numbered
你将看到类似以下内容的输出:
Status: active
To Action From
-- ------ ----
[ 1] 80/tcp DENY IN Anywhere
[ 2] 443/tcp DENY IN Anywhere
[ 3] 3306 DENY IN Anywhere
[ 4] 22 ALLOW IN 192.168.0.1
[ 5] 3306 ALLOW IN 192.168.0.1
[ 6] 80/tcp (v6) DENY IN Anywhere (v6)
[ 7] 443/tcp (v6) DENY IN Anywhere (v6)
[ 8] 3306 (v6) DENY IN Anywhere (v6)
现在,要删除这些规则,你需要在方括号中使用这些数字:
sudo ufw delete [number]
若要删除HTTP
规则(80
),请使用以下命令:
sudo ufw delete 1
启用IPv6支持
如果在VPS上使用IPv6,就需要确保在UFW中启用了IPv6支持,为此,在文本编辑器中打开配置文件:
sudo vi /etc/default/ufw
打开后,请确保IPV6设置为"yes":
IPV6=yes
进行这个更改后,保存文件,然后,通过禁用,并且重新启用UFW重新启动:
sudo ufw disable
sudo ufw enable
返回默认设置
如果需要返回到默认设置,只需输入以下命令,这将恢复你的任何更改:
sudo ufw reset
恭喜你,你刚刚设置了一些基本的防火墙规则,若要了解更多例子,请查阅UFW社区帮助维基 。