在Ubuntu服务器中,默认使用 ufw(Uncomplicated Firewall)作为防火墙管理工具。它是对iptables的简化封装,适合快速配置防火墙规则。以下是设置防火墙的详细步骤:
1. 安装与启用 ufw
安装(通常已预装):
sudo apt update && sudo apt install ufw
启用防火墙:
sudo ufw enable # 启用后防火墙会随系统启动
2. 基本防火墙规则配置
允许特定端口
允许SSH(端口22,防止被锁):
sudo ufw allow 22/tcp
允许HTTP/HTTPS:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
允许其他自定义端口(如MySQL):
sudo ufw allow 3306/tcp
拒绝端口
拒绝某个端口(如禁止外部访问8080):
sudo ufw deny 8080/tcp
基于IP的规则
允许特定IP访问所有端口:
sudo ufw allow from 192.168.1.100
允许IP访问指定端口:
sudo ufw allow from 192.168.1.100 to any port 22
- 查看与管理规则
列出所有规则:
sudo ufw status numbered # 显示规则编号
删除规则(根据编号):
sudo ufw delete 2 # 删除编号为2的规则
4. 高级配置
限制连接速率(防DDoS)
限制某端口的最大连接数(例如SSH每分钟最多3次):
sudo ufw limit 22/tcp
允许范围端口
允许端口范围(如5000-6000):
sudo ufw allow 5000:6000/tcp
5. 应用预定义配置文件
ufw 内置了常见服务的配置文件(如Nginx、Apache):
查看可用配置:
sudo ufw app list
允许应用配置(如Nginx Full包含80和443):
sudo ufw allow 'Nginx Full'
6. 防火墙状态与日志
检查防火墙状态:
sudo ufw status verbose
启用日志记录:
sudo ufw logging on # 日志路径:/var/log/ufw.log
7. 禁用或重置防火墙
临时禁用防火墙:
sudo ufw disable
重置所有规则(恢复默认):
sudo ufw reset
注意事项
SSH端口必须放行:如果通过SSH远程连接,需确保防火墙允许SSH端口,否则启用后可能无法远程登录。
测试规则:修改规则后,使用 telnet 或 nmap 验证端口是否开放:
nmap -p 22,80,443 your_server_ip
防火墙与服务的协同:若端口在防火墙中开放,但服务未监听该端口,外部仍无法访问。