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