云服务器刚开通,结果系统刚装好没几分钟,SSH 就连不上了?重装系统,换了端口、改了密码,过几小时又崩了,后台还提示登录失败上百次,小编自己也踩过这个坑——服务器刚买来就被黑,真的不是个例。
很多人以为服务器没人知道,买来就能直接用。但事实是,公网IP一旦分配,就会被各种扫描器“盯上”。尤其是开放了22端口、弱密码、没装防火墙,那就是明晃晃地告诉全世界“快来攻击我”。
今天这篇文章就来聊聊,刚买服务器一定要做的3件事,做晚一步可能就白买了!
一、服务器为什么会“秒被黑”?
服务器被黑,其实不是你人品差,而是整个公网的常态。
很多攻击者会用扫描器不停扫描新上线的服务器 IP,一旦发现你开放了 SSH、RDP 或其他服务端口,就会自动尝试爆破密码、利用漏洞。一些低价服务器IP可能还“二手”的,之前被滥用过,刚开通就已经处在黑客的字典库中了。
小编以前就有一台服务器,刚开好登录进去看 /var/log/secure
,几分钟内已经有上千条爆破记录,全是来自全球各地的IP在疯狂尝试登录。你不做防护,它们就一直尝试,直到成功为止。
二、新服务器上线后,必须立刻做这3件事!
一旦拿到IP和root权限,小编的经验是:别急着跑程序,先做安全加固!下面是3件必须立刻做的事,每一项都附上了详细步骤,不熟悉命令的也能照着操作。
1. 修改SSH端口 + 禁止root远程登录
默认的22端口最容易被爆破,建议改成更高位的端口,比如6022
,并禁止root账户远程登录。
操作流程:
# 编辑 SSH 配置文件
nano /etc/ssh/sshd_config
在文件中修改以下两项:
Port 6022 # 将22改成你想用的端口
PermitRootLogin no # 禁止root远程登录
保存退出后,记得先放行新端口的防火墙规则,再重启SSH服务:
# 开放新端口
firewall-cmd --permanent --add-port=6022/tcp
firewall-cmd --reload
# 重启 SSH 服务
systemctl restart sshd
以后连接时改为:
ssh 用户名@服务器IP -p 6022
2. 设置强密码或启用 SSH 密钥登录
强密码 是最低要求,但建议使用 SSH密钥登录,安全性更高,尤其是用于长期业务部署。
设置 SSH 密钥登录流程(以本地Linux或Mac为例):
# 本地生成一对密钥(按提示回车即可)
ssh-keygen -t rsa -b 4096
# 查看公钥内容
cat ~/.ssh/id_rsa.pub
然后登录服务器,把这段公钥添加到 /root/.ssh/authorized_keys
(或对应用户名的 .ssh/authorized_keys
)文件中:
# 在服务器上执行(创建 .ssh 文件夹及授权文件)
mkdir -p ~/.ssh
nano ~/.ssh/authorized_keys
# 粘贴你刚刚复制的公钥内容
保存后设置权限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
然后编辑 /etc/ssh/sshd_config
,启用密钥登录并禁用密码登录(可选):
PasswordAuthentication no
PubkeyAuthentication yes
最后重启 SSH 服务:
systemctl restart sshd
3. 安装防火墙 + Fail2Ban 拦截爆破
很多人忽略了防火墙和自动封锁工具,这是被黑的主因之一。
防火墙配置(以 firewalld 为例):
# 安装 firewalld(如果系统没装)
yum install firewalld -y # CentOS
apt install firewalld -y # Ubuntu
# 启动并设置开机自启
systemctl enable firewalld
systemctl start firewalld
# 只开放你需要的端口,比如:
firewall-cmd --permanent --add-port=6022/tcp # SSH
firewall-cmd --permanent --add-port=80/tcp # HTTP
firewall-cmd --permanent --add-port=443/tcp # HTTPS
# 移除不必要的端口(比如22)
firewall-cmd --permanent --remove-port=22/tcp
# 应用变更
firewall-cmd --reload
安装 Fail2Ban(自动封禁恶意IP):
# 安装 Fail2Ban
yum install epel-release -y && yum install fail2ban -y # CentOS
apt install fail2ban -y # Ubuntu
# 启动服务
systemctl enable fail2ban
systemctl start fail2ban
# 创建配置文件
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
nano /etc/fail2ban/jail.local
在 [sshd]
部分添加或修改如下配置:
[sshd]
enabled = true
port = 6022 # 改成你SSH的端口
maxretry = 5
findtime = 600
bantime = 86400
保存后重启 Fail2Ban:
systemctl restart fail2ban
三、服务器被黑后有什么表现?怎么检查?
很多人发现服务器被黑,都是“事后才知”,小编整理了一些常见的被黑迹象:
- 服务器 CPU 突然飙高,top 一看有挖矿进程
- SSH 连不上了,甚至密码被改了
- 出站网络异常,可能被用来发垃圾邮件或DDoS攻击
- 日志文件
/var/log/secure
、auth.log
中有大量可疑登录尝试
一旦发现这些情况,建议立即断网重装系统,不要犹豫,因为你不知道攻击者在里面干了什么。
四、小编的避坑建议:装完系统,先别急着跑业务!
每次小编重装完系统,第一件事就是:修改端口、配置防火墙、加 SSH key、开Fail2Ban,这些流程已经写进小编的服务器使用标准SOP里了。
另外,小编建议大家尽量别用来路不明的镜像和脚本,尤其是网上那种“一键搭建神器”,很容易被植入后门。
五、常见问题解答
1. 我用的面板,比如宝塔,安全性够吗?
宝塔等面板自身做了不少安全加固,但前提是你设置了强密码、修改了默认端口,并且升级到了最新版。不建议暴露在公网下。
2. SSH端口改了会不会影响连接?
只要你记住新端口,使用 ssh -p 新端口号 user@ip
即可连接。建议记录下来。
3. Fail2Ban 怎么装?
Ubuntu 系统可以用 apt install fail2ban
,CentOS 用 yum install fail2ban
,配置后可自定义拦截规则。
4. 被黑了还能恢复数据吗?
如果你没做快照或备份,大概率数据已经被篡改或加密。建议定期备份重要数据。
5. 用国内服务器会不会更安全?
国内IP相对“干净”些,但仍会被爆破。只要是公网IP,风险都存在。
6. 改端口和加密之后就绝对安全吗?
不能说100%安全,但会大幅降低被黑的概率。安全永远是“多层防御”而不是“一劳永逸”。
刚买的服务器,别以为装完系统就能高枕无忧。修改端口、加密登录、安装防火墙,这3步才是“上岗前体检”。很多时候不是你不懂运维,而是你比黑客慢了一步。
保护好你的服务器,让它安心工作、不背锅!