Ubuntu中启用UFW防火墙
介绍
UFW 全称为 Uncomplicated Firewall,是 Ubuntu 系统上默认的防火墙组件, 为了轻量化配置 iptables 而开发的一款工具。UFW 提供一个非常友好的界面用于创建基于IPV4,IPV6的防火墙规则。
但是,UFW 是没有图形化用户界面的,它使用指令列操作,所以,操作起来就不是那么的方便,有人帮它写了个图形化用户界面,名字就叫做“Gufw”。
更多详情可查看“维基百科UFW”
更新系统
在操作之前你可以对自己系统的包进行升级及安装
Debian / Ubuntu
- sudo apt-get update && sudo apt-get upgrade
安装UFW
UFW 默认包含在 Ubuntu 中,但是在Debian里面需要自己手动进行安装。
- sudo apt-get install ufw
安装完后可自行输入 ufw help 进行帮助查看,这边并不多做介绍。
使用UFW配置防火墙规则
添加规则
可以有两种方式添加规则:用端口号或者服务名表示。
如果你想只开启SSH 22端口,你可以运行:
- sudo ufw allow from ssh
也可以选择运行:
- sudo ufw allow from 22
要在特定端口(比如 2333)上 deny
流量,你需要运行:
- sudo ufw deny 2333
允许/拒绝 基于 TCP 或者 UDP 的包。下面例子会允许 80 端口的 TCP 包:
- sudo ufw allow 80/tcp
- sudo ufw allow http/tcp
- sudo ufw deny 80/tcp
- sudo ufw deny http/tcp
如果只想允许/拒绝 UDP 包,可以输入:
- sudo ufw allow 2333/udp
- sudo ufw deny 2333/udp
更高级的规则
除了基于端口的允许或阻止,UFW 还可以设置规定的 IP 地址、子网和 IP 地址/子网/端口的组合来 允许/阻止。
允许/拒绝某 IP 的连接:
- sudo ufw allow 127.0.0.1 //允许127.0.0.1的所有连接
- sudo ufw deny 127.0.0.1 //拒绝127.0.0.1的所有连接
允许/拒绝特定子网的连接:
- sudo ufw allow 127.0.0.1/24 //允许127.0.0.1的子网所有连接
- sudo ufw deny 127.0.0.1/24 //拒绝127.0.0.1的子网所有连接
允许/拒绝某 IP 从特定端口连接:
- sudo ufw allow from 127.0.0.1 to any port 22 proto tcp //只允许127.0.0.1在22端口使用TCP连接
- sudo ufw allow from 127.0.0.1 to any port 22 proto dup //只允许127.0.0.1在22端口使用UDP连接
- sudo ufw allow deny 127.0.0.1 to any port 22 proto tcp //只拒绝127.0.0.1在22端口使用TCP连接
- sudo ufw allow deny 127.0.0.1 to any port 22 proto dup //只拒绝127.0.0.1在22端口使用UDP连接
删除规则
删除,在规则的前面加上 delete
。比如你想拒绝HTTP的所有流量,你可以运行:
- sudo ufw delete 80
- 或
- sudo ufw delete http
启动防火墙
在你的规则添加完后,你需要启动自己的防火墙:
- sudo ufw enable
你也可以禁用防火墙:
- sudo ufw disable
UFW 状态
你可以输入 sudo ufw status
查看UFW的状态,以及UFW是否在运行状态:
- Status: active
- To Action From
- -- ------ ----
- 22 ALLOW Anywhere
- 443 ALLOW Anywhere
- 80 ALLOW Anywhere
- 2333 ALLOW Anywhere
- 22 (v6) ALLOW Anywhere (v6)
- 443 (v6) ALLOW Anywhere (v6)
- 80 (v6) ALLOW Anywhere (v6)
- 2333 (v6) ALLOW Anywhere (v6)
你也可以输入 ufw status verbose 来查看UFW防火墙的详细状态
- Status: active
- Logging: on (low)
- Default: deny (incoming), allow (outgoing), disabled (routed)
- New profiles: skip
- To Action From
- -- ------ ----
- 22 ALLOW IN Anywhere
- 443 ALLOW IN Anywhere
- 80 ALLOW IN Anywhere
- 2333 ALLOW IN Anywhere
- 22 (v6) ALLOW IN Anywhere (v6)
- 443 (v6) ALLOW IN Anywhere (v6)
- 80 (v6) ALLOW IN Anywhere (v6)
- 2333 (v6) ALLOW IN Anywhere (v6)
日志相关
你可以输入以下命令来启动日志记录:
- sudo ufw logging on