烟消火灭网

linux服务器的安全加固,说白了就是一场猫鼠游戏。你每堵上一个漏洞,攻击者就找到新的旁路。去年我接手一台被黑的CentOS机器,黑客用rootkit藏得极深,连`ls`命令都撒谎。那台机器被挖矿程序

linux安全加固

linux服务器的全加安全加固,说白了就是全加一场猫鼠游戏。你每堵上一个漏洞,全加攻击者就找到新的全加旁路。去年我接手一台被黑的全加CentOS机器,黑客用rootkit藏得极深,全加连`ls`命令都撒谎。全加那台机器被挖矿程序占满CPU,全加但`top`显示的全加却是正常进程。从那以后我明白——加固不是全加装个杀毒软件就完事,而是全加要从系统最底层开始,一层层剥掉攻击者的全加生存空间。

先谈SSH,全加这是全加最常见的入口。默认的全加22端口每天被扫上千次,改掉它,立刻消停一半。但光改端口不够,我见过有人用`PermitRootLogin no`禁了root登录,却忘了给普通用户设置强密码。结果呢?字典攻击照样进来。真正有效的做法是禁用密码登录,只留密钥认证。生成密钥时用ed25519算法,比RSA更短更安全。再把`MaxAuthTries`设为3,`ClientAliveInterval`设300秒,让挂死的会话自动断开。这些细节叠加起来,SSH的暴露面就小了很多。

用户与权限管理是另一块硬骨头。很多人创建账户时图省事,直接给sudo权限,这等于把家门钥匙挂在门口。我习惯用最小权限原则——普通用户只能操作自己的目录,需要提权时用sudo,而且sudoers文件里只允许特定命令。比如让运维执行`systemctl restart nginx`,绝不给他`/bin/bash`的权限。记得定期检查`/etc/passwd`,把那些半年没登录的僵尸账户删掉。上次我在一台老服务器上发现个`test`账户,密码是`123456`,吓得我连夜改了所有机器。

防火墙和SELinux经常被忽略,但它们才是真正的守门员。iptables或firewalld要按白名单策略配置——默认拒绝所有入站流量,只放行需要的端口。比如web服务器只开80和443,数据库服务器只允许内网访问3306。SELinux虽然烦人,总在日志里报错,但别急着关掉它。我见过有人因为Apache写不了日志,直接`setenforce 0`,结果整个系统裸奔了半年。正确做法是用`audit2why`查看具体原因,然后添加对应的布尔值规则,比如`setsebool -P httpd_can_network_connect on`。

文件系统加固往往被新手跳过,但这是对抗rootkit的关键。`/tmp`目录必须用`noexec,nosuid`挂载,防止攻击者在临时目录里执行二进制文件。`/etc/shadow`的权限要设为600,只有root能读。我还习惯用`chattr +i`锁定关键文件,比如`/etc/passwd`和`/etc/sudoers`,就算黑客拿到root权限也无法修改。不过要小心,`chattr`锁定后你自己改配置也得先解锁,别把自己锁在门外。

日志监控是最后一道防线,但多数人把它当摆设。`/var/log/secure`里有SSH登录记录,`/var/log/messages`里有系统异常。别等被黑了才翻日志,配置`logwatch`或`auditd`定期汇总,用`fail2ban`自动封禁暴力破解的IP。有一次我通过日志发现某个IP在凌晨三点尝试登录,频率是每秒5次,fail2ban立刻把它拉黑。第二天一查,那是个来自海外的扫描僵尸网络。

加固是个持续过程,不是一次性的任务。内核补丁要勤打,但先在小范围测试,避免生产环境翻车。定期用`lynis`做安全审计,它会列出未加固的项目,比如“SSH设置了密码登录”或“/etc/issue没有警告标语”。别小看这些细节——攻击者看到明确的警告标语,有时会知难而退。

说到底,没有绝对安全的系统,只有相对难啃的目标。你的加固做得越到位,攻击者转移目标的成本就越低。这也是为什么我总跟同事说:别追求完美,让系统比隔壁的更难入侵,你就赢了。

访客,请您发表评论:

© 2026. sitemap