亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 6280 | 回復(fù): 17
打印 上一主題 下一主題

認(rèn)識系統(tǒng)服務(wù) daemons(轉(zhuǎn)貼) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2003-08-08 16:59 |只看該作者 |倒序瀏覽
轉(zhuǎn)貼,原文地址:http://linux.vbird.org/linux_basic/0560daemons.php

一、什么是 daemon:1、/etc/services,2、 命名規(guī)則,
二、系統(tǒng)的 Daemons 放在哪里: 1、/etc/rc.d/init.d/, 2、/etc/xinetd.conf, 3、/etc/xinetd.d,
三、解析 xinetd.conf
四、TCP_Wrappers : 1、/etc/hosts.allow,2、 /etc/hosts.deny,
五、系統(tǒng)開啟的服務(wù): 1、netstat, 2、ntsysv, 3、chkconfig,
六、各個服務(wù)的簡單說明


一、什么是 daemon
如果您常常上網(wǎng)去查看一些數(shù)據(jù)的話,尤其是關(guān)于 Unix-Like 的相關(guān)操作系統(tǒng),如 FreeBSD, Unix, Linux 等等,應(yīng)該會常常聽到 daemons 這個字眼,那么 daemon 是什么東西呀!?怎么這么常被見到?呵呵,Daemon 的字面上的意思就是『守護(hù)神、惡魔?』還真是有點奇怪呦! ^_^"" ;旧,我們的 Linux 主機(jī)常常會收到一些要求,不論是來自本機(jī)系統(tǒng)的要求或者是網(wǎng)絡(luò) Client 端的服務(wù)要求,反正只要有要求來的時候,通常就是各式各樣的 daemons 負(fù)責(zé)去喚起應(yīng)該要工作的 Servers 來工作啦!那么 daemons 目前有兩種基本的模式,分別是 stand_alone 與 super daemon 兩種方式,底下就來說一說這兩種 daemon 的工作型態(tài):
• stand_alone : 就字面上的意思來說,stand alone 就是『獨立的啟動』的意思,也就是說,該 daemon 啟動之后,就直接常駐在內(nèi)存當(dāng)中啰!他雖然會一直的占用系統(tǒng)的資源,但最大的優(yōu)點就是,他會一直啟動的啦!所以當(dāng)有要求來的時候,他就會很快速的響應(yīng)啰!常常用在這一種 daemon 的網(wǎng)絡(luò)服務(wù)如常見的 httpd 這一個即是一例!
•super daemon : 相對于 stand alone 的執(zhí)行方式,這一種服務(wù)的啟動方式則是藉由統(tǒng)一的一個 daemon 來負(fù)責(zé)喚起該服務(wù)!這一個統(tǒng)一負(fù)責(zé)的 daemon 就是 inet 這支服務(wù)啦!不過,在后來的 Linux 發(fā)展套件中,則是使用 xinet 這個設(shè)定啰!我們這里以 Mandrake 的 xinet 來做說明。當(dāng)有網(wǎng)絡(luò)的服務(wù)要求來的時候,該要求會先送給 xinet 這個服務(wù),然后 xinet 根據(jù)該網(wǎng)絡(luò)要求送來的數(shù)據(jù)封包的內(nèi)容 ( 該內(nèi)容會記錄 IP 與 port ) 來將數(shù)據(jù)封包送給實際運作的服務(wù)!而該服務(wù)這個時候才會啟動的!最常見到的就是 ftp 這支網(wǎng)絡(luò)服務(wù)啦!這種最大的優(yōu)點就是當(dāng)沒有數(shù)據(jù)封包來的時候,該服務(wù)不會一直占據(jù)系統(tǒng)資源 ( 該服務(wù)會在 sleeping 的狀態(tài)吧! ) ,但是相對的,他的反應(yīng)時間也會比較慢,因為還要花費一段時間去『喚醒』該服務(wù)呀!
那么這兩種啟動的方式哪一個比較好呢?見仁見智啦!而且還要看該主機(jī)的工作負(fù)荷與實際的用途說!例如當(dāng)你的主機(jī)是用來作為 WWW 服務(wù)器的,那么 httpd 自然就以 stand alone 的啟動方式較佳!事實上,我們常常開玩笑的說明 stand alone 與 super daemon 的情況,可以銀行的窗口來作為說明的范例!
•stand alone : 在銀行里面,假設(shè)有一種單一服務(wù)的窗口,例如存錢窗口,所以,當(dāng)你需要存錢的時候,直接前往該窗口,就有『專人』為您服務(wù)啦!
•super daemon : 在銀行里面假設(shè)還有另外一種復(fù)合型態(tài)的窗口,同時提供轉(zhuǎn)帳、資金調(diào)度、提款等等的業(yè)務(wù),那當(dāng)你需要其中一項業(yè)務(wù)的時候,就需要前往該窗口,但是坐在窗口的這個營業(yè)員,拿到你的需求單之后,往后面一丟『喂!那個轉(zhuǎn)帳的仁兄!該你的工作了』那么那個仁兄就開始工作去!然而里頭還有資金調(diào)度與提款等負(fù)責(zé)業(yè)務(wù)的仁兄呢?他們在干嘛?嘿嘿!看看報、喝喝茶啰!那么這里就會引出另外一個問題啦!假設(shè)銀行今天的人潮特別的洶涌,所以這個窗口后面除了你之外還有很多的人!那么想一想,這個窗口是要『一個完成再來下一個』還是『全部都把你們的單據(jù)拿來,我全部處理掉』呢?呵呵!是不是不太一樣?
 
omulti-threaded:就是我們提到的,全部的客戶之要求都給他拿來,一次給他交辦下去,所以一個服務(wù)同時會負(fù)責(zé)好幾個程序。
 
