UFW 全称为 Uncomplicated Firewall,是 Ubuntu 系统上配置 iptables 防火墙的命令行工具。UFW 提供一个非常友好的命令用于创建基于 IPV4,IPV6 的防火墙规则。
Gufw 是 UFW 的界面版。
由于 Ubuntu 下的 iptables 操作起来比较复杂,依赖关系比较多,所以使用 UFW 时可以简化很多操作。当然 Debian 同样适用。
无论是桌面版还是服务器版, UFW 的命令行用法是一样的。
安装 UFW
首先,用如下命令来检查下系统上是否已经安装了 UFW
$ sudo dpkg --get-selections | grep ufw
如还没有安装,可以使用以下命令来安装:
$ sudo apt-get install ufw
在使用前,你应该检查下UFW是否已经在运行。用下面的命令来检查:
$ sudo ufw status
如果你发现状态是:inactive , 意思是没有被激活或不起作用。
使用方法
我们来看下 UFW 的帮助:
root@novnbfjnbu86km6k:/etc# ufw -help ERROR: Invalid syntax Usage: ufw COMMAND Commands: enable enables the firewall disable disables the firewall default ARG set default policy logging LEVEL set logging to LEVEL allow ARGS add allow rule deny ARGS add deny rule reject ARGS add reject rule limit ARGS add limit rule delete RULE|NUM delete RULE insert NUM RULE insert RULE at NUM route RULE add route RULE route delete RULE|NUM delete route RULE route insert NUM RULE insert route RULE at NUM reload reload firewall reset reset firewall status show firewall status status numbered show firewall status as numbered list of RULES status verbose show verbose firewall status show ARG show firewall report version display version information Application profile commands: app list list application profiles app info PROFILE show information on PROFILE app update PROFILE update PROFILE app default ARG set default application policy root@novnbfjnbu86km6k:/etc#
启用
sudo ufw enable sudo ufw default deny #作用:开启了防火墙并随系统启动同时关闭所有外部对本机的访问(本机访问外部正常)。
关闭
sudo ufw disable
查看防火墙状态
sudo ufw status
开启/禁用访问sudo ufw allow 80 #允许外部访问80端口
sudo ufw delete allow 80 #禁止外部访问80 端口
sudo ufw allow from 192.168.1.1 #允许此 IP 访问所有的本机端口
sudo ufw deny smtp #禁止外部访问 smtp 服务,以服务名代表端口,可以使用 less /etc/services 列出所有服务信息, 其中包括该服务使用了哪个端口和哪种协议 sudo ufw delete allow smtp #删除上面建立的某条规则,或者sudo ufw delete allow 80/tcp,如果出现无法删除,可以用序号:sudo ufw status numbered,然后通过序号删除 sudo ufw delete 1
sudo ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 22 #要拒绝所有的TCP流量从10.0.0.0/8 到192.168.0.1地址的22端口 #可以允许所有RFC1918网络(局域网/无线局域网的)访问这个主机(/8,/16,/12是一种网络分级): sudo ufw allow from 10.0.0.0/8 sudo ufw allow from 172.16.0.0/12 sudo ufw allow from 192.168.0.0/16
重置所有规则
sudo ufw reset