iT邦幫忙

12

如何在iptables的防火牆上終止一個進行中的TCP連線?...Part 1 of 2

每天都會利用晚上看看我所代管網路的防火牆是否有異常的情況發生,因為是用iptables建立的防火牆,所以用iptstate就可以看到現在即時的流量進出狀況,因為大家都是高手所以iptstate的用法就不贅述了。結果發現在星期假日的晚間,理應無人使用的電腦居然會有上網的情況發生。因為port 80是有開放,所以能上網就不稀奇,暫且撇開靈異事件不討論,推想可能是有人電腦沒有關還停留在瀏覽器開啟的狀態,不然就是上了被植入木馬的網站後被感染了。首要應該是先中斷這個異常連線,根據網路上以關鍵字"cut tcp connection"搜到的程式比較多人討論的就是"cutter"及"tcpkill"。因為tcpkill是內含在dsniffer內,這個軟體包涵太多駭客工具,為了安全起見,就試試"cutter"吧!!
因為想要順便嚐試影像分享的功能,所以特別錄製了一段測試影片,用影片也比較好說明。以下就是我針對cutter所錄製的測試過程,利用wget去下載CentOS 5.3的iso檔:
<object height="516" width="638"><param name="movie" value="http://www.youtube.com/v/M4ivh5LQLfs&hl=zh_TW&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed allowfullscreen="true" allowscriptaccess="always" height="516" src="http://www.youtube.com/v/M4ivh5LQLfs&hl=zh_TW&fs=1" type="application/x-shockwave-flash" width="638"></embed></object>
從上面影片可以看到cutter真的把正在運作中的連線給斷了!!不過因為cutter是利用指令的參數比對/proc/net/ip_conntrack檔案當時的連線資料找出連線的來源IP、port及目的IP、port然後加以阻斷。所以如果軟體又開了另一個port,且是能夠接續前一傳輸的軟體(例如續傳ftp、streaming軟體等),那是無法完全斷絕的。因此接著可以看到wget的續傳的機制,wget開另一個port再繼續下載。而最後出現橘色的方塊是刻意蓋掉我的IP。
cutter的原理在網站上說明很清楚,各位高手自己上網看吧。我接下來要說的是測試過程發生的一個問題,當我測試時一直都會出現錯誤訊息:No matching connections found,結果上網查到類似的錯誤
http://groups.google.com/group/linux.debian.bugs.dist/browse_thread/thread/d652484f9356227c/f7e149b30fa3c747?q=tcp+cutter#f7e149b30fa3c747
但是還是沒有解,後來再找看看其他的資料,最後發現這個網頁
http://bugs.gentoo.org/142772
才恍然大悟,原來我犯了一個自認是高手的人都會犯的錯:說明沒看清楚。cutter是firewall上針對經過的(pass through)連線加以截斷的功能,不是針對防火牆本身對外的連線加以截斷。這就是我說要各位高手自己上網看的原因,要養成看文件的習慣。曾經也是因為release notes沒看清楚,結果搞到一台冰箱級的伺服器一週當機6次,差點回家吃自己。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
bizpro
iT邦大師 1 級 ‧ 2009-04-24 23:04:04

感謝分享.

0

感恩分享!
畫面稍微有點小、還好您有說明!

0
kuochiahao
iT邦研究生 1 級 ‧ 2009-04-28 10:12:54

感謝分享

我要留言

立即登入留言