Linux防火墙UFW简要入门

UFW究竟是什么

通过Linux内核的数据报有诸多特征,内核根据这些特征对数据报进行各种处理,比如路由。但直接在内核层面对数据报处理很不方便,后来在它的外层添加了iptables,使对数据报处理的难度大幅降低。不过有些人还是觉得iptables不够方便,于是又在iptables的外层包裹了一个wrapper,将数据报处理的难度进一步降低,让大多数人都能简单的进行防火墙的设置。最外面的这一层wrapper就是UFW, Uncomplicated Firewall.

实例内防火墙 vs 云平台级防火墙


这两个防火墙一般分别称为内防火墙和外防火墙,两道防火墙的串联可以提高安全性和运维的灵活性。UFW位于实例内,属于内防火墙。

Ubuntu官方内置了UFW,只不过默认未启用。

基本操作

以下操作假设你拥有root级权限,Ubuntu可以 $ sudo -i 临时获得,退出权限,直接 # exit

初始状态是✅允许一切出流量,❌禁止一切入流量。


启用
$ sudo ufw enable

禁用
$ sudo ufw disable

重新加载规则
$ sudo ufw reload

添加,删除允许规则
$ sudo ufw allow 80/tcp

$ sudo ufw delete allow 80/tcp

短时间内有限错误次数允许
$ sudo ufw limit 22/tcp

开启,关闭日志,设置日志级别
$ sudo ufw logging { on | off | low | high }

查看防火墙状态
$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
80/tcp                     ALLOW       Anywhere                  
443/tcp                    ALLOW       Anywhere

$ sudo ufw status verbose
Status: active
Logging: off
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip
To                         Action      From
--                         ------      ----
80/tcp                     ALLOW IN    Anywhere                  
443/tcp                    ALLOW IN    Anywhere

$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 2] 80/tcp                     ALLOW IN    Anywhere                  
[ 3] 443/tcp                    ALLOW IN    Anywhere

高级用法


sudo ufw allow from 192.168.0.2 to any port 22 proto tcp
sudo ufw insert 1 allow from 192.168.0.2
sudo ufw delete 1
sudo ufw allow from 192.168.0.0/24 to any port 22
sudo ufw delete allow from 192.168.0.0/24 to any port 22
sudo ufw allow in on eth0 to any port 22 proto udp

UFW相关配置文件

/etc/default/ufw, /etc/sysctl.conf, /etc/ufw/
可以用于高级控制和路由,也可以和iptables搭配使用。

为您推荐