首页 > 代码库 > linux 系统服务

linux 系统服务

前言:哎,最近行要搭建服务器,才发现自己连系统服务都不是很了解,于是立马开始补补脑。

内容:

1.   首先解释一个单词,daemon((希腊神话中)半人半神的精灵; 守护神)。所以daemon就是和service没什么大区别了,就是保证机器能够正常的提供服务。要是非要区分的话,就是每个service都要有一个daemon,所以daemon就是提供服务启动的程序。

2.   服务类型:stand_alone和super daemon。

        Stand_alone:就是能够单独启动的服务。Httpd(www)、vsftpd(ftp)特点:随时待命(常驻内存)

        Supersaemon就是对一些daemon进行管理的。就是超级守护进程(xinted)特点:需要调度(用完退出内存)super daemon分类:multi-threaded(多线程),single-threaded(单线程)。

        解释一下:这里的stand _alone就是单窗口,只做某项业务,super daemon是一个综合的窗口可以办理很多的业务,但是这个窗口也有不同,有一种是接受一个业务,这个窗口的业务除了办理这个业务的业务员,其他的都休息,还有一种就是同时接受很多的业务,这窗口的业务员都进行不同的工作。

        区分daemon工作形态的类型:

        Single-control:通过信号管理,只要有任何客户需求,会立即启动。

        Interval-control: 就是按照时间间隔来进行工作的,例如atd、crond

        注意:daemon的命名规则是程序文件名+d

