您好,登錄后才能下訂單哦!
小編給大家分享一下Linux中如何使用TCP封裝器加強(qiáng)網(wǎng)絡(luò)服務(wù)安全,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
我們將會講述什么是 TCP 封裝器TCP wrappers以及如何在一臺 Linux 服務(wù)器上配置他們來限制網(wǎng)絡(luò)服務(wù)的權(quán)限。在開始之前,我們必須澄清 TCP 封裝器并不能消除對于正確配置防火墻的需要。
就這一點(diǎn)而言,你可以把這個工具看作是一個基于主機(jī)的訪問控制列表,而且并不能作為你的系統(tǒng)的終極安全措施。通過使用一個防火墻和 TCP 封裝器,而不是只偏愛其中的一個,你將會確保你的服務(wù)不會被出現(xiàn)單點(diǎn)故障。
當(dāng)一個網(wǎng)絡(luò)請求到達(dá)你的主機(jī)的時候,TCP 封裝器會使用 hosts.allow
和 hosts.deny
(按照這樣的順序)來決定客戶端是否應(yīng)該被允許使用一個提供的服務(wù)。.
在默認(rèn)情況下,這些文件內(nèi)容是空的,或者被注釋掉,或者根本不存在。所以,任何請求都會被允許通過 TCP 過濾器而且你的系統(tǒng)被置于依靠防火墻來提供所有的保護(hù)。因?yàn)檫@并不是我們想要的。由于在一開始我們就介紹過的原因,清確保下面兩個文件都存在:
# ls -l /etc/hosts.allow /etc/hosts.deny
兩個文件的編寫語法規(guī)則是一樣的:
: [: : : ...]
在文件中,
services
指當(dāng)前規(guī)則對應(yīng)的服務(wù),是一個逗號分割的列表。
clients
指被規(guī)則影響的主機(jī)名或者 IP 地址,逗號分割的。下面的通配符也可以接受:
ALL
表示所有事物,應(yīng)用于clients
和services
。LOCAL
表示匹配在正式域名中沒有完全限定主機(jī)名(FQDN)的機(jī)器,例如 localhost
。KNOWN
表示主機(jī)名,主機(jī)地址,或者用戶是已知的(即可以通過 DNS 或其它服務(wù)解析到)。UNKNOWN
和 KNOWN
相反。PARANOID
如果進(jìn)行反向 DNS 查找彼此返回了不同的地址,那么連接就會被斷開(首先根據(jù) IP 去解析主機(jī)名,然后根據(jù)主機(jī)名去獲得 IP 地址)。最后,一個冒號分割的動作列表表示了當(dāng)一個規(guī)則被觸發(fā)的時候會采取什么操作。
你應(yīng)該記住 /etc/hosts.allow
文件中允許一個服務(wù)接入的規(guī)則要優(yōu)先于 /etc/hosts.deny
中的規(guī)則。另外還有,如果兩個規(guī)則應(yīng)用于同一個服務(wù),只有第一個規(guī)則會被納入考慮。
不幸的是,不是所有的網(wǎng)絡(luò)服務(wù)都支持 TCP 過濾器,為了查看一個給定的服務(wù)是否支持他們,可以執(zhí)行以下命令:
# ldd /path/to/binary | grep libwrap
如果以上命令執(zhí)行以后得到了以下結(jié)果,那么它就可以支持 TCP 過濾器,sshd
和 vsftpd
作為例子,輸出如下所示。
查找 TCP 過濾器支持的服務(wù)
當(dāng)你編輯 /etc/hosts.allow
和 /etc/hosts.deny
的時候,確保你在最后一個非空行后面通過回車鍵來添加一個新的行。
為了使得 SSH 和 FTP 服務(wù)只允許 localhost
和 192.168.0.102
并且拒絕所有其他用戶,在 /etc/hosts.deny
添加如下內(nèi)容:
sshd,vsftpd : ALLALL : ALL
而且在 /etc/hosts.allow
文件中添加如下內(nèi)容:
sshd,vsftpd : 192.168.0.102,LOCAL
這些更改會立刻生效并且不需要重新啟動。
在下圖中你會看到,在最后一行中刪掉 LOCAL
后,F(xiàn)TP 服務(wù)器會對于 localhost
不可用。在我們添加了通配符以后,服務(wù)又變得可用了。
確認(rèn) FTP 權(quán)限
為了允許所有服務(wù)對于主機(jī)名中含有 example.com
都可用,在 hosts.allow
中添加如下一行:
ALL : .example.com
而為了禁止 10.0.1.0/24
的機(jī)器訪問 vsftpd
服務(wù),在 hosts.deny
文件中添加如下一行:
vsftpd : 10.0.1.
在最后的兩個例子中,注意到客戶端列表每行開頭和結(jié)尾的點(diǎn)。這是用來表示 “所有名字或者 IP 中含有那個字符串的主機(jī)或客戶端”
看完了這篇文章,相信你對“Linux中如何使用TCP封裝器加強(qiáng)網(wǎng)絡(luò)服務(wù)安全”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。