日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

FreeBSD下也有“看門人”--淺談tcpwrapper的基本使用方法( 二 )


telnetd : 192.168.1.0/255.255.255.0 : allow
這條規(guī)則放在
telnetd : ALL : deny
規(guī)則之上 , 否則允許192.168.1.0/24訪問的這條規(guī)則就等于“空規(guī)則”了 。

OK , 保存退出 。規(guī)則配置完成了 。如何得知自己配置的規(guī)則群有無邏輯錯誤(如出現(xiàn)“空規(guī)則”等)或其他錯誤呢?關于這個問題tcpwrapper的作者也考慮到了 , 所以他另外寫了兩個附帶的工具:tcpdchk與tcpdmatch , 默認這兩個程序都是在/usr/sbin/目錄下的 。tcpdchk是一個檢查工具 , 直接運行它就可以查出配置文件中的多種錯誤問題了 。其經(jīng)常使用方法為:
alex# tcpdchk

alex# tcpdchk -v
無參數(shù)運行tcpdchk可以直接得到該配置文件的錯誤提示(如果真的有錯誤存在的話);加上參數(shù)-v可以立刻得到所有規(guī)則的參數(shù)配對列表(這里無論規(guī)則是否有誤 , 都會一概顯示出來的) 。如果我的規(guī)則群中有幾十、幾百、甚至幾千條規(guī)則呢?哪能知道哪條打哪條啊?嘿嘿 , 還有辦法 , 這里就要用到第二個程序----tcpdmatch了 , 它是一個簡單的規(guī)則數(shù)據(jù)庫查詢工具 。使用它進行查詢的基本格式是:
alex# tcpdmatch 服務名 訪問的客戶端地址或者機器名

現(xiàn)在打個比方 , 我們想查看該服務器提供的telnetd服務是否允許IP地址為192.168.1.10的客戶端機器訪問呢?在SHELL中敲入:
alex# tcpdmatch telnetd 192.168.1.10
clIEnt: address 192.168.1.10 #提示你所查詢的客戶端機器地址為192.168.1.10
server: process telnetd #查詢的服務是telnetd
matched: /etc/hosts.allow line 2 #規(guī)則建立在/etc/hosts.allow的第2行
option: allow #管理者設置的行為是“允許”
access: granted #批準該規(guī)則

大伙如果覺得規(guī)則群中某些規(guī)則的設置問題上是比較含糊的話 , 不妨使用一下這兩個工具 , 它們可以幫助你很快地整理并建立起屬于自己的規(guī)則群 。

現(xiàn)在關于規(guī)則的設置問題就已經(jīng)告一段落了 。既然規(guī)則設置好了 , 如何能讓它們實施起來呢?大家應該知道 , 在FreeBSD中大多數(shù)INTERNET網(wǎng)絡服務都是通過inetd(超級網(wǎng)絡服務進程)來啟動與調(diào)節(jié)的 , 因此我們的tcpwrapper也應該從這里下手 。以前大多數(shù)的UNIX系統(tǒng)在使用tcpwrapper時都是通過使用tcpd守護進程來代替其他服務運行從而實現(xiàn)監(jiān)控其他網(wǎng)絡進程的目的的 , 不過在現(xiàn)在的FreeBSD4.x中這個操作問題已經(jīng)有了新的改良 , 現(xiàn)在我們只需要在啟動inetd時加入-w、-W這兩個參數(shù)就可以啟用tcpwrapper功能了 。那關于日志的問題又如何解決呢?如何你經(jīng)常使用inetd的話也應該清楚-l參數(shù)了吧?
alex# inetd -w -W -l

加了-l后我們就可以直接在/var/log/auth.log中找到相關的日志記錄了 。FreeBSD的日志比WINDOWS的更加直觀 , 大家已經(jīng)自己找找:)...像這條:
xxx 24 xx:xx:xx alex inetd[255]: refused connection from 218.20.121.161, service telnetd (tcp)
一看就知道是IP為218.20.121.161的客戶端機器企圖訪問本機的telnetd服務 , 被本機拒絕了...

說說預啟動的問題吧 。如何在啟動機器時使自動執(zhí)行tcpwrapper呢?使用ee編輯/etc/rc.conf , 寫入:
inetd_enable="YES"
inetd_flags="-w -W -l"

保存退出 , 重新啟動機器試試:) 。

是時候確認一下實驗后的“戰(zhàn)果”情況了 , 在服務器的SHELL中敲:
alex# sockstat -4
USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS
root inetd 77 4 tcp4 *:23 *:*
root syslogd 70 5 udp4 *:514 *:*

PID為77的inetd進程證明telnetd是在提供正常服務的(如果想再進一步地確認telnetd是否在提供正常的服務的話 , 你可以直接用內(nèi)網(wǎng)的機器登陸上去看一下) ?,F(xiàn)在使用規(guī)則“允許”范圍以外的其他地址的客戶端機器telnet上去 , 看看會如何 , 很快你就會看到:

遺失對主機的連接 。

推薦閱讀