Ubuntu 防火墙 ufw 的基本使用


共计 1515 个字符,预计需要花费 4 分钟才能阅读完成。

在 Ubuntu 中,采用 ufw 管理防火墙,因为 iptables 的规则实在比较复杂,还是通过 ufw 管理比较方便,所以有必要了解一下它的基本使用方法。此外,ufw 不仅仅是 Ubuntu 可以使用,Centos 也是可以的,不过 Centos 默认使用 firewalld 管理。

1. 安装ufw

# Ubuntu安装
sudo apt-get install ufw
# Centos安装
sudo yum install ufw

2. 启用/禁用ufw

启用 ufw:

sudo ufw enable

这里需要注意的是,ufw 开启后默认会拒绝所有流量,如果是使用 ssh 连接,可能会断开。

禁用 ufw:

sudo ufw disable

3. 设置ufw默认规则

前面提到 ufw 默认是拒绝所有入流量,但是这个是可以修改的。

默认接收所有入流量:

sudo ufw default allow

默认拒绝所有入流量:

sudo ufw default deny
# sudo ufw default reject

4. 允许/拒绝特定端口

4.1 在后面添加规则

开放 22 端口:

# 开放所有
sudo ufw allow 22
# 仅对192.168.0.100开放
sudo ufw allow from 192.168.0.100
# 仅对192.168.0.100主机开放22端口
sudo ufw allow from 192.168.0.100 to any port 22
# 在指定主机的同时,只开放22端口的tcp
sudo ufw allow from 192.168.0.100 proto tcp to any port 22

关闭 22 端口:

# 拒绝所有
sudo ufw deny 22
# 拒绝整个网段
sudo ufw deny from 192.168.0.0/24
# 仅拒绝192.168.0.0/24这个网段请求22端口
sudo ufw deny from 192.168.0.0/24 to any port 22
# 限定网段的同时,指定只限制22端口的tcp
sudo ufw deny from 192.168.0.0/24 proto tcp to any port 22

4.2 在指定位置添加规则

sudo ufw insert 1 allow 22

4.3 拒绝某个端口的流量

reject 和 deny 不同的是,reject 会明确的告诉客户端拒绝,客户端能收到响应;而 deny 则是丢弃来自客户端的流量,这样客户端会一直尝试连接,直到超时。

sudo ufw reject 80

4.4 特定端口范围

可以使用 ufw 指定端口范围,一些应用程序使用多个端口,而不是单个端口。

sudo ufw allow 6000:6007/tcp
sudo ufw allow 6000:6007/udp

5. 删除特定规则

5.1 按规则删除

删除允许规则:

sudo ufw delete allow 80

删除拒绝规则:

sudo ufw delete deny 80

5.2 按序号删除

删除第一条规则

sudo ufw delete 1

6. 查看防火墙状态

sudo ufw status verbose

7. 重置防火墙

删除所有规则,并将防火墙关闭。

sudo ufw reset

8. 禁ping和取消

需要编辑 /etc/ufw/before.rules 文件:

# 禁止ping
-A ufw-before-input -p icmp --icmp-type echo-request -j DROP
# 允许ping
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT

然后执行如下命令重载 ufw 规则:

sudo ufw force-reload

注意事项

如果启用 ufw 后虚拟机无法 ping 通,原因可能是 ufw 没有允许 ip 转发导致的,编辑 /etc/default/ufw 允许 ip 转发。

DEFAULT_FORWARD_POLICY="ACCEPT"

提醒:本文发布于346天前,文中所关联的信息可能已发生改变,请知悉!

Tips:清朝云网络工作室

阅读剩余
THE END