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 RSS

Comments

No Comments

Leave a Comment

Comment Policy: No HTML allowed. URIs and line breaks are converted automatically. Your e–mail address will not show up on any public page.

(required) 
(optional)
(required) 

  
Enter Code Here: Required
Page view tracker