游客发表

linux系统安全加固

发帖时间:2026-10-17 04:39:34

去年秋天,统安我帮一个朋友处理他公司的全加一台对外服务器。SSH日志里每天有上万条暴力破解记录,统安root登录尝试占了八成。全加他问我:“我这密码够复杂了,统安12位大小写加数字,全加还能被破?统安”我让他把 /etc/ssh/sshd_config 发过来一看,PermitRootLogin yes,全加PasswordAuthentication yes,统安端口22。全加这三条凑一块,统安等于把大门钥匙挂在门把手上。全加

Linux加固这事,统安很多人以为装个防火墙、全加改个密码就完事了。统安真正的攻击面比想象的宽。我习惯从三个层面去收紧:网络暴露面、身份认证、权限边界。这三个层面互相咬合,缺一个都漏风。

先砍掉不必要的网络入口

一台默认安装的CentOS或Ubuntu,跑着多少监听端口?ss -tlnp 一看便知。我见过最离谱的一台机器,上面跑着rpcbind、avahi-daemon、cups,全是装机时带进来的,业务根本用不上。这些服务每一个都是潜在入口。

做法很直接:systemctl disable --now 掉用不着的服务,防火墙用 firewalld 或 nftables 设置默认拒绝入站,只放行明确需要的端口。别用 iptables -F 然后手动加几条规则那种老套路,重启就丢,而且容易写漏。用 firewall-cmd --permanent 持久化,或者直接写nftables配置文件。

SSH这块单独说。改端口能挡掉扫描器的大部分噪音,但别指望它当安全措施——全端口扫描也就多花几秒。真正有用的是禁用密码登录,改用密钥。生成密钥时用 ssh-keygen -t ed25519,别再用RSA 2048了。然后把 PasswordAuthentication 设为 no,PermitRootLogin 设为 no,再配个 AllowUsers 白名单。这几步做完,SSH暴力破解基本就废了。

权限不是设个755就完事

文件权限这块,最常见的错误是图省事 chmod -R 777。我见过一个PHP项目,整站777,包括配置文件。这意味着任何能上传文件的人都能改数据库密码。

关键目录要有明确归属。web根目录通常 chown www-data:www-data,权限755,文件644。上传目录单独处理,禁止执行权限——find uploads/ -type f -exec chmod 644 { } \;,再在nginx或apache里配 location ~* /uploads/.*\.php$ { deny all; }。这一步能挡掉大量webshell。

SUID和SGID文件要定期审计。find / -perm -4000 -type f 2>/dev/null 列出来,逐个确认是不是系统自带的。有些第三方软件会偷偷装SUID程序,这就是提权后门。

日志和审计不能只靠眼睛

很多人装了 fail2ban 就安心了。它确实有用,但规则得调。默认配置对SSH的封禁阈值偏宽松,我一般把 maxretry 降到3,bantime 拉到3600秒。更重要的是,fail2ban只能防已知模式的暴力破解,对利用应用漏洞的攻击无能为力。

审计层面,auditd 值得花时间配。监控 /etc/passwd、/etc/shadow、/etc/sudoers 的写入操作,监控 execve 系统调用。日志集中收集到远程syslog服务器,本地被入侵后攻击者改不了远端记录。这条在事后取证时能救命。

内核参数也别忽略。/etc/sysctl.conf 里加上 net.ipv4.conf.all.rp_filter=1 防IP欺骗,kernel.dmesg_restrict=1 限制普通用户读内核日志,fs.protected_hardlinks=1 和 fs.protected_symlinks=1 防链接攻击。这些是低成本高收益的改动。

加固没有终点。每次装新软件、开新端口、加新用户,都是在改变攻击面。我自己的习惯是每季度跑一遍 lynis 做基线检查,结合 nmap 从外部扫一遍自己的机器。攻击者不会等你准备好才来。

    热门排行

    友情链接