Scansione delle porte e browser come client
In tutti gli esempi precedenti abbiamo usato il terminale telnet per connettersi ai servizi dei server. E' arrivato adesso il momento di sperimentare un poco con il tipico client usato prevalentemente dagli utenti di un computer: il browser.
Immaginiamo di voler costruire uno script che controlli le attività di un server su un certo numero di porte conosciute. Ricordiamo allora velocemente alcuni dei servizi più utilizzati ed i loro numeri di porta predefiniti.
Servizio | Porta | Descrizione |
---|---|---|
ftp | 21 | File Transfer Protocol - Condivisione di file tra computer. |
ssh | 22 | Secure SHell - Protocollo sicuro per la condivisione di dati ed esecuzione di comandi. |
smtp | 25 | Simple Mail Transfer Protocol - Protocollo su codice ASCII per l'invio della posta. |
http | 80 | HyperText Transfer Protocol - Trasmissione di informazioni su Web. |
pop3 | 110 | Post Office Protocol vers. 3 - Protocollo per la ricezione della posta. |
ssl | 443 | Secure Socket Layer - Protocollo di sicurezza per link crittografati tra client e server. |
cups | 631 | Common Unix Printing System - Spooler di stampa con funzione di print server. |
mysql | 3306 | Server per la gestione di database relazionali. |
Lo script, in questo caso, interrogherà il server locale localhost alla ricerca di informazioni relative all'attività dei servizi riportati nella tabella. L'obiettivo viene raggiunto con una pagina web scritta in php ed html, memorizzata nella classica directory public_html, e che viene avviata dal browser del computer.
Esecuzione dello script
Dopo aver salvato il codice precedente nella cartella public_html
dandogli il nome testserver.php
, lo possiamo mandare in esecuzione tramite il browser all'indirizzo: localhost/~user/testserver.php
, dove user è il nome dell'utente che ha effettuato il login. Un possibile output è rappresentato dalla tabella seguente.
Servizi attivi sul server: localhost | |||||||
ftp | ssh | smtp | http | pop3 | ssl | cups | mysql |
non attivo | attivo | non attivo | attivo | non attivo | non attivo | attivo | attivo |
Tutto il lavoro, praticamente, viene svolto dalla funzione fsockopen()
alla quale si passano di volta in volta il nome del server ed il numero della porta interessata. Per comodità la funzione fsockopen viene gestita dentro la funzione di servizio testHost()
che, su richiesta, provvede a fornire il responso sotto forma di una determinata stringa colorata che viene visualizzata all'interno delle celle della tabella.
Come al solito l'esercizio costituisce soltanto un semplice punto di partenza per sperimentazioni più articolate. Nella soluzione proposta, volutamente, quasi nulla è stato dedicato all'estetica della presentazione privilegiando, invece, gli aspetti funzionali dello script.
Webmin, per esempio, è un software che permette di gestire un computer tramite interfaccia web (all'indirizzo http://localhost:10000). L'accesso è limitato agli utenti del sistema e permette di gestire la macchina da un punto di vista hardware e software. Il pacchetto è indirizzato ad amministratori e sistemisti, ma può risultare utile anche su computer client. Può gestire svariati aspetti del sistema, inclusi gli eventuali server Apache, MySQL e le impostazioni di PHP; inoltre è un programma modulare che può, quindi, essere espanso con dei moduli appositi per la gestione di uno specifico servizio.
Un semplicissimo ping
L'esempio seguente mostra come realizzare un semplicissimo emulatore del comando ping azionabile attraverso l'input in un form del nome del dominio da sottoporre a verifica.
Esecuzione dello script
Dopo aver salvato il codice precedente nella cartella public_html
dandogli il nome ping.php
, lo possiamo mandare in esecuzione tramite il browser all'indirizzo: localhost/~user/ping.php
, dove user è il nome dell'utente che ha effettuato il login.
Punto della situazione
In questa sezione abbiamo imparato come:
1 - Utilizzare il browser come client
2 - Predisporre uno script per scansionare i servizi di un server
3 - Emulare con uno script il comando ping
La ragione si fa adulta e vecchia; il cuore resta sempre ragazzo.
Ippolito Nievo