3.Daemon的启动脚本和启动方式。

      1)/etc/init.d/* 启动脚本放置处centos中的都是在/etc/rc.d/init.d 但是/etc/init.d是链接到/etc/rc.d/init.d

      2)/etc/sysconfig/* 各种服务的配置文件

3)/etc/xinetd.conf,/etc/xinetd.d/* :super daemon 的配置文件。

     /etc/xinetd.conf是主要配置文件(默认配置文件)

     /etc/xinetd.d/* 都是每个受到管理的服务的配置。

4)/etc/* 各种服务的配置

5)/var/lib/*各种服务产生的数据库。

6)/var/run/*:各服务程序之PID记录处。

注意启动daemon的方法中可以用/etc/init.d/服务名 {start|stop|restart| status}

也可以用service服务名 {start|stop|restart| status} ,此处的service也是一种脚本,其实也是执行的/etc/init.d/服务名方式。

4.superdaemo的启动。

    首先:要进入到/etc/xinted.d/* 中对应问服务中修改配置文件,disable = no

    然后:重启xinted

    关闭操作:修改文件,然后重启xinted

5.xinted能够进行安全性或者是其他管理机制是由于能够配置他的配置文件/etc/xinted.conf

简单说一下配置文件:

log_type    = SYSLOG daemon info 记录文件的记录服务类型。

        log_on_failure  = HOST 发生错误时需要记录的信息为主机

        log_on_success  = PID HOST DURATION EXIT 成功登陆或者启动时的记录信息。

           cps             = 50 10 同一秒内最大联机数为50个,超过50个暂停10秒

        instances       = 50 同一服务器的最大同时联机数

        per_source      = 10 同一来源的客户端的最大联机数。

        v6only          = no 仅允许ipv6 。

groups          = yes 这两个是环境参数设定。

        umask           = 002

includedir/etc/xinetd.d 跟多的设定值在/etc/xinetd.d目录

注意:如果对应的服务/etc/xinetd.d/* 对应的服务中没有配置相关的属性,那么就会按照/etc/xinetd.conf中的配置进行设定。

6./etc/xinetd.d/*下配置文件的格式是

              service <service_name>

        {

              <attribute>   <assign_op>  <value> <value>

        }

        解释一下:service_name要和/etc/services服务名一样,因为这里有名字和端口的对应。Xinetd自身并没有用端口,而其中的服务有端口。

        attribute是一些管理参数,assign_op是参数的设定方法,主要由=,+=,-= ,=表示所跟的值就是属性,+=就是在原有的基础上加上新的值,-=就是在原有的基础上减去值。

        

        7.说说服务的防火墙xinetd,TCP Wrappers

        Linux默认的是提供一个软件分析的工具,/etc/hosts.deny,/etc/hosts.allow

        /etc/hosts.{allow|deny}是能够接受或者是拒绝来自因特网的联机。

        Xinetd就是透过/etc/hosts.{allow,deny}进行IP地址过滤,其实no_access,和only_from也可以达到目的,但是这两个文件能够集中的管理。

        注意:/etc/hosts.{allow,deny}也是/usr/sbin/tcpd的配置文件,而/usr/sbin/tcpd本身就是分析进入系统TCP网络封包的软件,所以TCP wrapper管控的就IP和IP段,还有就是port。

        也就是说支持TCP warppers或者是受xinetd管理就能用/etc/hosts.{allow,deny}来处理。

wKioL1RFwobha2JZAAHsaXjs_ws214.jpg

wKioL1RFwr-BjgflAAIQLuToxUE969.jpg

wKiom1RFwouAbzY-AAGw_NuOk9g063.jpg

wKiom1RFwpeCvYRGAAJVCoJ4CLg244.jpg

wKiom1RFwqezZeSVAACGLmPNKEc256.jpg

wKioL1RFwwKTzfLgAAG7ut91ZSg855.jpg

wKioL1RFww_BvctKAAHb4sB-zRU545.jpg

8.说一说如何知道程序支持TCP wrapper

        通过检查程序是不是依赖libwrap.so这个函数库,使用ldd $(which sshd)命令检查。

9.如何配置/etc/hosts.{allow,deny}这两个文件,以下是语法:

        1)<service(program_name)>:<IP,domain,hostname>:<action>

        Program_name就是程序的名字例如:/usr/bin/rsync 就写rsync。

        2)action:就是allow和deny。高级的spawn:twist

        例如:vim /etc/hosts.deny

        rsync:127.0.0.100127.0.0.200 :deny

        注意:在/etc/hosts.allow文件中最后的allow是可以省略的,同理在/etc/hosts.deny中,但是这两个是有判断顺序的,两个有分歧的时候以allow文件为准。这两个文件的建议写法是,把允许的写入到/etc/hosts.allow ,把不允许的写入到/etc/hosts.deny

        3)对于前两个字段有一些特殊的参数:

              ALL:代表全部的program_name 或者所有IP都接受例如:ALL:ALL:deny(所有的IP地址都不允许使用任何的服务)

        LOCAL:代表本机的意思,例如:ALL:LOCAL:allow(本机允许使用所有的服务)

        UNKNOWN:代表不知道的IP或者是domain或者是服务时。

        KNOWN:代表为可解析的IP,domain等等信息时。

        注意:这里强调。Service_name其实是启动该服务的程序,例如:/etc/init.d/sshd这个script,实际上是启动的ssh服务的是sshd这个程序,所以,你的service_name自然就是sshd,而/etc/xinetd.d/telnet是指到in.telnetd这个程序来启动的所以用in.telnetd.

10.谈谈TCPwrappers特殊的功能

        前提:安装tcp_wrappers

        更加功能强大的动作:spawn(action),可以利用后面的shell来进行额外的工作,且有变量功能,主要的变量内容有:%h(hostname),%a(address),%d(daemon)等、

        twist(action)立刻以后续的命令进行,执行完后终止该次的联机要求。

        实例:

        1.利用safe_finger去追踪出对方主机信息(包括主机名、用户相关信息等);

        2.将该追踪到的结果以email的方式寄给本机的root;

        3.在对方的屏幕上显示不可登入且警告他已经被记录。

        注意:由于这些都是抵挡的机制,所以这两个动作大多是卸载/etc/hosts.deny中

        #Vim/etc/hosts.deny

        rsync:ALL:spawn(echo  “security notice from host \ $(/bin/hostname)”;echo;/usr/sbin/safe_finger@%h) | /bin/mail –s “%d -%h security” root & :twist (/bin/echo –e “\n\nWarningconnection not allowed.\n\n”)




本文出自 “技术至上” 博客,请务必保留此出处http://wuxiangdong.blog.51cto.com/8274747/1566180

linux 系统服务