一般而言,在 /etc/rc.d/init.d/ 里面的 scripts 都是发展者之 RPM 所提供的,如果您有兴趣自行发展你的软件的话,那么可以直接以这样的方式来独立启动的!不过,我们也可以经由 super daemon 来管理我们的服务,因为这个 super daemon 可以提供相当多的功能,尤其是安全性方面的功能,所以,我们就来谈一谈如何使用这个东西吧!
 
先来看一看预设的 /etc/xinetd.conf 这个档案的内容是什么吧!

 

#
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/

defaults
{
        instances               = 60
        log_type                = SYSLOG authpriv
        log_on_success          = HOST PID
        log_on_failure          = HOST
        cps                     = 25 30
}

includedir /etc/xinetd.d

内容格式:
service <service_name>
{
       <attribute> <assign_op> <value> <value> ...
       ...
}

在上面的预设范例当中,说明的是:『如果没有指定的 services ( defaults ) 那么就用 {} 里面的设定来执行之!』正常的情况之下有点像上面例子中的黄色字体所示,那个 <> 里头的数据我们先来说明一下:注:那个 assign_op 主要有三种形式,分别如下:

= : 表示后面的设定参数就是这样啦!
+= : 表示后面的设定为『在原来的设定里头加入新的参数
-+ : 表示后面的设定为『在原来的参数舍弃这里输入的参数!』

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

attribute
(功能)
assing_op
(允许的动作)
说明
(范例)
一般设定项目:
disable yes
no
允许该 server 可以执行或者是不能执行!
当设定为 yes 表示该服务不能执行!
socket_type stream
dgram
raw
当联机为 TCP 封包时,则使用 stream 类型
当联机为 UDP 封包时,则使用 dgram  类型
raw 代表 server 需要与 IP 直接对谈!
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 -19 ~ 19 还记得我们在 程序管理 里面谈到的那个 nice 指令吗?!对啦!这里就是这个东西啰!数字越小( 负值 )代表该程序越优先被执行!
server program
/usr/sbin/in.ftpd
这个就是指出这个服务的启动程序!例如要启动 ftp 的话,其实就是 in.ftpd 这支程序啦!所以这个时候在这里输入 server = /usr/sbin/in.ftpd
server_args 一些参数 这里应该输入的就是你的 server 那里需要输入的一些参数啦!例如 in.ftpd 当中,我们可能就需要输入 -l -a 这个参数说!
log_on_success PID
HOST
USERID
EXIT
DURATION
在『成功登入』之后,需要记录的项目:PID为纪录该 server 启动时候的 process ID ,HOST 为远程主机的 IP、USERID 为登入者的账号、EXTI 为离开的时候记录的项目、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_path 表示将某个目录底下的所有档案都给他塞进来 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 。

当然上面的参数不需要每个都设定啦!只要设定需要的就可以啦!而在 /etc/xinetd.conf 这个档案当中,一定会看到『 includedir = /etc/xinetd.d 』这一行!这说明的是,除了 /etc/xinetd.conf 之外,所有在 /etc/xinetd.d 的档案都是可以用来设定的啦!!好了,我们来举个简单的 telnet 的例子吧!那就是 /etc/xinetd.d/telnet 这个档案,如果你的 Mandrake 9.0 当中没有这个档案,那表示还没有安装telnet-server-krb5-1.2.5-1mdk这个套件,请先安装他吧!然后,他的内容有点像这样:
 

service telnet
{
    disable     = yes         <==服务预设是关闭的
    flags      = REUSE        <==额外使用的参数
    socket_type   = stream       <==使用 tcp 封包常用的联机型态
    wait      = no          <==不需等待,可以同时允许多个联机
    user      = root        <==启动程序的使用者身份
    server     = /usr/sbin/telnetd  <==服务启动的程序
    server_args   = -a none       <==上面那个程序的参数
    log_on_failure += USERID       <==错误登入时,要记录下来的内容
}

上面的表格中,已经说明了每一项参数的意义!如果原本的默认值你并不满意,那么你可以修改成比较安全与多一点机制。假设你这个 Linux 是一部主机,而且他有两块网络接口,分别是对外的 140.116.44.125 与对内的 192.168.0.254 这两个,如果你想要让对内的接口限制较松,而对外的限制较严格,你可以这样的来设定呢:

 

# 先针对对内的较为松散的限制来设定:
service telnet
{
    disable     = no          <==预设就是启动 telnet 服务
    bind       = 192.168.0.254    <==只允许经由这个适配卡的封包进来
    only_from    = 192.168.0.0/24   <==只允许 192.168.0.0/24 这个网段
                         的主机联机进来使用 telnet 的服务
    instances    = UNLIMITED      <==同时允许联机不限制!
    nice       = 0          <==使用的优先级较高
    flags      = REUSE        <==额外使用的参数
    socket_type   = stream       <==使用 tcp 封包常用的联机型态
    wait      = no         <==不需等待,可以同时允许多个联机
    user      = root        <==启动程序的使用者身份
    server      = /usr/sbin/telnetd  <==服务启动的程序
    server_args   = -a none       <==上面那个程序的参数
    log_on_failure += USERID       <==错误登入时,要记录下来的内容
}

