第一篇:Linux 基础加固:SSH 端口迁移与云防火墙策略实战
关键词
SSH 安全加固、端口迁移、腾讯云防火墙、暴力破解、VPS 初始化、访问控制列表 (ACL)
摘要
在当今僵尸网络肆虐的互联网环境下,刚开通的公网服务器(VPS)往往在几分钟内就会遭受成千上万次的扫描与撞库攻击。本文作为安全防御体系的第一篇,将从全局安全形势入手,剖析默认端口的危害,并深入实战讲解如何通过修改 SSH 端口与配置云防火墙(以腾讯云为例),构建服务器的第一道“防盗门”。本文将重点阐述“默认拒绝”的安全哲学,并手把手演示如何避免“把自己锁在门外”的经典运维事故。
1. 全局安全形势:为什么我们不能“裸奔”?
1.1 黑暗森林法则
互联网是一片黑暗森林,服务器是带枪的猎人,而扫描脚本则是无处不在的捕食者。根据网络安全机构的统计,一台暴露在公网且开启 22 端口的服务器,平均每天会遭到超过 5000 次的暴力破解尝试。这些攻击并非针对你个人,而是由自动化脚本进行的无差别扫描。
1.2 运维的痛点
日志爆炸:
/var/log/auth.log被数以万计的Failed password填满,导致真正重要的运维日志被淹没。资源消耗:每一次 SSH 握手和加密协商都会消耗 CPU 资源,大量的恶意连接请求会导致 SSHD 服务负载过高,甚至造成拒绝服务(DoS)。
安全焦虑:一旦出现弱口令,服务器权限将瞬间易手,沦为挖矿肉鸡或跳板机。
1.3 核心防御策略:隐匿与隔离
针对上述痛点,我们的第一阶段目标是:
隐匿入口:修改默认端口,避开 99% 的脚本扫描。
物理隔离:利用云厂商的硬件防火墙,在流量到达 VPS 之前进行清洗。
2. 实战演练:SSH 端口迁移 (Port Migration)
2.1 端口规划原则
在修改端口前,我们需要选定一个安全的端口。
避开常用端口:不要使用 80, 443, 3306, 8080 等知名服务端口。
选择高位端口:建议选择
10000-65535之间的端口,且避开特定应用占用的端口(如 10000 常被 Warp 占用)。示例端口:本文假设我们将 SSH 迁移至 20022。
2.2 检查端口占用
在操作前,必须确认 20022 未被其他服务(如 X-Ray 节点或面板)占用。
Bash
# 使用 ss 命令检查 TCP 监听状态
sudo ss -tulpn | grep 20022
如果输出为空,说明端口可用;如果有输出,请更换端口或停止对应服务。
2.3 修改 SSH 配置文件
Debian/Ubuntu 系统的核心配置文件位于 /etc/ssh/sshd_config。
Bash
# 1. 备份配置文件(运维好习惯)
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
# 2. 编辑配置文件
sudo nano /etc/ssh/sshd_config
在文件中找到 #Port 22 这一行,取消注释并修改为:
Plaintext
Port 20022
⚠️ 高危预警: 此时 千万不要 关闭当前的 SSH 终端窗口!因为新配置尚未生效,且防火墙可能还未放行,一旦断开将无法重连。
2.4 重启服务与验证
Bash
# 重启 SSHD 服务
sudo systemctl restart ssh
# 验证服务是否在新端口监听
sudo ss -tulpn | grep sshd
预期输出应包含 0.0.0.0:20022 或 [::]:20022。
3. 云防火墙配置实战 (以腾讯云为例)
3.1 内部防火墙 vs 云防火墙
内部防火墙 (UFW/Iptables):运行在 VPS 操作系统内核层面。
云防火墙 (Security Group):运行在云厂商的网关层面。 最佳实践:建议直接使用云防火墙,关闭内部 UFW。因为云防火墙在流量进入 VPS 前生效,效率更高,且能防止 Docker 容器修改 Iptables 规则导致的端口意外暴露。
3.2 策略一:白名单机制 (Whitelist)
这是最安全的配置方式,即“除了允许的,全部拒绝”。
登录腾讯云控制台,进入“防火墙”页面。
添加规则 - SSH 新端口:
协议:TCP
端口:20022
策略:允许
备注:New SSH Port
添加规则 - Web 服务:
协议:TCP
端口:80, 443
策略:允许
删除旧规则:
找到端口为 22 的规则,点击“删除”或修改为“拒绝”。
3.3 策略二:验证连接 (生命线测试)
保留原 SSH 窗口,新建一个终端窗口尝试连接:
Bash
# -p 指定端口
ssh -p 20022 root@your_server_ip
如果连接成功,恭喜你完成了“搬家”。如果失败,请立即回到原窗口检查配置文件或防火墙设置。
4. 第一阶段总结
通过修改 SSH 端口并配置云防火墙,我们成功将攻击面从“全网可见”收缩到了“特定端口”。
对比前:端口 22 暴露,日均遭受数千次扫描,任何人都可尝试连接。
对比后:端口 20022 仅对知道“门牌号”的人开放,扫描量下降 99.9%,日志瞬间清净。
请阅读本系列之二:攻击面收敛:高危端口管控与服务监听审计
本文首发于E路领航 (blog.oool.cc),转载请注明出处