Redhat 7.x 中xinetd完全指南( 八 )



例15 把服务绑定到特定地址上

Defaults
{
 ;Log_type=SYSLOG;loca14;info
 ;Log_on_success=PID;HOST;EXIT;DURATION
 ;Instances=8
}

Service;ftp
{
 ;id=ftp
 ;Socket_type=stream
 ;protocol=tcp
 ;wait=no
 ;user=root
 ;Only_from=172.17.0.0;172.19.0.0/20
 ;bind=172.17.1.1
 ;Log_on_success =USERID
 ;Log_on_failure =USERID
 ;server=/usr/sbin/in.ftpd
 ;Server_args=-1;–a
}

Service;ftp
{
 ;id=ftp_chroot
 ;Socket_type=stream
}


Service;telnet
{
 ;Socket_type=stream
 ;Wait=no
 ;flags=REUSE
 ;user=root
 ;bind=172.17.33.111
 ;server=usr/sbin/in.telnetd
 ;Log_on_success=PID;HOST;EXIT;DURATION;USERID
 ;Log_on_failure=RECORD;HOST
}

Service;telnet
{
 ;Socket_type=stream
 ;protocol=tcp
 ;wait=no
 ;flags=REUSE
 ;user=root
 ;bind=201.171.99.99
 ;redirect=172.17.1.1;23
 ;Log_on_success=PID;HOST;EXIT;DURATION;USERID
 ;LOG_ON_FAILURE=record;host
}

例 16;redirect的结果

$;telnet;201.171.99.99
Trying;201.171.99.99
Connected;to;201.171.99.99
Escape;character;is‘^]’
UNIX(r);System;V;Release;4.0;(foghorn)
Login:


因为Linux对每个物理端口最多支持256个逻辑接口,因此理论上可以为系统上的每个物理地址代理256个不同的地址 。

尽管redirect机制可能是非常有用的,但实现它时要小心 。要确保在代理服务器和终端系统上进行登记 。可是在高度受控的内部网络中,这个实现可能是方便的 。

包含TCP_Wrappers

/etc/xinetd.conf中包含TCP_Wrappers功能是如此简单,TCP_Wrappers的所有功能可通过xinetd包括进去,就像通过inetd一样 。例17是/etc/xinetd.conf文件的一个实例,它为许多服务使用了TCP_Wrappers 。当属性服务器设置为/usr/sbin/tcpd后,那个服务将被包裹 。注意这样的项总是把server_args属性设置为要激活的进程(全路径) 。载讨论xinetd的编译时,用到了libwrap配置选项,但是无论是否用libwrap编译,例17中的配置文件都能发挥作用 。用libwrap编译的作用是包含/etc/hosts.allow和/etc/hosts.deny中的访问限制 。例7所示提供了TCP_Wrappers的一组完整特征,banners,spawn,twist等 。

例;17;在/etc/xinetd.conf中使用TCP_Wrappers

Defaults
{
 ;Log_type=SYSLOG;loca14;info
 ;Log_on_success=PID;HOST;EXIT;DURATION
 ;Log_on_failure=HOST
 ;instances=8
}
Service;ftp
{
 ;id=ftp
 ;Socket_type=stream
 ;protocol=tcp
 ;wait=no
 ;user=root
 ;Only_from=172.17.0.0
 ;Log_on_success =USERID
 ;Log_on_failure =USERID
 ;Access_times=8:00-16:30
 ;server=;/usr/sbin/tcpd
 ;Server_args=;/usr/sbin/in.ftpd;–1;–a
}

Service;telnet
{
 ;Socket_type=stream
 ;wait=no
 ;flags=NAMEINARGS;REUSE
 ;User=root
 ;Bind=172.17.33.111
 ;server=;/usr/sbin/tcpd
 ;Server_args=;/usr/sbin/in.telnetd
 ;Log_on_success=PID;HOST;EXIT;DURATION;USERID
 ;Log_on_failure=RECORD;HOST
}

Service;telnet
{
Socket_type=stream
protocol=tcp
wait=no
flags=REUSE
user=root
bind=201.171.99.99
redirect=172.17.1.1;23
Log_on_success=PID;HOST;EXIT;DURATION;USERID
Log_on_failure=RECORD;HOST
}





xinetd进程

xinetd进程接受若干参数 。这些参数可被特定服务default中的属性改写,或在一个或多个服务的单个属性项改写 。然而,这里给出的所有参数或它们的缺省值控制xinetd自身的行为 。例如,如果filelog标记指定为xinetd,那么将在那里登记所有状态转换消息,尽管;/etc/xinetd.conf文件中为和服务相关消息指定了其他登记位置 。可用参数列在表5中 。

应注意xinetd报告的所有状态信息,总是出现在-syslog或-filelog标记指定的登记文件中,不管设置如何,即通过defaults还是在/etc/xinetd.conf中 。如果要在一个文件中捕获xinetd的PID,可以用

推荐阅读