ufw-docker-automated安装与配置指南
1. 项目基础介绍
ufw-docker-automated
是一个开源项目,旨在帮助用户在使用 Docker 的同时,自动化管理 Ubuntu 或 Debian 系统上的 ufw
(Uncomplicated Firewall)防火墙规则。这个项目可以解决 Docker 直接操作 iptables
而绕过 ufw
规则的问题。项目主要使用 Go 语言编写。
2. 项目使用的关键技术和框架
- Go 语言:项目的主体语言,用于实现监听 Docker API 事件,并根据容器标签自动更新
ufw
规则的逻辑。 - Docker API:用于实时监听容器状态变化,从而动态更新防火墙规则。
- UFW(Uncomplicated Firewall):是 Ubuntu 系统上的一个前端工具,用于管理
iptables
防火墙。
3. 项目安装和配置的准备工作及详细步骤
准备工作
- 确保系统运行的是 Ubuntu 或 Debian。
- 安装 Docker,并确保其可以正常工作。
- 安装 UFW 并启用它。
安装步骤
步骤 1:安装依赖
首先,安装编译项目所需的依赖:
sudo apt-get update
sudo apt-get install -y git build-essential
步骤 2:克隆项目
使用 Git 将项目克隆到本地:
git clone https://github.com/shinebayar-g/ufw-docker-automated.git
cd ufw-docker-automated
步骤 3:构建项目
在项目目录中,构建项目:
go build -o ufw-docker-automated main.go
步骤 4:配置 UFW
编辑 /etc/ufw/after.rules
文件,在文件的末尾添加以下内容:
# BEGIN UFW AND DOCKER
*filter
:ufw-user-forward - [0:0]
:ufw-docker-logging-deny - [0:0]
:DOCKER-USER - [0:0]
-A DOCKER-USER -j ufw-user-forward
-A DOCKER-USER -j RETURN -s 10.0.0.0/8
-A DOCKER-USER -j RETURN -s 172.16.0.0/12
-A DOCKER-USER -j RETURN -s 192.168.0.0/16
-A DOCKER-USER -p udp -m udp --sport 53 --dport 1024:65535 -j RETURN
-A DOCKER-USER -j ufw-docker-logging-deny -p tcp -m tcp --tcp-flags SYN,RST,ACK,FIN SYN -j DROP
-A DOCKER-USER -j ufw-docker-logging-deny -p udp -j DROP
-A DOCKER-USER -j RETURN
COMMIT
# END UFW AND DOCKER
步骤 5:运行项目
启动 ufw-docker-automated
:
sudo ./ufw-docker-automated
步骤 6:配置 Docker 容器
在启动 Docker 容器时,添加相应的标签以指定 ufw
规则。例如:
docker run -d -p 8080:80 -l UFW_MANAGED=TRUE -l UFW_ALLOW_FROM=192.168.1.0/24 nginx:alpine
这样就完成了 ufw-docker-automated
的安装和配置。现在,当 Docker 容器启动或停止时,相应的 ufw
规则将会自动更新。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考