close

sddsf dfgfg sdfsdf dfgfg fdgdf 

UPnP Client
這篇寫的還真不賴出自 阿呆的blog說來有點遜,很久前就把UPnP弄上FreeBSD了,可是一直以來都怪怪的,對UPnP又不瞭解,也就一直放著爛~UPnP在FreeBSD上得資料不多,永遠都是安裝libupnp和LinuxIGD,然後就是開MSN測試,話是沒錯,可是MSN怎樣都會上線,也只會顯示個你是透過UPnP上線,過程順不順利,完全不知道~最近重新安裝Azureus後,發現它UPnP的部份很詳盡,對於成功、失敗、和Server的對談都有顯示,才發現UPnP已經掛點很久了~更進一步發現,LinuxIGD和libupnp在FreeBSD上根本不支援pf,因此重新搜尋相關資料。搜尋後發現,BSD系列有另一套UPnP,而且整個程式很小,甚至被移植到Linux上,像是OpenWRT就有它的身影,它叫做miniupnpd。miniupnpd設定不難,也就1個設定檔miniupnpd.conf,裡面設定也很簡單,也就設定WAN界面卡和LAN IP,還有allow的網路區段。不過它很方便的是,它可以直接執行,用「-d」參數即可前端執行,然後就可以看到UPnP Client和它的對話,像是Azureus、MSN都很清楚~最最重要的是,它在設計時,就是針對pf設計,所以對pf的支援性很好。話說UPnP在Linux、FreeBSD上,幹嘛要跟防火牆配合?這就是我一直不瞭解的部份,這次找資料後終於理解了~UPnP 它當然有它的規範,就像其他protocol一樣,他有自己的protocol spec,簡單的來說,UPnP Server其實是一個小型的應答器,走的是類似Web Server的protocol(根本就算是),對於Client,Client部份發出Request,UPnP Server則利用Web Server的對話方式,提供以xml檔案為基礎的對話內容。在FreeBSD上,基本的UPnP Server設計很簡單,它的功能就是幫你作Port對應,而實際上,就像前面說過的,它本身只是應答器,所有的對應動作,它還是交給Firewall, 因此UPnP Server要支援防火牆,針對特定防火牆下Port對應的指令,以miniupnpd來說,在BSD上支援pf,在Linux上支援 Netfilter;而LinuxIGD+libupnp在FreeBSD上則是支援IPFilter(ipnat)。此外, miniupnpd除了UPnP Server之外,也有開發UPnP Client,最重要的是,miniupnp整個講求的就是小,因此不論是Server還是Client,都很容易被移植,所以miniupnp的 client支援Linux、FreeBSD、Windows(MinGW),而且Client還可以用來顯示目前UPnP Server的狀態(Server資訊和目前對應情況),這樣一來,任何時候要開任何Port,都可以很輕易的用Client程式對應,任何時候要查詢 Server目前的對應狀況,也可以輕鬆的查詢。 因為隨便搜尋就會發現,很多很多很多的人在問,有沒有UPnP tools可以很簡單的開port,有人要Linux版的,有人要Windows版的,因此我特別將miniupnp的UPnP Client抓出來圖文解說一下,心動的自己點連結下載,沒感覺、不瞭解、看熱鬧的..........隨意即可。miniupnp的網站在http://miniupnp.free.fr/,在其中Download的頁面中,就有可以直接下載的連結。連結中,Windows的部份直接就有提供編譯好的binary版本,省去了安裝MinGW,以及編譯的麻煩。至於Linux部份,我直接下載source code,解壓縮後打make.....make install.....cp upnpc /usr/local/bin/ 就完成了,非常之輕鬆愉快~以下是在Windows上執行的畫面,首先我們先執行看看,看長什麼樣子(備註:我已經先copy到C:\WINNT\system32\ 我是win2k系統):我們可以看到,它有簡單而詳盡的說明。接著我們可以用它來查詢目前UPnP Server開了哪些Port:ㄟ~可以看到目前開了1個Port,是192.168.1.6的utorrent開的35050。再來我們試著來開port看看,我們開TCP 11131和UDP 11142:恩~看到了,我們成功的把port開出來了。再來我們把它們刪掉:簡 單方便吧~這樣一來,只要有支援UPnP的NAT,不論是AP、Linux、FreeBSD,我們都可以輕易的開個port來用,而Client更是沒有 顧忌,不論是Linux、FreeBSD、Windows,也都可以簡單方便的使用這個工具,ㄟ~MacOS目前我不清楚有沒有支援,不過MacOS和 Linux、FreeBSD都很親近,我相信是有支援的。最後補充一點,有沒有發現整個示範過程中,沒有出現任何的帳號、密碼,而且由upnpc建立的port,他的程式名稱也只是簡單的libminiupnpc,看起來很容易竄改的感覺。
沒 錯~UPnP方便歸方便,畢竟是M$提出來的東西,但是目前的UPnP有很大的問題,就是安全性極差,可以在google上搜尋upnp和安全漏洞,一定 可以發現,之前已經有人發出UPnP有嚴重的安全性問題,主要原因可能就在於目前的UPnP Server多半都沒有認證機制,像miniupnpd只有簡單的設定許可的網路區段,這在目前是很嚴重的問題,沒有大量的浮現,主要原因恐怕是目前大部 分人對它技術還不夠熟悉,不過最近client已經有很多人寫出來了,我相信相關的病毒在不久的未來就會出現,不論是針對UPnP的DDoS,或者是病毒 利用UPnP自動開洞進行入侵,我相信會出現的,可能再說這麼說得時候,已經有寫好的版本,只是還沒大規模感染或我不知道罷了。


.msgcontent .wsharing ul li { text-indent: 0; }



分享

Facebook
Plurk
YAHOO!



 

連著十多天的大雨,宜蘭三星鄉全數蔥田都泡在水中。三星青蔥產銷班長廖文彬說,有的青蔥外表看不出異狀,但埋在稻草下的蔥白已開始腐爛,「拔到一半就斷了,沒辦法採收」。

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 censludfmpbr 的頭像
    censludfmpbr

    无力地垂下

    censludfmpbr 發表在 痞客邦 留言(0) 人氣()