`

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

 
阅读更多
前一小节谈到的 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 这个文件的内容是什么吧!

[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
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    rsync二:daemon端配置文件

    对于需要进行持续性数据同步的企业环境来说,通过配置rsync daemon能够实现更加便捷且高效的文件传输。本文将深入探讨rsync daemon配置文件`rsyncd.conf`的具体内容,帮助读者理解其工作原理及如何正确设置各项参数...

    docker配置文件daemon.json

    docker配置文件daemon.json

    Nginx 配置文件解析.docx

    `ngx_conf_parse`函数是解析配置文件的关键,它逐行读取配置文件,对每条指令进行处理。配置指令如`daemon`会被`ngx_conf_set_flag_slot`函数处理,根据配置设置`ngx_core_conf_t`结构体中的相应成员。 在配置文件...

    mongodb的配置文件标准化与三种通常的启动方式介绍

    MongoDB 的启动方式有三种,一种是命令行启动方式,另一种是配置文件启动方式,第三种是以 daemon 的方式启动 MongoDB 服务。命令行启动方式是指直接在命令行中输入 MongoDB 的启动命令,以便快速启动 MongoDB 服务...

    Daemon Tools Pro Advanced 5.1.0.0333 单文件版

    Daemon Tools Pro Advanced 5.1.0.0333 单文件版 绿色 免安装 用于刻录 装虚拟光驱 方便 直接运行 运行后托盘形式

    redis-6.2.5 配置文件redis.conf

    redis官方docker镜像时没有redis.conf文件的,如果想设置redis以daemon方式启动,需要将这个配置文件挂载进容器中,以这个配置文件启动。

    pppd拨号配置文件,放入相应目录直接可用。使用方法pppd call 4gnet&amp;

    标题中的“pppd拨号配置文件”指的是PPPD(Point-to-Point Protocol Daemon)的配置文件,这是一种在Unix-like系统中广泛使用的拨号工具,用于建立点对点连接,包括通过电话线、ISDN、ADSL等进行互联网接入。...

    daemon.c文件

    daemon.c 文件 在linux下直接编译运行 即可

    java配置文件 beta v3.0

    在Java中,可以通过Apache Commons Daemon或其他第三方库将Java应用程序包装为Windows服务,以便在系统启动时自动运行。 综上所述,"java配置文件 beta v3.0"是一个全面支持多种配置文件格式的解决方案,适应性强,...

    Daemon_Tools Daemon_Tools

    Daemon Tools是一款著名的虚拟光驱软件,它在IT行业中被广泛使用,特别是在安装大型游戏或软件时,无需物理光驱即可运行CD/DVD镜像文件。该软件的主要功能是模拟光驱设备,允许用户加载ISO、BIN等镜像文件,极大地...

    daemon.rar daemon.rar

    "daemon.rar" 是一个包含"daemon.exe"的压缩包,该文件通常指的是Daemon Tools,这是一个非常流行的虚拟光驱软件,尤其适用于Windows操作系统。 Daemon Tools允许用户加载ISO、BIN等光盘映像文件,模拟出一个或多个...

    Linux进程init主配置文件etcinittab的解析IT知识

    ### Linux 进程init主配置文件/etc/inittab解析 #### 概述 在Linux系统中,`init` 是所有进程的祖先,它的PID始终为1。`init`进程负责初始化整个系统,并根据系统运行级别(runlevel)来启动相应的服务。`init`...

    Daemon317 344 346 347

    由于这些系统较为老旧,对硬件资源的需求较低,Daemon Tools的旧版本设计是为了与这些系统兼容,确保在低配置的计算机上也能顺畅运行。 4. **不同版本间的差异**:虽然都是Daemon Tools的旧版本,但每个版本可能...

    bacula的配置文件

    在你提供的文件名中,`bacula-dir.conf` 是 Director 的配置文件,`bacula-sd.conf` 是 Storage Daemon 的配置文件,而 `bacula-fd.conf` 是 File Daemon 的配置文件。 ### bacula-dir.conf (导演配置文件) **目录...

    daemon-0.8.tar.gz

    此时,你可以看到 "daemon-0.8" 目录,里面可能包含源代码文件、配置文件、文档、编译脚本等。 守护进程(daemon)通常由C、C++、Python等编程语言编写。在 "daemon-0.8" 目录中,源代码文件(如 .c 或 .cpp)是...

    vsftp运行配置文件

    VSFTPd(Very Secure FTP Daemon)是一款非常安全的FTP服务器软件,主要在Unix-like系统上运行,如Linux。它的配置文件对于确保服务器的安全性和功能性至关重要。以下是对标题和描述中涉及的知识点的详细说明: 1. ...

    DAEMON虚拟光驱安装文件

    安装某些软件需要安装虚拟光驱,本软件亲测可用

    解析 Epub格式文件的dameon

    本文将深入解析Epub格式,并介绍如何使用daemon来处理这种文件。 首先,Epub文件本质上是一个ZIP压缩包,包含了多个组成部分,如OPS(Open Package Structure)文件夹,包含了书籍的主要内容,OPF(Open Package ...

    daemontools 3.4.7简体中文

    **daemontools 3.4.7简体中文版:强大的虚拟光驱软件** daemontools是一款经典的系统管理工具,主要用于创建、管理和监控服务(daemon)在Unix-like操作系统中的运行状态。由David J. Butenhof开发,它提供了一套...

    虚拟光驱-DAEMON Tools V3.46 简体中文版

    虚拟光驱的工作原理主要是通过模拟光驱硬件,读取并解析ISO、BIN等光盘映像文件,将其内容加载到内存中,形成一个虚拟的光驱设备。这样,操作系统就可以像操作物理光驱一样,访问这些虚拟光盘上的内容。DAEMON Tools...

Global site tag (gtag.js) - Google Analytics