在 Linux 下使用 TCP 封裝器來加強網路服務安全
在這篇文章中,我們將會講述什麼是 TCP 封裝器以及如何在一臺 Linux 伺服器上配置他們來限制網路服務的許可權。在開始之前,我們必須澄清 TCP 封裝器並不能消除對於正確配置防火牆的需要。
就這一點而言,你可以把這個工具看作是一個基於主機的訪問控制列表,而且並不能作為你的系統的終極安全措施。透過使用一個防火牆和 TCP 封裝器,而不是隻偏愛其中的一個,你將會確保你的服務不會被出現單點故障。
正確理解 hosts.allow 和 hosts.deny 檔案
當一個網路請求到達你的主機的時候,TCP 封裝器會使用 hosts.allow
和 hosts.deny
(按照這樣的順序)來決定客戶端是否應該被允許使用一個提供的服務。.
在預設情況下,這些檔案內容是空的,或者被註釋掉,或者根本不存在。所以,任何請求都會被允許透過 TCP 過濾器而且你的系統被置於依靠防火牆來提供所有的保護。因為這並不是我們想要的。由於在一開始我們就介紹過的原因,清確保下面兩個檔案都存在:
# ls -l /etc/hosts.allow /etc/hosts.deny
兩個檔案的編寫語法規則是一樣的:
<services> : <clients> [: <option1> : <option2> : ...]
在檔案中,
services
指當前規則對應的服務,是一個逗號分割的列表。clients
指被規則影響的主機名或者 IP 地址,逗號分割的。下面的萬用字元也可以接受:ALL
表示所有事物,應用於clients
和services
。LOCAL
表示匹配在正式域名中沒有完全限定主機名(FQDN)的機器,例如localhost
。KNOWN
表示主機名,主機地址,或者使用者是已知的(即可以透過 DNS 或其它服務解析到)。UNKNOWN
和KNOWN
相反。PARANOID
如果進行反向 DNS 查詢彼此返回了不同的地址,那麼連線就會被斷開(首先根據 IP 去解析主機名,然後根據主機名去獲得 IP 地址)。
- 最後,一個冒號分割的動作列表表示了當一個規則被觸發的時候會採取什麼操作。
你應該記住 /etc/hosts.allow
檔案中允許一個服務接入的規則要優先於 /etc/hosts.deny
中的規則。另外還有,如果兩個規則應用於同一個服務,只有第一個規則會被納入考慮。
不幸的是,不是所有的網路服務都支援 TCP 過濾器,為了檢視一個給定的服務是否支援他們,可以執行以下命令:
# ldd /path/to/binary | grep libwrap
如果以上命令執行以後得到了以下結果,那麼它就可以支援 TCP 過濾器,sshd
和 vsftpd
作為例子,輸出如下所示。
查詢 TCP 過濾器支援的服務
如何使用 TCP 過濾器來限制服務的許可權
當你編輯 /etc/hosts.allow
和 /etc/hosts.deny
的時候,確保你在最後一個非空行後面透過Enter鍵來新增一個新的行。
為了使得 SSH 和 FTP 服務只允許 localhost
和 192.168.0.102
並且拒絕所有其他使用者,在 /etc/hosts.deny
新增如下內容:
sshd,vsftpd : ALL
ALL : ALL
而且在 /etc/hosts.allow
檔案中新增如下內容:
sshd,vsftpd : 192.168.0.102,LOCAL
這些更改會立刻生效並且不需要重新啟動。
在下圖中你會看到,在最後一行中刪掉 LOCAL
後,FTP 伺服器會對於 localhost
不可用。在我們新增了萬用字元以後,服務又變得可用了。
確認 FTP 許可權
為了允許所有服務對於主機名中含有 example.com
都可用,在 hosts.allow
中新增如下一行:
ALL : .example.com
而為了禁止 10.0.1.0/24
的機器訪問 vsftpd
服務,在 hosts.deny
檔案中新增如下一行:
vsftpd : 10.0.1.
在最後的兩個例子中,注意到客戶端列表每行開頭和結尾的點。這是用來表示 “所有名字或者 IP 中含有那個字串的主機或客戶端”
這篇文章對你有用嗎?你有什麼問題或者評論嗎?請你盡情在下面留言交流。
via: http://www.tecmint.com/secure-linux-tcp-wrappers-hosts-allow-deny-restrict-access/
作者:Gabriel Cánepa 譯者:LinuxBars 校對:wxy
相關文章
- 在Linux下使用TCP封裝器來加強網路服務安全LinuxTCP封裝
- 用Apache的CGI封裝器來加強安全性(轉)Apache封裝
- linux下重啟網路服務Linux
- 如何加強辦公網路中的網路安全
- 北約與歐盟加強網路安全合作
- Redis在Window服務下的安裝使用Redis
- 國務院:全面加強網路安全和資料安全保護
- 維護網路安全需要加強國際合作
- 使用capability加強Linux系統的安全(轉)Linux
- 美國政府簽署網路安全行政令將全面加強網路安全建設
- 八成網民希望政府加強管制“網路交易”安全
- Linux下cifs公用網際網路系統和samba服務LinuxSamba
- 浙江著力加強網路安全技術手段建設
- 提高人民媒介素養,加強網路安全建設
- 【網路安全】來嘛!一起建立http服務!web必學!!!HTTPWeb
- 在Linux上安裝Memcached服務Linux
- 在Linux中,如何進行網路服務的監控?Linux
- Linux下安裝SVN服務端Linux服務端
- linux下安裝、配置samba服務LinuxSamba
- 通過google身份驗證器加強linux帳戶安全GoLinux
- 網路封裝APi封裝API
- 《Linux防火牆(第4版)》——2.6 私有網路服務VS公有網路服務Linux防火牆
- 來關注電信級網路安全服務的公眾微信吧
- 什麼是網路安全等保服務
- 網聯汽車存安全隱患美當局呼籲加強網路安全保護
- Ubuntu下的網路服務詳解Ubuntu
- 安裝和配置Tripwire,加強你的Linux系統安全 (轉)Linux
- 在WebLogic伺服器下 使用Apache Web 服務外掛Web伺服器Apache
- 服裝行業在“網際網路+”時代背景下的幾大好處行業
- linux下使用TCP存活(keepalive)定時器LinuxTCP定時器
- LINUX下VNC服務的安裝配置LinuxVNC
- linux下Samba服務配置與安裝LinuxSamba
- 《Linux網路開發必學教程》12_TCP通訊框架:服務端設計LinuxTCP框架服務端
- TCP服務端TCP服務端
- 陣列方法的封裝/程式碼的複用加強陣列封裝
- 使用 Istio CNI 支援強安全 TKE Stack 叢集的服務網格流量捕獲
- nginx加強安全模組Nginx
- 在Linux下配置TCP/IP(轉)LinuxTCP