第十八章 解析 super daemon 的配置文件

前一小节谈到的 super daemon 我们现在知道他是一支总管程序,这个 super daemon 是 xinetd 这一支程序所达成的。 而且由图 1.1.1 我们知道这个[color=red] xinetd[/color] 可以进行安全性或者是其他管理机制的控管, 由图 1.1.2 则可以了解 xinetd 也能够控制联机的行为。这些控制的手段都可以让我们的某些服务更为安全, 资源管理更为合理。而由于 super daemon 可以作这样的管理,因此一些对客户端开放较多权限的服务 (例如 telnet), 或者本身不具有管理机制或防火墙机制的服务,就可以透过 xinetd 来管理啊!

既然这家伙这么重要,那么底下我们就来谈谈 xinetd 这个服务的默认配置文件 [color=red]/etc/xinetd.conf[/color] ,以及各个配置项目的意义啰!

[color=red]默认值配置文件:xinetd.conf[/color]

先来看一看默认的 [color=red]/etc/xinetd.conf[/color] 这个文件的内容是什么吧!

[code="linux"]
# vim /etc/xinetd.conf
defaults
{
# 服务启动成功或失败,以及相关登陆行为的记录文件
log_type = SYSLOG daemon info <==登录文件的记录服务类型
log_on_failure = HOST <==发生错误时需要记录的信息为主机 (HOST)
log_on_success = PID HOST DURATION EXIT <==成功启动或登陆时的记录信息
# 允许或限制联机的默认值
cps = 50 10 <==同一秒内的最大联机数为 50 个,若超过则暂停 10 秒
instances = 50 <==同一服务的最大同时联机数
per_source = 10 <==同一来源的客户端的最大联机数
# 网络 (network) 相关的默认值
v6only = no <==是否仅允许 IPv6 ?可以先暂时不启动 IPv6 支持!
# 环境参数的配置
groups = yes
umask = 002
}

includedir /etc/xinetd.d <==更多的配置值在 /etc/xinetd.d 那个目录内
[/code]

为什么 [color=red]/etc/xinetd.conf[/color] 可以称为默认值的配置文件呢?因为如果你有启动某个 super daemon 管理的服务, 但是该服务的配置值并没有指定上述的那些项目,那么该服务的配置值就以上述的默认值为主! 至于上述的默认值会将 super daemon 管理的服务配置为:『一个服务最多可以有 50 个同时联机, 但每秒钟发起的「新」联机最多仅能有 50 条,若超过 50 条则该服务会暂停 10 秒钟。同一个来源的用户最多仅能达成 10 条联机。 而登陆的成功与失败所记录的信息并不相同。』这样说,可以比较清楚了吧? ^_^ 至于更多的参数说明,我们会在底下再强调的!

既然这只是个默认参数档,那么自然有更多的服务参数文件啰~没错~而所有的服务参数档都在 [color=red]/etc/xinetd.d[/color] 里面,这是因为上表当中的最后一行啊!这样瞭了吧! ^_^。那么每个参数文件的内容是怎样呢?一般来说,他是这样的:


service <service_name>
{
<attribute> <assign_op> <value> <value> ...
.............
}


第一行一定都有个 service ,至于那个 <service_name> 里面的内容,则与 [color=red]/etc/services[/color] 有关,因为他可以对照着 /etc/services 内的服务名称与埠号来决定所要激活的 [color=red]port[/color] 是哪个啊! 然后相关的参数就在两个大刮号中间。attribute 是一些 xinetd 的管理参数, assign_op 则是参数的配置方法。 assign_op 的主要配置形式为:

= : 表示后面的配置参数就是这样啦!
[color=red]+= : 表示后面的配置为『在原来的配置里头加入新的参数』[/color]
-= : 表示后面的配置为『在原来的参数舍弃这里输入的参数!』

用途不太相同,敬请留意呦!好了!底下再来说一说那些 attribute 与 value !

[size=large][b]一个简单的 rsync 范例配置[/b][/size]

我们知道透过 [color=red]super daemon[/color] 控管的服务可以多一层管理的手续来达成类似防火墙的机制, 那么该如何仔细的配置这些类似防火墙机制的配置参数呢?底下我们使用 rsync 这个可以进行远程镜射 (mirror) 的服务来说明。 [color=red]rsync 可以让两部主机上面的某个目录一模一样,在远程异地备援系统上面是挺好用的一个机制。[/color] 而且默认一装好 CentOS 就已经存在这玩意儿了!那就来瞧瞧默认的 rsync 配置文件吧!

