Last Updated on 2025-07-07 by Lee
最近为ubuntu配置防火墙。以前一直使用CentOS6和CentOS7,用惯了friewalld和iptables命令。
但CentOS7不支持我要使用的软件了,于是改用了Ubuntu18。
在ubuntu配置防火墙这块,发现配置命令比上面那俩格式命令记忆起更简单。
下面整理了一些命令,基本够用。
1,查看防火墙状态
sudo ufw status
2,开启防火墙
sudo ufw enable
3,关闭防火墙
sudo ufw disable
4,查看防火墙详细规则
sudo ufw status verbose
5,允许特定端口号
sudo ufw allow 8888 #开放8888端口,包括tcp和udp
sudo ufw allow 8888/tcp # 开放888端口的tcp流浪
6,拒绝特定端口号
sudo ufw deny 22 #开放22端口 包括tcp和udp
sudo ufw deny 22/udp #开放22端口udp的流量
7,删除规则
sudo ufw delete allow 80
sudo ufw delete deny 80
8,允许特定IP访问
sudo ufw allow from 10.0.0.5
9,拒绝特定IP地址访问
sudo ufw deny from <IP地址>
10,允许或阻止特定协议
sudo ufw allow/deny ssh #从 /etc/services 中查找端口
11,允许特定IP通过任何协议访问22端口
ufw allow from 10.0.0.5 to any port 22
13,允许特定IP通过任何TCP协议访问22端口
ufw allow from 10.0.0.5 to any port 22 proto tcp
14,允许特定子网访问
ufw allow from 10.0.0.1/16
15,允许特定端口,并添加备注
ufw allow 3336 comment 'open 3336 port'
16,默认阻止外界入站
ufw default deny incoming
17,默认本地任何允许出站
ufw default allow outgoing
18,拒绝所有访问,只允许出站,相当于16,17合成一条命令
ufw default deny
19,拒绝特定IP访问
ufw deny from 10.0.0.5 to any port 22 #拒绝 ip 通过任何端口访问 22
ufw allow from 10.0.0.5/16 to any port 22 proto tcp #拒绝子网ip通过任何TCP访问22
20,删除创建的规则
ufw delete deny 80/tcp #删除拒绝80 tcp规则
21,显示创建过的规则顺序和ID号
ufw status numbered #和ufw status一样,只不过前面带序号
root@leesangho:~# ufw status numbered
Status: active
To Action From
-- ------ ----
[ 1] 237 ALLOW IN Anywhere
[ 2] 3226 ALLOW IN Anywhere
[ 3] 80 ALLOW IN Anywhere
[ 4] 443 ALLOW IN Anywhere
[ 5] 237 (v6) ALLOW IN Anywhere (v6)
[ 6] 3226 (v6) ALLOW IN Anywhere (v6)
[ 7] 80 (v6) ALLOW IN Anywhere (v6)
[ 8] 443 (v6) ALLOW IN Anywhere (v6)
22,按照编号删除规则
ufw delete 1 #删除编号为1的规则,即删除允许237端口通过防火墙的规则
23,启用日志
ufw logging on
24,禁用日志
ufw logging off
相较于firewalld和iptables,乌班图的ufw命令简洁多了,可以不用带复杂的参数就能完成很多基本功能,这对于新手或实施基本配置非常友好。如需要更多信息,可以到Ubuntu中文社区寻找帮助。