在 Ubuntu 和 Debian 上安装使用 UFW 防火墙

在 Ubuntu 和 Debian 上安装使用 UFW 防火墙

Ubuntu 和 Debian 上有几种常用的防火墙

  • iptables
    • 这是 Linux 内核中内置的防火墙
    • iptables 是传统的防火墙配置方法,但现在被认为是过时的。
  • UFW (Uncomplicated Firewall)
    • 这是 Ubuntu 默认的防火墙配置工具
    • UFW 提供了一个简单易用的命令行界面来管理 iptables 规则。
    • 它预装在 Ubuntu 系统中,但默认是禁用状态。
  • Firewalld
    • 这是一个动态管理的防火墙工具。
    • 它提供丰富的规则语言,支持更复杂和灵活的防火墙规则。

这里主要讲一下 UFW 的使用,个人感觉 UFW 的命令行最简单,最容易记住。

  1. 安装 UFW
sudo apt update
sudo apt install ufw
  1. 在启动防火墙之前先打开 ssh 端口,否则防火墙启动后就不能 ssh 到主机了
# 如果用的是默认端口 22,可以用下面这条命令
sudo ufw allow ssh

# 如果用的是其他端口,例如 2022,就直接用数字
sudo ufw allow 2022/tcp
  1. 确认 ssh 端口打开后,就可以启用 UFW
sudo ufw enable
  1. 查看 UFW 的当前状态
sudo ufw status verbose

会显示下面内容

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere
22/tcp (v6)                ALLOW IN    Anywhere (v6)
  1. 一些全局设置命令
# 允许所有入站连接
sudo ufw default allow incoming

# 拒绝所有入站连接
sudo ufw default deny incoming

# 允许所有出站连接
sudo ufw default allow outgoing
  1. 允许 HTTP 和 HTTPS
sudo ufw allow http
sudo ufw allow https

# 或者用端口号也可以
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
  1. 允许特定端口和协议
sudo ufw allow 1433/tcp
sudo ufw allow 3306/tcp
sudo ufw allow 1234/udp
  1. 拒绝特定 IP 地址
# 拒绝来自 192.168.1.100 的连接
sudo ufw deny from 192.168.1.100
  1. 删除之前添加的规则
# 查看所有规则
sudo ufw status verbose

# 然后可以删除现有的规则
sudo ufw delete allow http # 删除后 80 端口就连不上了
sudo ufw delete allow 22/tcp # 删除后 22 端口就不能 ssh 了
  1. 重新加载 UFW,修改规则后重新加载 UFW
sudo ufw reload
  1. 禁用 UFW
sudo ufw disable

总结:命令行非常简单易记,基本用几次就能完全记住了