這篇文章將為大家詳細(xì)講解有關(guān)怎么在Linux下使用TCP封裝器來(lái)加強(qiáng)網(wǎng)絡(luò)服務(wù)安全,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
公司主營(yíng)業(yè)務(wù):成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。成都創(chuàng)新互聯(lián)公司推出榮成免費(fèi)做網(wǎng)站回饋大家。
在開(kāi)始之前,我們必須澄清 TCP 封裝器并不能消除對(duì)于正確配置防火墻的需要。
就這一點(diǎn)而言,你可以把這個(gè)工具看作是一個(gè)基于主機(jī)的訪問(wèn)控制列表,而且并不能作為你的系統(tǒng)的***安全措施。通過(guò)使用一個(gè)防火墻和 TCP 封裝器,而不是只偏愛(ài)其中的一個(gè),你將會(huì)確保你的服務(wù)不會(huì)被出現(xiàn)單點(diǎn)故障。
正確理解 hosts.allow 和 hosts.deny 文件
當(dāng)一個(gè)網(wǎng)絡(luò)請(qǐng)求到達(dá)你的主機(jī)的時(shí)候,TCP 封裝器會(huì)使用 hosts.allow 和 hosts.deny (按照這樣的順序)來(lái)決定客戶端是否應(yīng)該被允許使用一個(gè)提供的服務(wù)。.
在默認(rèn)情況下,這些文件內(nèi)容是空的,或者被注釋掉,或者根本不存在。所以,任何請(qǐng)求都會(huì)被允許通過(guò) TCP 過(guò)濾器而且你的系統(tǒng)被置于依靠防火墻來(lái)提供所有的保護(hù)。因?yàn)檫@并不是我們想要的。由于在一開(kāi)始我們就介紹過(guò)的原因,清確保下面兩個(gè)文件都存在:
# ls -l /etc/hosts.allow /etc/hosts.deny
兩個(gè)文件的編寫(xiě)語(yǔ)法規(guī)則是一樣的:
: [: : : ...]
在文件中,
1. services 指當(dāng)前規(guī)則對(duì)應(yīng)的服務(wù),是一個(gè)逗號(hào)分割的列表。
2. clients 指被規(guī)則影響的主機(jī)名或者 IP 地址,逗號(hào)分割的。下面的通配符也可以接受:
1).ALL 表示所有事物,應(yīng)用于clients和services。
2).LOCAL 表示匹配在正式域名中沒(méi)有完全限定主機(jī)名(FQDN)的機(jī)器,例如 localhost。
3).KNOWN 表示主機(jī)名,主機(jī)地址,或者用戶是已知的(即可以通過(guò) DNS 或其它服務(wù)解析到)。
4).UNKNOWN 和 KNOWN 相反。
5).PARANOID 如果進(jìn)行反向 DNS 查找彼此返回了不同的地址,那么連接就會(huì)被斷開(kāi)(首先根據(jù) IP 去解析主機(jī)名,然后根據(jù)主機(jī)名去獲得 IP 地址)。
3. ***,一個(gè)冒號(hào)分割的動(dòng)作列表表示了當(dāng)一個(gè)規(guī)則被觸發(fā)的時(shí)候會(huì)采取什么操作。
你應(yīng)該記住 /etc/hosts.allow 文件中允許一個(gè)服務(wù)接入的規(guī)則要優(yōu)先于 /etc/hosts.deny 中的規(guī)則。另外還有,如果兩個(gè)規(guī)則應(yīng)用于同一個(gè)服務(wù),只有***個(gè)規(guī)則會(huì)被納入考慮。
不幸的是,不是所有的網(wǎng)絡(luò)服務(wù)都支持 TCP 過(guò)濾器,為了查看一個(gè)給定的服務(wù)是否支持他們,可以執(zhí)行以下命令:
# ldd /path/to/binary | grep libwrap
如果以上命令執(zhí)行以后得到了以下結(jié)果,那么它就可以支持 TCP 過(guò)濾器,sshd 和 vsftpd 作為例子,輸出如下所示。
查找 TCP 過(guò)濾器支持的服務(wù)
如何使用 TCP 過(guò)濾器來(lái)限制服務(wù)的權(quán)限
當(dāng)你編輯 /etc/hosts.allow 和 /etc/hosts.deny 的時(shí)候,確保你在***一個(gè)非空行后面通過(guò)回車(chē)鍵來(lái)添加一個(gè)新的行。
為了使得 SSH 和 FTP 服務(wù)只允許 localhost 和 192.168.0.102 并且拒絕所有其他用戶,在 /etc/hosts.deny 添加如下內(nèi)容:
sshd,vsftpd : ALL ALL : ALL
而且在 /etc/hosts.allow 文件中添加如下內(nèi)容:
sshd,vsftpd : 192.168.0.102,LOCAL
這些更改會(huì)立刻生效并且不需要重新啟動(dòng)。
在下圖中你會(huì)看到,在***一行中刪掉 LOCAL 后,F(xiàn)TP 服務(wù)器會(huì)對(duì)于 localhost 不可用。在我們添加了通配符以后,服務(wù)又變得可用了。
確認(rèn) FTP 權(quán)限
為了允許所有服務(wù)對(duì)于主機(jī)名中含有 example.com 都可用,在 hosts.allow 中添加如下一行:
ALL : .example.com
而為了禁止 10.0.1.0/24 的機(jī)器訪問(wèn) vsftpd 服務(wù),在 hosts.deny 文件中添加如下一行:
vsftpd : 10.0.1.
在***的兩個(gè)例子中,注意到客戶端列表每行開(kāi)頭和結(jié)尾的點(diǎn)。這是用來(lái)表示 “所有名字或者 IP 中含有那個(gè)字符串的主機(jī)或客戶端”
關(guān)于“怎么在Linux下使用TCP封裝器來(lái)加強(qiáng)網(wǎng)絡(luò)服務(wù)安全”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。