<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 9.2 TCP Wrappers ## 9.2 TCP Wrappers 在進入主題之前,我們先來玩一個簡單的防火墻機制,那就是 TCP Wrappers 這玩意兒。如同前面說的, TCP wrappers 是透過客戶端想要鏈接的程序文件名,然后分析客戶端的 IP ,看看是否需要放行。那么哪些程序支持 TCP wrappers 的功能?這個 TCP wrappers 又該如何設定?我們這里先簡單的談談吧!(這個小節僅是簡單的介紹過 TCP wrappers ,更多相關功能請參考基礎學習篇的[第十八章](http://linux.vbird.org/linux_basic/0560daemons.php#security)內容喔!) - - - - - - ### 9.2.1 哪些服務有支持 說穿了, TCP wrappers 就是透過 /etc/hosts.allow, /etc/hosts.deny 這兩個寶貝蛋來管理的一個類似防火墻的機制, 但并非所有的軟件都可以透過這兩個檔案來控管,只有底下的軟件才能夠透過這兩個檔案來管理防火墻規則,分別是: - 由 super daemon (xinetd) 所管理的服務; - 有支援 libwrap.so 模塊的服務。 經由 xinetd 管理的服務還好理解,就是配置文件在 /etc/xinetd.d/ 里面的服務就是 xinetd 所管理的啊! 那么什么是有支持 libwrap.so 模塊呢?就讓我們來進行底下的例題,你就比較容易明白啰: 例題:請查出你的系統有沒有安裝 xinetd ,若沒有請安裝。安裝完畢后,請查詢 xinetd 管理的服務有哪些?答: ``` [root@www ~]# yum install xinetd Setting up Install Process Package 2:xinetd-2.3.14-29.el6.x86_64 already installed and latest version Nothing to do # 畫面中顯示,已經是最新的 xinetd !所以,已經有安裝啰! # 接下來找出 xinetd 所管理的服務群! [root@www ~]# chkconfig xinetd on <==要先讓 xinetd on 后才能看到底下的 [root@www ~]# chkconfig --list ....(前面省略).... xinetd based services: chargen-dgram: off chargen-stream: off ....(中間省略).... rsync: off <==下一小節的范例就用這玩意兒來解釋 tcpmux-server: off telnet: on ``` 上述結果最終輸出的部分就是 xinetd 所管理的服務群啰!上述的服務之防火墻簡易設定,都可以透過 TCP wrappers 來管理的嚕! 例題:請問, rsyslogd, sshd, xinetd, httpd (若該服務不存在,請自行安裝軟件),這四個程序有沒有支持 tcp wrappers 的抵擋功能?答:由于支持 tcp wrappers 的服務必定包含 libwrap 這一個動態函式庫,因此可以使用 ldd 來觀察該服務即可。 簡單的使用方式為: ``` [root@www ~]# ldd $(which rsyslogd sshd xinetd httpd) # 這個方式可以將所有的動態函式庫取出來查閱,不過需要眼睛搜尋。 # 可以透過底下的方式來處理更快! [root@www ~]# for name in rsyslogd sshd xinetd httpd; do echo $name; \ > ldd $(which $name) | grep libwrap; done rsyslogd sshd libwrap.so.0 => /lib64/libwrap.so.0 (0x00007fb41d3c9000) xinetd libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f6314821000) httpd ``` 上述的結果中,在該檔名檔下有出現 libwrap 的,代表有找到該函式庫,才有支持 tcp wrappers。 所以, sshd, xinetd 有支持,但是 rsyslogd, httpd 這兩支程序則不支持。也就是說, httpd 與 rsyslogd 不能夠使用 /etc/hosts.{allow|deny} 來進行防火墻機制的控管。 - - - - - - ### 9.2.2 /etc/hosts.{allow|deny} 的設定方式 那如何透過這兩個檔案來抵擋有問題的 IP 來源呢?這兩個檔案的語法都一樣,很簡單的: ``` <service(program_name)> : <IP, domain, hostname> <服務 (亦即程序名稱)> : <IP 或領域 或主機名> # 上頭的 > < 是不存在于配置文件中的喔! ``` 我們知道防火墻的規則都是有順序的,那這兩個檔案與規則的順序優先是怎樣呢?基本上是這樣的: - 先以 /etc/hosts.allow 為優先比對,該規則符合就予以放行; - 再以 /etc/hosts.deny 比對,規則符合就予以抵擋; - 若不在這兩個檔案內,亦即規則都不符合,最終則予以放行。 我們拿 rsync 這個 xinetd 管理的服務來進行說明好了,請參考底下的例題吧: 例題:先開放本機的 127.0.0.1 可以進行任何本機的服務,然后,讓區網 (192.168.1.0/24) 可以使用 rsync , 同時 10.0.0.100 也能夠使用 rsync ,但其他來源則不允許使用 rsync 喔。答:我們得要先知道 rsync 的服務啟動的檔名為何,因為 tcp wrappers 是透過啟動服務的檔名來管理的。 當我們觀察 rsync 的配置文件時,可以發現: ``` [root@www ~]# cat /etc/xinetd.d/rsync service rsync { disable = yes flags = IPv6 socket_type = stream wait = no user = root server = /usr/bin/rsync <==檔名叫做 rsync server_args = --daemon log_on_failure += USERID } ``` 因此程序字段的項目要寫的是 rsync 喔!因此,我們應該要這樣設定的: ``` [root@www ~]# vim /etc/hosts.allow ALL: 127.0.0.1 <==這就是本機全部的服務都接受! rsync: 192.168.1.0/255.255.255.0 10.0.0.100 [root@www ~]# vim /etc/hosts.deny rsync: ALL ``` 上面的例題有幾個重點,首先, tcp wrappers 理論上不支持 192.168.1.0/24 這種透過 bit 數值來定義的網域, 只支持 netmask 的地址顯示方式。另外,如果有多個網域或者是單一來源,可以透過空格來累加。 如果想要寫成多行呢?也可以啊!多寫幾行『 kshd: IP 』的方式也可以,不必要將所有數據集中在一行啦!因為 tcp wrappers 也是一條一條規則比對嘛! 基本上,你只要理解這些數據即可!因為絕大部分的時刻,我們都會建議使用底下介紹的 Netfilter 的機制來抵擋封包。 那讓我們準備開始來玩玩 iptables 封包過濾防火墻吧! - - - - - -
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看