在Linux系统中有一个终极服务程式inetd,大部分的网络服务都是由他启动的,如chargen、echo、finger、talk、telnet、wu-ftpd等…,在旧版本他的配置是在/etc/inetd.conf中配置的。
在新版本,他就改成了一个xinetd.d目录。
在xinetd.d目录中,每一个服务都有一个相应的配置文档,我们以telnet为例,说明一下各个配置行的含义:
service telnet
{
socket_type=stream
wait=no
user=root
server=/usr/sbin/in.telnetd
log_on_failure+=USERID
disable=yes
}
第一行,说明该配置用来配置telnet服务。
第二行,说明Socket连接类型是stream,也就是TCP
第三行,是指不等待到启动完成
第四行,是指以root用户启动服务进程
第五行,是指服务进程是/usr/sbin/in.telnetd
第六行,是用于做一些出错日志
第七行,是指禁止远方telnet,假如需要开放则将该配置改为:disable=no
修改了xinetd的配置,需要重启xinetd才能够生效,执行如下命令:
/etc/rc.d/init.d/xinetd restart
在/etc/xinetd.d 中参数档案的内容都类似于:
---------------------------------------------------------------------------------------------
service
{
.......
............
}
-------------------------------------------------------------------------------------------
第一行一定都有一个 service,至于那个 里面的内容,则与 /etc/services
有关,因为它可以对照着 /etc/services内的名称与 port number来决定所要启用的 port
是哪个。然后相关的参数就在两个大括号中间。 attribute是一些
xinetd的管理参数,assign_op则是参数的设定方法。assign_op的主要设定形式为:
= :表示后面的设定参数就是这样的
+= :表示后面的设定为“在原来的设定里加上新的参数”
-= :表示后面的设定为”在原来的参数舍弃这里输入的参数“
下面是相关说明:
attribute assign_op 说明与范例
(功能) (允许的动作)
一般设定项目:
1、disable yes/no 允许该 server可以执行或者不能执行。如果我想要启动某个服务,则应设定为: disable = no
2、socket_tpye stream/dgram/raw stream为联机机制较为可靠的TCP包,若为UDP则使用dgram机制。raw代表server需要与IP直接对谈。例如:telnet 使TCP: socket_type = stream
3、protocol tcp/udp/...... 这个东西是说在联机时使用的是哪一种协议。各个协议的代号 可以参考
/etc/protocols内容。此外,除非是你自己设定的服务,否则这个可以不用设定
4、wait yes/no 这就是Multi-threaded 与single-threaded的方式,即如果同时有多人请求服务,是同时进行服务还是按顺序一个一个的服务。 如果允许同时,可设为: wait = no
5、user UID/root 如果服务启动者不要以root为主的话,那么这个地方就可以改变为其它的使用者,例如 nobody 。此外,这个UID必须存在于
/etc/passwd中。
6、group GID 同user,只是这个GID也必须存在于 /etc/group中
7、instance number/UNLIMITED 这个是在同一时间之内,同一个服务可以允许的联机数目,可以写入一个数字进行控制,也可以使用UNLIMITED不限制上限。
8、nice -19~19 设置该程序的优先级,数字越小(负值)越先被执行
9、server program(完整路径) 这个就是指出这个服务的启动程序:例如要启动telnet的话,可以输入: server = /usr/bin/telnet
10、server_args program的一些参数 这里就是在 server那里需要的一些参数
11、log_on_success PID/HOST/USERID/EXIT/DURATION 在成功登入之后,需记录的项目: PID 为记录该server启动时的process
ID,HOST为远程主机的IP,USERID为登入者的账号,EXIT为离开的时候记录的项目,DURATION为该使用者使用此服务多久。
12、log_on_failure HOST/USERID/ATTEMPT/RECORD 在登入失败后被 syslog记录的项目: HOST为远程主机的IP,USERID为登入者账号,ATTEMPT为记录登入
者的企图为何,RECORD为记录远程主机的信息以及为何本机server不
能启动的原因,主要有login,shell,exec,finger等指令可以使用在这里(基本上,可以在
/etc/hosts.allow 或/etc/hosts.deny书写内容)。
高级设定项目:
1、env 'name=value' 这个项目可以让你设定环境变量
2、port number 这里可以设定不同的服务与对应的port,但请记住你的port与服务名称必须与 /etc/services 内记载的相同才行!
4、redirect IP_Address port 将client端对我们的要求,转到另一部主机上去。那个IP_Address 即为远程主机的IP。
5、includedir directory 表示引入此目录底下的所有档案到/etc/xinetd.conf
安全控制项目:
1、bind IP_Address 这个是设定“允许使用此一服务的适配卡”的意思。即如果你的LINUX主机上有两个IP,你只想让IP1可以使用此一服务,但IP2不能,这里就可以将IP1写入。
2、interface IP_Address 与bind相同
3、only_from 0.0.0.0或192.168.1.0/24 或host_name
或domain_name 这东西用在安全机制上面,也就是管制“只有这里面规定的IP或者主机名称可以登入”!如果是0.0.0.0则表示所有主机都可以登入,如果是192.168.1.0/24,则为192.168.1.1~192.168.1.255之间的可登入。另外也可以选择 domainname,例如,.ev.ncku.edu.tw,则为该域内主机可登入。
3、no_access 同上 跟only_from差不多,只是表示为“不可以”登入的主机
4、access_times 00:00-12:00/HH:MM-HH:MM 这个项目在设定“该server启动的时间“,是使用24小时设定。例如你的ftp要在8点到16点开放的话,就是: 08:00-16:00。
5、umask 000/777/022 设定使用者建立目录或档案的时候默认的属性。系统建议值为022。
本文来自ChinaUnix博客,如果查看原文请点: http://blog.chinaunix.net/u2/66402/showart_1120119.html