阅读量:49
Ubuntu防火墙(UFW)设置步骤
1. 安装UFW防火墙
Ubuntu系统默认已预装UFW(Uncomplicated Firewall),若未安装,可通过以下命令安装:
sudo apt-get install ufw
安装完成后,UFW处于未启用状态。
2. 启用UFW防火墙
安装完成后,使用以下命令启用防火墙:
sudo ufw enable
启用后,系统会提示“Firewall is active and enabled on system startup”(防火墙已激活并在系统启动时自动启用)。
为增强安全性,建议同时设置默认拒绝策略(关闭所有外部对本机的未明确允许的访问):
sudo ufw default deny
此策略确保只有明确开放的端口/服务能被外部访问,本机访问外部不受影响。
3. 设置默认策略(可选但推荐)
默认策略决定了未明确规则时的流量处理方式,通常建议采用“默认拒绝”:
sudo ufw default deny
若需允许所有未明确拒绝的流量(不推荐,安全性较低),可使用:
sudo ufw default allow
但此设置会增加系统暴露风险,仅建议在测试环境中使用。
4. 开放/关闭端口或服务
开放端口/服务
- 通过服务名称开放(需服务存在于
/etc/services文件中,如SSH、HTTP):
sudo ufw allow ssh(等价于开放22/tcp端口)
sudo ufw allow http(等价于开放80/tcp端口) - 通过端口和协议开放(适用于自定义端口):
sudo ufw allow 80/tcp(开放80端口,仅允许TCP协议)
sudo ufw allow 53(开放53端口,允许TCP/UDP协议,默认不指定协议时同时允许两者) - 允许特定IP访问所有端口(如允许内网IP
192.168.1.100完全访问本机):
sudo ufw allow from 192.168.1.100 - 允许特定IP访问指定端口(如允许
192.168.1.100访问本机3306端口,用于MySQL数据库):
sudo ufw allow from 192.168.1.100 to any port 3306。
关闭端口/服务
- 删除已开放的端口/服务规则(如关闭22/tcp端口):
sudo ufw delete allow 22/tcp - 禁止特定IP访问(如禁止
192.168.1.100访问所有端口):
sudo ufw deny from 192.168.1.100 - 禁止特定IP访问指定端口(如禁止
192.168.1.100访问80端口):
sudo ufw deny from 192.168.1.100 to any port 80。
5. 查看防火墙状态
- 查看简要状态(显示是否激活及开放的端口/服务):
sudo ufw status
激活状态下,会列出类似以下内容:Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 80/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) - 查看详细状态(包含规则编号,便于后续删除/修改):
sudo ufw status numbered
输出示例:Status: active 1. Allow 22/tcp 2. Allow 80/tcp
6. 删除防火墙规则
若需删除已添加的规则,可通过规则编号或具体规则语句删除:
- 通过规则编号删除(如删除第1条规则):
sudo ufw delete 1 - 通过具体规则语句删除(如删除“Allow 80/tcp”规则):
sudo ufw delete allow 80/tcp
删除后,需重新加载防火墙使更改生效:
sudo ufw reload
系统会提示“Firewall reloaded”(防火墙已重新加载)。
7. 其他常用操作
- 重启防火墙(应用最新配置):
sudo ufw reload - 关闭防火墙(禁用):
sudo ufw disable
执行后,防火墙停止运行,系统恢复无防火墙保护状态。 - 开启日志记录(记录防火墙活动,便于排查问题):
sudo ufw logging on - 关闭日志记录:
sudo ufw logging off - 查看日志文件(默认路径为
/var/log/ufw.log):
sudo tail -f /var/log/ufw.log。