1. 简介
UFW(Uncomplicated Firewall)
是一个简单易用的防火墙配置工具,针对Ubuntu
和其他基于Ubuntu
的Linux
发行版设计的。UFW 的目标是让防火墙配置变得简单,即使对于不熟悉防火墙概念和命令行的用户也能轻松使用。
虽然 UFW 最初是为Ubuntu
设计的,但它也可以在其他基于 Debian 的发行版上使用。
2. 安装
Debian & Ubuntu
apt update -y
apt install ufw -y
3. 开启服务
- 查看ufw状态
$ ufw status Status: inactive
- 开启服务(开启服务之前建议先配置远程端口允许)
$ ufw enable Command may disrupt existing ssh connections. Proceed with operation (y|n)? y Firewall is active and enabled on system startup
- 查看状态(没有配置规则)
$ ufw status Status: active To Action From -- ------ ----
4. 常用命令
-
允许所有出流量,禁用所有入流量
ufw default allow outgoing ufw default deny incoming
-
允许SSH连接,如果修改了SSH默认端口则需要指定端口号
# 使用默认端口 ufw allow ssh # 指定ssh端口 ufw allow 666
-
指定传输协议TCP/UDP
ufw allow 80/TCP ufw allow 21/UDP
-
禁用端口传入和传出
ufw deny 80
-
删除指定规则
# 删除已允许的规则 ufw delete allow 80 # 删除已禁用的规则 ufw delete deny 80
-
也可以通过编号删除规则
$ ufw status numbered Status: active To Action From -- ------ ---- [ 1] 22 ALLOW IN Anywhere [ 2] 22 (v6) ALLOW IN Anywhere (v6) $ ufw delete 2 Deleting: allow 22 Proceed with operation (y|n)? y Rule deleted (v6)
-
允许范围端口入流量
# 允许TCP和UDP入流量 ufw allow 6000:7000 # 只允许TCP入流量 ufw allow 7001:8000/tcp # 只允许UDP入流量 ufw allow 8001:9000/udp
-
允许/禁止特定IP连接
ufw allow from 192.168.1.100 ufw deny from 192.168.1.100
-
允许/禁止范围IP连接
# 192.168.1.0-192.168.254 ufw allow from 192.168.1.0/24 ufw deny from 192.168.1.0/24
-
指定IP和端口访问
# 允许 ufw allow from 192.168.1.100 to any port 80 # 指定tcp/udp ufw allow from 192.168.1.100 to any port 80 proto tcp ufw allow from 192.168.1.100 to any port 80 proto udp # 禁止 ufw deny from 192.168.1.100 to any port 80 # 指定tcp/udp ufw deny from 192.168.1.100 to any port 80 proto tcp ufw deny from 192.168.1.100 to any port 80 proto udp
敲黑板!!
Docker
服务对外映射的端口默认不被ufw或其它防火墙工具控制,是因为Docker
使用了网络地址转换(NAT)技术,将容器的网络流量转发到主机的网络接口上。
如果需要ufw控制,需要在docker配置文件中添加"iptables": false
。
```
cat /etc/docker/daemon.json
{
"log-opts": {
"max-size": "512m"
},
"data-root": "/docker-data/.docker",
"iptables": false
}
```