Linux安全运维实践经验_稳定防护策略说明【指导】

8次阅读

判断 Linux 系统是否被入侵需通过行为审计和基线比对:检查异常进程(ps auxf)、非标端口监听(ss -tulnp)、近期配置变更(find /etc)、非常规登录(last/journalctl);同时禁用 root 直接登录、收紧 sudo 权限、启用 4 个关键 sysctl 防护参数,并正确配置 fail2ban。

Linux 安全运维实践经验_稳定防护策略说明【指导】

如何判断系统是否已被入侵而不依赖杀软

Linux 上没有传统“杀毒软件”概念,靠的是行为审计和基线比对。关键不是找木马文件,而是发现异常进程、网络连接和权限变更。

  • ps auxf --sort=-%cpu | head -20 快速看 CPU 占用异常的进程,特别注意路径含 /tmp/dev/shm 或无名二进制(如 [kthreadd] 伪装)
  • 执行 ss -tulnp 查监听 端口,重点检查非标准端口(如 :31337:6666)是否绑定到未知用户或 root 以外的 UID
  • 运行 find /etc -type f -mtime -1 -ls 2>/dev/null 找近期被修改的系统配置,比如 /etc/passwd/etc/crontab/etc/pam.d/ 下文件
  • 检查登录日志:last -n 30journalctl -u sshd --since "2 weeks ago" | grep "Accepted",留意非常规时间或 IP 的成功登录

限制 root 登录与提权操作的最小可行配置

允许 root 直接登录是多数入侵链路的起点;而 sudo 配置不当则让普通用户一步提权。必须切断这两条通路。

  • 禁用 root 密码登录:编辑 /etc/ssh/sshd_config,确保 PermitRootLogin no,然后 systemctl restart sshd
  • 禁止空密码登录:PermitEmptyPasswords noUsePAM yes 必须同时存在
  • 限制 sudo 权限:用 visudo 删除 %wheel ALL=(ALL) NOPASSWD: ALL 这类宽泛规则;只给必要命令加 NOEXEC(如 /bin/systemctl start nginx
  • 启用 requiretty(默认开启),防止 cron 或 webshell 中的 sudo 绕过 TTY 检查

sysctl 级防护中真正起效的 4 个参数

网上流传的 sysctl.conf 优化清单里 70% 对现代内核无效或自相矛盾。以下四个在 CentOS 8+/Ubuntu 20.04+ 实测可阻断常见利用手法:

  • net.ipv4.conf.all.rp_filter = 1:启用反向路径过滤,大幅降低 IP 欺骗成功率
  • kernel.exec-shield = 1(仅 RHEL/CentOS)或 kernel.randomize_va_space = 2(通用):强制 ASLR,让 溢出利用失败率提升 90%+
  • fs.suid_dumpable = 0:禁止 SUID 程序生成 core dump,避免敏感内存泄露
  • vm.mmap_min_addr = 65536:抬高用户空间 mmap 起始地址,封死 NULL 指针解引用类漏洞利用路径

设置后执行 sysctl -p 生效,但需确认应用无 mmap(0) 调用(极少见)。

fail2ban 配置不生效的三个硬伤点

fail2ban 不是装上就自动防爆破,日志路径错、正则不匹配、jail 未启用,三者任一出问题都会导致完全静默。

  • 确认日志路径真实存在且可读:grep "auth.log|secure" /etc/fail2ban/jail.local,然后手动 tail -f /var/log/auth.log 看是否有 SSH 登录失败记录(如 Failed password for.*from
  • 检查 filter 正则是否匹配实际日志格式:用 fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf 测试,输出中 Lines: 12345 (12345), match: 123 表示命中率达标
  • 确认 jail 启用状态:fail2ban-client status sshd 返回 Status for the jail: sshdNumber of jail matches > 0;若为 0,检查 enabled = true 是否写在 [sshd] 段下而非全局段

别忽略 SELinux —— 如果系统启用了 enforcing 模式,fail2ban 的 iptables 规则可能被拦截,此时要加 setsebool -P fail2ban_iptables on

星耀云
版权声明:本站原创文章,由 星耀云 2025-12-30发表,共计1784字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。
text=ZqhQzanResources