- 论坛徽章:
- 0
|
解析 super daemon 的设定档
前面提到,Super daemon 就是一支总管许多服务的 daemon ,这支 daemon 在 FC4 上面即是 xinet 啰~ 通常我们也称呼为 xinetd 啦~这支 daemon 来管理许多的服务是有好处的, 最大的优势就是‘安全性较高!’。怎么说呢?因为 super daemon 可以透过额外的资料分析, 来管理谁可以、谁不能使用某个服务,因此,多了一道类似防火墙的手续,自然就能够比较安全一些啦。 而且他还可以记录该服务的使用状态,也可以记录错误登入的资讯,用在管理一些比较危险的服务上面, 确实有他的必要性啦!
底下我们就来谈一谈,这个 super daemon 到底是如何分析的, 当然,就得要先谈一谈,这个 xinetd 的主要预设参数档: /etc/xinetd.conf 啰~
解析 xinetd.conf
先来看一看预设的 /etc/xinetd.conf 这个档案的内容是什么吧!
[root@linux ~]# vi /etc/xinetd.conf
#
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/
defaults
{
instances = 60
{
...
.............
}
第一行一定都有个 service ,至于那个 里面的内容, 则与 /etc/services 有关,因为他可以对照著 /etc/services 内的名称与 port number 来决定所要启用的 port 是那个啊!(/etc/services内记录系统内所有服务的项目。这些服务项目有的放在/etc/init.d目录里,有的放在/etc/xinet.d里。)然后相关的参数就在两个大刮号中间。 attribute 是一些 xinetd 的管理参数, assign_op 则是参数的设定方法。 assign_op 的主要设定形式为:
= : 表示后面的设定参数就是这样啦!
+= : 表示后面的设定为‘在原来的设定里头加入新的参数’
-= : 表示后面的设定为‘在原来的参数舍弃这里输入的参数!’
用途不太相同,敬请留意呦!好了!底下再来说一说那些 attribute 与 value !
attribute
(功能) assing_op
(允许的动作) 说明与范例
一般设定项目:
disable yes
no 允许该 server 可以执行或者是不能执行!当设定为 yes 表示该服务不能执行! 这个设定是一定要的啦。如果我想要启动某个服务,那么这里就要设定成为:
disable = no
socket_type stream
dgram
raw stream 为连线机制较为可靠的 TCP 封包,若为 UDP 封包则使用 dgram 机制。 raw 代表 server 需要与 IP 直接对谈!例如 telnet 使用 TCP ,所以:
socket_type = stream
protocol tcp
udp
.... 这个东西说的是,连线的状态使用的是哪一种协定!?各个协定的代号可以参考 /etc/protocols 内容!此外,除非是你自己设定的服务,否则这个可以不用设定啦!
wait yes
no 这就是我们刚刚提到的 Multi-threaded 与 single-threaded 的方式啦!一般来说,我们希望大家的要求都可以同时被启用,所以可以设定
wait = no
user UID
root 还记得我们在 帐号管理 那一篇提到的 UID 概念吗?对啦!这个 UID 就是那个 UID 啦!要注意的是,假如你的服务启动者不要以 root 为主的话,那么这个地方就可以改变其他的使用者,例如 nobody !这个咚咚也会有安全防护的机制存在!此外,需要注意这个 UID 必须存在于 /etc/passwd 。
group GID 跟 user 的意思相同!只是这个 GID 的使用者也必须存在于 /etc/group 当中!
instances number
UNLIMITED 这个是‘在同一时间之内,同一个服务可以允许的连线数目’的意思, 你可以写入一个‘数字’来控制连线数目,也可以使用 UNLIMITED 来告诉系统‘没有上限’啰!例如你在同时段之内仅允许 ftp 连线有 30 个,那么这里就可以输入 30 啦!
nice -20 ~ 19 还记得我们在 程序管理 里面谈到的那个 nice 指令吗?!对啦!这里就是这个东西啰!数字越小( 负值 )代表该程序越优先被执行!
server program
完整档名 这个就是指出这个服务的启动程式!例如要启动 telnet 的话,其实就是 in.telnetd 这支程式啦!所以这个时候在这里输入
server = /usr/sbin/in.telnetd
server_args program
一些参数 这里应该输入的就是你的 server 那里需要输入的一些参数啦!例如 in.telnetd 当中,我们还可以加入某些参数!
log_on_success PID
HOST
USERID
EXIT
DURATION 在‘成功登入’之后,需要记录的项目:PID 为纪录该 server 启动时候的 process ID , HOST 为远端主机的 IP、USERID 为登入者的帐号、EXIT 为离开的时候记录的项目、 DURATION 为该使用者使用此服务多久?
log_on_failure HOST
USERID
ATTEMPT
RECORD 当登入失败之后被 syslog 登入的项目:HOST为远端主机的 IP,USERID为登入者帐号、 ATTEMPT为记录登入失败者企图的意图为何、RECORD为记录远端主机的资讯!以及为何本机 server 不能启动的原因!主要有 login, shell, exec, finger 等指令可以使用在这里!( 基本上,可以在 /etc/hosts.allow 或 /etc/hosts.deny 书写内容 )。
进阶设定项目:
env 'name=value' 这一个项目可以让你设定环境变数,环境变数的设定规则可以参考 认识 BASH Shell 。
port number 这里可以设定不同的服务与对应的 port ,但是请记住你的 port 与服务名称必须与 /etc/services 内记载的相同才行!
redirect IP_Address port 将 client 端对我们 server 的要求,转到另一部主机上去!呵呵!这个好玩呦! 例如当有人要使用你的 ftp 时,你可以将他转到另一部机器上面去!那个 IP_Address 就代表另一部远端主机的 IP 啰!
includedir directory 表示将某个目录底下的所有档案都给他塞进来 xinetd.conf 这个设定里头!这东西有用多了, 如此一来我们可以一个一个设定不同的项目!而不需要将所有的服务都写在 xinetd.conf 当中!你可以在 /etc/xinetd.conf 发现这个设定呦!
安全控管项目:
bind IP_Address 这个是设定‘允许使用此一服务的介面卡’的意思!举个例子来说,你的 Linux 主机上面有两个 IP ,而你只想要让 IP1 可以使用此一服务,但 IP2 不能使用此服务,这里就可以将 IP1 写入即可!那么 IP2 就不可以使用此一 server 啰
interface IP_Address 与 bind 相同
only_from 0.0.0.0
192.168.1.0/24
host_name
domain_name 这东西用在安全机制上面,也就是管制‘只有这里面规定的 IP 或者是主机名称可以登入!’如果是 0.0.0.0 表示所有的 PC 皆可登入,如果是 192.168.1.0/24 则表示为 C class 的网域!亦即由 192.168.1.1 ~ 192.168.1.255 皆可登入!另外,也可以选择 domain name ,例如 .ev.ncku.edu.tw 就可以允许成大环工系的网域 IP 登入你的主机使用该 server !
no_access 0.0.0.0
192.168.1.0/24
host_name
domain_name 跟 only_from 差不多啦!就是用来管理可否进入你的 Linux 主机启用你的 server 服务的管理项目! no_access 表示‘不可登入’的 PC 啰!
access_times 00:00-12:00
HH:MM-HH:MM 这个项目在设定‘该服务 server 启动的时间’,使用的是 24 小时的设定!例如你的 ftp 要在 8 点到 16 点开放的话,就是: 08:00-16:00。
umask 000
777
022 还记得在 档案权限 里面约略提过的 umask 这个东西吗?呵呵!没错!就是那个鬼玩意儿啰! 可以设定使用者建立目录或者是档案时候的属性!系统建议值是 022 。
OK!我们就利用上面这些参数来架构出我们所需要的一些服务的设定吧! 参考看看底下的设定方法啰! ^_^
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/68904/showart_1832706.html |
|