3
上面的列表是xinetd可用的所有属性,然而,针对一个服务你并不需要指定上面所有的属性,其实必需的属性只有下面几个:
Xinetd 设定服务必须的属性 |
属性 |
适用范围 |
socket_type |
所有服务 |
user |
Non_internal service only 非内部服务 |
server |
Non_internal service only 非内部服务 |
wait |
所有服务 |
protocol |
不在/etc/services中的所有RPC服务和所有其他服务 |
rpc_vision |
所有RPC服务 |
rpc_number |
不列在/etc/rpc中的任何RPC服务 |
port |
不在/etc/services中的非RPC服务 |
4
对于大多数的服务而言,在针对一个服务的设定中只能出现一次,并只支持=操作符;然而,下面的六个属性可以支持多个操作符:
支持多操作符的属性 |
属性 |
支持范围 |
only_from |
支持所有操作符 |
no_access |
log_on_success |
log_on_failure |
passenv |
env |
不支持-=操作符 |
5
defaults项是实现为所有服务指定某些属性的默认值。这些默认值可被每个服务项取消或修改。下表列出可在defaults项中指定的属性。这个表也指明了具体服务项中可以修改哪些属性。
可用的defaults属性 |
属性 |
适用范围 |
log_on_success |
可以用=操作符改写或用+ =或 - =操作符修改 |
log_on_failure |
only_from |
no_access |
passenv |
instances |
可以用=操作符改写 |
log_type |
disabled |
注释掉的服务 |
enabled |
指定启用的服务 |
disabled与enabled:
前者的参数是禁用的服务列表,后者的参数是启用的服务列表。他们的共同点是格式相同(属性名 服务名列表,服务中间用空格分开,例如:disabled = in.tftpd in.rexecd);此外,它们都是作用于全局的。如果指定了disabled列表被指定,那么无论包含在列表中的服务是否有配置文件和如何设置,都将被禁用;如果enabled列表被指定,那么只有列表中的服务才可启动,如果enabled没有被指定,那么disabled指定的服务之外的所有服务都可以启动。
我
们首先看一个简单的例子。例1是配置文件/etc/xinetd.conf的一个范例。这两种服务的定义看上去像/etc/inetd.conf的原因是
因为它们是用itox工具从/etc/inetd.conf转换得来的,只把/etc/inetd.conf项对应转换成适当的xinetd语法。这样,
这些属性(在大括号中的=号的左边)意义是非常直接的,其相关值(在大括号中的=号的右边)也是如此。
例1 文件/etc/xinetd.conf中的一部分
Serice ftp
{
Socket_type=stream
protocol=tcp
wait=no
user=root
server=root
Server_args= - 1 - a
}
Service telnet
{
Socket_type=stream
protocol=tcp
wait=tcp
user=root
server=/usr/sbin/in.telnetd
}
创建/etc/xinetd.conf文件最容易的方法是用itox工具(该例假定当前工作目录是xinetd的编译目录):
#
xinetd/itox -daemon_dir /usr/sbin /etc/xinetd.conf。itox的参数-daemon_dir
/usr/sbin指定服务程序的目录位置,如果实现了TCP_Wrappers,从/etc/inetd.conf中是不能确定它的,转换完成以后,就
开始增加属性和值,以限制访问并增加登记,最后要手工修改/etc/xinetd.conf以充分利用xinetd的特性;否则,如果只把
/etc/inetd.conf转换为/etc/xinetd.conf, xinetd的行为就和inetd一样了。
表1详述了在/etc/xinetd.conf中最常使用的一些属性和值。当然还有许多其他属性,详细配置选项可以在安装xinetd以后通过man xinetd.conf来得到。在本小节后面的“配置实例”中,将用一些例子阐明其中的许多属性。
表2
中给出only_from和no_access表的语法,定义了指定主机名,IP地址和网络的语法。注意表2中最后一项netmask的语法和之前看到的
有所不同。它没有采用传统的十进制或十六进制netmask的表示方法,而是采用一个整数表示从netmask(用二进制表示)的最高位(最左端)开始起
每位都为1的位数。因此,给定例子的netmask值设置为20,意味着其最左端的20位都设置为1,而余下12位设置为0,或
11111111 11111111 11110000 00000000
它是十进制netmask255.255.240.0的二进制表示。
表2 /etc/xinetd.conf的访问控制表的语法
语 法
描 述
hostname
可解析的主机名。使用和这个主机名相关的所有IP地址
IPaddress
点和十进制形式的标准IP地址,如192.168.0.1
Net_name
/etc/networks中的网络名
x.x.x.0 x.x.0.0
x.0.0.0 0.0.0.0
0作为通配符看待。如项88.3.92.0匹配从88.3.92.0到88.3.92.255的所有IP地址。项0.0.0.0匹配所有地址
x.x.x.{a,b,…}
x.x{a,b,…}
x.{a,b,…}
指定主机表。如172.19.32.{1,56,59}意味着含IP地址172,19.32.1,172.19.32.56和172.19.32.59的表
Ipaddress/netmask
定义要匹配的网络或子网。如172.19.16.0/20匹配从172.19.16.0到172.19.31.255的所有地址
在看了这些基本属性之后,下面我们仔细讨论那些必需的属性,特定服务和一些配置实例。
必需的属性
对每种服务都必须指定某些属性。一些服务比其他服务需要更多属性,因为它们不被缺省定义(即不在/etc/services或/etc/rpc中)。表3列出了必需的属性。
表3 必需的属性
语 法
描 述
Socket_type
所有服务
Wait
所有服务
User
在/etc/services或/etc/rpc中列出的服务
Server
非内部服务
Port
不在/etc/services中的非RPC服务
Protocol
不在/etc/services中的所有RPC服务和所有其他服务
Rpc_version
所有RPC服务
Rpc_number
不列在/etc/rpc中的任何RPC服务
阅读(975) | 评论(0) | 转发(0) |