游客发表
凌晨三点,安案我盯着屏幕上那条来自IDS的全加告警——某个IP对22端口发起了第187次暴力破解尝试。顺手敲了两行命令,固方把那个IP拉进防火墙黑名单,安案然后喝了口凉透的全加咖啡。这种事在互联网上每天发生几十万次,固方而大多数Linux服务器,安案其实连最基础的全加防护都没做。
先说账号层面。固方很多管理员图省事,安案直接改ssh端口就算完事,全加实际上这连入门都算不上。固方真正该做的安案是禁用root远程登录——PermitRootLogin no,这行字值回票价。全加然后创建普通用户,固方用sudo提权。别嫌麻烦,你想想,root被攻破意味着什么?人家直接拿到最高权限,连提权都省了。另外检查一下/etc/passwd,把那些uid为0的非root账号揪出来,这种后门手法虽然老套,但真有人用。
密码策略这块,我见过太多服务器用着123456这种密码。别笑,2023年某个知名数据泄露事件,起因就是运维账号密码是admin@123。设置密码复杂度不难——修改/etc/login.defs和/etc/pam.d/system-auth,要求至少12位,包含大小写、数字、特殊字符。但更关键的是强制定期更换,比如90天。有人觉得麻烦,可比起被勒索病毒加密全盘,这点麻烦真不算什么。
SSH配置是个大头。除了改端口(建议改成10000以上的高位端口),还要开启PubkeyAuthentication yes,关闭PasswordAuthentication no。用密钥登录比密码安全一个量级,前提是你把私钥保管好。还有个细节:MaxAuthTries设为3,ClientAliveInterval设300秒,这些参数能有效拖慢暴力破解的节奏。我见过最狠的配置是配合fail2ban,连续输错5次就封IP一小时,效果立竿见影。
防火墙别裸奔。iptables或者firewalld至少开一个,原则是默认拒绝,只放行必要端口。比如web服务器就开80和443,外加你管理用的ssh端口。有个技巧:把ssh源IP限制为你公司的出口IP,这样即使密码泄露,外部也连不上。当然,如果你用云服务器,安全组规则也要同步收紧,别两边各管各的,形成真空地带。
软件更新这块,很多人懒得做。yum update或apt upgrade跑一次可能要几分钟,但那些高危漏洞的补丁往往就在里面。曾经有个客户,OpenSSH版本停留在7.4,存在CVE-2018-15473用户枚举漏洞,被扫描器盯上后,攻击者用脚本批量探测用户名,配合弱口令直接拿下了服务器。你说冤不冤?明明8月就出了补丁,拖到11月还没打。
日志审计容易被忽略,但出事时它就是你的救命稻草。开启rsyslog,把auth.log、secure这些关键日志同步到远程日志服务器,防止攻击者删本地日志灭迹。我习惯每天用logwatch或awstats生成摘要,看看有没有异常登录、sudo提权记录。有一次我发现凌晨2点有个用户从国外IP登录,一查果然是账号被撞库了,幸好日志留得全,追查起来有依据。
最后说点实在的。安全加固不是一次性的活,而是持续的过程。你可以在每季度做一次基线检查,用lynis这类工具扫描系统,它会给出具体的加固建议。别追求100%完美,先把那些高危项处理掉,比如文件权限、内核参数、未使用的服务。比如chkconfig --list看看,那些用不到的telnet、rlogin服务,直接关了。省得它们成为后门入口。
说白了,Linux加固就是跟攻击者抢时间——他们比你勤快,比你自动化,但你只要把基础打牢,把该关的关掉、该限制的限制住,大部分攻击都会被挡在门外。剩下那些真正的高手,靠的是运气和实力,不是你这台普通服务器能引来的。行了,就说这么多,我去看看那台被爆破的服务器,顺便把密钥认证开了。
友情链接