osingle-threaded:這個就是目前我們『人類的銀行』最常見的方式啦,不論如何,反正一個一個來,第一個沒有處理完之前,后面的請排隊!嘿嘿!所以如果 client 的要求突然大增的話,那么這些晚到的 client 可得等上一等!
另外,需要注意的是,既然銀行里頭有這兩種窗口同時存在,所以啰,在 Linux 系統(tǒng)里面,這兩種 daemon 是可以同時存在的啦!也就是說,某些服務(wù)可以使用 stand alone 來啟動,而有其它的服務(wù)則可以使用 xinet ( 或者是 inet ) 大致的情況就是這樣啦!了呼?

1、•/etc/services
OOK!這個時候就又發(fā)生了另一個問題啰!那么我怎么知道要將我的數(shù)據(jù)送到那個窗口去!咦!那個窗口不是有寫說明說他是干嘛用的嗎?所以你要存錢、轉(zhuǎn)帳、或者是進(jìn)行匯款,都可以在不同的窗口來完成,那么換到實際的網(wǎng)絡(luò)情況來說呢,因為我們的 TCP 封包里面含有 port 與 IP 對吧!將那些已經(jīng)監(jiān)聽的 port 想成是這些窗口,如此一來你的 TCP 封包便可以依據(jù)不同的需求,而到達(dá)不一樣的 port 來索取服務(wù)了!因此,你的聯(lián)機(jī)是 FTP, WWW, smtp 等等都好,絕對不會被搞錯啦!
 
好了,如果我想要知道這個 port 是由那個服務(wù)所啟動的呢?在 Linux 系統(tǒng)里面有個檔案在說明那個窗口與服務(wù)的  ( services and ports ) 對應(yīng)!呵呵!那就是鼎鼎大名的 /etc/services 這個檔案啦!我們?nèi)∫欢纬3?吹降?port 與相關(guān)服務(wù)的區(qū)段來看一下好了!
    [root @test root]# vi /etc/services
    .... 略
    ftp-data        20/tcp
    ftp-data        20/udp
    ftp             21/tcp
    ftp             21/udp
    ssh             22/tcp                           # SSH Remote Login Protocol
    ssh             22/udp                          # SSH Remote Login Protocol
    telnet          23/tcp
    telnet          23/udp
    smtp            25/tcp                         mail
    smtp            25/udp                        mail
    nameserver      42/tcp          name            # IEN 116
    nameserver      42/udp          name            # IEN 116
    domain          53/tcp          nameserver      # name-domain server
    domain          53/udp          nameserver
    .... 略
    <daemon name>;   <port 與型態(tài)>;   < 該服務(wù)的說明 >;


•         
像上面說的是,第一欄為 daemon 的名稱、第二欄為該 daemon 所使用的 port 號碼與其網(wǎng)絡(luò)數(shù)據(jù)封包傳送時候的類型,主要為較穩(wěn)定的 tcp 封包與較易破損但較快速之 udp 封包!舉個例子說,那個 e-mail 的發(fā)信協(xié)議為 smtp 這個服務(wù),而這個服務(wù)的使用之 port 即為 25 啦!就這樣!
 
o請?zhí)貏e注意!雖然有的時候您可以藉由修改 /etc/services 來更改一個服務(wù)的 port 號,不過并不建議如此做,因為很有可能會造成一些協(xié)議的錯誤情況!這里特此說明一番呦。ǔ悄茉O(shè)一個地下網(wǎng)站,否則的話,使用 /etc/services 原先的設(shè)定就好啦。

2、•Daemon 的命名規(guī)則:
每一個服務(wù)的開發(fā)者,當(dāng)初在開發(fā)他們的服務(wù)時,都有特別的故事啦!不過,無論如何,這些服務(wù)的名稱被建立之后,被掛上 Linux 使用時,通常在服務(wù)的名稱之后會加上一個 d ,例如例行性命令的建立的 at, 與 cron 這兩個服務(wù),通常會被稱為 atd 與 crond,這個 d 代表的就是 daemon 的意思。所以,在資源管理那一章中,我們使用了 ps 與 top 來觀察程序時,都會發(fā)現(xiàn)到很多的 xxxd 的程序,呵呵!通常那就是一些 daemon 的程序啰!

論壇徽章:
0
2 [報告]
發(fā)表于 2003-08-08 17:06 |只看該作者

認(rèn)識系統(tǒng)服務(wù) daemons(轉(zhuǎn)貼)

二、系統(tǒng)的 Daemons 放在哪里
好了!那么我們已經(jīng)知道了 daemon 的作用之后,再來要討論的是,那么他們啟動的 scripts 是放在哪里呀!?呵呵!底下就來說一說啰:
•        stand alone : 這個放置在 /etc/rc.d/init.d/ 這個目錄里面,幾乎所有的 RPM 安裝的套件之啟動項目都在這里啦!
•        super daemon : 這個工作的那一支服務(wù)其實就是 xinet 或者是 inet 啦!請注意, xinet 也是一個 daemon 呢!他是 stand alone 啟動的,也就是他會一直在監(jiān)聽大家的需求,所以 xinet 的啟動 scripts 寫在 /etc/rc.d/init.d/xinetd 這個 scripts 里面啰!但是掛在這個 daemon 里頭的服務(wù)之設(shè)定項目呢?嗯!就是寫在 /etc/xinetd.conf 與 /etc/xinetd.d/ 這個目錄里面的任何檔案!

