Protocollo Telnet - Politecnico di Milano
Transcript
Protocollo Telnet - Politecnico di Milano
Protocollo Telnet Introduzione Telnet (Teletype network) is a network protocol used on the Internet or local area networks to provide a bidirectional interactive communications facility. Typically, telnet provides access to a command-line interface on a remote host via a virtual terminal connection which consists of an 8-bit byte oriented data connection over the Transmission Control Protocol (TCP). User data is interspersed in-band with TELNET control information. The term telnet may also refer to the software that implements the client part of the protocol. Telnet client applications are available for virtually all computer platforms. Most network equipment and operating system with a TCP/IP stack support a Telnet service for remote configuration (including systems based on Windows NT). Because of security issues with Telnet, its use has waned in favor of SSH for remote access. Fonte: Wikipedia - http://en.wikipedia.org/wiki/Telnet Utilizzo Il protocollo telnet è stato utilizzato per lungo tempo in ambienti di reti UNIX per poter accedere a macchine remote e per poterle così amministrare a distanza. Tramite il protocollo telnet si accede alla shell dei comandi remota. Per motivi di intrinseca insicurezza del protocollo telnet, di default tale servizio è disabilitato su tutte le macchine server che operano in rete; esiste comunque la possibilità di forzare l'avvio di tale servizio con il seguente comando: $ sudo /etc/init.d/openbsd-inetd start Verificare, prima e dopo aver dato il comando precedente, come cambiano i servizi di rete attivi e in ascolto tramite il comando “netstat -nat”. Con il comando precedente viene quindi abilitato il telnet, ma, per motivi di sicurezza, questo è abilitato solo per connessioni da localhost. Per abilitare (attenzione: si compromette pesantemente la sicurezza della macchina) le connessioni telnet dalla rete esterna è necessario modificare, come root, il file “/etc/hosts.allow” da ssh sshd : ALL@ALL : ALLOW ALL : 127.0.0.1 LOCAL : ALLOW ALL : ALL@ALL : DENY a ssh sshd in.telnetd : ALL@ALL : ALLOW ALL : 127.0.0.1 LOCAL : ALLOW ALL : ALL@ALL : DENY dove “in.telnet.d” è il file eseguibile del server che viene lanciato alla richiesta di una connessione telnet; con questa modifica al file di configurazione si indica espressamente al sistema di accettare qualsiasi connessione per il “demone” telnet. Notare che il demone ssh è già configurato per Carlo Todeschini – [email protected] Reti di Comunicazione e Internet – Politecnico di Milano sede di Cremona – A.A. 2010-2011 – v. 1.2 1 accettare connessioni dall'esterno, dal momento che, semplificando, è la versione “sicura” del protocollo telnet (v. prossimo paragrafo). Esercizio 1 Eseguire il comando telnet (protocollo per la connessione a host remoti) verso una macchina della rete del laboratorio (chiedere ad un collega il suo indirizzo IP) e sniffare la comunicazione; es: telnet 192.168.1.131 Verificare che i pacchetti sniffati mostrano parecchie parti del traffico “in chiaro” (ovvero è possibile leggere le parti testuali relative al prompt di login) Nell'esercizio precedente non sarà stato possibile il login remoto perché l'utente di default presente in Knoppix ha, appunto, “knoppix” come username ma non ha nessuna password associata. Per poter accedere con utente knoppix a una macchina remota è necessario associare un password all'utente con il seguente comando: $ sudo passwd knoppix (digitare due volte la password da assegnare all'utente knoppix) A questo punto si potrà scambiare la password utente con un proprio collega al fine di testare una connessione telnet completamente funzionante su una macchina remota. Sniffare il traffico generato durante la connessione. E' importante sottolineare quanto riportato anche da Wikipedia relativamente al protocollo telnet perché verrà utile nelle schede successive: [...] Telnet is also used as a verb. To telnet means to establish a connection with the Telnet protocol, either with command line client or with a programmatic interface. For example, a common directive might be: "To change your password, telnet to the server, login and run the passwd command." Most often, a user will be telnetting to a Unix-like server system or a network device such as a router and obtain a login prompt to a command line text interface or a character-based full-screen manager. On many systems, a Telnet client application may also be used to establish interactive rawTCP sessions. Fonte: Wikipedia - http://en.wikipedia.org/wiki/Telnet Protocollo SSH Introduzione Secure Shell or SSH is a network protocol that allows data to be exchanged using a secure channel Carlo Todeschini – [email protected] Reti di Comunicazione e Internet – Politecnico di Milano sede di Cremona – A.A. 2010-2011 – v. 1.2 2 between two networked devices. Used primarily on Linux and Unix based systems to access shell accounts, SSH was designed as a replacement for Telnet and other insecure remote shells, which send information, notably passwords, in plaintext, leaving them open for interception. The encryption used by SSH provides confidentiality and integrity of data over an insecure network, such as the Internet. Fonte: Wikipedia - http://en.wikipedia.org/wiki/Secure_Shell Utilizzo Verificata la debolezza intrinseca del protocollo telnet e vista l'utilità di poter accedere in console a una macchina remota, si introduce il protocollo SSH, che permette connessioni in console sfruttando un canale criptato. In questo modo le informazioni scambiate, anche se sniffate, non possono essere lette/decodificate. Avviare il server SSH, non attivo di default, sempre per motivi di sicurezza, con il seguente comando: $ sudo /etc/init.d/ssh start (vengono generate le chiavi...) Verificare, prima e dopo aver dato il comando precedente, come cambiano i servizi di rete attivi e in ascolto tramite il comando “netstat”. Esercizio 2 Eseguire il comando ssh (client che implementa il protocollo per la connessione sicura a host remoti) verso una macchina della rete del laboratorio (chiedere ad un collega il suo indirizzo IP, username e password) e sniffare la comunicazione; es: ssh [email protected] Verificare che i pacchetti sniffati non risultano più “leggibili” come quelli del protocollo telnet, pur permettendo di agire sulla macchina remota come se si utilizzasse il telnet o la console locale. Esercizio 3 Tramite ssh è possibile lanciare applicazioni grafiche, come ad esempio un editor di testi, e non solo accedere alla console a caratteri. Individuare i parametri necessari da utilizzare con il comando ssh utili ad abilitare questa funzionalità Approfondimenti ➢ ➢ OpenSSH, una implementazione del protocollo SSH per Linux: http://www.openssh.com/ … e ovviamente Google e Wikipedia http://www.google.com/ - http://wikipedia.org/ Carlo Todeschini – [email protected] Reti di Comunicazione e Internet – Politecnico di Milano sede di Cremona – A.A. 2010-2011 – v. 1.2 3