Nmap scan report for 192.168.0.39
Host is up (0.00029s latency).
All 1000 scanned ports on 192.168.0.39 are filtered
MAC Address: 00:0C:29:EF:80:D6 (VMware)
开启后:
Nmap scan report for 192.168.0.39
Host is up (0.00038s latency).
Not shown: 997 filtered ports
PORT STATE SERVICE
22/tcp closed ssh
80/tcp closed http
8080/tcp closed http-proxy
MAC Address: 00:0C:29:EF:80:D6 (VMware)
sudo ufw allow 2290
你也可以把端口范围添加进规则。如果我们想打开从 2290到2300 的端口以供 tcp 协议使用,命令如下示:
sudo ufw allow 2290:2300/tcp
样你想使用 udp 的话,如下操作。
sudo ufw allow 2290:2300/udp
请注意你得明确的指定是 ‘tcp’ 或 ‘udp’,否则会出现跟下面类似的错误信息。
ERROR: Must specify ‘tcp’ or ‘udp’ with multiple ports
添加特定 IP
前面我们添加的规则都是基于 服务程序 或 端口 的,UFW 也可以添加基于 IP 地址的规则。下面是命令样例。
sudo ufw allow from 192.168.0.104
你也可以使用子网掩码来扩宽范围。
sudo ufw allow form 192.168.0.0/24
你也可以使用子网掩码来扩宽范围。
sudo ufw allow form 192.168.0.0/24
To Action From
-- ----------- ------
Anywhere ALLOW 192.168.0.104
Anywhere ALLOW 192.168.0.0/24
如你所见, from 参数仅仅限制连接的来源,而目的(用 To 列表示)是所有地方
sudo ufw allow to any port 22
上面的命令会允许从任何地方以及任何协议都可以访问22端口。
组合参数
对于更具体的规则,你也可以把 IP 地址、协议和端口这些组合在一起用。我们想创建一条规则,限制仅仅来自于 192.168.0.104 的 IP ,而且只能使用 tcp 协议和通过 22端口 来访问本地资源。我们可以用如下所示的命令。
sudo ufw allow from 192.168.0.104 proto tcp to any port 22
创建拒绝规则的命令和允许的规则类似,仅需要把 allow 参数换成 deny 参数就可以。
删除规则
sudo ufw delete allow ftp
方法二:
sudo ufw delete allow ssh
或者
sudo ufw delete allow 22/tcp
会出现如下所示的一些错误:
Could not delete non-existent rule
Could not delete non-existent rule (v6)
我们还有一招。上面已经提到过,可以序列数字来代替你想删除的规则。让我们试试。
sudo ufw status numbered
然后我们删除正在使用的第一条规则。按 “ y ” 就会永久的删除这条规则。
sudo ufw delete 1
Deleting :
Allow from 192.168.0.104 to any port 22 proto tcp
Proceed with operation (y|n)? y
从这些用法中你就可以发现它们的不同。 方法2 在删除前需要 用户确认 ,而 方法1 不需要。
重置所有规则
sudo ufw reset
Resetting all rules to installed defaults. Proceed with operation (y|n)? y
如果你输入“ y ”, UFW 在重置你的 ufw 前会备份所有已经存在规则,然后重置。重置操作也会使你的防火墙处于不可用状态,如果你想使用得再一次启用它。