1、•        /etc/rc.d/init.d/*
OK!先來了解一下 stand alone 的 daemon 是怎么啟動的呢?!很簡單,假如我們要啟動 syslog 這支記錄登錄文件的服務(wù),那么要啟動他的話,就直接下達(dá):
o        /etc/rc.d/init.d/syslog start
o        service syslog start
亦即是檔名之后加上 start 即可,或者是使用 Red Hat 才有的這個 service script 來進(jìn)行啟動的功能!如果你還記得我們前幾節(jié)提到過的 shell scripts 的話,那么或許還記得 case ..... esac 這個有選擇性的項目的語法吧。繘]錯!這幾支服務(wù)就是以 bash scripts 里頭的 case 語法寫成的!因此,只要加上后面的參數(shù),如此一來, scripts 就會自動的去找尋執(zhí)行檔來執(zhí)行啰!如果有興趣的話,可以在你的系統(tǒng)里面的該目錄下開一個檔案來觀看一下,就知道如何寫啰!

2、•        /etc/xinetd.conf
這個檔案就是設(shè)定 xinet 服務(wù)的參數(shù)檔案啦!

3、•        /etc/xinetd.d/*
這個目錄里面的所有檔案就是個別掛上 xinet 的所有服務(wù)啦!例如赫赫有名的 wu-ftpd 及 telnet 與 pop3 等等!

論壇徽章:
0
3 [報告]
發(fā)表于 2003-08-08 17:09 |只看該作者

認(rèn)識系統(tǒng)服務(wù) daemons(轉(zhuǎn)貼)

三、解析 xinetd.conf
一般而言,在 /etc/rc.d/init.d/ 里面的 scripts 都是發(fā)展者之 RPM 所提供的,如果您有興趣自行發(fā)展你的軟件的話,那么可以直接以這樣的方式來獨立啟動的!不過,我們也可以經(jīng)由 super daemon 來管理我們的服務(wù),因為這個 super daemon 可以提供相當(dāng)多的功能,尤其是安全性方面的功能,所以,我們就來談一談如何使用這個東西吧!
 
先來看一看預(yù)設(shè)的 /etc/xinetd.conf 這個檔案的內(nèi)容是什么吧!
 
    #
    # 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
    內(nèi)容格式:
    service <service_name>;
    {
           <attribute>; <assign_op>; <value>; <value>; ...
           ...
    }
在上面的預(yù)設(shè)范例當(dāng)中,說明的是:『如果沒有指定的 services ( defaults ) 那么就用 {} 里面的設(shè)定來執(zhí)行之!』正常的情況之下有點像上面例子中的黃色字體所示,那個 <>; 里頭的資料我們先來說明一下:注:那個 assign_op 主要有三種形式,分別如下:
= : 表示后面的設(shè)定參數(shù)就是這樣啦!
+= : 表示后面的設(shè)定為『在原來的設(shè)定里頭加入新的參數(shù)』
-+ : 表示后面的設(shè)定為『在原來的參數(shù)舍棄這里輸入的參數(shù)!』
用途不太相同,敬請留意呦!好了!底下再來說一說那些 attribute 與 value !
  
    attribute    assing_op              說明
    (功能)               (允許的動作)           (范例)

一般設(shè)定項目:               
    disable
    yes          允許該 server 可以執(zhí)行或者是不能執(zhí)行!
    no        當(dāng)設(shè)定為 yes 表示該服務(wù)不能執(zhí)行!

    socket_type
    stream      當(dāng)聯(lián)機(jī)為 TCP 封包時,則使用 stream 類型
    dgram       當(dāng)聯(lián)機(jī)為 UDP 封包時,則使用 dgram  類型
    raw         raw 代表 server 需要與 IP 直接對談!

    protocol       
    tcp
    udp
    ...       
    這個東西說的是,聯(lián)機(jī)的狀態(tài)使用的是哪一種協(xié)議!?各個協(xié)議的代號可以參考 /etc/protocols 內(nèi)容!此外,除非是你自己設(shè)定的服務(wù),否則這個可以不用設(shè)定啦!

    wait       
    yes 這就是我們剛剛提到的 Multi-threaded 與 single-threaded 的方式啦!
    no一般來說,我們希望大家的要求都可以同時被啟用,所以可以設(shè)定 wait = no

    user       
    UID
    root       
    還記得我們在 賬號管理 那一篇提到的 UID 概念嗎?對啦!這個 UID 就是那個 UID 啦!要注意的是,假如你的服務(wù)啟動者不要以 root 為主的話,那么這個地方就可以改變其它的使用者,例如 nobody !這個咚咚也會有安全防護(hù)的機(jī)制存在!此外,需要注意這個 UID 必須存在于 /etc/passwd 。

    group        GID        跟 user 的意思相同!只是這個 GID 的使用者也必須存在于 /etc/group 當(dāng)中!

    instances       
    number
    UNLIMITED       
    這個是『在同一時間之內(nèi),同一個服務(wù)可以允許的聯(lián)機(jī)數(shù)目』的意思,你可以寫入一個『數(shù)字』來控制聯(lián)機(jī)數(shù)目,也可以使用 UNLIMITED 來告訴系統(tǒng)『沒有上限』啰!例如你在同時段之內(nèi)僅允許 ftp 聯(lián)機(jī)有 30 個,那么這里就可以輸入 30 啦!

    nice        -19 ~ 19        還記得我們在 程序管理 里面談到的那個 nice 指令嗎?!對啦!這里就是這個東西啰!數(shù)字越小( 負(fù)值 )代表該程序越優(yōu)先被執(zhí)行!

    server       
    program
    /usr/sbin/in.ftpd       
    這個就是指出這個服務(wù)的啟動程序!例如要啟動 ftp 的話,其實就是 in.ftpd 這支程序啦!所以這個時候在這里輸入 server = /usr/sbin/in.ftpd

    server_args        一些參數(shù)        這里應(yīng)該輸入的就是你的 server 那里需要輸入的一些參數(shù)啦!例如 in.ftpd 當(dāng)中,我們可能就需要輸入 -l -a 這個參數(shù)說!

    log_on_success
    PID
    HOST
    USERID
    EXIT
    DURATION       
    在『成功登入』之后,需要記錄的項目:PID為紀(jì)錄該 server 啟動時候的 process ID ,HOST 為遠(yuǎn)程主機(jī)的 IP、USERID 為登入者的賬號、EXTI 為離開的時候記錄的項目、DURATION 為該使用者使用此服務(wù)多久?

    log_on_failure
    HOST
    USERID
    ATTEMPT
    RECORD       
    當(dāng)?shù)侨胧≈蟊?syslog 登入的項目:HOST為遠(yuǎn)程主機(jī)的 IP,USERID為登入者賬號、ATTEMPT為記錄登入失敗者企圖的意圖為何、RECORD為記錄遠(yuǎn)程主機(jī)的信息!以及為何本機(jī) server 不能啟動的原因!主要有 login, shell, exec, finger 等指令可以使用在這里!( 基本上,可以在 /etc/hosts.allow 或 /etc/hosts.deny 書寫內(nèi)容 )。

進(jìn)階設(shè)定項目:               
    env        'name=value'        這一個項目可以讓你設(shè)定環(huán)境變量,環(huán)境變量的設(shè)定規(guī)則可以參考 認(rèn)識 BASH Shell 。


    port        number        這里可以設(shè)定不同的服務(wù)與對應(yīng)的 port ,但是請記住你的 port 與服務(wù)名稱必須與 /etc/services 內(nèi)記載的相同才行!

    redirect        IP_Address port        將 client 端對我們 server 的要求,轉(zhuǎn)到另一部主機(jī)上去!呵呵!這個好玩呦!例如當(dāng)有人要使用你的 ftp 時,你可以將他轉(zhuǎn)到另一部機(jī)器上面去!那個 IP_Address 就代表另一部遠(yuǎn)程主機(jī)的 IP 啰!

    includedir        directory_path        表示將某個目錄底下的所有檔案都給他塞進(jìn)來 xinetd.conf 這個設(shè)定里頭!這東西有用多了,如此一來我們可以一個一個設(shè)定不同的項目!而不需要將所有的服務(wù)都寫在 xinetd.conf 當(dāng)中!你可以在 /etc/xinetd.conf 發(fā)現(xiàn)這個設(shè)定呦!
安全控管項目:               
    bind        IP_Address        這個是設(shè)定『允許使用此一服務(wù)的適配卡』的意思!舉個例子來說,你的 Linux 主機(jī)上面有兩個 IP ,而你只想要讓 IP1 可以使用此一服務(wù),但 IP2 不能使用此服務(wù),這里就可以將 IP1 寫入即可!那么 IP2 就不可以使用此一 server 啰!

    interface        IP_Address        跟 bind 相同!

    only_from       
    0.0.0.0
    192.168.1.0/24
    host_name
    domain_name       
    這東西用在安全機(jī)制上面,也就是管制『只有這里面規(guī)定的 IP 或者是主機(jī)名稱可以登入!』如果是 0.0.0.0 表示所有的 PC 皆可登入,如果是 192.168.1.0/24 則表示為 C class 的網(wǎng)域!亦即由 192.168.1.1 ~ 192.168.1.255 皆可登入!另外,也可以選擇 domain name ,例如 .ev.ncku.edu.tw 就可以杜絕成大環(huán)工系的網(wǎng)域 IP 登入你的主機(jī)使用該 server !

    no_access       
    0.0.0.0
    192.168.1.0/24
    host_name
    domain_name       
    跟 only_from 差不多啦!就是用來管理可否進(jìn)入你的 Linux 主機(jī)啟用你的 server 服務(wù)的管理項目! no_access 表示『不可登入』的 PC 啰!

    access_times       
    00:00-12:00
    HH:MM-HH:MM       
    這個項目在設(shè)定『該服務(wù) server 啟動的時間』,使用的是 24 小時的設(shè)定!例如你的 ftp 要在 8 點到 16 點開放的話,就是: 08:00-16:00。

    umask       
    000
    777
    022       
    還記得在 檔案權(quán)限 里面約略提過的 umask 這個東西嗎?呵呵!沒錯!就是那個鬼玩意兒啰!可以設(shè)定使用者建立目錄或者是檔案時候的屬性!系統(tǒng)建議值是 022 。

當(dāng)然上面的參數(shù)不需要每個都設(shè)定啦!只要設(shè)定需要的就可以啦!而在 /etc/xinetd.conf 這個檔案當(dāng)中,一定會看到『 includedir = /etc/xinetd.d 』這一行!這說明的是,除了 /etc/xinetd.conf 之外,所有在 /etc/xinetd.d 的檔案都是可以用來設(shè)定的啦!好了,我們來舉個簡單的 telnet 的例子吧!那就是 /etc/xinetd.d/telnet 這個檔案,如果你的 Mandrake 9.0 當(dāng)中沒有這個檔案,那表示還沒有安裝telnet-server-krb5-1.2.5-1mdk這個套件,請先安裝他吧!然后,他的內(nèi)容有點像這樣:
 
    service telnet
    {
        disable     = yes         <==服務(wù)預(yù)設(shè)是關(guān)閉的
        flags      = REUSE        <==額外使用的參數(shù)
        socket_type   = stream       <==使用 tcp 封包常用的聯(lián)機(jī)型態(tài)
        wait      = no          <==不需等待,可以同時允許多個聯(lián)機(jī)
        user      = root        <==啟動程序的使用者身份
        server     = /usr/sbin/telnetd  <==服務(wù)啟動的程序
        server_args   = -a none       <==上面那個程序的參數(shù)
        log_on_failure += USERID       <==錯誤登入時,要記錄下來的內(nèi)容
    }
     

上面的表格中,已經(jīng)說明了每一項參數(shù)的意義!如果原本的默認(rèn)值你并不滿意,那么你可以修改成比較安全與多一點機(jī)制。假設(shè)你這個 Linux 是一部主機(jī),而且他有兩塊網(wǎng)絡(luò)接口,分別是對外的 140.116.44.125 與對內(nèi)的 192.168.0.254 這兩個,如果你想要讓對內(nèi)的接口限制較松,而對外的限制較嚴(yán)格,你可以這樣的來設(shè)定呢:
 
    # 先針對對內(nèi)的較為松散的限制來設(shè)定:
    service telnet
    {
        disable     = no          <==預(yù)設(shè)就是啟動 telnet 服務(wù)
        bind       = 192.168.0.254    <==只允許經(jīng)由這個適配卡的封包進(jìn)來
        only_from    = 192.168.0.0/24   <==只允許 192.168.0.0/24 這個網(wǎng)段
                             的主機(jī)聯(lián)機(jī)進(jìn)來使用 telnet 的服務(wù)
        instances    = UNLIMITED      <==同時允許聯(lián)機(jī)不限制!
        nice       = 0          <==使用的優(yōu)先級較高
        flags      = REUSE        <==額外使用的參數(shù)
        socket_type   = stream       <==使用 tcp 封包常用的聯(lián)機(jī)型態(tài)
        wait      = no         <==不需等待,可以同時允許多個聯(lián)機(jī)
        user      = root        <==啟動程序的使用者身份
        server      = /usr/sbin/telnetd  <==服務(wù)啟動的程序
        server_args   = -a none       <==上面那個程序的參數(shù)
        log_on_failure += USERID       <==錯誤登入時,要記錄下來的內(nèi)容
    }
    # 再針對外部的聯(lián)機(jī)來進(jìn)行限制呢!
    service telnet
    {
        disable     = no                  <==預(yù)設(shè)就是啟動 telnet 服務(wù)
        bind       = 140.116.44.125      <==只允許經(jīng)由這個適配卡的封包進(jìn)來
        only_from    = 140.116.0.0/16      <==只允許 140.116.0.0 ~ 140.116.255.255
                                                    這個網(wǎng)段聯(lián)機(jī)進(jìn)來使用 telnet 的服務(wù)
        only_from    = .edu.tw             <==重復(fù)設(shè)定,只有教務(wù)界才能聯(lián)機(jī)!
        no_access    = 140.116.32.{10,26}  <==不許這些 PC 登入
        access_times  = 1:00-9:00 20:00-23:59
                                                  <==每天只有這兩個時段開放服務(wù)
        umask      = 022                 <==建立檔案時的預(yù)設(shè)屬性設(shè)定
        instances    = 10                  <==同時只允許 10 個聯(lián)機(jī)
        nice      = 10                  <==使用的優(yōu)先級較低
        flags      = REUSE               <==額外使用的參數(shù)
        socket_type   = stream              <==使用 tcp 封包常用的聯(lián)機(jī)型態(tài)
        wait      = no                  <==不需等待,可以同時允許多個聯(lián)機(jī)
        user      = root                <==啟動程序的使用者身份
        server     = /usr/sbin/telnetd   <==服務(wù)啟動的程序
        server_args   = -a none             <==上面那個程序的參數(shù)
        log_on_failure += USERID             <==錯誤登入時,要記錄下來的內(nèi)容
    }
呵呵!如上面的設(shè)定,我們可以將 telnet 的啟動項目進(jìn)行更多的限制!如此一來,將有助于我們的安全防護(hù)呢!尤其如果可以針對不同的接口來設(shè)定,嘿嘿!就更加的棒啰!不過,請注意喔!如果照上面的設(shè)定,那么您的主機(jī)上面將會開了兩個 23 port 的接口,分別是給兩個接口來使用的呢!嗯!真好玩?同樣的,你也可以針對自己的喜好來設(shè)定你的其它 daemon 使他掛在 xinetd 底下呢!

論壇徽章:
0
4 [報告]
發(fā)表于 2003-08-08 17:11 |只看該作者

認(rèn)識系統(tǒng)服務(wù) daemons(轉(zhuǎn)貼)

四、TCP_Wrappers
好了,接著下來我們要來說一說,除了 xinetd 之外,還有另一個可以抵擋利用某些服務(wù)進(jìn)入 Linux 主機(jī)的方法,那就是常常使用的 /etc/hosts.allow 與 /etc/hosts.deny 啰!這個方式是我們常常在使用的方法,這里先提幾個比較簡單的設(shè)定方式!注: TCP_Wrappers 也可以當(dāng)成一個最內(nèi)層的防火墻了,因為是最內(nèi)層,所以當(dāng)然要設(shè)定的比較嚴(yán)格啰!
 
為什么叫做 TCP_Wrappers 呢?那么 wrappers 有包裹的意思,所以說,這個套件本身的功能就是在分析 TCP 網(wǎng)絡(luò)數(shù)據(jù)封包啦!那么剛剛我們稍微提到我們網(wǎng)絡(luò)的封包數(shù)據(jù)主要是以 TCP 封包為主,這個 TCP 封包的文件頭至少記錄了來源與目主機(jī)的 IP 與 port ,因此,若藉由分析 TCP 封包,就可以比對看我要不要讓這個數(shù)據(jù)進(jìn)入到主機(jī)里面來啰!所以啦,我們要使用 TCP_Wrappers 來控管的,就是
1.        來源 IP
2.        port (就是服務(wù)啦)
TCP_Wrappers 設(shè)定 TCP 封包是否可以進(jìn)入的設(shè)定檔在 /etc/hosts.allow 與 /etc/hosts.deny 當(dāng)中。因此,基本上,如果一個服務(wù)是受到 xinetd 或 TCP_Wrappers 的控制時,那么該服務(wù)就會受限于 hosts.allow 與 hosts.deny 的管理了!而如果你自己安裝的套件當(dāng)中( 亦即使用 Tarball 安裝的方式之套件 ),除非有自行定義支持 TCP_Wrappers 的功能 ,否則就無法使用這個玩意啰!嘿嘿!
 
那么這兩個檔案是干嘛用的?剛剛不是提過哪!他主要是用來規(guī)范 TCP 封包的規(guī)則的,所以呢,里面記錄的當(dāng)然就是:『某些 IP 在特定服務(wù)中是否能夠進(jìn)入主機(jī)』!那么要怎么寫?這兩個檔案的內(nèi)容基本的語法是:
 
<service>; : <IP, domain, hostname...>; : <allow|deny>;
 
所以我們要先找出來那個 service_name 才行,例如以我們剛剛的 telnet 為例,那個 service_name 是什么呢?其實指的就是上表中 server 這個設(shè)定后面接的程序名稱啦!所以, telnet 在 Mandrake 底下的名稱為 telnetd ( 注意,在其它的 distribution 中,這個名稱可能會變,例如 Red Hat 或 OpenLinux 都是以 in.telnetd 為名!所以這里請參考您的系統(tǒng)里面的設(shè)定而定!)。因此,如果你不想讓 140.116.44.202 這個地址及 140.116.32.0/255.255.255.0 這個 C class 的網(wǎng)域進(jìn)入你的主機(jī)的話,那么可以這樣在 /etc/hosts.deny 里面設(shè)定:
 
[root @test root]# vi /etc/hosts.deny
telnetd:  140.116.44.202 : deny
telnetd:  140.116.32.0/255.255.255.0 : deny
 
這樣一來,對方就無法以 telnet 進(jìn)入你的主機(jī)啦!方便吧!不過,既然如此,為什么要設(shè)定成 /etc/hosts.allow 及 /etc/hosts.deny 兩個檔案呢?呵呵!基本上,他們兩個的關(guān)系為:
1.        當(dāng)檔案 /etc/hosts.allow 存在時,則先以此檔案內(nèi)之設(shè)定為準(zhǔn);
2.        而在 /etc/hosts.allow 沒有規(guī)定到的事項,將在 /etc/hosts.deny 當(dāng)中繼續(xù)設(shè)定!
也就是說, /etc/hosts.allow 的設(shè)定優(yōu)先于 /etc/hosts.deny 啰!了解了嗎?基本上,只要 hosts.allow 也就夠了,因為我們可以將 allow 與 deny 都寫在同一個檔案內(nèi),只是這樣一來似乎顯得有點雜亂無章,因此,通常我們都是:
1.        允許進(jìn)入的寫在 /etc/hosts.allow 當(dāng)中;
2.        不許進(jìn)入的則寫在 /etc/hosts.deny 當(dāng)中。
再強(qiáng)調(diào)一次,那個 service_name 『必需』跟你的 xinetd 或者是 /etc/rc.d/init.d/* 里面的程序名稱要相同。好了,我們還是以 telnet 為例子來說明好了,現(xiàn)在假設(shè)一個比較安全的流程來設(shè)定,就是:
1.        只允許 140.116.44.0/255.255.255.0 與 140.116.79.0/255.255.255.0 這兩個網(wǎng)域,及 140.116.141.99 這個主機(jī)可以進(jìn)入我們的 telnet 服務(wù)器;
2.        此外,其它的 IP 全部都擋掉!
這樣則首先可以設(shè)定 /etc/hosts.allow 這個檔案成為:
 
[root @test root]# vi /etc/hosts.allo
telnetd:  140.116.44.0/255.255.255.0 : allow
telnetd:  140.116.79.0/255.255.255.0 : allow
telnetd:  140.116.141.99             : allow
 
再來,設(shè)定 /etc/hosts.deny 成為『全部都擋掉』的狀態(tài):
 
[root @test root]# vi /etc/hosts.deny
telnetd:  ALL     : deny
 
那個 ALL 代表『全部』的意思!呵呵!很棒吧!那么有沒有更安全的設(shè)定,例如,當(dāng)當(dāng)有其它人掃瞄我的 telnet port 時,我就將他的 IP 記住!以做為未來的查詢與認(rèn)證之用!那么你可以將 /etc/hosts.deny 這個檔案改成這個樣子:
 
[root @test root]# vi /etc/hosts.deny
telnetd: 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\nWARNING connection not allowed. Your attempt has been logged. \n\n\n警告您尚未允許登入,您的聯(lián)機(jī)將會被紀(jì)錄,并且作為以后的參考\n\n ". )
 
在上面的例子中,黃色字體字『 root 』,可以寫成你的個人賬號或者其它 e-mail ,以免很少以 root 身份登入 Linux 主機(jī)時,容易造成不知道的情況,另外,最后幾行,亦即 :twist 之后的那幾行為同一行。如此一來,當(dāng)未經(jīng)允許的計算機(jī)嘗試登入你的主機(jī)時,對方的屏幕上就會顯示上面的最后一行,并且將他的 IP 寄到 root (或者是你自己的信箱)那里去。ㄗⅲ耗承]有安裝 tcp_wrappers 的套件之 distribution 中,由于沒有 safe_finger 等程序,所以無法執(zhí)行相關(guān)的功能,這點還請多加注意呢!)

論壇徽章:
0
5 [報告]
發(fā)表于 2003-08-08 17:13 |只看該作者

認(rèn)識系統(tǒng)服務(wù) daemons(轉(zhuǎn)貼)

五、系統(tǒng)開啟的服務(wù)
好了,現(xiàn)在假設(shè)您已經(jīng)知道了 daemons 的啟動檔案放置的目錄,也知道了服務(wù)與 port 的對應(yīng),那么要如何查詢目前系統(tǒng)上面已經(jīng)啟動了的服務(wù)呢?不要再打混了!已經(jīng)學(xué)過了 ps 與 top 應(yīng)該要會應(yīng)用才對耶!呵呵!沒錯,可以使用 ps 與 top 來找尋已經(jīng)啟動了的服務(wù)的程序與他的 PID 呢!不過,我們怎么知道該服務(wù)啟動的 port 是哪一個?呵呵!好問題!可以直接使用 netstat 這個網(wǎng)絡(luò)狀態(tài)觀察指令來檢查我們的 port 呢!甚至他也可以幫我們找到該 port 的程序呢( PID )!好了,那么我們就來試看看這個指令的用法吧!
•        netstat
 
    [root @test /root]# netstat [-r] [-i interface]  
    [root @test /root]# netstat [-antulp]  
    參數(shù)說明:  
    -r  :顯示出 route 的意思;  
    -i  :顯示出 interface 的內(nèi)容,跟 ifconfig 類似啦!  
    -a  :顯示出目前所有的網(wǎng)絡(luò)聯(lián)機(jī)狀態(tài)!  
    -n  :預(yù)設(shè)情況中,顯示出的 host 會以 host name 來顯現(xiàn),若為 n 則可以使 port 與 host 都以數(shù)字顯示  
    -t  :僅顯示 tcp 封包的聯(lián)機(jī)行為  
    -u  :僅顯示 udp 的封包聯(lián)機(jī)狀態(tài)  
    -l  :僅顯示 LISTEN 的內(nèi)容  
    -p  :同時顯示此一聯(lián)機(jī)的 PID 喔!(注意:只有 root 才能行使此功能!)  
    范例:  
    [root @test /root]# netstat -r <==嘿嘿!顯示出目前的路由表!  
    Kernel IP routing table  
    Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface  
    140.116.141.253 *               255.255.255.255 UH       40 0          0 ppp0  
    192.168.1.0     *               255.255.255.0   U        40 0          0 eth0  
    192.168.0.0     *               255.255.255.0   U        40 0          0 eth0  
    127.0.0.0       *               255.0.0.0       U        40 0          0 lo  
    default         140.116.141.253 0.0.0.0         UG       40 0          0 ppp0  
    [root @test /root]# netstat -i eth0  <==看看底下顯示出的內(nèi)容,是否跟 ifconfig eth0 類似呀?  
    Kernel Interface table  
    Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR   TX-OK TX-ERR TX-DRP TX-OVR Flg  
    eth0   1500   077199373      0      0      169616342      0      0      0 BMRU  
    lo    16436   0 1130485      0      0      0 1130485      0      0      0 LRU  
    [root @test /root]# netstat -an  <==顯示所有的聯(lián)機(jī)狀態(tài),并且以數(shù)字型態(tài)顯示  
    [root @test /root]# netstat -tul<==顯示 LISTEN 的及 tcp 與 udp 的聯(lián)機(jī)狀態(tài),如下:  
    Active Internet connections (only servers)  
    Proto Recv-Q Send-Q Local Address           Foreign Address         State  
    tcp        0      0 *:mysql                 *:*                     LISTEN  
    tcp        0      0 *:netbios-ssn           *:*                     LISTEN  
    tcp        0      0 *:pop3                  *:*                     LISTEN  
    tcp        0      0 *:http                  *:*                     LISTEN  
    tcp        0      0 *:ftp                   *:*                     LISTEN  
    tcp        0      0 *:ssh                   *:*                     LISTEN  
    tcp        0      0 *:smtp                  *:*                     LISTEN  
    udp        0      0 *:netbios-ns            *:*  
    注意:上面的 LISTEN 表示該 port 是已經(jīng)在 監(jiān)聽 網(wǎng)絡(luò)服務(wù)啦!而左邊的 tcp 指的是 tcp 封包!  
    [root @test /root]# netstat -anp | more<==這個指令很常下達(dá)!請記得呦!

•         
netstat 可是很了不起的指令,一定要學(xué)會的!尤其他可以讓我們了解目前的你的主機(jī)的聯(lián)機(jī)狀態(tài)!與開啟的 port 有哪些!所以一定得學(xué)會才行呀!如果你分別下達(dá):
 
•        netstat -a  | more
netstat -an | more
•         
一定會發(fā)現(xiàn)有點奇怪?怎么有的 port 會以服務(wù)名稱(例如上面例子里的 pop3 ...)有的會以 port 號碼來顯示呢?嘿嘿!那就是 /etc/services 以及 -n 這個參數(shù)的用途啦!你可以發(fā)現(xiàn)的是,如果 netstat -a 時,顯示出來的 port 號碼在 /etc/services 存在對應(yīng)的服務(wù)名稱的時候,那么預(yù)設(shè)他就會顯示出該服務(wù)名稱啦!但是若在 /etc/services 找不到檔案的話,那么自然就還是以 port 號碼來顯示的!那么加上了 -n 參數(shù)后,不論如何,他都會以 port 及 IP 來顯示啦!
 
另外,那個 -p 也很有用呦!尤其是在一些莫名其妙的聯(lián)機(jī)出現(xiàn)時,可以用 netstat –anp | more查到 PID ,然后再以我們之前談到的 系統(tǒng)資源管理 部分,利用 kill 來殺掉該 PID 的程序! 此外,使用 netstat –tlp 也可以得到目前在 LISTEN 的 port 的服務(wù)名稱,嘿嘿!那樣就可以知道該 port 是那個程序來啟動的!很便利ㄋㄟ?
 
o        Proto:指的是封包或者是通訊協(xié)議啦! tcp , udp 是常見的呦!
o        Local Address:本地端的 IP 與 Port 號,如果 /etc/services 存在對應(yīng)服務(wù)名稱,就以服務(wù)名稱顯示;
o        Foreign Address :監(jiān)聽哪一個地區(qū)與 port ;
o        state:狀態(tài)列就很多啦!基本的有:
        LISTEN :亦即監(jiān)聽狀態(tài)中的 port !
        ESTABLISHED:已建立聯(lián)機(jī)的聯(lián)機(jī)情況
        TIME_WAIT:該聯(lián)機(jī)在目前已經(jīng)是等待的狀態(tài)了!隨時有可能會斷線呦!
 
善用 netstat 可以查得相當(dāng)多的網(wǎng)絡(luò)信息!尤其在關(guān)閉本機(jī)的 port 時!假設(shè)我要將 ftp 關(guān)閉掉,那么要使用 ntsysv, chkconfig 以及看一下 /etc/rc.d/rc.local 里頭的設(shè)定啰!請注意,這個時候僅是將『開機(jī)預(yù)設(shè)啟動關(guān)閉』而已,并沒有實際關(guān)閉目前的服務(wù),假設(shè)您發(fā)現(xiàn) ftp 還在啟動的項目,你要將他關(guān)閉,那么就必須: 
1.        使用 ntsysv 或 chkconfig 將 wu-ftpd 前面的符號關(guān)閉掉;
2.        跳出之后,以 /etc/rc.d/init.d/xinet restart 或者是 service xinet restart 來重新啟動 xinet 這個服務(wù);
3.        再以 netstat -a | more 看一下 ftp 是否還在 LISTEN 呢?
 
這樣才能關(guān)閉呢!同理可證啰!要關(guān)閉 sshd 怎么關(guān)?!嘿嘿!自己測試看看啰!(注意:事實上,在 Linux 系統(tǒng)中,要『開或關(guān)某個 port 』,就是需要『啟動或關(guān)閉某個服務(wù)』啦!因此,你可以找出某個 port 對應(yīng)的服務(wù),程序?qū)?yīng)的服務(wù),進(jìn)而啟動或關(guān)閉他,那么那個經(jīng)由該服務(wù)而啟動的 port ,自然就會關(guān)掉了!)

論壇徽章:
0
6 [報告]
發(fā)表于 2003-08-08 17:18 |只看該作者

認(rèn)識系統(tǒng)服務(wù) daemons(轉(zhuǎn)貼)

六、各個服務(wù)的簡單說明
底下是一些 linux 系統(tǒng)上面常見的 daemons ,大家可以參考看看呦!
  
    服務(wù)名稱        •  參數(shù)檔
    •  預(yù)設(shè)使用 port 號
    •  說明
    •  是否需要執(zhí)行
    anacron        •  /etc/anacrontab
    •  沒有使用 port 號
    •  當(dāng)你的 Linux 主機(jī)并不是全天候開機(jī)的時候,這個 anacron 就可以幫你執(zhí)行在『 crontab 』既定的時間內(nèi)沒有執(zhí)行的工作!舉個例子來說,當(dāng)你的主機(jī)在晚上 12:00 會自動關(guān)閉,但是偏偏 crontab 這個例行性工作是在 4:00 工作,這個時候例行性工作不是都沒有做到嗎?嗯! anacron 就可以使用啦!
    •  如果主機(jī)已經(jīng) 24 小時開機(jī),而且執(zhí)行了 cron ,那么這個程序就不需要啟動了。

    apmd        •        /etc/sysconfig/apmd
    •        沒有使用 port 號
    •        apmd 是 Adventage Power Management daemon 的縮寫,顧名思義,可以用來了解系統(tǒng)的『電池電量』,如果對于手提式計算機(jī)才有需要吧我想!
    •        基本上,我們使用的桌上型或者是一直開機(jī)的機(jī)型,大致上不需要使用此一 daemon。
    arpwatch        •        /etc/sysconfig/arpwatch
    •        沒有使用
    •        這是用來持續(xù)監(jiān)測網(wǎng)絡(luò)卡的『 Hardware IP (MAC) 與 Software IP (TCP/IP 那個 IP) 』對應(yīng)的 daemon,還可以提供 e-mail 通知系統(tǒng)管理員呦!
    •        一般的主機(jī)不太需要這個 daemon 啦!
    atd        •        /etc/at.allow, /etc/at.deny
    •        沒有使用 port 號
    •        這個總該不陌生了吧!就是單一使用的例行性命令啰!如果忘記了!趕緊去查看一下!
    •        這個通常需要啟動啦!不過,如果你一般都是使用 cron ,那么這個東西不啟動影響也不很大!
    autofs        •        /etc/rc.d/init.d/autofs
    •        沒有使用 port 號
    •        這個東西使用在自動掛載一些裝置的 daemon
    •        不需要開啟!
    xinet
    chargen  
    chargen-udp        •        這東西主要的 port 號是 19 號;
    •        主要的功能在于提供類似遠(yuǎn)程打字的咚咚吧!我也不是很懂說....
    •        一般來說,不用啟動啦!
    crond        •        /etc/crontab
    •        沒有使用 port
    •        用來執(zhí)行 例行性命令 的 daemon!
    •        務(wù)必啟動!
    xinet
    daytime  
    daytime-udp        •        這東西使用 13 port 號!
    •        用來作為 daytime 的服務(wù)(我也不清楚,請來信告知耶。
    •        不用啟動
    xinet
    echo  
    echo-udp        •        使用 port 7  
    •        不用啟動啦!
    xinet
    finger        •        /etc/xinetd.d/finger
    •        port 79
    •        最大的功能就是讓遠(yuǎn)程的使用者可以查看本地端的使用者信息
    •        由于有安全上的顧慮,沒有必要的話,不要啟動!
    gpm        •        /etc/sysconfig/mouse
    •        沒有使用 port 號
    •        在文字模式里面可以使用 mouse 來從事『復(fù)制、貼上、移動光標(biāo)』等等的功能!
    •        沒必要的話,建議是『關(guān)閉』!
    httpd        •        /etc/httpd/conf/httpd.conf
    •        使用 80 port 以及(或) 443  
    •        這個就是鼎鼎大名的 WWW 主機(jī)服務(wù)開啟的程序啦!
    •        看你的需求啰!有 WWW 則必須要啟動!

沒有事的時候,我會望向白駝山,我清楚記得曾經(jīng)有一個女人在那邊等著我。其實"醉生夢死"只不過是她跟我開的一個玩笑,你越想知道自己是不是忘記的時候,你反而記得清楚。我曾經(jīng)聽人說過,當(dāng)你不能夠再擁有,你唯一可以做的,就是令自己不要忘記。

  不知道為什么,我常常做同一個夢。沒多久,我就離開了這個地方。那天,黃歷上寫著:驛馬動,火迫金行,大利西方。
(翌年,歐陽峰重返白駝山,成一方霸主,號稱西毒)
afei28 該用戶已被刪除
7 [報告]
發(fā)表于 2003-08-09 11:09 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽

論壇徽章:
0
8 [報告]
發(fā)表于 2003-08-09 21:19 |只看該作者

認(rèn)識系統(tǒng)服務(wù) daemons(轉(zhuǎn)貼)

頂!! 又學(xué)到了新東西.

論壇徽章:
0
9 [報告]
發(fā)表于 2003-08-10 00:54 |只看該作者

認(rèn)識系統(tǒng)服務(wù) daemons(轉(zhuǎn)貼)

應(yīng)該頂上去!

論壇徽章:
0
10 [報告]
發(fā)表于 2003-08-10 02:16 |只看該作者

認(rèn)識系統(tǒng)服務(wù) daemons(轉(zhuǎn)貼)

狂 頂先!   這種文章應(yīng)該進(jìn)精華 因為不是每個到這里來的人都是 UNIX老鳥,象我就肯定不是。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP