iiop協議在哪個路徑下配置
⑴ 在TCP/IP篩選里的三個:TCP埠 UDP埠 IP協議中分別該怎麼設置
埠:1
服務:tcpmux
說明:這顯示有人在尋找sgi irix機器。irix是實現tcpmux的主要提供者,默認情況下tcpmux在這種系統中被打開。irix機器在發布是含有幾個默認的無密碼的帳戶,如:ip、guest uucp、nuucp、demos 、tutor、diag、outofbox等。許多管理員在安裝後忘記刪除這些帳戶。因此hacker在internet上搜索tcpmux並利用這些帳戶。
埠:7
服務:echo
說明:能看到許多人搜索fraggle放大器時,發送到x.x.x.0和x.x.x.255的信息。
埠:19
服務:character generator
說明:這是一種僅僅發送字元的服務。udp版本將會在收到udp包後回應含有**字元的包。tcp連接時會發送含有**字元的數據流直到連接關閉。hacker利用ip欺騙可以發動dos攻擊。偽造兩個chargen伺服器之間的udp包。同樣fraggle dos攻擊向目標地址的這個埠廣播一個帶有偽造受害者ip的數據包,受害者為了回應這些數據而過載。
埠:21
服務:ftp
說明:ftp伺服器所開放的埠,用於上傳、下載。最常見的攻擊者用於尋找打開anonymous的ftp伺服器的方法。這些伺服器帶有可讀寫的目錄。木馬doly trojan、fore、invisible ftp、webex、wincrash和blade runner所開放的埠。
埠:22
服務:ssh
說明:pcanywhere建立的tcp和這一埠的連接可能是為了尋找ssh。這一服務有許多弱點,如果配置成特定的模式,許多使用rsaref庫的版本就會有不少的漏洞存在。
埠:23
服務:telnet
說明:遠程登錄,入侵者在搜索遠程登錄unix的服務。大多數情況下掃描這一埠是為了找到機器運行的操作系統。還有使用其他技術,入侵者也會找到密碼。木馬tiny telnet server就開放這個埠。
埠:25
服務:smtp
說明:smtp伺服器所開放的埠,用於發送郵件。入侵者尋找smtp伺服器是為了傳遞他們的spam。入侵者的帳戶被關閉,他們需要連接到高帶寬的e-mail伺服器上,將簡單的信息傳遞到不同的地址。木馬antigen、email password sender、haebu coceda、shtrilitz stealth、winpc、winspy都開放這個埠。
埠:31
服務:msg authentication
說明:木馬master paradise、hackers paradise開放此埠。
埠:42
服務:wins replication
說明:wins復制
埠:53
服務:domain name server(dns)
說明:dns伺服器所開放的埠,入侵者可能是試圖進行區域傳遞(tcp),欺騙dns(udp)或隱藏其他的通信。因此防火牆常常過濾或記錄此埠。
埠:67
服務:bootstrap protocol server
說明:通過dsl和cable modem的防火牆常會看見大量發送到廣播地址255.255.255.255的數據。這些機器在向dhcp伺服器請求一個地址。hacker常進入它們,分配一個地址把自己作為局部路由器而發起大量中間人(man-in-middle)攻擊。客戶端向68埠廣播請求配置,伺服器向67埠廣播回應請求。這種回應使用廣播是因為客戶端還不知道可以發送的ip地址。
埠:69
服務:trival file transfer
說明:許多伺服器與bootp一起提供這項服務,便於從系統下載啟動代碼。但是它們常常由於錯誤配置而使入侵者能從系統中竊取任何 文件。它們也可用於系統寫入文件。
埠:79
服務:finger server
說明:入侵者用於獲得用戶信息,查詢操作系統,探測已知的緩沖區溢出錯誤,回應從自己機器到其他機器finger掃描。
埠:80
服務:http
說明:用於網頁瀏覽。木馬executor開放此埠。
埠:99
服務:metagram relay
說明:後門程序ncx99開放此埠。
埠:102
服務:message transfer agent(mta)-x.400 over tcp/ip
說明:消息傳輸代理。
埠:109
服務:post office protocol -version3
說明:pop3伺服器開放此埠,用於接收郵件,客戶端訪問伺服器端的郵件服務。pop3服務有許多公認的弱點。關於用戶名和密碼交 換緩沖區溢出的弱點至少有20個,這意味著入侵者可以在真正登陸前進入系統。成功登陸後還有其他緩沖區溢出錯誤。
埠:110
服務:sun公司的rpc服務所有埠
說明:常見rpc服務有rpc.mountd、nfs、rpc.statd、rpc.csmd、rpc.ttybd、amd等
埠:113
服務:authentication service
說明:這是一個許多計算機上運行的協議,用於鑒別tcp連接的用戶。使用標準的這種服務可以獲得許多計算機的信息。但是它可作為許多服務的記錄器,尤其是ftp、pop、imap、smtp和irc等服務。通常如果有許多客戶通過防火牆訪問這些服務,將會看到許多這個埠的連接請求。記住,如果阻斷這個埠客戶端會感覺到在防火牆另一邊與e-mail伺服器的緩慢連接。許多防火牆支持tcp連接的阻斷過程中發回rst。這將會停止緩慢的連接。
埠:119
服務:network news transfer protocol
說明:news新聞組傳輸協議,承載usenet通信。這個埠的連接通常是人們在尋找usenet伺服器。多數isp限制,只有他們的客戶才能訪問他們的新聞組伺服器。打開新聞組伺服器將允許發/讀任何人的帖子,訪問被限制的新聞組伺服器,匿名發帖或發送spam。
埠:135
服務:本地 service
說明:microsoft在這個埠運行dce rpc end-point mapper為它的dcom服務。這與unix 111埠的功能很相似。使用dcom和rpc的服務利用計算機上的end-point mapper注冊它們的位置。遠端客戶連接到計算機時,它們查找end-point mapper找到服務的位置。hacker掃描計算機的這個埠是為了找到這個計算機上運行exchange server嗎?什麼版本?還有些dos攻擊直接針對這個埠。
埠:137、138、139
服務:netbios name service
說明:其中137、138是udp埠,當通過網上鄰居傳輸文件時用這個埠。而139埠:通過這個埠進入的連接試圖獲得netbios/smb服務。這個協議被用於windows文件和列印機共享和samba。還有wins regisrtation也用它。
埠:143
服務:interim mail access protocol v2
說明:和pop3的安全問題一樣,許多imap伺服器存在有緩沖區溢出漏洞。記住:一種linux蠕蟲(admv0rm)會通過這個埠繁殖,因此許多這個埠的掃描來自不知情的已經被感染的用戶。當redhat在他們的linux發布版本中默認允許imap後,這些漏洞變的很流行。這一埠還被用於imap2,但並不流行。
埠:161
服務:snmp
說明:snmp允許遠程管理設備。所有配置和運行信息的儲存在資料庫中,通過snmp可獲得這些信息。許多管理員的錯誤配置將被暴露在internet。cackers將試圖使用默認的密碼public、private訪問系統。他們可能會試驗所有可能的組合。snmp包可能會被錯誤的指向用戶的網路。
埠:177
服務:x display manager control protocol
說明:許多入侵者通過它訪問x-windows操作台,它同時需要打開6000埠。
埠:389
服務:ldap、ils
說明:輕型目錄訪問協議和netmeeting internet locator server共用這一埠。
埠:443
服務:https
說明:網頁瀏覽埠,能提供加密和通過安全埠傳輸的另一種http。
埠:456
服務:【null】
說明:木馬hackers paradise開放此埠。
埠:513
服務:login,remote login
說明:是從使用cable modem或dsl登陸到子網中的unix計算機發出的廣播。這些人為入侵者進入他們的系統提供了信息。
埠:544
服務:【null】
說明:kerberos kshell
埠:548
服務:macintosh,file services(afp/ip)
說明:macintosh,文件服務。
埠:553
服務:corba iiop (udp)
說明:使用cable modem、dsl或vlan將會看到這個埠的廣播。corba是一種面向對象的rpc系統。入侵者可以利用這些信息進入系統。
埠:555
服務:dsf
說明:木馬phase1.0、stealth spy、inikiller開放此埠。
埠:568
服務:membership dpa
說明:成員資格 dpa。
埠:569
服務:membership msn
說明:成員資格 msn。
埠:635
服務:mountd
說明:linux的mountd bug。這是掃描的一個流行bug。大多數對這個埠的掃描是基於udp的,但是基於tcp的mountd有所增加(mountd同時運行於兩個埠)。記住mountd可運行於任何埠(到底是哪個埠,需要在埠111做portmap查詢),只是linux默認埠是635,就像nfs通常運行於2049埠。
埠:636
服務:ldap
說明:ssl(secure sockets layer)
埠:666
服務:doom id software
說明:木馬attack ftp、satanz backdoor開放此埠
埠:993
服務:imap
說明:ssl(secure sockets layer)
埠:1001、1011
服務:【null】
說明:木馬silencer、webex開放1001埠。木馬doly trojan開放1011埠。
埠:1024
服務:reserved
說明:它是動態埠的開始,許多程序並不在乎用哪個埠連接網路,它們請求系統為它們分配下一個閑置埠。基於這一點分配從埠1024開始。這就是說第一個向系統發出請求的會分配到1024埠。你可以重啟機器,打開telnet,再打開一個窗口運行natstat -a 將會看到telnet被分配1024埠。還有sql session也用此埠和5000埠。
根據自己需要 設置吧 每個人的要求不一樣的~
⑵ 怎麼開啟埠
如何關閉與開啟埠?
埠概念、什麼是埠在網路技術中,埠(Port)大致有兩種意思:一是物理意義上的埠,比如,ADSL Modem、集線器、交換機、路由器用於連接其他網路設備的介面,如RJ-45埠、SC埠等等。二是邏輯意義上的埠,一般是指TCP/IP協議中的埠,埠號的范圍從0到65535,比如用於瀏覽網頁服務的80埠,用於FTP服務的21埠等等。我們這里將要介紹的就是邏輯意義上的埠。
查看埠在Windows 2000/XP/Server 2003中要查看埠,可以使用Netstat命令:依次點擊「開始→運行」,鍵入「cmd」並回車,打開命令提示符窗口。在命令提示符狀態下鍵入「netstat -a -n」,按下回車鍵後就可以看到以數字形式顯示的TCP和UDP連接的埠號及狀態。
關閉/開啟埠在Windows中如何關閉/打開埠,因為默認的情況下,有很多不安全的或沒有什麼用的埠是開啟的,比如Telnet服務的23埠、FTP服務的21埠、SMTP服務的25埠、RPC服務的135埠等等。為了保證系統的安全性,我們可以通過下面的方法來關閉/開啟埠。
1.關閉埠比如在Windows 2000/XP中關閉SMTP服務的25埠,可以這樣做:首先打開「控制面板」,雙擊「管理工具」,再雙擊「服務」。接著在打開的服務窗口中找到並雙擊「Simple Mail Transfer Protocol(SMTP)」服務,單擊「停止」按鈕來停止該服務,然後在「啟動類型」中選擇「已禁用」,最後單擊「確定」按鈕即可。這樣,關閉了SMTP服務就相當於關閉了對應的埠。
2.開啟埠如果要開啟該埠只要先在「啟動類型」選擇「自動」,單擊「確定」按鈕,再打開該服務,在「服務狀態」中單擊「啟動」按鈕即可啟用該埠,最後,單擊「確定」按鈕即可。提示:在Windows 98中沒有「服務」選項,你可以使用防火牆的規則設置功能來關閉/開啟埠。
各種埠的作用埠:0服務:Reserved說明:通常用於分析操作系統。這一方法能夠工作是因為在一些系統中「0」是無效埠,當你試圖使用通常的閉合埠連接它時將產生不同的結果。一種典型的掃描,使用IP地址為0.0.0.0,設置ACK位並在乙太網層廣播。
埠:1服務:tcpmux說明:這顯示有人在尋找SGI Irix機器。Irix是實現tcpmux的主要提供者,默認情況下tcpmux在這種系統中被打開。Irix機器在發布是含有幾個默認的無密碼的帳戶,如:IP、GUEST UUCP、NUUCP、DEMOS、TUTOR、DIAG、OUTOFBOX等。許多管理員在安裝後忘記刪除這些帳戶。因此HACKER在INTERNET上搜索tcpmux並利用這些帳戶。
埠:7服務:Echo說明:能看到許多人搜索Fraggle放大器時,發送到X.X.X.0和X.X.X.255的信息。
埠:19服務:Character Generator說明:這是一種僅僅發送字元的服務。UDP版本將會在收到UDP包後回應含有垃圾字元的包。TCP連接時會發送含有垃圾字元的數據流直到連接關閉。HACKER利用IP欺騙可以發動DoS攻擊。偽造兩個chargen伺服器之間的UDP包。同樣Fraggle DoS攻擊向目標地址的這個埠廣播一個帶有偽造受害者IP的數據包,受害者為了回應這些數據而過載。
埠:21服務:FTP說明:FTP伺服器所開放的埠,用於上傳、下載。
埠:22服務:Ssh說明:PcAnywhere建立的TCP和這一埠的連接可能是為了尋找ssh。
埠:23服務:Telnet說明:Telnet遠程登錄。
埠:25服務:SMTP說明:SMTP伺服器所開放的埠,用於發送郵件。
埠:31服務:MSG Authentication說明:木馬Master Paradise、Hackers Paradise開放此埠。
埠:42服務:WINS Replication說明:WINS復制
埠:53服務:Domain Name Server(DNS)說明:DNS伺服器所開放的埠,入侵者可能是試圖進行區域傳遞(TCP),欺騙DNS(UDP)或隱藏其他的通信。因此防火牆常常過濾或記錄此埠。
埠:67服務:Bootstrap Protocol Server說明:通過DSL和Cable modem的防火牆常會看見大量發送到廣播地址255.255.255.255的數據。這些機器在向DHCP伺服器請求一個地址。HACKER常進入它們,分配一個地址把自己作為局部路由器而發起大量中間人(man-in-middle)攻擊。客戶端向68埠廣播請求配置,伺服器向67埠廣播回應請求。這種回應使用廣播是因為客戶端還不知道可以發送的IP地址。
埠:69服務:Trival File Transfer說明:許多伺服器與bootp一起提供這項服務,便於從系統下載啟動代碼。但是它們常常由於錯誤配置而使入侵者能從系統中竊取任何文件。它們也可用於系統寫入文件。
埠:79服務:Finger Server說明:入侵者用於獲得用戶信息,查詢操作系統,探測已知的緩沖區溢出錯誤,回應從自己機器到其他機器Finger掃描。
埠:80服務:HTTP說明:用於網頁瀏覽。木馬Executor開放此埠。
埠:99服務:Metagram Relay說明:後門程序ncx99開放此埠。
埠:102服務:Message transfer agent(MTA)-X.400 over TCP/IP說明:消息傳輸代理。
埠:109服務:Post Office Protocol -Version3說明:POP3伺服器開放此埠,用於接收郵件,客戶端訪問伺服器端的郵件服務。POP3服務有許多公認的弱點。關於用戶名和密碼交換緩沖區溢出的弱點至少有20個,這意味著入侵者可以在真正登陸前進入系統。成功登陸後還有其他緩沖區溢出錯誤。
埠:110服務:SUN公司的RPC服務所有埠說明:常見RPC服務有rpc.mountd、NFS、rpc.statd、rpc.csmd、rpc.ttybd、amd等
埠:113服務:Authentication Service說明:這是一個許多計算機上運行的協議,用於鑒別TCP連接的用戶。使用標準的這種服務可以獲得許多計算機的信息。但是它可作為許多服務的記錄器,尤其是FTP、POP、IMAP、SMTP和IRC等服務。通常如果有許多客戶通過防火牆訪問這些服務,將會看到許多這個埠的連接請求。記住,如果阻斷這個埠客戶端會感覺到在防火牆另一邊與E-MAIL伺服器的緩慢連接。許多防火牆支持TCP連接的阻斷過程中發回RST。這將會停止緩慢的連接。
埠:119服務:Network News Transfer Protocol說明:NEWS新聞組傳輸協議,承載USENET通信。這個埠的連接通常是人們在尋找USENET伺服器。多數ISP限制,只有他們的客戶才能訪問他們的新聞組伺服器。打開新聞組伺服器將允許發/讀任何人的帖子,訪問被限制的新聞組伺服器,匿名發帖或發送SPAM。
埠:135服務:Location Service說明:Microsoft在這個埠運行DCE RPC end-point mapper為它的DCOM服務。這與UNIX 111埠的功能很相似。使用DCOM和RPC的服務利用計算機上的end-point mapper注冊它們的位置。遠端客戶連接到計算機時,它們查找end-point mapper找到服務的位置。HACKER掃描計算機的這個埠是為了找到這個計算機上運行Exchange Server嗎?什麼版本?還有些DOS攻擊直接針對這個埠。
埠:137、138、139服務:NETBIOS Name Service說明:其中137、138是UDP埠,當通過網上鄰居傳輸文件時用這個埠。而139埠:通過這個埠進入的連接試圖獲得NetBIOS/SMB服務。這個協議被用於windows文件和列印機共享和SAMBA。還有WINS Regisrtation也用它。
埠:143服務:Interim Mail Access Protocol v2說明:和POP3的安全問題一樣,許多IMAP伺服器存在有緩沖區溢出漏洞。記住:一種LINUX蠕蟲(admv0rm)會通過這個埠繁殖,因此許多這個埠的掃描來自不知情的已經被感染的用戶。當REDHAT在他們的LINUX發布版本中默認允許IMAP後,這些漏洞變的很流行。這一埠還被用於IMAP2,但並不流行。
埠:161服務:SNMP說明:SNMP允許遠程管理設備。所有配置和運行信息的儲存在資料庫中,通過SNMP可獲得這些信息。許多管理員的錯誤配置將被暴露在Internet。Cackers將試圖使用默認的密碼public、private訪問系統。他們可能會試驗所有可能的組合。SNMP包可能會被錯誤的指向用戶的網路。
埠:177服務:X Display Manager Control Protocol說明:許多入侵者通過它訪問X-windows操作台,它同時需要打開6000埠。
埠:389服務:LDAP、ILS說明:輕型目錄訪問協議和NetMeeting Internet Locator Server共用這一埠。
埠:443服務:Https說明:網頁瀏覽埠,能提供加密和通過安全埠傳輸的另一種HTTP。
埠:456服務:[NULL]說明:木馬HACKERS PARADISE開放此埠。
埠:513服務:Login,remote login說明:是從使用cable modem或DSL登陸到子網中的UNIX計算機發出的廣播。這些人為入侵者進入他們的系統提供了信息。
埠:544服務:[NULL]說明:kerberos kshell
埠:548服務:Macintosh,File Services(AFP/IP)說明:Macintosh,文件服務。
埠:553服務:CORBA IIOP(UDP)說明:使用cable modem、DSL或VLAN將會看到這個埠的廣播。CORBA是一種面向對象的RPC系統。入侵者可以利用這些信息進入系統。
埠:555服務:DSF說明:木馬PhAse1.0、Stealth Spy、IniKiller開放此埠。
埠:568服務:Membership DPA說明:成員資格DPA。
埠:569服務:Membership MSN說明:成員資格MSN。
埠:635服務:mountd說明:Linux的mountd Bug。這是掃描的一個流行BUG。大多數對這個埠的掃描是基於UDP的,但是基於TCP的mountd有所增加(mountd同時運行於兩個埠)。記住mountd可運行於任何埠(到底是哪個埠,需要在埠111做portmap查詢),只是Linux默認埠是635,就像NFS通常運行於2049埠。
埠:636服務:LDAP說明:SSL(Secure Sockets layer)
埠:666服務:Doom Id Software說明:木馬Attack FTP、Satanz Backdoor開放此埠
埠:993服務:IMAP說明:SSL(Secure Sockets layer)
埠:1001、1011服務:[NULL]說明:木馬Silencer、WebEx開放1001埠。木馬Doly Trojan開放1011埠。
埠:1024服務:Reserved說明:它是動態埠的開始,許多程序並不在乎用哪個埠連接網路,它們請求系統為它們分配下一個閑置埠。基於這一點分配從埠1024開始。這就是說第一個向系統發出請求的會分配到1024埠。你可以重啟機器,打開Telnet,再打開一個窗口運行natstat -a將會看到Telnet被分配1024埠。還有SQL session也用此埠和5000埠。
埠:1025、1033服務:1025:network blackjack 1033:[NULL]說明:木馬netspy開放這2個埠。
埠:1080服務:SOCKS說明:這一協議以通道方式穿過防火牆,允許防火牆後面的人通過一個IP地址訪問INTERNET。理論上它應該只允許內部的通信向外到達INTERNET。但是由於錯誤的配置,它會允許位於防火牆外部的攻擊穿過防火牆。WinGate常會發生這種錯誤,在加入IRC聊天室時常會看到這種情況。
埠:1170服務:[NULL]說明:木馬Streaming Audio Trojan、Psyber Stream Server、Voice開放此埠。
埠:1234、1243、6711、6776服務:[NULL]說明:木馬SubSeven2.0、Ultors Trojan開放1234、6776埠。木馬SubSeven1.0/1.9開放1243、6711、6776埠。
埠:1245服務:[NULL]說明:木馬Vodoo開放此埠。
埠:1433服務:SQL說明:Microsoft的SQL服務開放的埠。
埠:1492服務:stone-design-1說明:木馬FTP99CMP開放此埠。
埠:1500服務:RPC client fixed port session queries說明:RPC客戶固定埠會話查詢
埠:1503服務:NetMeeting T.120說明:NetMeeting T.120
埠:1524服務:ingress說明:許多攻擊腳本將安裝一個後門SHELL於這個埠,尤其是針對SUN系統中Sendmail和RPC服務漏洞的腳本。如果剛安裝了防火牆就看到在這個埠上的連接企圖,很可能是上述原因。可以試試Telnet到用戶的計算機上的這個埠,看看它是否會給你一個SHELL。連接到600/pcserver也存在這個問題。
⑶ jmx的入門准備工作
JMX學習總結 1.產生背景
要了解 JMX,我們就必須對當前的 IT 管理系統有一個初步的了解。隨著企業 IT 規模的不斷增長,IT 資源(IT resource)數量不斷增加,IT 資源的分布也越來越分散。可以想像,甚至對於一家只有幾百台 PC 公司的 IT 管理人員來說,分發一個安全補丁並且保證其在每台 PC 上的安裝,如果只依賴人工來完成那簡直就是一場噩夢。這樣,IT 管理系統就應運而生。
然而,CPU、網卡、存儲陣列是 IT 資源;OS、MS Office、Oracle database、IBM Websphere 也是 IT 資源。IT 管理系統若要對這些 IT 資源進行管理,就必須對這些管理對象有所了解:形形色色的 IT 資源就像是說著不同語言的人:Oralce 資料庫表達內存緊張的方式和 Window XP 是絕然不同的, 而 IT 管理系統就像建造通天塔的經理,必須精通所有的語言, 這幾乎是一個不可能完成的任務。
2.JMX(java Management Extensions,即Java管理擴展)是一個為應用程序、設備、系統等植入管理功能的框架。JMX可以跨越一系列異構操作系統平台、系統體系結構和網路傳輸協議,靈活的開發無縫集成的系統、網路和服務管理應用。
3.
4.框架結構
圖 1. 管理系統構架
上圖分析了管理系統的基本構架模式。其中 Agent / SubAgent 起到的就是翻譯的作用:把 IT 資源報告的消息以管理系統能理解的方式傳送出去。
為什麼需要 Agent 和 SubAgent 兩層體系呢?這里有兩個現實的原因:
管理系統一般是一個中央控制的控制軟體,而 SubAgent 直接監控一些資源,往往和這些資源分布在同一物理位置。當這些 SubAgent 把狀態信息傳輸到管理系統或者傳達管理系統的控制指令的時候,需要提供一些網路傳輸的功能。
管理系統的消息是有一定規范的,消息的翻譯本身是件復雜而枯燥的事情。
一般來說,管理系統會將同一物理分布或者功能類似的 SubAgent 分組成一組,由一個共用的 Agent 加以管理。在這個 Agent 里封裝了 1 和 2 的功能。
JMX 和管理系統
JMX 既是 Java 管理系統的一個標准,一個規范,也是一個介面,一個框架。圖 2 展示了 JMX 的基本架構。
圖 2. JMX 構架
JMX 是管理系統和資源之間的一個介面,它定義了管理系統和資源之間交互的標准。
javax.management.MBeanServer 實現了 Agent 的功能,以標準的方式給出了管理系統訪問 JMX 框架的介面。
javax.management.MBeans 實現了 SubAgent 的功能,以標準的方式給出了 JMX 框架訪問資源的介面。
從類庫的層次上看,JMX 包括了核心類庫 java.lang.management 和 javax.management 包。
java.lang.management 包提供了基本的 VM 監控功能,
javax.management 包則向用戶提供了擴展功能。
圖 3 JMX 的操作模型
5.概念
>>>> MBeanManaged Bean的簡稱,是一個被管理的java對象,在JMX中MBean代表一個被管理的資源(設備,應用程序等)實例。通過操作MBean暴露一系列方法和屬性來操作資源。MBean包含4種類型的MBean1.Standard MBeans標准MBeans的設計和實現是最簡單的,MBean介面中定義需要暴露的屬性和操作,約定MBean介面名字後添加後綴MBean,例如NameMBean.java,實現類名稱 name.java2.Dynamic MBeans動態MBeans 在運行期暴露自己的管理介面,MBean實現類需要實現一個特定的介面DynamicMBean。介面中的方法用來動態獲取MBean的屬性和方法方法如圖:3.Open MBean Open MBean也是一種dynamic MBeans,實現DynamicMBean介面。與dynamicMBean 不同的是 Open MBean使用了幾種預定義的數據類型提供了更復雜的metadata數據。 Open MBean和dynamic MBean的區別在於是否返回OpenMBeanInfo,它是MBeanInfo的子類4.Model MBean Model MBean也是一種dynamic MBeans,它是預制的、通用的和動態的 MBean 類,已經包含了所有必要預設行為的實現,並允許在運行時添加或覆蓋需要定製的那些實現,JMX規范規定該類必須實現為javax.management.modelmbean.RequiredModelMBean,模型管理構件具有以下新的特點:
1)持久性
定義了持久機制,可以利用Java的序列化或JDBC來存儲模型MBean的狀態。
2)通知和日誌功能
能記錄每一個發出的通知,並能自動發出屬性變化通知。
3)屬性值緩存
具有緩存屬性值的能力MBeanServer MBeanServer是MBean 的容器。MBeanServer管理這些MBean,並且通過代理外界對它們的訪問。MBeanServer提供了一種注冊機制,通過注冊Adaptor和Connector,以及MBean到MBeanServer,並且通過代理外界對它們的訪問。外界可以通過名字來得到相應的MBean實例。JMX agentAgent只是一個Java進程,它包括這個MBeanServer和一系列附加的MbeanService。當然這些Service也是通過MBean的形式來發布。JMX Agent通過各種各樣的Adapter和Connector來與外界(JVM之外)進行通信。JMX Agent可以包含各種不同的協議適配器和連接器連接器 Connector連接器是可以連接MBeanServer,並使遠程的java client可以訪問該服務。連接器包含 客戶端連接器(connector client)和伺服器連接器(connector server).伺服器連接器鏈接MBean Server 和 監聽客戶端的連接請求。客戶端連接器任務是查找connector server服務並建立連接。client 和server通常在不同機器的不同JVM中。MX Remote API 定義了標準的連接器 RMI Connector,它通過 RMI 提供了對 MBeanServer 的遠程訪問。 使用 RMI 將客戶端請求傳輸到遠程 MBean 伺服器。MX Remote API 還定義了一個可選協議,名為 JMXMP(JMX 消息協議)。JMXMP 基於 TCP 連接上的序列化 Java 對象(在可選包 javax.management.remote.message 中定義)。實現此協議的連接器稱為 JMXMP Connector。也可以使用 JMXConnectorFactory 提供的用戶定義的連接器協議和可選的通用連接器RMI Connector 使用 RMI 將客戶端請求傳輸到遠程 MBean 伺服器,RMI Connector支持 RMI 的 JRMP(默認)和 IIOP 傳輸方式。連接器地址
伺服器生成的連接器地址
service:jmx:rmi://host:port 返回如下所示的 JMXServiceURL:service:jmx:rmi://host:port/stub/XXXX
service:jmx:iiop://host:port 返回如下所示的 JMXServiceURL:service:jmx:iiop://host:port/ior/IOR:XXXX
基於目錄條目的連接器地址
service:jmx:rmi://host:port/jndi/jndi-name
service:jmx:iiop://host:port/jndi/jndi-name
host 和 :port 均可忽略。
service:jmx:rmi://ignoredhost/jndi/rmi://myhost/myname
第一個 rmi: 指定 RMI 連接器,第二個 rmi: 指定 RMI 注冊表service:jmx:iiop://ignoredhost/jndi/ldap://dirhost:9999/cn=this,ou=that其中ldap://dirhost:9999/cn=this,ou=that 表示 LDAP 目錄中的 cn=this,ou=that 條目,該目錄在運行主機 dirhost 的埠 9999 上。協議適配器 Adapter協議適配器通過特定的協議提供了一張注冊在MBean伺服器的管理構件的視圖。例如,一個HTML適配器可以將所有注冊過的管理構件顯示在Web 頁面上。不同的協議,提供不同的視圖。Adapter和Connector的區別在於:Adapter 是使用某種協議(HTTP或者SNMP)來與JMX Agent獲得聯系,Agent端會有一個對象(Adapter)來處理有關協議的細節。比如SNMP Adapter和HTTP Adapter。Connector 在Agent端和client端都必須有這樣一個對象來處理相應的請求與應答。比如RMI Connector。RMI Remote Method Invocation 的簡稱,RMI是面向對象的遠程調用, RMI採用JRMP(Java Remote Method Protocol)通訊協議,是構建在TCP/IP協議上的一種遠程調用方法。RMI 允許一個對象使其方法調用對駐留在其它虛擬機,甚至其它主機上的對象可用。RMI調用機制 -----RMI 採用stubs 和 skeletons 來進行遠程對象(remote object)的通訊。stub 充當遠程對象的客戶端代理,有著和遠程對象相同的遠程介面,遠程對象的調用實際是通過調用該對象的客戶端代理對象stub來完成的。 對於JNDI技術,所有的可用服務信息都將注冊在JNDI伺服器,讓客戶端通過RMI機制調用應用程序伺服器遠程介面時,應用程序伺服器就會根據JNDI 伺服器的服務注冊信息定位到相應的服務提供連接,等待應用程序伺服器與後台伺服器連接形成之後,JNDI將不再參與到連接當中(JNDI可以理解為注冊服 務提供)LDAP OSL X.500目錄是基於OSI網路協議的目錄服務協議 ,500的缺點是不支持TCP/IP,而是支持OSI協議 , 在此前提下,也就產生了訪問X500目錄的網關--LDAP . LDAP(Lightweight Directory Access Protocal, 輕型目錄訪問協議),是針對以X500目錄為主的目錄服務的前端訪問協議,是OSL X.500目錄訪問網關. LDAP就被設計成使用TCP/IP訪問OSI 目錄服務的服務協議,而隨著互聯網成為網路的主流,LDAP也成為一個具備目錄的大部分服務的協議。 LDAP主要解決目錄服務的前端訪問形式,而不是對 目錄服務本身制定的的協議,理論上,LDAP支持後台的任何存儲形式,包括X500,關系資料庫,文本資料庫或文件目錄等。LDAP繼承了X500目錄的 大部分定義,無論是訪問樣式還是語法都與X500相似。JINIJini( Java Intelligent Network Infrastructure)是一個主動的、響應式的分布式基礎結構,它提供了在分布式環境中進行服務的建立、查找、通訊和調用的一整套機制。
Jini系統架構HTTPHTTP協議(HyperText Transfer Protocol,超文本傳輸協議)是用於從WWW伺服器傳輸超文本到本地瀏覽器的傳送協議。Internet的基本協議是TCP/IP協議,然而在TCP/IP模型最上層的是應用層(Application layer),它包含所有高層的協議。高層協議有:文件傳輸協議FTP、電子郵件傳輸協議SMTP、域名系統服務DNS、網路新聞傳輸協議NNTP和 HTTP協議等SNMPSNMP(Simple Network Management Protocol,簡單網路管理協議)
>>>> 實現的協議適配器和連接器
當前已經實現的協議適配器和連接器包括:
1)RMI連接器
2)SNMP協議適配器
3)IIOP協議適配器
4)HTML協議適配器
5)HTTP連接器
JMX 標准提供了四種不同的 MBean:
Standard MBean 直接實現用於管理對象的方法,既可以通過實現一個由程序員定義的、類名以 「MBean」 結束的介面,也可以使用一個以一個類作為構造函數參數的 Standard MBean 實例,加上一個可選的介面類規范。這個介面可以開放用於管理的部分對象方法。
Dynamic MBean 用屬性訪問器動態地訪問屬性,並用一個一般化的 invoke() 方法調用方法。可用的方法是在 MBeanInfo 介面中指定的。這種方式更靈活,但是不具有像 Standard MBean 那樣的類型安全性。它極大地降低了耦合性,可管理的 POJO(純粹的老式 Java 對象)不需要實現特定的介面。
Model MBean 提供了一個改進的抽象層,並擴展了 Dynamic MBean 模型以進一步減少對給定實現的依賴性。這對於可能使用多個版本的 JVM 或者需要用鬆散耦合管理第三方類的情況會有幫助。Dynamic MBean 與 Model MBean 之間的主要區別是,在 Model MBean 中有額外的元數據。
Open MBean 是受限的 Model MBean,它限制類型為固定的一組類型,以得到最大的可移植性。通過限制數據類型,可以使用更多的適配器,並且像 SMTP 這樣的技術可以更容易適應 Java 應用程序的管理。這種變體還指定了數組和表等標准結構以改進復合對象的管理。
如 果要同時控制客戶機和伺服器,那麼 Standard MBean 是最容易實現的一種變體。它們的優點是有類型,但是如果在更一般化的管理控制台環境中使用時會缺少一些靈活性。如果計劃使用 Dynamic MBean,那麼您也可以更一步使用 Model MBean,在大多數情況下它會改善抽象層而幾乎不會增加復雜性。Open MBean 是是可移植性最高的一種變體,如果需要開放復合對象,那麼它是惟一的方法。不幸的是,在 Open MBean 中開放復合結構所需要的代碼數量過多,只有在需要高級的商業管理解決方案時才合算。
JMX 還支持使用帶過濾器和廣播器的事件模型的通知。為此目的,Standard MBean 需要聲明一個 MBeanInfo 元數據描述。 Standard MBean 實現通常在內部構造這些內容,開發人員不能直接看到它們。在本文後面,您會看到如何用 Model MBean 元數據的 XML 描述符格式和 Spring 的 JMX 支持進行實際上透明的配置。
>>>>使用 MBean 的過程1.創建一個 MBServer:MBeanServe2.獲得管理資源用的 MBean:serverBean3.給這個 MBean 一個 ObjectName:serverMBeanName4.將 serverBean 以 serverMBeanName 注冊到 mBeanServer 上去>>>>通知機制要讓MBean能發出通知,MBean必須實現介面NotificationBroadcaster或它的子介面NotificationEmitter.發送通知時要做的是構建javax.management.Notification類的實例或Notification 的子類,然後以參數形式傳遞這個實例到.sendNotification.方法中
>>>>JMX 代理內幕
揭示了典型 JMX 代理的內部構造。請注意,代理內部的四種主要組件是 MBean 伺服器、一組代理服務、連接器和協議適配器以及定製代理邏輯。
MBean 伺服器
MBean 伺服器是代理內部的核心組件。所有 MBean 在可以通過遠程應用程序訪問之前都必須向 MBean 伺服器注冊。當使用 MBean 伺服器時,通過唯一的對象名對已注冊的 MBean 進行定址。遠程管理器應用程序(或分布式服務)只能通過 MBean 的管理介面(已公開的屬性、操作和事件)發現和訪問 MBean。
代理服務
代理還提供了一組代理服務,定製代理邏輯可以使用它們在 MBean 伺服器中對已注冊的 MBean 進行操作。為了符合 JMX 1.1,這些服務是必需的 ―所有代理都必須提供它們。 有趣的是,可以用 MBean 本身的形式實現這些服務。以 MBean 的形式實現服務有幾個優點:
可以通過 Manager 組件或 EMS 遠程訪問該服務的操作。
通過從遠程管理器應用程序進行訪問,EMS 可以遠程地管理服務本身。
可以通過下載 MBean 在運行時動態地執行服務邏輯的更新。
表 3 顯示了 JMX 1.1 規范中定義的一組代理服務。
表 3. JMX 1.1 所需的代理服務
m-let 或管理 Applet 服務 支持跨網路從 URL 位置裝入動態類(請參閱 javax.management.loading.MLetMBean 和相關聯的類/介面)。
監視器服務 將代價高昂的遠程輪詢操作轉換成本地操作;監控 MBean 屬性的特定更改並在觀察到更改時發送事件。
計時器服務 經歷了指定的時間量後發送事件,或以指定時間間隔定期發送事件(請參閱 javax.management.monitor.MonitorMBean 和相關的類/介面)。
關系服務 支持 MBean 之間的關系定義,並強制關系的完整性(請參閱 javax.management.relation.RelationServiceMBean 和相關的類/介面)。
增值代理邏輯
增值代理邏輯通常是編寫的代碼。它是能夠提供本地化智能的定製代理邏輯,用來管理向該代理注冊的 JMX 可管理資源。例如,如果我們有兩個冗餘的應用程序伺服器群集,就可以創建定製代理,監控負載級別並且動態地將入站請求重定向到不同的群集 ― 通過對已注冊的伺服器的 MBean 進行操作。通常,NMS 的供應商也會提供定製邏輯。一旦分布式服務的規范得以充實,可以預言,某種特定的定製代理邏輯將可以與定製遠程 JMX 管理器組件良好地協作,以提供更高級別的網路管理功能。
連接器和協議適配器
代理不與分布式服務、NMS 或其它管理應用程序直接通信。而是使用連接器和協議適配器。這種體系結構與 J2EE 連接器體系結構(J2EE Connector Architecture)是一致的(請參閱 參考資料)。協議適配器是一種軟體組件,它通過標准化協議(如 HTTP 和 SNMP)提供對代理管理的資源的訪問。
連 接器是一種專用軟體組件,它提供了到代理和/或該代理上的受管資源的遠程介面(通常使用諸如 CORBA 或 RMI 這樣的遠程過程調用技術來完成 ― 為了安全性通常通過 SSL)。當代理有多個活動的連接器和協議時,可以通過多個異構的應用程序或 NMS 同步地訪問受管資源。可以用協議適配器來提供對現有的和已建立的 NMS 的向後兼容性。例如,我們可以為支持這個標準的 NMS 創建 通用信息模型/基於 Web 的企業管理(CIM/WEBM)適配器,或者可以創建 電信管理網路(TMN)協議適配器來啟用由 JMX 代理管理的電信資源上的 操作、管理和維護(OAM)。JMX 連接器和協議適配器的精確規范屬於正在同時開發的規范的范疇(請參閱 參考資料)。
>>>> 安全性
到目前為止都還不錯。現在是面對被甩在一邊的重要問題 —— 安全性 —— 的時候了。不如果不想讓誰的應用程序代碼訪問和修改虛擬機,該怎麼辦?有什麼選項可用么? 可以設置一些系統屬性,來控制訪問級別和虛擬機數據從 JMX 代理向管理客戶機傳遞虛擬機數據的方式。這些屬性分成兩類:口令認證 和安全套接字層(SSL)。
使用命令行選項
為了讓 5.0 兼容的虛擬機可以被監視和管理,需要用以下命令行選項設置平台 JMX 代理的埠號:
-Dcom.sun.management.jmxremote.port=<number>
如果不介意誰通過這個埠訪問虛擬機,也可以添加以下兩個選項,關閉口令認證和 SSL 加密(這兩項默認都是開啟的):
-Dcom.sun.management.jmxremote.authenticate=false-Dcom.sun.management.jmxremote.ssl=false
在開發 java.lang.management 客戶機代碼,而且想方便地監視另一台虛擬機時,一起使用這三個選項會很方便。在生產環境中,則需要設置口令控制或 SSL(或者兩者都要設置)。
口令認證
在JDK 的 jre/lib/management 目錄中,可以找到一個叫做 jmxremote.password.template 的文件。這個文件定義了兩個角色的用戶名和口令。第一個是監視 角色,允許訪問只讀的管理函數;第二個是控制 角色,允許訪問讀寫函數。取決於需要的訪問級別,客戶可以用 monitorRole 或 controlRole 用戶名進行認證。為了確保只有認證的用戶才能訪問,需要做以下工作:
把 jmxremote.password.template 的內容拷貝到叫做 jmxremote.password 的文件中,並取消掉文件末尾定義用戶名和口令部分的注釋,根據需要修改口令。
修改 jmxremote.password 的許可,只讓所有者能夠讀取和修改它。(在 UNIX 和 UNIX 類的系統上,把許可設置成 600。在 Microsoft Windows 上,請按照 「How to secure a password file on Microsoft Windows systems」 一文中的說明操作,可以在 參考資料 中找到這篇文章的鏈接。)
在啟動虛擬機時,用以下命令行選項指定要使用的口令文件的位置:
-Dcom.sun.management.jmxremote.password.file=<file-path>
從管理客戶的角度來說,需要提供正確的用戶名/口令組合來訪問開啟了認證的虛擬機。如果客戶是 JConsole,這很簡單:在初始的 Connection 選項卡中提供了用戶名和口令欄位