ufw 日志与规则配置

512 阅读3分钟

UFW(Uncomplicated Firewall)是一个用于管理 Linux 系统上防火墙规则的工具,旨在简化 iptables 的复杂性。UFW 提供了一个易于使用的命令行界面,使得配置和管理防火墙规则变得更加简单。

1、ufw日志是否启用

sudo ufw status verbose

image.png

输出显示 Logging: on (low),说明日志已经开启了;如果显示的Logging: off,则需要开启日志

sudo ufw logging on  开启日志

2、查看ufw日志

sudo less /var/log/ufw.log

image.png 主要查看以下字段信息

  • Jun 30 00:05:18 sdc kernel: [283361.762575]:显示自启动以来的日期、时间、主机名和内核时间。
  • [UFW BLOCK]:如果您在默认设置下使用UFW日志,日志记录级别将锁定在低级别。这意味着它只会显示不符合 UFW 规则的被拒绝的数据包。
  • [UFW ALLOW]:尽管有默认的日志记录级别,但如果您添加了日志记录规则,它将记录与该服务相关的每个详细信息,并且 UFW ALLOW 表示允许数据包。
  • IN=eno2 :显示数据包到达的接口。
  • SRC=141.11.101.192:报文源IP地址。
  • DST:显示数据包目的地的 IP 地址,它将是您系统的 IP。
  • SPT=443:获取数据包的源端口。
  • DPT=30364:表示数据包的目的端口。

3、查看ufw日志级别

UFW 日志记录有 5 个级别。

  • off:表示禁用日志记录。

  • low:将存储与与当前防火墙规则不匹配的被阻止数据包相关的日志,并将显示与记录的规则相关的日志条目。 是的,您也可以指定记录的规则,并将在本指南的后面部分向您展示如何操作。

  • medium:除了低级别提供的所有日志之外,您还可以获得无效数据包、新连接以及通过速率限制完成的日志记录。

  • high:将包含具有速率限制和不具有速率限制的数据包的日志。

  • full:此级别与高级别类似,但不包括速率限制。

    sudo ufw logging logging_level
    

logging_level 修改成对应级别,比如日志级别修改成中,sudo ufw logging medium

4、ufw规则

  • 允许特定端口

    sudo ufw allow <port>/<optional:protocol>
    

    例如,允许 SSH 端口(默认 22):

    sudo ufw allow 22/tcp
    
  • 拒绝特定端口

    sudo ufw deny <port>/<optional:protocol>
    

    例如,拒绝 HTTP 端口(默认 80):

    sudo ufw deny 80/tcp
    
  • 删除规则

    sudo ufw delete allow <port>/<optional:protocol>
    

    例如,删除允许 SSH 端口的规则:

    sudo ufw delete allow 22/tcp
    
  • 允许特定 IP 地址

    sudo ufw allow from <IP_address>
    

    例如,允许特定 IP 访问 SSH 端口:

    sudo ufw allow from 192.168.1.100 to any port 22
    
  • 拒绝特定 IP 地址

    sudo ufw deny from <IP_address>
    
  • 例如,拒绝特定 IP 访问 HTTP 端口

    sudo ufw deny from 192.168.1.100 to any port 80
    
  • 允许特定网络

    sudo ufw allow from <network>/<netmask>
    

    例如,允许特定网络访问 HTTP 端口:

    sudo ufw allow from 192.168.1.0/24 to any port 80
    
  • 设置默认入站策略

    sudo ufw default deny incoming
    
  • 设置默认出站策略

    sudo ufw default allow outgoing