安装UFW
UFW默认安装在Ubuntu 18.04中,但是您可以验证一下:
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)
强烈建议您限制22
从可信任IP地址以外的任何地方访问SSH端口(默认情况下,此端口为port )。
允许从受信任的IP地址访问
通常,您只需要允许访问公共开放的端口(例如port)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,然后按ENTER启用防火墙:
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)
禁用/重新加载/重启UFW
如果需要重新加载防火墙规则,请运行以下命令:
sudo ufw reload
要禁用或停止UFW:
sudo ufw disable
为了重新启动UFW,您需要先将其禁用,然后再次启用它:
sudo ufw disable
sudo ufw enable
注意: 启用UFW之前,请确保您的IP地址允许使用SSH端口。
删除规则
要管理您的UFW规则,你需要列出他们。您可以通过使用参数检查UFW状态来做到这一点numbered
:
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
其设置为“是”:
IPV6=yes
进行此更改后,保存文件。然后,通过禁用并重新启用它来重新启动UFW:
sudo ufw disable
sudo ufw enable
返回默认设置
如果您需要返回默认设置,只需键入以下命令。这将还原您的所有更改:
sudo ufw reset
恭喜,您已经设置了一些基本的防火墙规则。
- 在Ubuntu 16.04上备份,还原或传输MySQL / MariaDB数据库
- 如何在Ubuntu 18.04上安装Apache 2.4,MariaDB 10.3和PHP 7.2
- 如何在Ubuntu 16.04上手动安装Java 8
- 在Ubuntu 16.04上安装Tomcat
- 在Ubuntu 16.04 LTS上设置Express.js Web服务器
- ubuntu上用命令安装、升级node.js
- 如何在Ubuntu 18.04 LTS上安装ExpressionEngine CMS
- 如何在Arch Linux上安装MongoDB 4.0
- chattr 解决项目.user.ini权限删除不掉
- 使用FirewallD在CentOS 7上管理防火墙
- 使用OpenSSH进行端口转发和代理
- 一键式LEMP堆栈上升级到PHP 7.1