# ubuntu配置防火墙
# 介绍
LInux原始的防火墙工具iptables由于过于繁琐,所以ubuntu系统默认提供了一个基于iptable之上的防火墙工具ufw。而UFW支持图形界面操作,只需在命令行运行ufw命令即能看到一系列的操作。
# 安装
Ubuntu20.04一般都默认安装了UFW(Uncomplicated Firewall),它是一款轻量化的工具,主要用于对输入输出的流量进行监控。如果没有安装,请用下面的命令安装:
apt install ufw
1
正常情况安装以后应该是默认禁止状态的:
# 查看ufw状态
ufw status verbose
1
2
2

这表示防火墙没有开启,下面启用防火墙。
# 启用防火墙
ufw enable
# 默认拒绝
ufw default deny
1
2
3
2
3
运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。输入 ufw status verbose,可以看到如下界面:

# 启用/关闭端口
# 语法配置
ufw allow | deny [service]
1
# 使用实例
# 允许外部访问1000端口(tcp/udp)
ufw allow 1000
# 允许外部访问3690端口(svn)
ufw allow 3690
# 允许此IP访问所有的本机端口
ufw allow from 192.168.1.1
# 允许指定的IP段访问特定端口
ufw allow proto tcp from 192.168.0.0/24 to any port 22
# 拒绝访问1000端口
ufw deny 1000
# 删除上面建立的某条规则,比如删除svn端口就是
ufw delete allow 3690
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 关闭防火墙
ufw disable
1
# 查看端口占用情况
netstat -apn
1

# 更精确的查找
netstat -apn | grep 8080
# 查询这个进程的详情
ps -aux | grep pid
1
2
3
4
2
3
4
# 问题
# docker修改防火墙问题
ufw 禁用端口未生效
通过命令iptables-save查看防火墙状态:

发现docker自动在防火墙列表中添加了开放端口的规则. 所以根本就没走到ufw端口就被放行了.
# docker 不修改防火墙
第一步
修改docker的配置文件/etc/docker/daemon.json(若没有就新建一个), 添加如下内容:
{
"iptables": false
}
1
2
3
2
3
第二步
重启docker:
systemctl restart docker
1
完成, 此时再启动docker容器, 就不会修改防火墙了。