Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5351721
  • 博文数量: 1144
  • 博客积分: 11974
  • 博客等级: 上将
  • 技术积分: 12312
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-13 20:06
文章存档

2017年(2)

2016年(14)

2015年(10)

2014年(28)

2013年(23)

2012年(29)

2011年(53)

2010年(86)

2009年(83)

2008年(43)

2007年(153)

2006年(575)

2005年(45)

分类: LINUX

2006-06-16 21:22:21

入侵检测系统
对攻击者来说,端口扫描是入侵主机的必备工作,可以用端口扫描程序扫描服务器的所有端口来收集有用的信息,如哪些端口打开、哪些端口关闭、提供服务的程序版本、操作系统的版本等。下面介绍几种对付端口扫描的工具。
1. PortSentry
PortSentry是一个被设计成实时地发现端口扫描并对端口扫描快速作出反应的检测工具。一旦发现端口扫描,PortSentry做出的反应有:
(1)通过syslog()函数给出一个日志消息;
(2)自动地把对服务器进行端口扫描的主机加到tcp wrappers的/etc/hosts.deny文件中;
(3)本地主机会自动把所有的信息流都重定向到一个不存在的主机;
(4)本地主机用包过滤程序把所有的数据包(来自对其进行端口扫描的主机)都过滤掉。
该软件的安装和使用可按照源码包里的手册进行,也可以参考http://www.linuxsecurity.com/tips/tip-23.html中的介绍,但是这里的下载链接已不能使用,读者可以去rpmfind.net查找下载。简单地介绍一下配置和启动步骤:
(1)配置/usr/psionic/portsentry/portsentry.conf文件
/usr/psionic/portsentry/portsentry.conf是PortSentry的主要配置文件。可以设置需要监听的端口、需要禁止和监控的IP地址等。可以参看PortSentry的README.install文件以获取更多的信息。
(2)配置portsentry.ignore文件
在portsentry.ignore文件中设置希望PortSentry忽略的主机。这个文件至少要包括localhost(127.0.0.1)和本地界面(lo)的IP。
(3)最好改变文件默认的权限:
#chmod 600 /usr/psionic/portsentry/portsentry.conf
#chmod 600 /usr/psionic/portsentry/portsentry.ignore
(4)启动PortSentry
PortSentry程序可以配置在6个不同的模式下运行,但每次启动时只能在一种模式下运行。这些模式是:
◆ portsentry -tcp(基本的端口绑定TCP模式)
◆ portsentry -udp 基本的端口绑定UDP 模式)
◆ portsentry -stcp(秘密的TCP扫描检测)
◆ portsentry -atcp(高级TCP秘密扫描检测)
◆ portsentry -sudp(秘密的UDP扫描检测)
◆ portsentry -audp(高级的秘密UDP扫描检测)
推荐使用最后两种模式检测。建立启动脚本:
# vi /etc/init.d/portsentry
/usr/local/portsentry/portsentry sudp
/usr/local/portsentry/portsentry audp
# chmod a+x ./portsentry(建立启动脚本)
# cd /etc/rc.d/rc3.d/ ; ln -s ../init.d/portsentry S60portsentry(建立软链接启动)
2. chkrootkit
另一个有用的工具是chkrootkit。chkrootkit是设计用来检查许多广为人知的rootkit(一组包括常用木马程序的套件,以方便 cracker攻入主机时, 在受害主机上顺利地编译和安装特洛伊木马程序)。在chkrootkit的网站上会公布最新的rootkit列表。
配置chkrookit非常简单:先从下载源代码,解开软件包,在文件被解开的路径里敲入make。完成后,chkrootkit就随时侯命了。下面是在机器上chkrootkit的一个输出的例子:
# ./chkrootkit
Checking `su... not infected
Checking `ifconfig... not infected
Checking `inetd... not tested
Checking `inetdconf... not found
Checking `identd... not infected
Checking `init... not infected
Checking `killall... not infected
Checking `login... not infected
Checking `ls... not infected
Checking `lsof... not infected
Checking `mail... not infected
Checking `mingetty... not infected
Checking `netstat... not infected
Checking `named... not infected
Checking `passwd... not infected
[...]
由上可以看到,系统中重要的一些命令并没有被改变。chkrootkit是一个很不错的实用工具,它可以进一步让我们放心:机器目前是安全的。
3.secheck
个人推荐一个比较好的检测工具secheck,这个软件安装简单,检测范围广,记录文件条目简明,资料详细。它可以检测开放端口列表、登录用户、磁盘空间情况;检查UID和GID为0的非root用户、弱口令用户、正在运行的系统进程、su root的用户;检测有SUID和SGID标识的命令,以及相关password、shadow、xinetd.conf、.rhosts文件的变化等。建议配合crontab做定时检查,命令如下(每隔一小时做一次检查):
00 * * * * /usr/local/etc/secheck/secheck
可以从下载感受一下。

阅读(829) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~