[code="linux"]
# vim /etc/xinetd.d/rsync
service rsync <==服务名称为 rsync
{
disable = no <==默认是关闭的!刚刚被我们打开了
socket_type = stream <==使用 TCP 的联机机制之故
wait = no <==可以同时进行大量联机功能
user = root <==启动服务为 root 这个身份
server = /usr/bin/rsync <==就是这支程序启动 rsync 的服务啰
server_args = --daemon <==这是必要的选项啊!
log_on_failure += USERID <==登陆错误时,额外记录用户 ID
}
[/code]

能不能修改 user 成为其他身份呢?[color=red]由于在 /etc/services 当中规定 rsync 使用的端口口号码为 873 ,这个端口小于 1024 ,所以理论上启动这个端口的身份一定要是 root 才行![/color]这里 user 就请您先别乱改啰! 由于鸟哥的测试主机在安装时已经有捉到网络卡,目前有两个接口,一个是 192.168.1.100 ,一个则是 127.0.0.1, 假设我将 192.168.1.100 设计为对外网域, 127.0.0.1 为内部网域,且内外网域的分别权限配置为:

对内部 127.0.0.1 网域开放较多权限的部分:
这里的配置值需绑在 127.0.0.1 这个接口上;
对 127.0.0.0/8 开放登陆权限;
不进行任何联机的限制,包括总联机数量与时间;
但是 127.0.0.100 及 127.0.0.200 不允许登陆 rsync 服务。

对外部 192.168.1.100 网域较多限制的配置:
对外配置绑住 192.168.1.100 这个接口;
这个接口仅开放 140.116.0.0/16 这个 B 等级的网域及 .edu.tw 网域可以登陆;
开放的时间为早上 1-9 点以及晚上 20-24 点两个时段;
最多允许 10 条同时联机的限制。

在这样的规划情况下,我们可以将刚刚上头的 /etc/xinetd.d/rsync 这个文件修改成为:

[code="linux"]
# vim /etc/xinetd.d/rsync
# 先针对对内的较为松散的限制来配置:
service rsync
{
disable = no <==要启动才行啊!
bind = 127.0.0.1 <==服务绑在这个接口上!
only_from = 127.0.0.0/8 <==只开放这个网域的来源登陆
no_access = 127.0.0.{100,200} <==限制这两个不可登陆
instances = UNLIMITED <==取代 /etc/xinetd.conf 的配置值
socket_type = stream <==底下的配置则保留
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}

# 再针对外部的联机来进行限制呢!
service rsync
{
disable = no
bind = 192.168.1.100
only_from = 140.116.0.0/16
only_from += .edu.tw <==因为累加,所以利用 += 配置
access_times = 01:00-9:00 20:00-23:59 <==时间有两时段,有空格隔开
instances = 10 <==只有 10 条联机
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
[/code]

在上面这个配置文件中,鸟哥共写了两段 service rsync 的配置,一段针对内部网域一段针对外部网域, 如果设计完毕你将他重新启动后,就会出现如下的状态喔!

[code="linux"]
# 0. 先看看原本的 873 状态为何!
# netstat -tnlp | grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 4925/xinetd
# 仔细看,仅针对 0.0.0.0 这个全局网域监听而已哩!

# 1. 重新启动 xinetd 吧!不是启动 rsync 喔!别搞错。
# /etc/init.d/xinetd restart
# netstat -tnlp | grep 873
tcp 0 0 192.168.1.100:873 0.0.0.0:* LISTEN 7227/xinetd
tcp 0 0 127.0.0.1:873 0.0.0.0:* LISTEN 7227/xinetd
# 有没有看到两个接口啊~而且, PID 会是同一个呢!
[/code]

如同上面的配置,我们就可以将某个系统服务针对不同的客户端来源指定不同的权限!这样子系统服务可以安全多了! 如果未来你的某些服务想要使用这个咚咚来配置也是 OK 的喔!更多的配置数据就有待您自己的理解了。

转自:[url]http://vbird.dic.ksu.edu.tw/linux_basic/0560daemons_2.php[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值