2009-10-28

好樣的…成功阻擋PPStream的連線

最近…學校住宿學生太愛使用pps…
但,這一些有腦殼的使用者,卻偏偏全然不知道pps是使用自編寫的p2p技術…不是只有單純的載回來看,更會傳一堆讓別人載…

所以,拿著junpier的netscreen-firewall,最近一直在用nsm來想怎麼樣寫一個pattern來filter出pps的流量…

第一次測試--
方式:drop udp 17788 connection
原因:因為pps主程式基本上一定會使用udp 17788,所以先測看看
結果:失敗
原因:因為17788雖然一定會用,但,好像並不是資源分享,應該只是詢問主站

第二次測試--
方式:使用L7-filter 的pplive pattern來擋
原因:呃,想說拿別人寫好的測試
結果:失敗
原因:我不確定L7-filter的pattern寫的方式是不是能讓netscreen的idp接授,但,compile有過,不過filter不出來


第三次測試--
方式:使用firewall來監聽用來測試pps的一台電腦的upd-all-port
原因:求人不如求己,先了解pps的first-data-packet與first-packet的結構,找出keyword
結果:只是監聽,一定成功…不過也確實找到keyword--3.C2q
原因:因為灌有pps的電腦我把一些會對外連線的應用程式給鎖起來,只讓pps可以對外連線,然後發現開出許多udp-connection,這一次發現這一些upd-connection的packet結構都有3.C2q,所以…進行第四次測試

第四次測試--
方式:firewall pattern drop keyword 3.C2q of upd-connect-packet
原因:因為第三次測試監聽的成果
結果:失敗
原因:3.C2q似乎只是pps運用的某一種資料,但,他實際似乎使用的更多元

第五次測試--
方式:再次監聽
原因:因為第三、四次失敗
結果:這一次取得的資料比較完整…把一些特定的packet分析,發現在點選pps上的節目單時,都會有三個東西送出,1-ppsap.exe/2-PPSTREAM/3-pps://xxxxxxxxx
原因:這一次特別把時間放長,然後觀察一些比較特別的明碼,發現,它與bt、winmx、ed2k一樣,它似乎自己定下了協定方式,所以固定了通訊

第六次測試--
方式:以first-packet結構,分析【.*\[pps\].*】的文字表示法,把符合的drop
原因:因為第五次的資料
結果:十分成功
原因:當policy一下去,發現,把pps完整關閉(主程式關掉後,再到工作管理員把ppsap.exe也關閉)再開,可以發現並不是那麼快速的連到主程式四周的那一些快報、清單與媒體,然後,隨意點選清單中的項目…可以很明顯的看見主程式告知「無法連線伺服器」,而在firewall的log中也match很多的log…

經六次的測試,最後還是讓我抓出一些重點…
雖然,我覺得pps往後在加密上會動手腳,但只要這種加了密,client的運算就會吃重…這可跟原本pps的訴求不太對等…畢盡現在許多的爛電腦level也是要用pps觀看的…

不過,我會做這樣的filter也不是為了阻擋,而是為了分析網路使用型態,所以我policy是定下去了,但動作還是by-pass的…

4 則留言:

dkcb62 提到...

您好
可以向您請教封鎖pps的pattern嗎?
另外,您有試過封鎖youtube嗎?

死狐狸 提到...

抱歉…pattern是留在juniper isg的fw上…目前我己經換成fortinet的utm來管理…

juniper上的pattern與其他的fw的pattern寫法都不一樣,所以…

再來是juniper我己經沒在使用他的idp功能…

而pattern…我在第六次的已經寫出來了呀…就【.*\[pps\].*】
pps連線一定會走「pps://」,基本上過濾「pps:」開頭的header應該就會有效…但我不確定適不適用更新至目前的pps軟體…因為教育部也沒有明文規定「網路電視」這東西不能在學網上使用…所以基本上,我之前寫這東西只是為了封包記錄,以免學生流量超過跑來魯小小…

至於youtube…你是想阻擋到什麼程度?
禁止上youtube的網站?你可以有以下作法:
1)把youtube的ip禁掉或路由拿掉
2)把youtube的domain禁掉或指到別的地方
3)拿youtube的網址來做web filiter

computerdoctor995 提到...

Hello,您好:
請教您,所以如果是Fortinet的設備要阻擋PPS,那要怎麼做呢???

死狐狸 提到...

如果你的fortinet的firewall等級不差的話(至少是要能撐數百人的機型),應該在預設的idp pattern就會有stream或media的分類就有包ppstream、pplive、pptv等…甚或風行網等等…是預設就有…我手邊有fortigate 1240b的,內建的就有…

但如果是小型機型,那就難了,因為官方並沒有把這種小機型(約撐50人以下的)定位在「出口型firewall」…

再來就是,fortinet並沒有「自訂pattern」的方式。