# ubuntu配置防火墙

# 介绍

LInux原始的防火墙工具iptables由于过于繁琐,所以ubuntu系统默认提供了一个基于iptable之上的防火墙工具ufw。而UFW支持图形界面操作,只需在命令行运行ufw命令即能看到一系列的操作。

# 安装

Ubuntu20.04一般都默认安装了UFW(Uncomplicated Firewall),它是一款轻量化的工具,主要用于对输入输出的流量进行监控。如果没有安装,请用下面的命令安装:

apt install ufw
1

正常情况安装以后应该是默认禁止状态的:

# 查看ufw状态
ufw status verbose
1
2

image-20221106175745570

这表示防火墙没有开启,下面启用防火墙。

# 启用防火墙

ufw enable
# 默认拒绝
ufw default deny
1
2
3

运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。输入 ufw status verbose,可以看到如下界面:

image-20221106180834156

# 启用/关闭端口

# 语法配置

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

# 关闭防火墙

ufw disable
1

# 查看端口占用情况

netstat -apn
1

image-20221106174958338

# 更精确的查找
netstat -apn | grep 8080
# 查询这个进程的详情
ps -aux | grep pid
1
2
3
4

# 问题

# docker修改防火墙问题

ufw 禁用端口未生效

通过命令iptables-save查看防火墙状态:

image-20221106213533681

发现docker自动在防火墙列表中添加了开放端口的规则. 所以根本就没走到ufw端口就被放行了.

# docker 不修改防火墙

第一步

修改docker的配置文件/etc/docker/daemon.json(若没有就新建一个), 添加如下内容:

{
  "iptables": false
}
1
2
3

第二步

重启docker:

systemctl restart docker
1

完成, 此时再启动docker容器, 就不会修改防火墙了。

上次更新时间: 2024年2月14日星期三上午10点24分