debian设置UFW防火墙

在服务器上部署了许多服务,通过nginx反向代理共用443端口,通过不同的域名来区分不同的服务。

但是搬瓦工默认的防火墙是不开的,也就是说这些服务除了443端口能访问外,原始端口也可以访问。对此我有一些安全上的顾虑,所以考虑到把防火墙打开,只把443端口和ssh的端口放出去。

UFW

ufw是一个主机端的iptables防火墙配置工具,帮助我们简单化配置iptables。

查看iptable规则

sudo iptables --list-rule

UFW常用命令:

1
2
3
4
5
6
sudo apt-get install ufw #安装
sudo ufw enable #启动
sudo ufw disable #禁用
sudo ufw reload #重新载入
sudo ufw reset #回复初始化设置
sudo ufw status #防火墙状态

UFW防火墙的默认行为是阻止所有传入和转发流量,并允许所有出站流量。

在开启UFW之前,首先把ssh端口加入到允许列表

ssh端口是7722,设置如下

1
sudo ufw allow 7722/tcp

打开443端口,作为网站默认的端口

1
sudo ufw allow 443/tcp

另外发现在设置好防火墙后,我的docker服务中的其他端口,依然能通过外网访问?

查了相关问题相关问题,发现是docker也会修改防火墙的设置

把docker的配置文件/etc/docker/daemon.json (没有则新建)加一行,重启docker服务即可。

1
{ "iptables" : false }

UFW 删除规则

1
2
3
sudo ufw status numbered # 列出所有规则

sudo ufw delete 3 # 删除3号规则