xinetd 服务配置文件支持将这项服务捆绑到一个 IP 地址上,并且把那项服务的外来请求重定向到另外一个 IP 地址、主机名或端口。
捆绑服务用特定化服务配置文件中的 bind 选项来控制,并把该服务链接到系统上的一个 IP 地址。捆绑配置好后,bind 选项只允许到合法 IP 地址的请求来访问该服务。你可以使用这种方法把不同服务根据要求捆绑到不同的网络接口。
这对拥有多重网络适配器或多个 IP 地址的系统尤其有用。在这样的系统内,不安全的服务(比如 Telnet)可以配置成只用来侦听连接到某专用网的接口而不侦听连接到互联网(Telnet)的接口。
redirect 选项接受后面带有端口号的 IP 地址或主机名,并配置这项服务来把连接到这项服务的任何请求都重定向到指定的主机和端口号。重定向的这一特征可以用来把请求改向到同一个系统上的另一个端口,重定向到同一台机器上的一个不同 IP 地址,或转移到一个完全不同的系统和端口号,以及这些选项的任何结合。因此,一个系统上要连接到某项服务的用户可能会被路由到另外一个系统,而无须中断目前的系统。
xinetd 守护进程要完成这样的重定向需要不断复制这样一个过程:发出请求的客户主机和实际提供这项服务的主机在连接期间要保持活动状态并且两个系统之间不断要有数据的传输转移。
bind 和 redirect 选项一起使用时,其优势最为明显。如果把一项服务捆绑到一个系统的某特定的 IP 地址,然后再把对该服务的请求重定向到只有第一个机器可以看见的第二个机器上,那么可以使用内部系统来为一个完全不同的网络提供这些服务。还有其它用途, 比如这些选项可以用来限制在一个多处为家的机器上某特定服务与一个已知 IP 地址的连接时间,也可以用来把对那项服务的任何请求重定向到另外一台专门为那项服务配置的机器。
例如,考虑这样一个系统,一个为其 Telnet 服务而设定的被用作防火墙的系统:
service telnet
{
socket_type = stream
wait = no
server = /usr/kerberos/sbin/telnetd
log_on_success += DURATION USERID
log_on_failure += USERID
bind = 123.123.123.123
redirect = 10.0.1.13 23
}
这个文件中的 bind 和 redirect 选项保证那台机器上的 Telnet 服务被捆绑到外部 IP 地址(123.123.123.123),面向互联网的那个地址。另外,任何发送到 123.123.123.123 的 Telnet 服务请求都会通过第二个网络适配器重定向到一个内部 IP 地址(10.0.1.13),这个地址只有防火墙和内部系统可以访问。 这个防火墙就传输这两个系统之间的通讯交流,可是该连接系统却认为连接的是 123.123.123.123,而实际上连接的是一个不同的机器。
这一特征对使用宽带连接又只有一个固定的 IP 地址的用户尤其有用。使用 Network Address Translation (NAT)(网络地址转换)时,网关机器背后的使用内部专用 IP 地址的各系统在该网关系统以外是不能被使用的。然而,当由 xinetd 控制的某些服务用 bind 和 redirect选项配置时,该网关机器可以被用作外部系统和某特定被配置好来提供该服务的内部机器之间的服务代理。另外,多种不同的 xinetd 访问控制和日志选项也可以接受额外的保护。