前一小节谈到的 super daemon 我们现在知道他是一支总管程序,这个 super daemon 是 xinetd 这一支程序所达成的。 而且由图 1.1.1 我们知道这个
xinetd 可以进行安全性或者是其他管理机制的控管, 由图 1.1.2 则可以了解 xinetd 也能够控制联机的行为。这些控制的手段都可以让我们的某些服务更为安全, 资源管理更为合理。而由于 super daemon 可以作这样的管理,因此一些对客户端开放较多权限的服务 (例如 telnet), 或者本身不具有管理机制或防火墙机制的服务,就可以透过 xinetd 来管理啊!
既然这家伙这么重要,那么底下我们就来谈谈 xinetd 这个服务的默认配置文件 /etc/xinetd.conf ,以及各个配置项目的意义啰!
默认值配置文件:xinetd.conf
先来看一看默认的 /etc/xinetd.conf 这个文件的内容是什么吧!
为什么 /etc/xinetd.conf 可以称为默认值的配置文件呢?因为如果你有启动某个 super daemon 管理的服务, 但是该服务的配置值并没有指定上述的那些项目,那么该服务的配置值就以上述的默认值为主! 至于上述的默认值会将 super daemon 管理的服务配置为:『一个服务最多可以有 50 个同时联机, 但每秒钟发起的「新」联机最多仅能有 50 条,若超过 50 条则该服务会暂停 10 秒钟。同一个来源的用户最多仅能达成 10 条联机。 而登陆的成功与失败所记录的信息并不相同。』这样说,可以比较清楚了吧? ^_^ 至于更多的参数说明,我们会在底下再强调的!
既然这只是个默认参数档,那么自然有更多的服务参数文件啰~没错~而所有的服务参数档都在 /etc/xinetd.d 里面,这是因为上表当中的最后一行啊!这样瞭了吧! ^_^。那么每个参数文件的内容是怎样呢?一般来说,他是这样的:
第一行一定都有个 service ,至于那个 <service_name> 里面的内容,则与 /etc/services 有关,因为他可以对照着 /etc/services 内的服务名称与埠号来决定所要激活的 port 是哪个啊! 然后相关的参数就在两个大刮号中间。attribute 是一些 xinetd 的管理参数, assign_op 则是参数的配置方法。 assign_op 的主要配置形式为:
= : 表示后面的配置参数就是这样啦!
+= : 表示后面的配置为『在原来的配置里头加入新的参数』
-= : 表示后面的配置为『在原来的参数舍弃这里输入的参数!』
用途不太相同,敬请留意呦!好了!底下再来说一说那些 attribute 与 value !
一个简单的 rsync 范例配置
我们知道透过 super daemon 控管的服务可以多一层管理的手续来达成类似防火墙的机制, 那么该如何仔细的配置这些类似防火墙机制的配置参数呢?底下我们使用 rsync 这个可以进行远程镜射 (mirror) 的服务来说明。 rsync 可以让两部主机上面的某个目录一模一样,在远程异地备援系统上面是挺好用的一个机制。 而且默认一装好 CentOS 就已经存在这玩意儿了!那就来瞧瞧默认的 rsync 配置文件吧!
能不能修改 user 成为其他身份呢? 由于在 /etc/services 当中规定 rsync 使用的端口口号码为 873 ,这个端口小于 1024 ,所以理论上启动这个端口的身份一定要是 root 才行!这里 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 这个文件修改成为:
在上面这个配置文件中,鸟哥共写了两段 service rsync 的配置,一段针对内部网域一段针对外部网域, 如果设计完毕你将他重新启动后,就会出现如下的状态喔!
如同上面的配置,我们就可以将某个系统服务针对不同的客户端来源指定不同的权限!这样子系统服务可以安全多了! 如果未来你的某些服务想要使用这个咚咚来配置也是 OK 的喔!更多的配置数据就有待您自己的理解了。
转自: http://vbird.dic.ksu.edu.tw/linux_basic/0560daemons_2.php
既然这家伙这么重要,那么底下我们就来谈谈 xinetd 这个服务的默认配置文件 /etc/xinetd.conf ,以及各个配置项目的意义啰!
默认值配置文件:xinetd.conf
先来看一看默认的 /etc/xinetd.conf 这个文件的内容是什么吧!
[root@www ~]# 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 那个目录内
为什么 /etc/xinetd.conf 可以称为默认值的配置文件呢?因为如果你有启动某个 super daemon 管理的服务, 但是该服务的配置值并没有指定上述的那些项目,那么该服务的配置值就以上述的默认值为主! 至于上述的默认值会将 super daemon 管理的服务配置为:『一个服务最多可以有 50 个同时联机, 但每秒钟发起的「新」联机最多仅能有 50 条,若超过 50 条则该服务会暂停 10 秒钟。同一个来源的用户最多仅能达成 10 条联机。 而登陆的成功与失败所记录的信息并不相同。』这样说,可以比较清楚了吧? ^_^ 至于更多的参数说明,我们会在底下再强调的!
既然这只是个默认参数档,那么自然有更多的服务参数文件啰~没错~而所有的服务参数档都在 /etc/xinetd.d 里面,这是因为上表当中的最后一行啊!这样瞭了吧! ^_^。那么每个参数文件的内容是怎样呢?一般来说,他是这样的:
service <service_name> { <attribute> <assign_op> <value> <value> ... ............. }
第一行一定都有个 service ,至于那个 <service_name> 里面的内容,则与 /etc/services 有关,因为他可以对照着 /etc/services 内的服务名称与埠号来决定所要激活的 port 是哪个啊! 然后相关的参数就在两个大刮号中间。attribute 是一些 xinetd 的管理参数, assign_op 则是参数的配置方法。 assign_op 的主要配置形式为:
= : 表示后面的配置参数就是这样啦!
+= : 表示后面的配置为『在原来的配置里头加入新的参数』
-= : 表示后面的配置为『在原来的参数舍弃这里输入的参数!』
用途不太相同,敬请留意呦!好了!底下再来说一说那些 attribute 与 value !
一个简单的 rsync 范例配置
我们知道透过 super daemon 控管的服务可以多一层管理的手续来达成类似防火墙的机制, 那么该如何仔细的配置这些类似防火墙机制的配置参数呢?底下我们使用 rsync 这个可以进行远程镜射 (mirror) 的服务来说明。 rsync 可以让两部主机上面的某个目录一模一样,在远程异地备援系统上面是挺好用的一个机制。 而且默认一装好 CentOS 就已经存在这玩意儿了!那就来瞧瞧默认的 rsync 配置文件吧!
[root@www ~]# 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 }
能不能修改 user 成为其他身份呢? 由于在 /etc/services 当中规定 rsync 使用的端口口号码为 873 ,这个端口小于 1024 ,所以理论上启动这个端口的身份一定要是 root 才行!这里 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 这个文件修改成为:
[root@www ~]# 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 }
在上面这个配置文件中,鸟哥共写了两段 service rsync 的配置,一段针对内部网域一段针对外部网域, 如果设计完毕你将他重新启动后,就会出现如下的状态喔!
# 0. 先看看原本的 873 状态为何! [root@www ~]# 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 喔!别搞错。 [root@www ~]# /etc/init.d/xinetd restart [root@www ~]# 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 会是同一个呢!
如同上面的配置,我们就可以将某个系统服务针对不同的客户端来源指定不同的权限!这样子系统服务可以安全多了! 如果未来你的某些服务想要使用这个咚咚来配置也是 OK 的喔!更多的配置数据就有待您自己的理解了。
转自: http://vbird.dic.ksu.edu.tw/linux_basic/0560daemons_2.php