16 June 2009
Exchange Server - Verifica della rete con PortQry
Dopo il mio post su NMCap vorrei continuare con la parte di troubleshooting relativa ai servizi di rete con PortQry e PortQryUI.
Scenari di utilizzo e Attivazione
Spesso, in configurazioni con i nostri server posti in DMZ, si ha la necessità di dover di verificare se il nostro firewall o switch L3 si stia comportando come noi ci aspetteremmo relativamente al filtraggio degli IP, porte, servizi, ecc. Per alcuni servizi questo può essere banale (es: un telnet alla porta 25 per valutare se SMTP risposte alle nostre richieste) mentre per altri la verifica può non essere altrettanto banale.
Caratteristiche di PortQry
Prendiamo ad esempio il caso del traffico RPC e dell’ EndPoint Mapper. Quando un client (MAPI ad esempio, oppure una console di amministrazione) inizia a dialogare col server di destinazione questo viene rediretto dall’ Endpoint Mapper, in ascolto sulla porta 135, su un'altra porta assegnata dinamicamente tra la 1024 e la 65535.
In casi come questo, dove può essere difficile verificare la disponibilità del servizio richiesto tramite l’utilizzo di un comune port scanner, PortQry (e PortQryUI) possono venirci in soccorso.
PortQry giunto alla versione 2.0, può essere scaricato gratuitamente dal Microsoft Download Center.
Mentre lo stesso tool adesso dotato di una interfaccia grafica è reperibile al seguente indirizzo: PortQryUI - User Interface for the PortQry Command Line Port Scanner
PortQry 2.0 supporta i seguenti session layer e application layer protocols:
- Lightweight Directory Access Protocol (LDAP)
- Remote Procedure Calls (RPC)
- Domain Name System (DNS)
- NetBIOS Name Service
- Simple Network Management Protocol (SNMP)
- Internet Security and Acceleration Server (ISA)
- SQL Server 2000 Named Instances
- Trivial File Transfer Protocol (TFTP)
- Layer Two Tunneling Protocol (L2TP)
Analizzare traffico RPC
Cominciamo proprio con un esempio basato su RPC tramite il seguente comando:
portqry -n myserver -p udp -e 135
PortQry produrrà una query RPC, interpreterà la risposta ottenuta contenente tutti gli endpoint registrati con l’RPC endpoint mapper e verificherà la disponibilità delle varie porte restituite.
Ecco un esempio dell’output del comando:
Querying target system called:
ex2k3-01
Attempting to resolve name to IP address...
Name resolved to 192.168.1.81
querying...
UDP port 135 (epmap service): LISTENING or FILTERED
Using ephemeral source port
Querying Endpoint Mapper Database...
Server's response:
UUID: 3c4728c5-f0ab-448b-bda1-6ce01eb0a6d5 DHCP Client LRPC Endpoint
ncalrpc:[dhcpcsvc]
UUID: 3473dd4d-2e88-4006-9cba-22570909dd10 WinHttp Auto-Proxy Service
ncalrpc:[W32TIME_ALT]
UUID: 3473dd4d-2e88-4006-9cba-22570909dd10 WinHttp Auto-Proxy Service
ncacn_np:\\\\EX2K3-01[\\PIPE\\W32TIME_ALT]
UUID: 2f5f6521-cb55-1059-b446-00df0bce31db Unimodem LRPC Endpoint
ncacn_np:\\\\EX2K3-01[\\pipe\\tapsrv]
[..]
UUID: 9e8ee830-4459-11ce-979b-00aa005ffebe MS Exchange MTA 'Mta' Interface
ncacn_np:\\\\EX2K3-01[\\pipe\\9403671C54CE8F36]
[..]
UUID: a4f1db00-ca47-1067-b31e-00dd010662da Exchange Server STORE ADMIN Interface
ncacn_np:\\\\EX2K3-01[\\pipe\\D1A77AAA93FBC00C]
UUID: a4f1db00-ca47-1067-b31e-00dd010662da Exchange Server STORE ADMIN Interface
ncalrpc:[MSExchangeIS_LPC]
[..]
Total endpoints found: 154
==== End of RPC Endpoint Mapper query response ====
UDP port 135 is LISTENING
In questo modo possiamo determinare il corretto funzionamento della porta 135, i servizi registrati con l’RPC endpoint mapper database del server di destinazione, i vari Universal Unique IDentifier (UUID) per ogni servizio o programma e il rispettivo protocollo utilizzato.
Le possibili stati riportati da Portqry sono i seguenti:
- Listening – Un processo è in ascolto sulla porta indicata e Portqry ha ottenuto una risposta
- Not Listening – Nessun processo è in ascolto sulla porta indicata e Portqry ha ottenuto una risposta (ICMP) "Destination Unreachable - Port Unreachable" (porta UDP) oppure un acknowledgement packet (ACK) col Reset flag (RST) impostato ad 1 (Porta TCP).
- Filtered - Portqry.exe non riceve nessuna risposta.
Esempi di altri protocolli
Altri esempi di sintassi sono i seguenti:
portqry -n 10.0.0.11 -p tcp -o 143,110,25 -l portqry.log
Effettua un test delle porte 143, 110 e 25 salvando il risultato nel rispettivo file di log.
portqry -n my_server -p udp -r 135:139 -l portqry.log
Come sopra a differenza del fatto che viene testato il range di porte 135-139.
Se non siete degli amanti della command-line, come anticipato all’inizio del post, adesso è disponibile la versione grafica di PortQry: PortQryUI.
Il funzionamento è pressoché identico con l’aggiunta di alcuni comodi set di test preconfigurati: Domain and Trusts, WEB Service, nonché il nostro amato Exchange.
Concludo questo veloce post con un paio di link utili riguardo quanto detto:
Cristian Crifò
Senior Support Engineer
Microsoft Enterprise Exchange Support
Comment Notification
If you would like to receive an email when updates are made to this post, please register here
Subscribe to this post's comments using
Comment Policy: No HTML allowed. URIs and line breaks are converted automatically. Your e–mail address will not show up on any public page.