黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图
您现在的位置: 黑客风云 >> 黑客文章 >> 网管频道 >> *NIX网管 >> 文章正文
[推荐]Linux环境下发现并阻止系统攻击
      ★★★★
Linux环境下发现并阻止系统攻击
文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2006-3-22


    Linux提供另外一种更为灵活有效的方法来实现对服务请求用户的限制,从而可以在保证安全性的基础上, 使可信任用户使用各种服务。
    在/etc目录下,有两个文件:hosts.deny hosts.allow 通过配置这两个文件,你可以指定哪些机器可 以使用这些服务,哪些不可以使用这些服务。配置这两个文件是通过一种简单的访问控制语言来实现的,访 问控制语句的基本格式为: 程序名列表,主机名/IP地址列表。
    程序名列表指定一个或者多个提供相应服务的程序的名字,名字之间用逗号或者空格分隔,可以在 inetd.conf文件里查看提供相应服务的程序名:如上面的文件示例中,telent所在行的最后一项就是所 需的程序名:in.telnetd 主机名/IP地址列表指定允许或者禁止使用该服务的一个或者多个主机的标识,主机名之间用逗号或空格 分隔。程序名和主机地址都可以使用通配符,实现方便的指定多项服务和多个主机。 当服务请求到达服务器时,访问控制软件就按照下列顺序查询这两个文件,直到遇到一个匹配为止:
    1. 当在/etc/hosts.allow里面有一项与请求服务的主机地址项匹配,那么就允许该主机获取该服务
    2. 否则,如果在/etc/hosts.deny里面有一项与请求服务的主机地址项匹配,就禁止该主机使用该项服务
    3. 否则允许使用该服务 如果相应的配置文件不存在,访问控制软件就认为是一个空文件,所以可以通过删除或者移走配置文 件实现对所有主机关闭所有服务。
    在文件中,空白行或者以#开头的行被忽略,你可以通过在行前加 # 实现注释功能。Linux提供了下面灵活的方式指定进程或者主机列表:
    1. 一个以'.'起始的域名串,如 .amms.ac.cn 那么www.amms.ac.cn就和这一项匹配成功
    2. 以'.'结尾的IP串如 202.37.152. 那么IP地址包括202.37.152. 的主机都与这一项匹配
    3. 格式为n.n.n.n/m.m.m.m表示网络/掩码,如果请求服务的主机的IP地址与掩码的位与的结果等于n.n.n.n 那么该主机与该项匹配。
    4. ALL表示匹配所有可能性
    5. EXPECT表示除去后面所定义的主机。如:list_1 EXCEPT list_2 表示list_1主机列表中除去List_2所列出的主机
    6. LOCAL表示匹配所有主机名中不包含'.'的主机 上面的几种方式只是Linux提供的方式中的几种,但是对于我们的一般应用来说是足够了。
    我们通过举几个例子来说明这个问题:
    例一:我们只希望允许同一个局域网的机器使用服务器的ftp功能,而禁止副广域网上面的ftp服务请求, 本地局域网由 202.39.154. 、202.39.153. 和202.39.152. 三个网段组成。在hosts.deny文件中, 我们定义禁止所有机器请求所有服务: ALL:ALL 在hosts.allow文件中,我们定义只允许局域网访问ftp功能: in.ftpd -l -a: 202.39.154 202.39.153. 202.39.152. 这样,当非局域网的机器请求ftp服务时,就会被拒绝。而局域网的机器可以使用ftp服务。 ALL:ALL 然后重新启动你的 inetd进程: /etc/rc.d/init.d/inet restart 但是hosts.deny文件只能控制/etc/inetd.conf文件中包含的服务的访问这些服务有/usr/bin/tcpd管 理。TCP wrapper监听接入的网络请求,然后与在hosts.allow和hosts.deny的中的服务比较,然后做出允 许或拒绝的决定。 但是对于wrapper没有包含的服务你就需要采用其他方法了
  二、
    保护你的系统最简单有效的的方法是TCP wrapper.Linux系统在跟踪对你的机器的访问记录方面作了大量的工作。wrapper拒绝对你的系统的某些访问的同时,系统在一些LOG文件中增加了一些信息内容。在/var/log
  目录下,一般可以看到如下文件:
   boot.log cron cron.1 cron.2 dmesg httpd
   lastlog lastlog.1 maillog maillog.1
   maillog.2
   messages messages.1 netconf.log
   netconf.log.1
   netconf.log.2 secure secure.1 secure.2
   secure.3 secure.4 spooler spooler.1 spooler.2
   uucp wtmp wtmp.1 xferlog xferlog.1
   xferlog.2
    可以看到某些LOG文件有1,2等扩展名。这是由于系统运行cron.daily引起的。实际上,cron.daily是在/etc下面的子目录,包含了很多系统自动运行的管理script文件。不需要你参与,这些script实现一些任务的自动化:如轮转log文件使其不会变的过分大。作为管理员你应该熟悉如何通过修改这些script来定时运行程序。当然 ,现在有很多功能完善的文本模式或图形模式的log文件分析器,自动发现危险的攻击迹象,然后象管理者发送信件。在http://www.freshmeat.net/、tucows等可以找到很多这样的工具。
    从攻击者的观点而言,他们对你的你服务器上的安全文件最感兴趣。若你关闭外部网络对你的服务器的访问。你可能会遇到这样的情况:
   [root@linux /]#grep refused /var/log/secure*
   Sep 12 07:52:42 netgate in.rlogind[7138]: refused
   connect from 2??.?.5?.?42
   Sep 12 07:52:52 netgate in.rshd[7139]: refused
   connect from 2??.?.5?.?42
   Sep 12 07:52:55 netgate in.rexecd[7144]: refused
   connect from 2??.?.5?.?42
   Sep 12 07:52:59 netgate imapd[7146]: refused connect
   from 2??.?.5?.42
   Sep 12 07:52:59 netgate in.fingerd[7142]: refused
   connect from 2??.?.5?.?42
   Sep 12 07:53:00 netgate ipop3d[7143]: refused
   connect from 2??.?.5?.?42
   Sep 12 07:53:07 netgate in.ftpd[7147]: refused
   connect from 2??.?.5?.?42
   Sep 12 07:53:10 netgate gn[7145]: refused connect
   from 2??.?.5?.?42
   Sep 12 07:53:22 netgate in.telnetd[7149]: refused
   connect from 2??.?.5?.?42
   Sep 12 07:56:34 netgate imapd[7150]: refused connect
   from 2??.?.5?.?42
    正如你看到的那样,攻击者已经试图连接服务器上的若干个端口。但是由于服务器关闭了inetd启动的所有服务,所以LOG系统记录下了这些访问拒绝。若在你的机器中没有发现这样的服务拒绝并不能说明你的机器没有被攻击。maillog文件将保存那些通过服务器被转发的email信息。xferlog保存ftp的log信息等等。

上一页  [1] [2] [3] [4] [5] 下一页  

文章录入:cainiaowang    责任编辑:cainiaowang 
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
VIP 专 区
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886