tcp_wrap之基礎知識

tcp_wrap:

    工做在tcp層,對基於tcp的訪問請求作控制。
    工做在用戶請求和服務監聽套接字之間的檢查過濾機制。能夠實現對某種服務的訪問請求,根據規則定義判斷是否容許訪問。

    須要二進制程序加載對應的庫文件才能予以控制。


tcpd 庫:
    包含在glib庫中。
    libwrap.so 動態庫文件
    有的程序在編譯是已經編譯爲靜態庫文件。

檢查應用程序是否受tcp_wrap控制
    1.動態庫文件
        #ldd `which sshd`|grep libwrap
            libwrap.so.*

        顯示二進制程序所需的庫文件。若出現libwarp.so文件則說明使用動態庫方式。

    2.靜態庫文件
        #strings `which portmap` |grep hosts
            /etc/host.allow
            /etc/host.deny
        若出現以上文件,則說明已編譯爲靜態。

tcp_warp訪問控制文件:
    /etc/hosts.allow
    /etc/hosts.deny

    語法格式:
        DAEMON_LIST: CLIENT_LIST[ :OPTIONS]

        DAEMON_LIST 二進制程序名,不是服務名。
            ALL 表示全部受控制的程序
            PROGNAME@IP 適用於主機有多個ip地址的狀況,指定從哪一個ip地址訪問服務。

        CLIENT_LIST 客戶端列表
            IP ip地址

            NETWORKADDR  網段
                NETWORK/NETMASK
                NETWORK.

            HOSTNAME
                FQDN
                .DOMAIN

            MACRO 宏
                ALL 所有客戶端
                LOCAL 和本機網卡在同個網段內的主機
                KNOWN FQDN能夠被正常解析
                UNKNOWN FQDN沒法解析
                PARANOID FQDN正向解析和反向解析不匹配
                EXCEPT 除了,不包含

        OPTIONS
            DENY
            ALLOW
            spawn  echo 「STRINGS」 >> /var/log/xxxx.log 記錄日誌

    宏:
        %c 客戶端信息 格式爲 USER@HOST
        %s 訪問服務的信息 格式爲 SERVER@HOST
        %h 客戶端主機名
        %p 訪問服務的pid


控制流程:
    hosts.allows --> hosts.deny --> 默認規則

    1.檢查hosts.allow,如有匹配規則則容許訪問,若沒有則檢查hosts.deny
    2.檢查hosts.deny,如有匹配規則則拒絕訪問
    3.檢查默認規則,默認爲容許

進程:
    standalone 獨立守護進程
        服務自我進行管理

    transient 瞬時守護進程
        由超級守護進程xinetd代爲管理。
ssh

相關文章
相關標籤/搜索