在 Ubuntu 和 Debian 上安装使用 UFW 防火墙
Ubuntu 和 Debian 上有几种常用的防火墙
- iptables
- UFW (Uncomplicated Firewall)
- Firewalld
- 这是一个动态管理的防火墙工具。
- 它提供丰富的规则语言,支持更复杂和灵活的防火墙规则。
这里主要讲一下 UFW 的使用,个人感觉 UFW 的命令行最简单,最容易记住。
- 安装 UFW
sudo apt update
sudo apt install ufw
- 在启动防火墙之前先打开 ssh 端口,否则防火墙启动后就不能 ssh 到主机了
# 如果用的是默认端口 22,可以用下面这条命令
sudo ufw allow ssh
# 如果用的是其他端口,例如 2022,就直接用数字
sudo ufw allow 2022/tcp
- 确认 ssh 端口打开后,就可以启用 UFW
sudo ufw enable
- 查看 UFW 的当前状态
sudo ufw status verbose
会显示下面内容
To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
22/tcp (v6) ALLOW IN Anywhere (v6)
- 一些全局设置命令
# 允许所有入站连接
sudo ufw default allow incoming
# 拒绝所有入站连接
sudo ufw default deny incoming
# 允许所有出站连接
sudo ufw default allow outgoing
- 允许 HTTP 和 HTTPS
sudo ufw allow http
sudo ufw allow https
# 或者用端口号也可以
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
- 允许特定端口和协议
sudo ufw allow 1433/tcp
sudo ufw allow 3306/tcp
sudo ufw allow 1234/udp
- 拒绝特定 IP 地址
# 拒绝来自 192.168.1.100 的连接
sudo ufw deny from 192.168.1.100
- 删除之前添加的规则
# 查看所有规则
sudo ufw status verbose
# 然后可以删除现有的规则
sudo ufw delete allow http # 删除后 80 端口就连不上了
sudo ufw delete allow 22/tcp # 删除后 22 端口就不能 ssh 了
- 重新加载 UFW,修改规则后重新加载 UFW
sudo ufw reload
- 禁用 UFW
sudo ufw disable
总结:命令行非常简单易记,基本用几次就能完全记住了