正文:
在
Ubuntu
中,我们可以使用ufw
来管理防火墙。相比于iptables
的复杂规则,ufw
提供了更加方便的管理方式。因此,了解ufw
的基本使用方法是很有必要的。值得一提的是,ufw
不仅适用于Ubuntu
,Centos
也可以使用它来管理防火墙。不过,Centos
默认使用firewalld
来进行管理。
1. 安装 ufw
# Ubuntu
安装
sudo
apt
-get
install
ufw
# Centos
安装
sudo
yum
install
ufw
2. 启用/禁用 ufw
sudo
ufw
enable
这里需要注意的是,ufw
开启后默认会拒绝所有流量,如果是使用 ssh
连接,可能会断开。
禁用 ufw
:
sudo
ufw
disable
3. 设置 ufw
默认规则
前面提到 ufw
默认是拒绝所有入流量,但是这个是可以修改的。
默认接收所有入流量:
sudo
ufw
default
allow
默认拒绝所有入流量:
sudo
ufw
default
allow
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 按序号删除
删除第一条规则
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
"
转载请注明:汇站网 » Ubuntu
防火墙 ufw
的基本操作方法