在网络安全领域,防火墙是守护系统的第一道防线。对于从运维转型网络安全的同学来说,掌握Linux系统下的UFW防火墙配置是一项高频且核心的技能。今天我们就来详细拆解UFW防火墙的配置方法,包括核心命令与实战场景应用。
一、UFW防火墙基础认知
UFW(Uncomplicated Firewall)是Linux系统中一款简单易用的防火墙工具,它就像系统的“智能门卫”,能精准控制网络流量的进出。作为运维转网安的必备技能,学会它能帮你有效抵御大部分外部攻击。
二、核心命令与作用归纳
1. 启动UFW防火墙
- 命令: sudo ufw enable
- 作用:启动UFW防火墙,并设置为系统重启后自动运行。
- 使用方法:在Kali Linux终端中,先通过 sudo -i 切换到root用户(或在命令前加 sudo 获取管理员权限),然后输入 ufw enable ,出现“Firewall is active and enabled on system startup”提示即表示启动成功。
2. 设置默认规则(最小权限原则)
UFW的默认规则遵循“最小权限原则”,即只开放必要功能,其他一律禁止,具体分为“收紧入口”和“放开出口”两条规则。
(1)收紧入口(默认拒绝所有外部主动连接)
- 命令: sudo ufw default deny incoming
- 作用:默认拒绝所有从外部主动发起的连接,可阻断大量自动化扫描和随机攻击,将攻击面最小化。
- 使用方法:在root权限下执行该命令,实现“外部连接默认不允许”的基础防护。
(2)放开出口(默认允许所有向外访问)
- 命令: sudo ufw default allow outgoing
- 作用:默认允许系统向外的所有访问,确保本机上网、更新、访问外部服务不受影响。
- 使用方法:在root权限下执行该命令,与“收紧入口”配合,形成“别人进不来,我们能出去”的单向防护模型。
3. 端口放行(按需开放业务端口)
以开放SSH的22端口(TCP协议)为例:
- 命令: sudo ufw allow 22/tcp
- 作用:单独放行22号端口的TCP流量,恢复SSH远程连接等业务功能。
- 使用方法:在root权限下执行该命令,出现“Rule added”提示即表示配置生效。若需开放其他端口,只需修改端口号和协议(如 80/tcp 对应HTTP端口)即可。
4. IP封禁(拦截恶意攻击源)
以封禁IP 192.168.184.137 为例:
- 命令: sudo ufw insert 1 deny from 192.168.184.137
- 作用:将该IP添加到封禁列表的第一条,拒绝其发起的任何访问请求,有效拦截暴力破解等恶意攻击。
- 使用方法:在root权限下执行该命令,若需封禁其他恶意IP,替换命令中的IP地址即可。
5. 应急关闭防火墙(故障止损)
- 命令: sudo ufw disable
- 作用:临时关闭所有防火墙规则,使系统恢复到无防护状态,用于规则配置出错导致业务中断时的紧急止损。
- 使用方法:在root权限下执行该命令,故障排查完成后需立即重新启用防火墙(执行 ufw enable ),否则系统会暴露在风险中。
6. 查看规则顺序(排障必备)
- 命令: sudo ufw status numbered
- 作用:列出所有生效的防火墙规则,并显示规则的编号(即匹配优先级),用于排查规则顺序导致的封禁失效等问题。
- 使用方法:在root权限下执行该命令,根据规则编号判断匹配顺序是否合理。
7. 删除规则(修正错误配置)
以删除编号为2的规则为例:
- 命令: sudo ufw delete 2
- 作用:删除指定编号的防火墙规则,用于修正错误配置。
- 使用方法:先通过 ufw status numbered 查看规则编号,再在root权限下执行该命令,输入 y 确认删除。
三、实战场景与规则优先级排障
UFW防火墙的规则是“从上到下依次匹配,先到先得”。如果封禁规则在放行规则之后,会导致封禁失效。解决方法是:先删除原有封禁规则,再将其重新插入到放行规则之前(如编号1的位置)。
例如,先执行 ufw delete 2 删除原封禁规则,再执行 ufw insert 1 deny from 恶意IP ,确保封禁规则优先匹配。
掌握这些命令和规则,你就能灵活配置UFW防火墙,搭建起系统的第一道安全防线,无论是日常业务端口管理还是应急攻击拦截,都能从容应对。