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

    使用xinetd模式,系統默認使用xinetd的服務可以分爲如下幾類。
標準Internet服務:telnet、ftp。
信息服務:finger、netstat、systat。
郵件服務:imap、imaps、pop2、pop3、pops。
RPC服務:rquotad、rstatd、rusersd、sprayd、walld。
BSD服務:comsat、exec、login、ntalk、shell、talk。
內部服務:chargen、daytime、echo、servers、services、time。
安全服務:irc。
其他服務:name、tftp、uucp。

3.Daemon的啓動腳本和啓動方式。

      1)/etc/init.d/* 啓動腳本放置處centos中的都是在/etc/rc.d/init.d 但是/etc/init.d是鏈接到/etc/rc.d/init.d(/etc/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是參數的設定方法,主要由=,+=,-= ,=表示所跟的值就是屬性,+=就是在原有的基礎上加上新的值,-=就是在原有的基礎上減去值。

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.1 :deny

             rsync:10.10.1.*: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”)




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章