经常使用centos,所以对centos的防火墙命令firewall-cmd比较熟悉。最近购买了一个vps,装上了Ubuntu,当然使用iptables命令是不可能的了(复杂);于是在网上搜了一下,发现有ufw这个东西,下面整理一下使用方式。

这个防火墙应该适用于所有Debian系的操作系统吧(个人猜测)。

全程使用root用户。

安装ufw

apt-get install ufw

使用ufw

设置默认规则

通常我们的vps是暴露在外网里面的,那么经常就会遇到被端口扫描或者暴力破解等问题,那么我们就有必要设置只开放部分端口,并关闭其它端口。

命令:

ufw default allow outgoing
ufw default deny incoming

上述命令,拒绝所有进入以及允许所有发出。
另外也可以使用reject,至于区别,可以参考iptables;个人理解
reject:拒绝,也就是回包告诉访问的客户端。
deny:丢弃(drop),直接丢弃该数据,无任何回应。

注意:

在我们配置了默认deny或者reject的时候,首先确保ufw处于disable状态;或者已经将ssh的端口进行了放行。不然你将无法连接到你的服务器,这是灾难性的。

添加规则

可以通过两种方式进行添加:端口号或者服务名。

ssh服务放行

ufw allow ssh
ufw allow 22

服务禁止

ufw deny 111   //进行111端口的连接

基于tcp或者udp的规则

ufw allow 443/tcp
ufw allow 1234/udp

删除规则

在添加了规则之后,如果该规则不需要了,可以将之删除。

ufw delete allow 80

使用这个命令,应当与添加的命令是镜像的,只是更改allow或者其它的参数为delete

ufw状态

在我们设置规则之前,可以通过状态命令来确保是否存在响应的规则。

ufw status
Status: active

To                         Action      From
--                         ------      ----
27819/tcp                  ALLOW       Anywhere
22                         ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
27819/tcp (v6)             ALLOW       Anywhere (v6)
22 (v6)                    ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)

启动/停止防火墙

如果你通过上面的status命令查看Status: inactive,那么你需要启动防火墙,使之运行。

ufw enable

反之禁止:

ufw disable

目前暂时用到了这些,后续有新的使用再行添加。

参考:

最后修改:2019 年 05 月 06 日 11 : 35 AM