| VB 源码 | VC 源码 | ASP源码 | JSP源码 | PHP源码 | CGI源码 | FLASH源码 | 素材模板 | C 源程序 | 站长工具 | 站长教程 |

Linux

数据库
邮件服务
Linux
Win9x/ME
Win2000/NT
WinXP/Server

本类阅读TOP10

·Linux日志管理详解
·创建iptables NAT规则
·使用Linux实现负载均衡
·在局域网中设置Linux时间服务器
·使用Linux建立IP隧道
·漂亮的国产Linux操作系统Open Desktop赏析
·构建Linux局域网
·LINUX系统初始化过程解析
·做个ADSL+Linux软路由器
·Linux下的网关设置

站内搜索

Linux如何阻止系统攻击者

一个笑话里说一个小偷进入到一家,偷光了屋子里所有的东西,但是却用一个相同的拷贝代替了偷走的东西。但是在网络攻击环境下,这却是可能发生的。当一个攻击者利用一个系统漏洞非法入侵进入到你的系统。当你使用ps命令列出系统中的所有的进程时,却看不到什么异常的证据。你查看你的password文件,一切也是那么的正常。到底发生了什么事情呢?当系统进入到你的系统以后,第一步要做的事情就是取代系统上某些特定的文件:如netstat命令等。当你使用netstat -a命令时,就不会显示系统攻击者存在的信息。当然攻击者将替代所有的可能泄露其存在的文件。一般来说包括:

/bin/ps
/bin/netstat
/usr/bin/top
由于这些文件已经被取代。所以简单的利用ls命令查看这些文件是看不出什么破绽的。有若干种方法你可以验证系统文件的完整性。如果你安装的是Red Hat, Caldera, TurboLinux或任何使用RPM的系统。你可以利用RPM来验证系统文件的完整性:

首先你应该查明你的那些你需要查看的文件来自哪个软件包,使用rpm命令你可以查明某个文件属于某个包:
# rpm -qf /bin/netstat
net-tools-1.51-3
然后,可以扫描整个rpm包来查看那些发生了改变。对没有发生改变的包使用该命令将没有任何输出信息,如下所示:
# rpm -V net-tools
#
将netstat的5.2版本的二进制可执行文件替换为6.0的版本以后再使用该命令的结果为:
.......T /bin/netstat
这说明/bin/netstat/文件已经被修改。若我使用rpm -qf测试ps和top命令可以得到其属于包procps,然后在验证包procps的完整性。下面是一个被黑的站点的结果:

# rpm -qf /bin/ps
procps.2.0.2-2

# rpm -V procps
SM5..UGT /bin/ps
SM5..UGT /usr/bin/top
攻击者入侵到系统中,并且用自己的ps及top命令替代了我们系统中的命令。从而使管理员看不到其运行的进程,也许是一个sniffer来监听所有的用户所有进出网络的数据并找寻到密码信息。

下面是一个小的script来扫描你系统的所有的rpm库,并检查所有的包是否被篡改。但是应该注意的是并不是所有该scripts报告的问题都是说明该系统文件被攻击者破坏。例如你的apssword文件一般肯定和你安装系统时是不同的:

#!/bin/bash
#
# Run through rpm database and report inconsistencies
#
for rpmlist in `rpm -qa` # These quotes are back quotes
do
echo " ----- $rpmlist -----" ; rpm -V $rpmlist
done > /tmp/rpmverify.out

当你运行该scripts时,输出被定向到文件/tmp/rpmverify.out你可以使用less命令查看该文件。但是由于文本文件如:/etc/passwd, /etc/inetd.conf等很可能显示为被修改过。但是你如何知道这些是管理员自己修改的还是入侵者修改的呢方法是在你确保你的系统是干净的,没有被攻击者入侵时,你为这些系统文件创建指纹信息。在你怀疑你的系统被入侵时使用这些这些指纹信息来判定系统是否被入侵。创建文件的指纹信息是通过命令md5sum 来实现的:

# md5sum /etc/passwd
d8439475fac2ea638cbad4fd6ca4bc22 /etc/passwd

# md5sum /bin/ps
6d16efee5baecce7a6db7d1e1a088813 /bin/ps

# md5sum /bin/netsat
b7dda3abd9a1429b23fd8687ad3dd551 /bin/netstat

这些数据是我的系统上的文件的指纹信息。不同的系统上的文件的 指纹信息可能是不同的,你应该是使用md5sum来计算自己系统文件的指纹信息。下面是一些你应该创建指纹信息的文件;

/usr/bin/passwd
/sbin/portmap
/bin/login
/bin/ls
/usr/bin/top
/etc/inetd.conf
/etc/services

通过指纹信息你可以决定是否有系统文件被修改。





相关文章
  • 遭受拒绝服务攻击事件的分析及对策
  • 通过TCP/IP堆栈特征探测远程操作系统
  • 通过IP欺骗进行攻击的原理及预防
  • 远程连接作为root的用法和总结
  • 远程shell特洛伊木马病毒
  • 运用CrackLib构建安全的Unix口令
  • 调整 TCP/IP 防范攻击
  • 设置Unix启动密码
  • 解剖恶意网站代码
  • 虚拟服务器实现方法
  • 虚拟文件系统 (VFS) 简介
  • 网络最高安全指南
  • 网络安全的几项关键技术
  • 网络安全漏洞检测
  • 系统遭受入侵后使用TCT进行紧急恢复并分析
  • 系统管理进阶-内存管理
  • 系统管理员安全(2)
  • 系统管理员安全(1)
  • 系统管理员安全
  • 系统的安全检查
  • 相关软件


    下载首页关于我们广告服务联系方式常见问题隐私声明法律条款本站声明下载帮助发布软件站点地图谷歌卫星地图