经常使用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
目前暂时用到了这些,后续有新的使用再行添加。
参考: