Aggiornare gli strumenti di sistema, le applicazioni ed il kernel: la causa più comune di irruzione nei sistemi dipende dal mancato mantenimento di un server sempre aggiornato. Effettuare regolari aggiornamenti del kernel, degli strumenti e delle utilità garantisce l'eliminazione, dal vostro sistema, di elementi per i quali sono già noti degli exploit. Per informazioni su come mantenere un server sempre aggiornato, si veda la Sezione 4.9 e la Sezione 10.3.
Shadow passwords: vi consiglio caldamente di utilizzare le Shadow password; passare a questo formato è davvero molto facile. Maggiori dettagli nella Sezione 6.6.
Uso intelligente delle password: assicuratevi che le password, specialmente quelle degli utenti a cui fornite accesso alla shell, siano difficili da individuare e cambiate spesso. Inoltre, se usate server multipli, resistete alla tentazione di utilizzare sempre la stessa password (altrimenti, se un cracker accede ad un server dopo aver scoperto un password, potrebbe accedere facilmente anche a tutti gli altri).
Usate la secure shell (ssh): passate a "ssh" invece di "telnet". Telnet non è sicuro per due ragioni: Primo, le sessioni non sono criptate, quindi tutto quello che viene trasmesso, compreso password e username, è in chiaro. Secondo, la prima cosa che fa un cracker è quella di provare a connettersi ad un porta telnet aperta.
Ssh fornisce connessioni criptate e compresse, offre quindi più sicurezza rispetto a telnet. Potete utilizzare un server ssh (che permette connessioni sicure in entrata) anche come client (per connessioni, in uscita, sicure) sotto Linux. Potete reperire il pacchetti RPM su ftp://ftp.replay.com/pub/replay/redhat/i386/. Avrete bisogno dei seguenti file (è possibile che siano disponibili versioni più recenti al momento in cui state leggendo):
ssh-1.2.27-5i.i386.rpm Il pacchetto di base.
ssh-clients-1.2.27-5i.i386.rpm Client per connessioni verso l'esterno.
ssh-extras-1.2.27-5i.i386.rpm Alcuni pratici script Perl.
ssh-server-1.2.27-5i.i386.rpm Server per le connessioni in entrata.
![]() | Il file RPM di SSH elencati sopra si riferiscono alla versione internazionale. Se abitate negli Stati Uniti o in Canada, potete scegliere di scaricare i pacchetti per gli U.S.A. (che potrebbero avere algoritmi di criptazione più robusti); questi pacchetti hanno il suffisso "us" invece di quello "i" subito dopo i numeri della versione. Per la legge U.S., è illegale esportare prodotti molto complessi per la criptazione fuori dagli Stati Uniti o dal Canada. Speriamo che un giorno gli imbecilli che fanno parte del dipartimento di giustizia degli U.S.A. escano dal tunnel e tolgano questa stupida restrizione. Red Hat non include SSH nella sua distribuzione appunto per questo motivo, infliggendo a tutti molta sofferenze). |
Se i vostri utenti Windows dovessero lamentarsi di non riuscire più a connettersi al vostro sistema, fategli sapere che esistono alcuni client ssh completamente gratuiti:
![]() | Se decidete di passare a ssh assicuratevi di installarlo e usarlo su tutti i vostri server. Avere cinque server sicuri e uno no è solo un perdita di tempo, specialmente se siete abbastanza stupidi da usare la stessa password per più di un server. |
Accesso limitato ai servizi esterni: successivamente, dovete editare i file "/etc/hosts.allow" e "/etc/hosts.deny" per limitare l'accesso a servizi su host esterni. Di seguito vi fornisco un esempio di come limitare l'accesso telnet e ftp. Innanzitutto il file "/etc/hosts.allow":
# hosts.allow in.telnetd: 123.12.41., 126.27.18., .mydomain.name, .another.name in.ftpd: 123.12.41., 126.27.18., .mydomain.name, .another.name |
Questo permetterà connessioni telnet e ftp a tutti gli host con classi IP 123.12.41.* e 126.27.18.*, oltre che ai domini mydomain.name e another.name.
Quindi, il file "/etc/hosts.deny":
# hosts.deny in.telnetd: ALL in.ftpd: ALL |
Chiudete e disinstallate ogni servizio non necessario: Editate il file "/etc/inetd.conf" e disabilitate (cioè decommentate con il carattere "#") ogni servizio non necessario (se state usando ssh, come raccomandato sopra, potreste voler disabilitare il servizio telnet). Fatto ciò, digitate come root "/etc/rc.d/init.d/inet restart" per riavviare il demone inetd con le nuova impostazioni.
Installate un security detection system: Considerate l'idea di installare programmi di sicurezza come "Tripwire" (http://www.tripwiresecurity.com/) che può scoprire eventuali intrusioni, e "Abacus Sentry" (http://www.psionic.com/abacus/) che può aiutare a prevenirle.
Normale diligenza: Tenete gli occhi aperti sul vostro sistema effettuando, a caso, controlli sulla sicurezza (esaminando ad esempio i file delle password, la lista dei vostri processi, oppure controllando i file di log per verificare la presenza di dati sospetti). In più riferite, alla autorità preposte, ogni tentativo di irruzione. Lo so che potrebbe essere una scocciatura, soprattutto se il vostro sistema riceve molti attacchi in una settimana, ma questi report servono a scoraggiare, con la prospettiva di dover scontare una pena, i possibili cracker. Inoltre, assicurano maggior sicurezza anche a sistemi di altre persone (che potrebbe essere stati a loro volta compromessi).
Posto che installiate e aggiorniate i vostri strumenti di sistema e le vostre applicazioni ricorrendo all'uso dell'utilità "RPM", potreste volere controllare l'integrita dei pacchetti installati con il seguente comando:
rpm --verify -a > /tmp/rpm-audit.txt |
Il comando sopra confronterà tutti i file importanti con il database RPM del vostro sistema e indicherà, con un '5', tutti i file che sono stati modificati. Di seguito un esempio di un possibile output:
S.5....T /bin/ls S.5....T /usr/bin/du ......G. /dev/tty5 .....U.. /dev/vcs5 .....U.. /dev/vcsa5 S.5....T c /etc/lynx.cfg S.5....T c /etc/sendmail.cf |
Nell'esempio, potete vedere una lista di sette file, quattro dei quali sono stati modificati. Naturalmente ci saranno, con tutta probabilità, molti file modificati se avete provveduto a personalizzare il vostro sistema secondo le vostre necessità. Un breve controllo dei file /etc/lynx.cfg e /etc/sendmail.cf, a vista o da backup, potrebbero rivelare i cambiamenti legittimi che avete apportato al vostro sistema.
Notate, comunque, che due dei file modificati dell'esempio sono eseguibili binari. È probabile che questi due binari, i comandi "ls" e "du", siano adesso dei trojan che un cracker ha installato per scopi malevoli. L'uso del comando "diff" tra i binari modificati e quelli recuperati da un backup o da RPM potrebbe rivelare differenze di dimensione oppure altro; ulteriori evidenze della presenza di trojan.
(Per maggiori informazioni sugli "RPM", si veda la Sezione 10.1)
Per ulteriori informazioni su questioni di sicurezza, una risorsa eccellente, intitolata "Securing RedHat 5.x" è disponibile su http://redhat-security.ens.utulsa.edu/. Una eccellente risorsa sulla criptazione con Linux, e sui i software relativi, su http://replay.com/redhat/.