最稳妥的做法是收敛暴露面,只开放必要端口,并部署自动封禁工具处理恶意扫描,避免服务器被攻破后产生违规 outbound 流量。
先说结论:甲骨文云对异常流量非常敏感,防止封禁的核心不是挡住所有扫描,而是不让扫描者利用你的服务器发起对外攻击。
- 先判断:确认当前开放端口是否均为业务必需,关闭 SSH 默认端口外的所有非必要入口。
- 优先做:配置防火墙安全组和本地防火墙,安装 Fail2ban 自动封禁暴力破解 IP。
- 再验证:定期检查系统日志和连接状态,确认没有异常 outbound 连接。
修改端口前的应急准备
在修改 SSH 端口前,请务必完成以下准备,防止把自己锁在门外:
- 保持会话:修改配置后不要关闭当前 SSH 连接,新开一个终端测试新端口连通性。
- 控制台权限:确保你能登录甲骨文云控制台,以便在 SSH 失效时使用 VNC 紧急登录。
- 安全组放行:先在甲骨文云控制台安全列表中添加新端口的入站规则,再修改 SSH 配置。
命令速用版
如果你需要快速加固,可以参考以下基础命令。请根据实际系统版本调整,执行前建议先备份现有配置。
# 安装 Fail2ban (Ubuntu/Debian)
sudo apt update && sudo apt install fail2ban -y
# 启用 SSH 保护配置
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo systemctl enable fail2ban && sudo systemctl start fail2ban
# 查看当前监听端口
sudo ss -tulpn为什么会这样
甲骨文云免费实例被终止,通常不是因为被扫描本身,而是因为被扫描成功后变成了“肉鸡”。云平台监控的是 outbound 流量特征,如果你的服务器被攻破并开始扫描别人、发送垃圾邮件或挖矿,触发滥用策略的概率极高。inbound 扫描是互联网常态,关键在于不让对方得手。
分步处理
1. 收敛 SSH 访问
不要使用密码登录,强制使用 SSH 密钥。修改默认 22 端口可以减少大量自动化脚本的噪音,但不是绝对安全。
# 修改 SSH 配置
sudo vi /etc/ssh/sshd_config
# 找到并修改以下行(没有则添加)
Port 22022
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes修改完成后重启 SSH 服务:sudo systemctl restart sshd
2. 配置云平台安全列表
在甲骨文云控制台,找到实例对应的虚拟云网络(VCN),编辑安全列表(Security List)。只放行必要的 TCP 端口,拒绝所有其他入站流量。不要直接开放 0.0.0.0/0 到所有端口。
具体路径:登录控制台 -> Networking -> Virtual Cloud Networks -> 点击对应 VCN -> Security Lists -> 点击默认安全列表 -> Ingress Rules -> 添加规则(仅放行新 SSH 端口和业务端口)。
3. 部署 Fail2ban
这是防止暴力破解的关键。它会自动分析日志,将多次尝试失败的 IP 加入防火墙黑名单。
# 编辑 jail.local 配置
sudo vi /etc/fail2ban/jail.local
# 确保包含以下配置(在文件末尾或 [sshd] 部分)
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600注意:仅复制配置文件不一定生效,必须明确设置 enabled = true。
# 检查 jail 状态
sudo fail2ban-client status sshd4. 监控异常进程
定期查看是否有未知进程占用大量 CPU 或网络。
怎么验证是否生效
1. 检查端口暴露
使用外部工具或另一台机器扫描你的公网 IP,确认只开放了预期端口。
# 本地确认监听
sudo ss -tulpn | grep LISTEN2. 查看封禁日志
确认 Fail2ban 是否在工作,是否有 IP 被封禁。
# 查看 Fail2ban 日志
sudo tail -f /var/log/fail2ban.log3. 检查 outbound 连接
确认没有异常的外连连接。
# 查看 established 连接
sudo ss -tunap state established常见坑
- 别忽略控制台安全组:只配本地防火墙(如 ufw)不够,甲骨文云层面的安全列表必须同时配置,否则流量依然能到达网卡。
- 别乱装脚本:网上很多一键脚本包含不明逻辑,可能自带挖矿程序或后门,导致直接封禁。
- 别开放高危端口:如数据库端口(3306, 6379 等)不要对 0.0.0.0/0 开放,除非你清楚自己在做什么。
- 注意资源使用:免费实例资源有限,如果 CPU 长期 100% 或网络异常,即使没有安全问题也可能被回收。