UFW(Uncomplicated Firewall),中文译名简单防火墙,是一款轻量化的防火墙工具,主要用于管理防火墙规则。

先决条件

  • 运行ufw命令的用户必须是root用户或是具有sudo权限的用户,非root用户记得添加sudo权限并在下述指令前添加sudo

  • 默认情况下ufw阻挡了所有进来的连接,并且允许所有出去的连接,这意味着任何人无法访问服务器,除非打开端口。而运行在服务器上的应用和服务可以访问外面的世界。

常用指令

  1. ufw安装

    1
    apt install ufw
  2. 查看防火墙状态

    1
    ufw status

    如果还未启用 UFW ,将会显示Status: inactive;否则,将会显示所有制定的防火墙规则。

    查看额外信息:

    1
    ufw status verbose

    将输出将包含有关日志记录,默认策略和新配置文件的信息。

    查看规则及规则序号:

    1
    ufw status numbered
  3. 开启防火墙

    1
    ufw enable
  4. 关闭防火墙

    1
    ufw disable
  5. 重置防火墙

    1
    ufw reset
  6. 外来访问全部允许/拒绝

    1
    2
    3
    4
    #外来访问全部允许
    ufw default allow
    #外来访问全部拒绝
    ufw default deny
  7. 开放或禁用端口

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #允许外部访问53端口(tcp/udp) 
    ufw allow 53
    #允许所有的外部IP访问本机的22/tcp (ssh)端口
    ufw allow 22/tcp
    #允许所有的外部IP访问本机的25/tcp (smtp)端口
    ufw allow smtp
    #拒绝外部访问53端口(tcp/udp)
    ufw deny 53
    #允许/禁用多个端口
    ufw allow/deny 53,3690
    #制定端口范围
    ufw allow 7100:7200/tcp
    #允许此IP访问所有的本机端口
    ufw allow from 192.168.1.111
    #允许给定 IP 访问指定的端口
    ufw allow from 64.63.62.61 to any port 22
    #允许指定的IP段访问特定端口, 如允许自192.168.0.0/24的tcp封包访问本机的22端口
    ufw allow proto tcp from 192.168.0.0/24 to any port 22
    #禁止来自192.168.0.0/24的udp封包访问本机的53端口
    ufw deny proto tcp from 192.168.0.0/24 to any port 53
  8. 删除防火墙规则

    1
    2
    3
    4
    5
    6
    #删除smtp服务端口(25)
    ufw delete allow smtp
    #删除3690端口
    ufw delete allow 3690
    #删除以前定义的"允许/拒绝访问20端口"的规则
    ufw delete allow/deny 20
  9. 应用配置

    大部分应用都附带一份应用配置,它描述了服务,并且包含了UFW设置。这个规则在软件包安装的时候,被自动创建在/etc/ufw/applications.d目录下。

    列举系统上所有的应用配置:

    1
    ufw app list

    查找更多关于指定配置和包含规则的信息:

    1
    ufw app info '应用'
  10. 启动并启用UFW的systemd 单元

    1
    2
    systemctl start ufw
    systemctl enable ufw