Skip to content

UFW 简介

LInux原始的防火墙工具iptables由于过于繁琐,所以ubuntu系统默认提供了一个基于iptable之上的防火墙工具ufw。

而UFW支持图形界面操作,只需在命令行运行ufw命令即能看到一系列的操作

UFW 全称为Uncomplicated Firewall,是Ubuntu 系统上默认的防火墙组件, 为了轻量化配置iptables 而开发的一款工具。

UFW 提供一个非常友好的界面用于创建基于IPV4、IPV6的防火墙规则。

Linux 2.4内核以后提供了一个非常优秀的防火墙工具:netfilter/iptables,他免费且功能强大,可以对流入、流出的信息进行细化控制,它可以 实现防火墙、NAT(网络地址翻译)和数据包的分割等功能。netfilter工作在内核内部,而iptables则是让用户定义规则集的表结构。

但是iptables的规则稍微有些“复杂”,因此ubuntu提供了ufw这个设定工具,以简化iptables的某些设定,其后台仍然是 iptables。

ufw 即uncomplicated firewall的简称,一些复杂的设定还是要去iptables。(ufw还有图形化的Gufw)

UFW 安装

shell
#ubuntu
sudo apt update
sudo apt install ufw

#centos
yum install -y ufw

UFW 启动

一般ufw命令只能在具有sudo权限的用户以及root用户下执行。

在激活的时候,默认是不允许ssh端口连接的,ufw会保持当前的连接,这时候执行sudo ufw allow ssh

来开启ssh的端口。如果不执行,重启后下次ssh连接就不能正常连接,因为ufw默认允许内部流量出去,但不允许外部流量进来。

shell
sudo ufw enable          #启用ufw
sudo ufw disable         #禁用

查看 UFW 状态和启用

shell
# 查看防火墙状态
sudo ufw status
# 启用|关闭 防火墙
sudo ufw enable|disable
# 变更后应用配置
sudo ufw reload

常用规则

shell
iptables -F
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

sudo ufw allow 22        //开放22端口
sudo ufw allow 8001/tcp            //指定开放8001的tcp协议
sudo ufw allow from 192.168.0.0/24   // 指定ip为192.168.121.1的计算机操作所有端口
sudo ufw allow from 192.168.121.2 to any port 3306 // 开放指定ip为192.168.121.2的计算机访问本机的3306端口

sudo ufw delete allow from 192.168.121.1  // 关闭指定ip为192.168.121.1的计算机操作所有端口

sudo ufw delete limit ssh/tcp

sudo ufw allow 3306/tcp sudo ufw delete allow 3306/tcp

基本配置

shell
# 默认规则 拒绝外来访问
ufw default deny

# 拒绝特定范围IP访问 或 接受特定IP访问
ufw deny from 93.115.0.0/16
ufw allow from 172.25.146.1

# 查看已添加规则 序号和删除对应序号规则
ufw status numbered
ufw delete 5

#查看可应用规则 软件列表 
ufw app list

# 允许访问ssh (其实就是端口 22)
ufw allow 22

#允许161通过tcp协议访问本机(VNC就是基于tcp协议)
ufw allow proto tcp from 172.25.150.161

#允许某范围内IP 访问 某应用或端口
ufw allow from 172.25.146.0/24 to any app OpenSSH
ufw allow from 172.25.146.0/24 to any port 22

# 限制同一IP 通过SSH/TCP 高频访问,防暴力登录
ufw limit ssh/tcp

# 查看本机网络端口与外部网络 连接状态
netstat -antp

其他规则

限制30s访问次数

UFW最有用的功能之一是它能够轻松地对特定端口的连接进行速率限制。

可以使用此功能来限制连接到关键端口的数量。

当您限制一个连接时,UFW将不允许在过去30秒内有任何超过6个连接。

防火墙将阻止任何额外的连接。

格式 sudo ufw limit PORT[/PROTOCOL]

shell
# 限制22端口的访问速度
sudo ufw limit 22

重置UFW规则

shell
sudo ufw reset

ufw的规则生效顺序

ufw的规则是,序号最小的先生效。从上到下依次匹配,匹配到了就执行规则,不再匹配后面的规则。

参考