Xinetd完全指南45 $ 3.3 Services项 services特定项的目的是提供可用服务的列表。对services特定项来说,这是个有用的排除故障工具,但为了上述同样的安全因素,可能不会去用它。尽管如此,还是要看一看它如何工作。 例5是 services项的一个示例。端口号的选择也是任意的。也应注意访问限制于topcat,这是服务器自身的主机名。 例5 /etc/xinetd.conf中services项示例 Service services{ type = INTERNAL UNLISTED Socket_type = stream protocol = tcp port = 8099 wait = no Only_ from = topcat } 对于servers服务来说,任何用户可执行telnet topcat 8099,并获得来自services服务的输出。例6给出了连接8099端口的实例信息信息。注意xinetd仅提供这条信息就退出,而不提供任何交互连接。 例6 查询services内部服务的输出 $ telnet topcat 8099Trying 172.17.33.111…… Connected to topcat. Escape character is ‘^]’ Servers tcp 9997 Services tcp 8099 ftp tcp 21 telnet tcp 23 Shell tcp 514 Login tcp 513 Talk udp 517 Ntalk udp 518 Pop-2 tcp 109 Pop-3 tcp 110 Imap tcp 143 Linuxconf tcp 98 Connection closed by foreign host. $ 3.4 Xadmin项 这个特定服务项提供以交互方式获得services特定服务所提供信息的方法。例7是/etc/xinetd.conf项的一个示例(端口号的选择也是任意的),类似于services和servers服务,这项服务也没有口令或其他保护,所以要谨慎设置服务的only_from项,以增强安全性。 例7 xadmin项 Service xadmin{ type = INTERNAL UNLISTED socket_type = stream protocol = tcp port = 9967 wait = no Only_from = topcat } 对前两个特定服务类型来说,你只需telnet到所列端口上,即telnet topcat 9967。和前两项服务不同,xadmin提供了一个交互环境。一旦连接到xadmin服务器上,就可执行5个命令。它们是help,show, run,bye和exit。Help命令显示其他命令以及一个简短的用法消息。Bye和exit命令都关闭这个连接。Show run和show avail命令分别提供servers和services提供的信息。 警告:像前3段中指出的一样,这些特定服务servers, services和xadmin产生的信息可用于攻击系统。可能不需要一直运行这些服务,或许只当你调试时才需要。在任何时候,如果的确运行了这些服务,要确信用access_from和/或no_access配置了访问控制。也可以为这些服务使用bind属性以进一步限制访问。 4.配置实例 这节中将看到一些不同的例子,与之相关的行为以及它们产生的登记消息。 4.1 访问控制 从一个简单的访问控制例子开始。在例10中,服务器topcat的login服务项允许IP地址以172开始但不以172.19开始的任何系统访问。这个例子包括了defaults部分。假定这一项用于login服务,且从客户机上用rlogin命令激活,让我们检查成功和不成功企图,以及它们产生的登记。 假定主机underdog和IP地址是172.18.5.9。那么当Mary执行rlogin登记topcat时,会给予她访问权。这相成功的登录如例11所示。尽管例11说明了Mary的动作产生的log内容。如例12所示,该例中的最后一项反映了当Mary拆除登录时的退出情况。可用PID跟踪某次会话的退出,只要你指明这个PID将在/etc/xinetd.conf中登记。登记项如下:每个xinetd登记项记录日期和时间戳,之后服务器主机名,然后是xinetd,之后在括号中是xinetd的PID。例12中的第一条记录以start关键字开始,表明这个会话的开始,之后识别的激活进程(login),然后激活进程的PID,最后是客户机地址。 例10 在/etc/xinetd.conf中rlogin service项的示例 Defaults{ Log_type=SYSLOG loca14 info Log_on_success=PID HOST EXIT DURATION Log_on_failure=HOST instances=8 } Service login { Socket_type=stream protocol=tcp wait=no user=root flags=REUSE Only_from=172.0.0.0 No_access=172.19.0.0 Olg_on_success+=USERID Olg_on_failure+=USERID server=/usr/sbin/in.ftpd Server_args=-1 –a } 例11 成功的rlogin企图 [mary@underdog]$ rlogin topcatpassword: last login:Wed Apr 14 17:45:02 from roadrunner [mary@topcat]$ 例12 和例11相关的登记项 Apr 15 11:01:46 topcat xinetd[1402]:START:login pid=1439From=172.18.5.9 Apr 15 11:01:46 topcat xinetd[1439]:USERID:login OTHER:mary … … apr 15 11:39:31 topcat xinetd[1402]:EXIT:login status:1 pid=1439 dura-tion=2265(sec) 第2项以USERID关键字开始,表明成功地发出了RFC1413调用。之后是服务名(login),远程系统对RFC1413调用(此时为OTHER)的响应,最后远程用户名(mary)。 这些log项的含义是很清楚的,但表4提供了这些关键字(如START,USERID和EXIT)和其含义的解释。 现在假定Joe想在主机sly.no.good.org(IP地址为19.152.1.5)上使用rlogin。例13显示了这一结果。看上去Joe连接被拒绝,或者可能他想强入。让我们看一看例14中的这三次企图所产生的登记项。注意登记项不包括远程用户名,尽管我们在例10中用log_on_failure属性特别请求那个信息。这是因为远程主机sly.no.good.org没有运行identd或类似进程。因为主机sly.no.good.org不在例10中的only_from表中,尽管在login服务项中增加了flags=IDONLY一项,它不会记录sly.no.good.org没有运行identd的事实。仅当主机得到许可时,这样一项登记记录才会出现。 上一篇:非标准端口服务的识别 下一篇:入侵检测之日志检测 更多相关文章
|
推荐文章
精彩文章
|