TCP_Wrappers * 啟動(dòng)的服務(wù)名稱 (daemon 執(zhí)行檔檔名),; 來進(jìn)行用戶端使用者是否能夠登入的判斷呢!不過,,雖然這兩個(gè)檔案已經(jīng)被整合到 xinetd 里面去了,, 不過,要獲得更多的功能,,還是得要安裝 tcp_wrappers 這個(gè)套件才行,! 因?yàn)椋@兩個(gè)檔案本身就是 tcp_wrappers ( 其實(shí)是 /usr/sbin/tcpd 那個(gè)檔案而已啦,! ) 的設(shè)定檔?。?而他也可以整合到整個(gè)系統(tǒng)的服務(wù)里頭去,,可以算是最最基礎(chǔ)的一個(gè)防火墻架構(gòu)啦,! ^_^ 其實(shí), /etc/hosts.allow 與 /etc/hosts.deny 是 /usr/sbin/tcpd 的設(shè)定檔,, 而這個(gè) /usr/bin/tcpd 則是用來分析進(jìn)入系統(tǒng)的 TCP 封包的一個(gè)軟體,,他是由 TCP Wrappers 所提供的。 那為什么叫做 TCP_Wrappers 呢,?那么 wrappers 有包裹的意思,,所以說,,這個(gè)套件本身的功能就是在分析 TCP 網(wǎng)路資料封包啦!那么剛剛我們稍微提到我們網(wǎng)路的封包資料主要是以 TCP 封包為主,,這個(gè) TCP 封包的檔頭至少記錄了來源與目主機(jī)的 IP 與 port ,,因此,若藉由分析 TCP 封包,,就可以比對(duì)看我要不要讓這個(gè)資料進(jìn)入到主機(jī)里面來啰,!所以啦,我們要使用 TCP_Wrappers 來控管的,,就是: 1. 來源 IP TCP_Wrappers 設(shè)定 TCP 封包是否可以進(jìn)入的設(shè)定檔在 /etc/hosts.allow 與 /etc/hosts.deny 當(dāng)中,。因此,基本上,,如果一個(gè)服務(wù)是受到 xinetd 或 TCP_Wrappers 的控制時(shí),,那么該服務(wù)就會(huì)受限于 hosts.allow 與 hosts.deny 的管理了!而如果你自己安裝的套件當(dāng)中( 亦即使用 Tarball 安裝的方式之套件 ),,除非有自行定義支援 TCP_Wrappers 的功能 ,,否則就無法使用這個(gè)玩意啰!嘿嘿,! 那么這兩個(gè)檔案是干嘛用的,?剛剛不是提過哪!他主要是用來規(guī)范 TCP 封包的規(guī)則的,,所以呢,, 里面記錄的當(dāng)然就是:‘某些 IP 在特定服務(wù)中是否能夠進(jìn)入主機(jī)’!那么要怎么寫,? 這兩個(gè)檔案的內(nèi)容基本的語法是: <service(program_name)> : <IP, domain, hostname> : <action> 所以我們要先找出來那個(gè) service_name 才行,,例如以我們剛剛的 telnet 為例,那個(gè) service_name 是什么呢,?其實(shí)指的就是在 xinetd.conf 設(shè)定檔中的 server 這個(gè)設(shè)定后面接的程式名稱啦,!所以, telnet 在 FC4 底下的名稱為 in.telnetd 因此,,如果你不想讓 140.116.44.202 這個(gè)位址及 140.116.32.0/255.255.255.0 這個(gè) C class 的網(wǎng)域進(jìn)入你的主機(jī)的話,,那么可以這樣在 /etc/hosts.deny 里面設(shè)定: ( 關(guān)于 IP, 網(wǎng)域, 網(wǎng)段, 還有相關(guān)的網(wǎng)路知識(shí),在這個(gè)基礎(chǔ)篇當(dāng)中我們不會(huì)談到,, 詳細(xì)的資料請(qǐng)先自行參考伺服器架設(shè)篇的內(nèi)容,! ) [root@linux ~]# vi /etc/hosts.deny 當(dāng)然也可以寫成兩行,亦即是: [root@linux ~]# vi /etc/hosts.deny 這樣一來,,對(duì)方就無法以 telnet 進(jìn)入你的主機(jī)啦,!方便吧!不過,既然如此,,為什么要設(shè)定成 /etc/hosts.allow 及 /etc/hosts.deny 兩個(gè)檔案呢,?其實(shí)只要有一個(gè)檔案存在就夠了, 不過,,為了設(shè)定方便起見,,我們存在兩個(gè)檔案,其中需要注意的是: * 寫在 hosts.allow 當(dāng)中的 IP 與網(wǎng)段,,為預(yù)設(shè)‘可通行’的意思,,亦即最后一個(gè)欄位 allow 可以不用寫; 也就是說, /etc/hosts.allow 的設(shè)定優(yōu)先于 /etc/hosts.deny 啰,!瞭解了嗎,?基本上,只要 hosts.allow 也就夠了,,因?yàn)槲覀兛梢詫?allow 與 deny 都寫在同一個(gè)檔案內(nèi),, 只是這樣一來似乎顯得有點(diǎn)雜亂無章,因此,,通常我們都是: 1. 允許進(jìn)入的寫在 /etc/hosts.allow 當(dāng)中; 此外,,我們還可以使用一些特殊參數(shù)在第一及第二個(gè)欄位喔!內(nèi)容有: * ALL:代表全部的 program_name 或者是 IP 都接受的意思,,例如 ALL: ALL: deny 再強(qiáng)調(diào)一次,,那個(gè) service_name 其實(shí)是啟動(dòng)該服務(wù)的程式,舉例來說,, /etc/init.d/ssh 這個(gè) script 里面,, 實(shí)際上啟動(dòng) ssh 服務(wù)的是 sshd 這個(gè)程式,所以,,你的 service_name 自然就是 sshd 啰,! 而 /etc/xinetd.d/telnet 內(nèi)有個(gè) server 的設(shè)定項(xiàng)目, 那個(gè)項(xiàng)目指到 in.telnetd 這個(gè)程式來啟動(dòng)的喔,!要注意的很,!(請(qǐng)分別使用 vi 進(jìn)這兩支 scripts 查閱) 好了,,我們還是以 telnet 為例子來說明好了,現(xiàn)在假設(shè)一個(gè)比較安全的流程來設(shè)定,,就是: 1. 只允許 140.116.44.0/255.255.255.0 與 140.116.79.0/255.255.255.0 這兩個(gè)網(wǎng)域,,及 140.116.141.99 這個(gè)主機(jī)可以進(jìn)入我們的 telnet 伺服器; 這樣的話,我可以這樣設(shè)定: [root@linux ~]# vi /etc/hosts.allow [root@linux ~]# vi /etc/hosts.deny 那么有沒有更安全的設(shè)定,,例如,,當(dāng)當(dāng)有其他人掃瞄我的 telnet port 時(shí),我就將他的 IP 記??!以做為未來的查詢與認(rèn)證之用! 是有的,!只是,,那就得要有額外的動(dòng)作參數(shù)加在第三欄了。主要的動(dòng)作有: * spawn (action) * twist (action) 我們知道 finger 可以反向追蹤網(wǎng)路封包的來源,,所以,我希望這樣: 1. 利用 safe_finger 去追蹤出對(duì)方主機(jī)的資訊,; 此時(shí)可以利用 spwan (action1) | (action2) : twist (action3) 來進(jìn)行, 也就是說,,其實(shí)在 /etc/hosts.deny 的第三個(gè)欄位可以繼續(xù)延伸下去的,!整個(gè)資訊有如這樣: [root@linux ~]# vi /etc/hosts.deny 在上面的例子中,第三行的 root 那個(gè)賬號(hào),,可以寫成你的個(gè)人賬號(hào)或者其他 e-mail ,,以免很少以 root 身份登入 Linux 主機(jī)時(shí),容易造成不知道的情況,,另外,,最后幾行,亦即 :twist 之后的那幾行為同一行,。如此一來,,當(dāng)未經(jīng)允許的電腦嘗試登入你的主機(jī)時(shí), 對(duì)方的螢?zāi)簧暇蜁?huì)顯示上面的最后一行,并且將他的 IP 寄到 root ( 或者是你自己的信箱 )那里去,! 另外請(qǐng)注意,,那個(gè) /usr/sbin/safe_finger 是由 tcp_wrappers 套件所提供的, 所以您必須要安裝該套件才行喔,! ^_^ 文章出處:飛諾網(wǎng)(www.):http://www./course/6_system/linux/Linuxjs/20090307/159060.html |
|