Ubuntu配置SSH防火墙的步骤
UFW(Uncomplicated Firewall)是Ubuntu默认的防火墙管理工具,需先安装并启用:
sudo apt update # 更新软件包列表
sudo apt install ufw # 安装UFW
sudo ufw enable # 启用UFW(系统启动时自动开启)
sudo ufw default deny incoming # 设置默认策略:拒绝所有入站连接(保障初始安全)
SSH默认使用22端口(TCP协议),可通过以下两种方式允许访问:
sudo ufw allow ssh # 允许SSH服务(自动匹配/etc/services中的22端口)
sudo ufw allow 22/tcp # 允许22端口的TCP流量(SSH默认端口)
# 若修改为其他端口(如2222),则命令为:sudo ufw allow 2222/tcp
执行以下命令查看UFW规则,确认SSH端口已开放:
sudo ufw status # 查看规则(显示“22/tcp ALLOW Anywhere”即表示成功)
输出示例:
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
若仅需特定IP访问SSH,可使用from参数限制源IP:
sudo ufw allow from 192.168.1.100 to any port 22 # 仅允许192.168.1.100访问22端口
# 若修改了SSH端口,替换为实际端口:sudo ufw allow from 192.168.1.100 to any port 2222
修改规则后,无需重启系统,直接重载UFW即可:
sudo ufw reload # 重新加载防火墙规则
防火墙是第一道防线,还需通过SSH配置提升安全性:
sudo nano /etc/ssh/sshd_config
Port 2222 # 修改默认端口(避免自动化工具扫描)
PermitRootLogin no # 禁止root直接登录(降低被爆破风险)
PasswordAuthentication no # 禁用密码认证(强制使用密钥认证)
AllowUsers your_username # 仅允许指定用户登录(如your_username)
sudo systemctl restart ssh # 使配置生效
ssh -p 2222 your_username@server_ip),确保能正常访问。sshd_config前建议备份(sudo cp /etc/ssh/sshd_config{,.bak}),避免配置错误导致无法登录。ssh-copy-id -p 2222 your_username@server_ip)。