RSA a chiave pubblica e privata

Il server SSH (Secure Shell) accetta connessioni in ingresso sulla porta standard 22 e permette ad un utente remoto di effettuare il login sul linux server.
Ci sono alcune regole da attuare per ridurre al minimo i rischi di attacco , ossia evitare che qualche sconosciuto utente possa loggarsi sulla macchina cercando di indovinare la password di root o cercando di utilizzare un utente di sistema (utente mysql, apache etc etc..) oppure utilizzando la tecnica brute force per forzare la password di root.
La prima regola è sicuramente quella di cambiare la porta di ascolto del server SSH con una qualsiasi altra porta libera in modo da porre il primo ostacolo a chiunque tenti almeno di contattare il demone.
Seconda regola potrebbe essere quella di usate i TCP Wrappers , ossia due files chiamati hosts.allow e hosts.deny in cui inserire quali host sono accettati per il protocollo SSH ma in questo modo dovremmo supporre che ci collegheremo al server da un client che abbia un ip statico oppure appartenga sempre ad una certa classe IP. Infatti ogni Provider di connettività ha in gestione un range di indirizzi IP che provvederà ad assegnare dinamicamente ai suoi clienti, informazioni utili possono essere prelevate dai vari registri pubblici pertinenti per i vari continenti, per l'europa ad esempio si può consultare il www.RIPE.net ed ottenere quindi informazioni sulla classe IP utilizzata dal nostro provider ed inserirla in hosts.allow.
Altra tecnica , di sicuro più elastica, è l'utilizzo di una coppia di chiavi indispensabili per effettuare l'autenticazione . Sono infatti due file , uno pubblico (sul server) ed uno privato (sulla macchina client) entrambi cifrati e protetti da una password .
