解读黑客入侵你Linux服务器的一万种玩法( 三 )


而且 , telnet 服务程序的安全验证方式也极其脆弱 , 攻击者可以轻松将虚假信息传送给服务器 。
现在远程登录基本抛弃了 telnet 这种方式 , 而取而代之的是通过 SSH 服务远程登录服务器 。
②合理使用 Shell 历史命令记录功能
在 Linux 下可通过 history 命令查看用户所有的历史操作记录 , 同时 shell 命令操作记录默认保存在用户目录下的 .bash_history 文件中 。
通过这个文件可以查询 shell 命令的执行历史 , 有助于运维人员进行系统审计和问题排查 。
同时 , 在服务器遭受黑客攻击后 , 也可以通过这个命令或文件查询黑客登录服务器所执行的历史命令操作 。
但是有时候黑客在入侵服务器后为了毁灭痕迹 , 可能会删除 .bash_history 文件 , 这就需要合理的保护或备份 .bash_history 文件 。
③启用 Tcp_WrAppers 防火墙
Tcp_Wrappers 是一个用来分析 TCP/IP 封包的软件 , 类似的 IP 封包软件还有 iptables 。
Linux 默认都安装了 Tcp_Wrappers 。作为一个安全的系统 , Linux 本身有两层安全防火墙 , 通过 IP 过滤机制的 iptables 实现第一层防护 。
iptables 防火墙通过直观地监视系统的运行状况 , 阻挡网络中的一些恶意攻击 , 保护整个系统正常运行 , 免遭攻击和破坏 。
如果通过了第一层防护 , 那么下一层防护就是 Tcp_Wrappers 了 。通过 Tcp_Wrappers 可以实现对系统中提供的某些服务的开放与关闭、允许和禁止 , 从而更有效地保证系统安全运行 。
 
文件系统安全①锁定系统重要文件
系统运维人员有时候可能会遇到通过 Root 用户都不能修改或者删除某个文件的情况 , 产生这种情况的大部分原因可能是这个文件被锁定了 。
在 Linux 下锁定文件的命令是 Chattr , 通过这个命令可以修改 ext2、ext3、ext4 文件系统下文件属性 , 但是这个命令必须有超级用户 Root 来执行 。和这个命令对应的命令是 lsattr , 这个命令用来查询文件属性 。
对重要的文件进行加锁 , 虽然能够提高服务器的安全性 , 但是也会带来一些不便 。
例如:在软件的安装、升级时可能需要去掉有关目录和文件的 immutable 属性和 append-only 属性 , 同时 , 对日志文件设置了 append-only 属性 , 可能会使日志轮换(logrotate)无法进行 。
因此 , 在使用 Chattr 命令前 , 需要结合服务器的应用环境来权衡是否需要设置 immutable 属性和 append-only 属性 。
另外 , 虽然通过 Chattr 命令修改文件属性能够提高文件系统的安全性 , 但是它并不适合所有的目录 。Chattr 命令不能保护 /、/dev、/tmp、/var 等目录 。
根目录不能有不可修改属性 , 因为如果根目录具有不可修改属性 , 那么系统根本无法工作:

  • /dev 在启动时 , syslog 需要删除并重新建立 /dev/log 套接字设备 , 如果设置了不可修改属性 , 那么可能出问题 。
  • /tmp 目录会有很多应用程序和系统程序需要在这个目录下建立临时文件 , 也不能设置不可修改属性 。
  • /var 是系统和程序的日志目录 , 如果设置为不可修改属性 , 那么系统写日志将无法进行 , 所以也不能通过 Chattr 命令保护 。
②文件权限检查和修改
不正确的权限设置直接威胁着系统的安全 , 因此运维人员应该能及时发现这些不正确的权限设置 , 并立刻修正 , 防患于未然 。下面列举几种查找系统不安全权限的方法 。
查找系统中任何用户都有写权限的文件或目录:
查找文件:find / -type f -perm -2 -o -perm -20 |xargs ls -al 查找目录:find / -type d -perm -2 -o -perm -20 |xargs ls –ld 查找系统中所有含“s”位的程序:
find/-typef-perm-4000-o-perm-2000-print|xargsls–al含有“s”位权限的程序对系统安全威胁很大 , 通过查找系统中所有具有“s”位权限的程序 , 可以把某些不必要的“s”位程序去掉 , 这样可以防止用户滥用权限或提升权限的可能性 。
检查系统中所有 suid 及 sgid 文件:
find / -user root -perm -2000 -print -exec md5sum {} ; find / -user root -perm -4000 -print -exec md5sum {} ;


推荐阅读