Ubuntu防火墙支持高度自定义,其核心工具为UFW(Uncomplicated Firewall)——一个基于iptables的简化防火墙管理工具,既保留了底层防火墙的强大功能,又通过简洁的命令行接口降低了配置复杂度,适合从新手到高级用户的不同需求。
UFW允许用户通过服务名称(如ssh、http)或端口号(如22/tcp、80/tcp)快速配置规则,覆盖常见的网络服务需求:
sudo ufw allow ssh(等价于sudo ufw allow 22/tcp)用于开放SSH远程登录;sudo ufw allow 80/tcp开放HTTP网页服务;sudo ufw allow 443/tcp开放HTTPS加密网页服务。sudo ufw deny ftp(等价于sudo ufw deny 21/tcp),阻止外部对该端口的访问。from关键字限定允许访问的源IP,例如sudo ufw allow from 192.168.1.100允许特定IP(192.168.1.100)访问所有端口;sudo ufw allow from 192.168.1.0/24允许整个网段(192.168.1.0-192.168.1.255)访问。对于更精细的需求,UFW支持速率限制、端口范围、协议类型及自定义应用配置文件等功能:
limit关键字限制特定端口的连接频率,例如sudo ufw limit 22/tcp会限制SSH端口每分钟最多6次新连接(超过的连接将被暂时封禁),有效防范暴力破解。start_port:end_port语法开放连续端口,例如sudo ufw allow 5000:6000/tcp允许TCP协议的5000至6000端口(常用于自定义应用或数据库集群)。sudo ufw allow 53/udp开放DNS服务端口(UDP协议常用于域名解析)。/etc/ufw/applications.d/目录下创建.rules文件(如myapp.rules),定义应用的端口和描述(例如ports=8080/tcp),然后通过sudo ufw allow 'MyApp'快速应用规则,适用于需要复用的自定义服务。UFW提供完善的规则管理功能,方便用户根据需求调整配置:
sudo ufw status verbose查看当前所有规则(包括默认策略、允许/拒绝的端口及来源IP),verbose参数会显示详细信息(如规则的生效状态)。sudo ufw delete allow 22/tcp(根据规则描述删除);②sudo ufw status numbered(列出带编号的规则)+sudo ufw delete [编号](根据编号删除)。sudo ufw reset命令(执行后所有自定义规则将被删除,需重新配置)。UFW可与第三方工具集成,进一步增强防火墙能力:
sudo ufw logging on启用日志(默认路径为/var/log/ufw.log),记录所有被拦截或允许的流量,便于后续审计和排查问题;logging off可关闭日志。sudo apt install fail2ban)、编辑/etc/fail2ban/jail.local启用SSH监控(enabled = true)并设置封禁阈值(如maxretry = 5,5次失败后封禁)。通过上述功能,UFW能够满足Ubuntu用户从基础到高级的防火墙自定义需求,兼顾易用性与安全性。