当前位置:网站首页 >  攻略

运维防攻击:别让你的服务器变成别人家的挖矿机

时间:2026年06月15日 21:04:19 来源:易频IT社区

半夜三点被叫醒修服务器?这种痛我太懂了

你有没有过这种经历?

大半夜睡得正香,报警电话狂响。你迷迷糊糊打开电脑,发现网站打不开了。登录服务器一看,CPU 飙升到 100%。有人在你的机器上挖矿,或者挂了博彩页面。那一刻,血压真的上来了。

说实话,这种事儿太常见了。很多新手运维,服务器就像个没锁门的便利店。谁路过都能进来拿点东西,甚至把店砸了。

今天我就跟你聊聊运维防攻击这点事儿。我不讲那些虚头巴脑的理论,只教你几招最实用的。照着做,能帮你挡住 99% 的低级骚扰和攻击。看完就能用,用了就有效。

1. 把大门焊死:SSH 安全加固

SSH 就是你服务器的正门。黑客想进来,第一步就是撬这把锁。很多人默认装完系统,连密码都不改,这就好比把钥匙插在门上,还在旁边贴个条:“门没锁”。

1.1 千万别用默认端口 22

全世界黑客的扫描脚本,默认都会扫 22 端口。你用 22,就是在告诉全世界“我有 SSH 服务”。这太招摇了。

运维防攻击:别让你的服务器变成别人家的挖矿机

解决办法:

把端口改了。改成一个五位数的大端口,比如 22222 或者 54321。

你需要改配置文件。找到 /etc/ssh/sshd_config 这个文件。

Port 22
Port 22222

改完记得重启服务。这一招能帮你挡住大量无脑扫描脚本。

避坑提醒:改完端口,记得去云服务商的控制台(阿里云/腾讯云),把安全组里的 22 端口删了,把新端口加上。不然你自己也登不上去,别怪我没提醒你。

1.2 禁止 root 账号直接登录

root 账号权限太大了。一旦黑客猜到了 root 密码,你的服务器就彻底归他了。这就像把家里的万能钥匙放在门口地毯下。

解决办法:

先建一个普通用户,赋予 sudo 权限。然后禁止 root 登录。

还是在那个 sshd_config 文件里:

PermitRootLogin no

这样,黑客就算猜到了密码,也只能拿到一个普通用户权限。想提权?没那么容易。

1.3 用密钥登录,把密码扔了

密码再复杂,也有被暴力破解的一天。但密钥不一样,它几乎是不可能猜出来的。

操作步骤:

  • 在自己电脑上生成密钥对(公钥和私钥)。
  • 把公钥放到服务器上的 ~/.ssh/authorized_keys 文件里。
  • 在配置文件里把 PasswordAuthentication 设为 no

这样,没有私钥的人,就算知道密码也没法登录。这比密码安全太多了。

2. 给窗户装防盗网:配置防火墙

大门锁好了,还得看看窗户。服务器上开了很多端口,就像窗户。有些窗户你根本不用,却一直开着,这就是隐患。

2.1 只开必要的端口

很多服务器为了省事,防火墙全是放行的。这太危险了。你只需要开 Web 服务的 80 和 443,再加上你刚才改过的 SSH 端口。别的端口,统统关掉。

实战命令:

如果你用的是 Ubuntu,用 ufw 很简单:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 22222/tcp
sudo ufw enable

如果你用的是 CentOS,用 firewalld 或者 iptables。原理一样,白名单机制。没在名单里的,全部拦截。

2.2 限制连接数,别让人把家搬空

有一种攻击叫 DDOS,就是找一大堆电脑同时访问你。你的带宽瞬间被占满,正常用户也进不来。

解决办法:

用 Nginx 限制连接频率。在 Nginx 配置文件里加个限流模块。

limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

这行代码的意思是:同一个 IP,每秒只能发 1 个请求。多了就拒绝。这能有效防止简单的脚本刷接口。

避坑提醒:别限制太死,不然正常用户刷新快一点也会被拦住。根据自己业务情况调整频率。

3. 别让代码漏底裤:Web 应用安全

很多攻击不是系统层面的,而是代码层面的。比如 SQL 注入、XSS 攻击。这些听着很高大上,说白了就是程序员写代码不严谨,留了漏洞。

3.1 隐藏 Nginx 版本号

这就像出门背心印着“我很弱”。黑客扫一下,看到你用的是 Nginx 1.10 这种老版本,心里乐开了花。他知道这个版本有什么漏洞,直接拿现成的攻击工具打你。

解决办法:

在 Nginx 配置文件里加一行:

server_tokens off;

这样,出错页面就不会显示版本号了。黑客还得费劲去猜你用的啥版本,这就增加了他的成本。

3.2 上传文件必须严格把关

很多网站都有上传功能。如果你只校验后缀名,那是掩耳盗铃。黑客把 hack.php 改名叫 hack.jpg 上传,再配合解析漏洞,服务器就乖乖执行他的代码了。

解决办法:

  • 改文件名:上传后强制重命名,比如用时间戳 + 随机数。
  • 存权限:上传目录千万不要给执行权限。只要不能执行,上传什么病毒都没用。
  • 存位置:最好把上传目录和代码目录分开,甚至用独立的静态文件服务器存储。

3.3 数据库权限别乱给

连接数据库的账号,一定要遵循“最小权限原则”。如果你的 Web 程序只需要读写,千万别给它 drop table 的权限。

避坑提醒:千万别用 root 账号去连接 Web 数据库。一旦代码被注入,黑客能直接删库跑路,你哭都来不及。

4. 最后的防线:定期备份和日志

哪怕你做得再好,也没有绝对安全的系统。如果真的被黑了,备份是你最后的救命稻草。

4.1 备份要异地,别放一个篮子里

如果你把备份文件放在服务器同一块硬盘上,服务器被黑,备份也没了。这叫自欺欺人。

解决办法:

买一个对象存储(OSS/S3),或者另一台便宜的服务器。每天凌晨自动把数据库和重要代码打包传过去。

可以用简单的 cron 脚本实现。成本很低,但安全感爆棚。

4.2 多看日志,别等出事了再看

服务器日志就是黑匣子。很多攻击是有前兆的。比如有人半夜尝试了几千次登录密码,日志里全是一堆“Failed password”。

解决办法:

写个简单的脚本,每天分析一下 secure 日志。如果发现某个 IP 失败次数超过 50 次,直接用防火墙把它封了。

这叫“自动封禁”。现在很多工具像 Fail2Ban 就是干这个的,装上很省心。

别光看,赶紧动起来

说了这么多,核心其实就几句话:改端口,禁 root,开防火墙,勤备份

安全这事儿,不怕一万就怕万一。你现在觉得没事,是因为黑客还没盯上你。等盯上了,再改就来不及了。

别把这篇文章当收藏夹里的吃灰货。现在,立刻,马上登录你的服务器。把 SSH 端口改了,把 root 登录关了。也就花你十分钟,但这十分钟可能将来救你一命。

赶紧去,别偷懒。

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图