# 再针对外部的联机来进行限制呢!
service telnet
{
    disable     = no                  <==预设就是启动 telnet 服务
    bind       = 140.116.44.125      <==只允许经由这个适配卡的封包进来
    only_from    = 140.116.0.0/16      <==只允许 140.116.0.0 ~ 140.116.255.255
                                                这个网段联机进来使用 telnet 的服务
    only_from    = .edu.tw             <==重复设定,只有教务界才能联机!
    no_access    = 140.116.32.{10,26}  <==不许这些 PC 登入
    access_times  = 1:00-9:00 20:00-23:59
                                              <==每天只有这两个时段开放服务
    umask      = 022                 <==建立档案时的预设属性设定
    instances    = 10                  <==同时只允许 10 个联机
    nice      = 10                  <==使用的优先级较低
    flags      = REUSE               <==额外使用的参数
    socket_type   = stream              <==使用 tcp 封包常用的联机型态
    wait      = no                  <==不需等待,可以同时允许多个联机
    user      = root                <==启动程序的使用者身份
    server     = /usr/sbin/telnetd   <==服务启动的程序
    server_args   = -a none             <==上面那个程序的参数
    log_on_failure += USERID             <==错误登入时,要记录下来的内容
}

呵呵!如上面的设定,我们可以将 telnet 的启动项目进行更多的限制!如此一来,将有助于我们的安全防护呢!尤其如果可以针对不同的接口来设定,嘿嘿!就更加的棒啰!不过,请注意喔!如果照上面的设定,那么您的主机上面将会开了两个 23 port 的接口,分别是给两个接口来使用的呢!嗯!真好玩?同样的,你也可以针对自己的喜好来设定你的其它 daemon 使他挂在 xinetd 底下呢!

Linux (转)解析 xinetd.conf相关推荐

  1. 解析 xinetd.conf

    [From]http://www.vbird.org/linux_basic/0560daemons.php 先來看一看預設的 /etc/xinetd.conf 這個檔案的內容是什麼吧! [root@ ...

  2. linux下解析域名

    linux下解析域名<?xml version="1.0" encoding="UTF-8"?> vi /etc/resolv.conf names ...

  3. linux服务篇-Xinetd服务

    Xinetd=eXtended InterNET services daemon(扩展互联网服务守护进程=超级互联网守护进程=超级服务),xinetd是新一代的网络守护进程服务程序,又叫超级Inter ...

  4. Linux系统之Xinetd服务

    在Linux系统中,当我们启动某个服务时,对应的会启动该服务对应的守护进程daemon. 一.先来介绍下daemon 1.daemon是什么 我们先来简单介绍下什么是服务(service).Linux ...

  5. Linux下解析域名命令-dig 命令使用详解

    Linux下解析域名除了使用nslookup之外,开可以使用dig命令来解析域名,dig命令可以得到更多的域名信息.dig 命令主要用来从 DNS 域名服务器查询主机地址信息.dig的全称是 (dom ...

  6. 架构师成长记_第四周_09_Nginx的模块解析及conf配置解析

    Nginx模块解析 nginx.conf 配置解释 #user nobody; // 默认由 nobody 调用 worker 进程, 可以修改为 root worker_processes 2; / ...

  7. Linux进程状态解析

    Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有 不同的状态. Linux进程状态:R (TASK_RUNNING),可执行状态. 只有在该 ...

  8. linux ini文件,Shell script - Linux下解析ini配置文件

    导语Linux 有时候需要统计多台主机上面的数据,比如合并N多主机的日志,然后进行下一步的分析.这个时候如果直接把所有主机IP写死到脚本中的话,下次新增一台主机,就需要再去修改脚本,如果涉及到多个脚本 ...

  9. Linux C解析命令行参数代码

    背景 Linux下解析main函数参数,使用getopt,依赖头文件:#include <unistd.h>. 代码如下: static char g_deviceid[32] = {0} ...

  10. linux通用自启动管理,linux下通过xinetd服务管理 rsync 实现开机自启动

    1.1 xinetd服务配置 1.1.1 检查xinetd服务是否安装 [root@backup ~]# rpm -qa xinetd [root@backup ~]# rpm -ql xinetd ...

最新文章

  1. 《LeetCode力扣练习》第17题 电话号码的字母组合 Java
  2. 手机+笔记本上NET网教程--5步让你轻松上网
  3. 添加github ssh 公钥
  4. 2020亚太杯数学建模_比赛 | 2020年APMCM亚太地区大学生数学建模竞赛
  5. java中的循环结构_Java中的循环结构进阶
  6. 初始化参数文件修改错误导致Oracle无法startup
  7. Introduction to Latent Dirichlet Allocation
  8. 通达信波段王指标公式主图_通达信波段王+精准买卖提示主图指标公式
  9. idea代码格式化的自定义
  10. 信号与系统相关知识回顾总结
  11. 信度spss怎么做_怎么用spss处理信度和效度?
  12. java代理模式租房案例
  13. java中pmt计算_5个财务函数FV、PV、PMT、NPER与
  14. python字符串去掉特殊符号_python去特殊字符_python 去字符串中特殊符号 - CSDN
  15. 第6例:菲波那切数列
  16. 用Python去优惠券,看到结果我呆了!
  17. 博图只能通过地址相同设备找到plc_西门子全系列及博图软件常见问题解答
  18. oracle数据库impdp命令的使用方法
  19. 网络基础 — 路由器的原理和作用
  20. css-filter属性-融合效果-1.1

热门文章

  1. 用户体验报告(Echo)
  2. 自己动手用electron+vue开发博客园文章编辑器客户端【一】
  3. scrapy分布式爬虫设置
  4. 让一个视图对触摸事件作出响应, 需要实现的方法
  5. 关于float与double区别
  6. 首个万人远程培训项目顺利启动
  7. Excel 4.0宏躲避杀软检测(转)
  8. HyperLedger Fabric 1.4 kafka生产环境部署(11.1)
  9. Codeforce 697A - Pineapple Incident
  10. Windows安装RabbitMQ集群的几个注意点