Unix操作系统的安全性,本质上是系统管理员与入侵者之间持续的攻防较量。本文的核心策略是:围绕那些最容易被攻击的命令与配置文件,制定一套完整的防护措施,使入侵者无法轻易替换或篡改系统权限。下面先从几个关键的文件和服务入手。
需要重点保护的对象包括:
1. /bin/login —— 登录程序一旦被替换,后果极为严重。
2. /usr/etc/in.* 系列文件,例如 in.telnetd。
3. inetd 超级守护进程所唤醒的服务。inetd 负责监听端口、等待请求,并派生出对应的服务进程。常见服务包括:fingerd(79 端口)、ftpd(21 端口)、rlogind(含 klogin、eklogin 等)、rshd、talkd、telnetd(23 端口)、tftpd。此外,/etc/inetd.conf 中定义的其他内部服务也应纳入保护范围。
4. 不允许非 root 用户使用 netstat、ps、ifconfig、su 等命令——这些工具会暴露大量系统信息,容易成为攻击者的突破口。
系统管理员需要定期监控系统变化,重点关注文件及其时间戳。
常用检测方法有两种:
· # ls -lac 可以查看文件真实的修改时间,有助于发现那些被刻意修改过时间戳的异常文件。
· # cmp file1 file2 用于比较两个文件的大小差异,在备份还原场景中非常实用。
另一个必须严防死守的风险点:非法用户通过 SUID(set-user-id)程序获取 root 权限。防范步骤如下:
1. 找出系统中所有设置了 SUID 位的程序:# find / -type f -perm -4000 -ls。该命令能列出所有允许普通用户以文件拥有者(通常是 root)身份执行的程序。
2. 全面分析系统,确保 SUID 列表中不存在后门程序。部分恶意软件会伪装成系统工具,定期检查这份清单至关重要。
别忘了检查用户的 .rhosts 和 .forward 文件,这两处“侧门”常被忽略。
· # find / -name .rhosts -ls -o -name .forward -ls 可快速定位这两个文件。尤其要留意 .rhosts 中是否包含 ++ 这样的条目——一旦出现,远程用户无需任何口令即可修改该文件,相当于将系统大门彻底敞开。
· 同时,使用 # find / -ctime -2 -ctime +1 -ls 查找最近两天内修改过的文件。这个时间窗口通常意味着有人刚刚动过手脚——很可能就是入侵者留下的痕迹。
