Note For Linux By Jes(12)-认识系统服务(daemons)

时间:2022-01-09 16:06:11

什么是daemon与服务(service)

daemon 的主要分类:

stand_alone:此daemon可以自行单独启动服务

super daemon:一支特殊的daemon 来统一管理

Note For Linux By Jes(12)-认识系统服务(daemons)

服务与端口的对应:

Note For Linux By Jes(12)-认识系统服务(daemons)

daemon 的启动脚本与启动方式:

/etc/init.d/* :启动脚本放置处

/etc/sysconfig/* :各服务的初始化环境配置文件

/etc/xinetd.conf, /etc/xinetd.d/* superdaemon配置文件

/etc/* :各服务各自的配置文件

/var/lib/* :各服务产生的数据库

/var/run/* :各服务的程序之PID记录处





解析superdaemon的配置文件

默认值配置文件:xinetd.conf

attribute (功能)

说明与范例

一般配置项目:服务的识别、启动与程序

disable
(
启动与否)

  • 配置值:[yes|no],默认disable = yes

disable 为取消的意思,此值可配置该服务是否要启动。默认所有的super daemon管理的服务都不启动的。若要启动就得要配置为『disable =no

id
(
服务识别)

  • 配置值:[服务的名称]

虽然服务在配置文件开头『service服务名称』已经指定了,不过有时后会有重复的配置值,此时可以用id来取代服务名称。你可以参考一下/etc/xinetd.d/time-stream来思考一下原理。

server
(
程序文件名)

  • 配置值:[program的完整檔名]

这个就是指出这个服务的启动程序!例如/usr/bin/rsync为启动rsync服务的命令,所以这个配置值就会成为:『server = /usr/bin/rsync

server_args
(
程序参数)

  • 配置值:[程序相关的参数]

这里应该输入的就是你的server那里需要输入的一些参数啦!例如rsync需要加入--daemon,所以这里就配置:『server_args =--daemon 』。与上面server搭配,最终启动服务的方式『/usr/bin/rsync--daemon

user
(
服务所属UID)

  • 配置值:[使用者账号]

如果xinetd是以root的身份启动来管理的,那么这个项目可以配置为其他用户。此时这个daemon将会以此配置值指定的身份来启动该服务的程序喔!举例来说,你启动rsync时会以这个配置值作为该程序的UID

group

user的意思相同!此项目填入组名即可。

一般配置项目:联机方式与联机封包协议

socket_type
(
封包类型)

  • 配置值:[stream|dgram|raw],与封包有关

stream 为联机机制较为可靠的TCP封包,若为UDP封包则使用dgram机制。raw代表server需要与IP直接对谈!举例来说rsync使用TCP,故配置为『socket_type= stream

protocol
(
封包类型)

  • 配置值:[tcp|udp],通常使用socket_type取代此配置

使用的网络协议,需参考/etc/protocols内的通讯协议,一般使用tcpudp。由于与socket_type重复,因此这个项目可以不指定。

wait
(
联机机制)

  • 配置值:[yes(single)|no(multi)],默认wait = no

这就是我们刚刚提到的Multi-threadedsingle-threaded!一般来说,我们希望大家的要求都可以同时被激活,所以可以配置『wait = no 』此外,一般udp 配置为yestcp配置为no

instances
(
最大联机数)

  • 配置值:[数字或UNLIMITED]

这个服务可接受的最大联机数量。如果你只想要开放30个人联机rsync时,可在配置文件内加入:『instances = 30

per_source
(
单一用户来源)

  • 配置值:[一个数字或UNLIMITED]

如果想要控制每个来源IP仅能有一个最大的同时联机数,就指定这个项目吧!例如同一个IP最多只能连10条联机『per_source = 10

cps
(
新联机限制)

  • 配置值:[两个数字]

为了避免短时间内大量的联机要求导致系统出现忙碌的状态而有这个cps的配置值。第一个数字为一秒内能够接受的最多新联机要求,第二个数字则为,若超过第一个数字那暂时关闭该服务的秒数。

一般配置项目:登录文件的记录

log_type
(
登录档类型)

  • 配置值:[登录项目等级]

当数据记录时,以什么登录项目记载?且需要记载的等级为何(默认为info等级)。这两个配置值得要看过下一章登录档后才会知道哩!这边你先有印象即可。

log_on_success
log_on_failure
(
登录状态)

  • 配置值:[PID,HOST,USERID,EXIT,DURATION]

在『成功登陆』或『失败登陆』之后,需要记录的项目:PID为纪录该server启动时候的process IDHOST为远程主机的IPUSERID为登陆者的账号、EXIT为离开的时候记录的项目、DURATION为该用户使用此服务多久?

进阶配置项目:环境、网络端口口与联机机制等

env
(
额外变量配置)

  • 配置值:[变量名称=变量内容]

这一个项目可以让你配置环境变量,环境变量的配置守则可以参考第十一章

port
(
非正规埠号)

  • 配置值:[一组数字(小于65534)]

这里可以配置不同的服务与对应的port,但是请记住你的port与服务名称必须与/etc/services内记载的相同才行!不过,若服务名称是你自定义的,那么这个port就可以随你指定

redirect
(
服务转址)

  • 配置值:[IPport]

client端对我们server的要求,转到另一部主机上去!呵呵!这个好玩呦!例如当有人要使用你的ftp时,你可以将他转到另一部机器上面去!那个IP_Address就代表另一部远程主机的IP啰!

includedir
(
呼叫外部配置)

  • 配置值:[目录名称]

表示将某个目录底下的所有文件都给他塞进来xinetd.conf这个配置里头!这东西有用多了,如此一来我们可以一个一个配置不同的项目!而不需要将所有的服务都写在xinetd.conf当中!你可以在/etc/xinetd.conf发现这个配置呦!

安全控管项目:

bind
(
服务接口锁定)

  • 配置值:[IP]

这个是配置『允许使用此一服务的适配卡』的意思!举个例子来说,你的Linux主机上面有两个IP,而你只想要让IP1可以使用此一服务,但IP2不能使用此服务,这里就可以将IP1写入即可!那么IP2就不可以使用此一server

interface

  • 配置值:[IP]

bind相同

only_from
(
防火墙机制)

  • 配置值:[0.0.0.0,192.168.1.0/24, hostname, domainname]

这东西用在安全机制上面,也就是管制『只有这里面规定的IP或者是主机名可以登陆!』如果是0.0.0.0表示所有的PC皆可登陆,如果是192.168.1.0/24则表示为C class的网域!亦即由192.168.1.1 ~ 192.168.1.255皆可登陆!另外,也可以选择domain name,例如.dic.ksu.edu.tw就可以允许昆山资传系网域的IP登陆你的主机使用该server

no_access
(
防火墙机制)

  • 配置值:[0.0.0.0,192.168.1.0/24, hostname, domainname]

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







服务的防火墙管理xinetd,TCP Wrappers

/etc/hosts.allow, /etc/hosts.deny 管理

TCP Wrappers 特殊功能:spawn(action)twist(action)







系统开启的服务

观察系统启动的服务:netstat-tulp

配置启动后立即启动服务的方法:

/etc/init.d/* start

chkconfig:管理系统服务默认启动启动与否

ntsysv:类图形接口管理模式