被黑是什么后果
牧野区一家商贸公司,去年服务器被植入挖矿木马,CPU跑满,网站打开要30秒。客户以为公司倒闭了。清木马花了一周,丢失了近一周的订单数据。直接损失加间接损失,十几万进去了。
服务器安全不是小事。新乡的中小企业普遍不重视,觉得"我又没什么值钱的数据,谁会黑我"。黑客不管你数据值不值钱,他要的是你的服务器资源——挖矿、发垃圾邮件、做跳板攻击别人。你只是被利用的工具。
下面这份清单,照着过一遍,能挡住95%以上的攻击。不需要你是安全专家。
系统层面:堵住入口
1. SSH端口改成非22端口,改成比如22022或者随机一个五位数字
2. 禁止root直接登录,用普通用户登录后su切换
3. SSH用密钥登录,关闭密码登录。密钥几乎不可能被暴力破解
4. 装fail2ban,自动封禁连续失败登录的IP。5次失败封24小时
5. 关闭不用的服务。什么FTP、Telnet、邮件服务,用不到的全关
6. 开启防火墙,默认策略只放行必要端口。Web服务器就开80和443,数据库就开3306且只对内网
7. yum/apt自动安全更新打开。别小看这个,很多入侵就是利用已知漏洞
新乡经开区一家汽车零部件企业,就因为没改SSH端口,被扫描器扫到,暴力破解了弱密码,一天就被黑了。改个端口就能挡掉大部分自动化扫描。
Web应用层面:加固防线
8. Nginx/Apache隐藏版本号,别让攻击者知道你用什么版本
9. 关闭目录浏览,不让别人看到你的文件列表
10. 上WAF(Web应用防火墙),挡住SQL注入、XSS等常见攻击
11. HTTPS必须开,Let's Encrypt免费证书,没理由不用
12. 上传目录禁止执行PHP/脚本文件。很多webshell就是从上传目录进来的
13. 后台管理路径改掉,别用/admin或者/manager这种默认路径
14. 数据库连接文件权限设600,只有root能读
15. 定期查web目录下有没有可疑文件。find /var/www -name "*.php" -mtime -3,看最近3天有没有新增PHP文件
辉县一家做旅游预订的公司,就是上传目录没限制脚本执行,黑客传了个webshell进去,拿到了服务器权限。改一行Nginx配置就能防住的事,事后弥补花了大几千。
数据库层面:保护核心
16. 数据库不对外网开放,只允许本机或内网连接
17. 数据库root用户用强密码,至少16位,字母数字符号混合
18. 每个应用建独立数据库用户,只给最小权限。网站应用就别给DROP权限
19. 开启慢查询日志,异常的查询可能是注入攻击的信号
20. 定期导出备份,前面那篇备份策略讲过了,不重复
监控与日志:早发现早处理
21. 开启操作审计日志,谁在什么时候执行了什么命令,有据可查
22. 装一个监控告警系统。CPU、内存、网络异常飙升,第一时间收到通知。新乡很多企业用的是阿里云监控或者Zabbix,免费够用
23. 定期检查登录记录。last命令看登录历史,有没有陌生IP
24. 日志定期归档,至少保留90天。出了事能追溯
25. 做一个应急响应预案。真被黑了,第一步干什么、第二步干什么、找谁处理。慌了手脚只会让损失更大
封丘一个金银花经销商的服务器被挂马,就是因为没装监控,被黑了两个月都不知道。最后是客户打电话说"你网站上怎么有赌博广告"才发现的。装个监控,5分钟就能收到告警。
最后说一句
这25项不需要一天全做完。先做系统层面的7项,再花两天搞Web应用的8项,数据库和监控慢慢补。但别拖。安全这东西,不出事觉得没必要,出了事后悔莫及。
新乡这边企业如果自己没人懂服务器安全,建议找专业的运维托管团队帮你过一遍。花个一两千块做次安全加固,比被黑后花一两万清理划算多了。