Michael Jastremski L'Autore: Michael Jastremski ha lavorato sullo Unix negli ultimi quattro anni. Il suo sito web può essere trovato in genere all'http://westphila.net/mike . Ringrazia Andrew Contenuto: Introduzione Passi per la sicurezza |
Rinforzare la sicurezza nelle distribuzioni Linux più comuniRiassunto: Questo articolo discute i modi in cui gli amministratori di sistema possono proteggere i propri sistemi dagli intrusi. Si trattano vari modi per migliorare la sicurezza dei sistemi Linux. IntroduzioneTentativi su larga scala di compromettere computer di rete stanno diventandoun luogo comune. Linux e FreeBSD sono diventati sempre più bersaglio di recenti attacchi, che implicavano il buffer overflow nell'imapd e nelle fonti BIND. Ogni giorno punti deboli di tutti i tipi e dimensioni vengono rivel ati tra i circa 20000 sottoscrittori della mailing list BUGTRAQ (Se sottoscrivete un'unica list sulla sicurezza, questa è quella giusta). Sarebbe giudizioso ritenere che almeno uno di quei 19305 sottoscrittori scriverà un for() loop e sfrutterà un taglia e incolla per ottenere efficacemente accesso a quanti più computer possibile. Prima o poi il loop creerà l'indirizzo del vostro computer. Non c'è un momento migliore di adesso per prepararsi. Al di là di quanto qualche 'esperto possa avervi fatto credere, installare e mantenere un computer sicuro non è scienza missilistica.... Pratiche di amministrazione sensate servono da protezione dalle minacce della rete globale. Questo articolo descrive le precauzioni e gli accorgimenti che io prendo generalmente nell'installare un sistema RedHat Linux di rete. Anche se questo articolo fornisce delle linee guida per proteggere il vostro computer dai malintenzinati, non intende essere una trattazione completa. While this article provides guidelines for protecting your computer from the malicious intent of others, it is not intended to be a complete reference. I seguenti sono alcuni passi che sperabilmente eviteranno che la vostra installazione cada preda del prossimo buco reso pubblico del vostro software di rete. ATTENZIONE: Se non sapete esattamente cosa state facendo, non fatelo. Alcuni di questi passi presumono una certa capacità di intuito da parte vostra. Garanzia non valida in Alaska, alle Hawaii e a Puerto Rico. Alla fine sono menzionate alcune letture consigliate.. 1.Rimuovete dal vostro sistema tutti i servizi di rete non necessari. Me no modi vi sono per accedere al vostro computer meno modi avrà a disposizione un intruso per penetrarvi. Commentate via tutto quello che non vi serve dal file /etc/inetd.conf. Non vi serve il telnet? Disabilitatelo. Lo stesso vale per ftpd, rshd, rexecd, gopher, chargen, echo, pop3d e gli latri. Non dimenticate di eseguire un 'killall -HUP inetd' dopo aver editato inetd.conf. Non trascurate nemmeno la directory /etc/rc.d/init.d. Alcuni servizi di rete (BIND, i printer daemon) sono programmi autonomi avviati da questi script. from these scripts.
2. Installate SSH. SSH è un rimpiazzo per molti di quegli arretrati
comandi 'r' della Berkeley. Dall homepage all'http://www.cs.hut.fi/ssh.
Fa anche un sacco di altre cose che ogni aspirante hacker dovrebbe trovare interessanti. Scaricate SSH dall'http://ftp.rge.com/pub/ssh . 3. Usate vipw(1) per bloccare ogni accesso senza login. Tenete nota del fatto che su RedHat Linux, l'accesso con il nome di una shell di login null è il default per /bin/sh, il che probabilmente non è quello che volete. Assicuratevi anche che nessuno dei vostri account abbia il campo della password vuoto. Il seguente è un esempio di come dovrebbe apparire la parte di sistema di un file di password sano.
daemon:*:2:2:daemon:/sbin:/bin/sync adm:*:3:4:adm:/var/adm:/bin/sync lp:*:4:7:lp:/var/spool/lpd:/bin/sync sync:*:5:0:sync:/sbin:/bin/sync shutdown:*:6:0:shutdown:/bin:/sync halt:*:7:0:halt:/sbin:/bin:/sync mail:*:8:12:mail:/var/spool/mail:/bin/sync news:*:9:13:news:/var/spool/news:/bin/sync uucp:*:10:14:uucp:/var/spool/uucp:/bin/sync operator:*:11:0:operator:/root:/bin/sync games:*:12:100:games:/usr/games:/bin/sync gopher:*:13:30:gopher:/usr/lib/gopher-data:/bin/sync ftp:*:14:50:FTP User:/home/ftp:/bin/sync nobody:*:99:99:Nobody:/:/bin/sync 4. Rimuovete i bit 's' ai programmi posseduti da root che non hanno bisogno di questo pivilegio. Questo si può fare con il comando 'chmod a-s' con i nomidei file in questione come argomenti. Questi programmi includono, ma non sono limitati a questi:
Ho messo un asterisco (*) vicino ai programmi che personalmente disabiliterei. Ricordate che il vostro sistema richiede alcuni porgrammi con i privilegi di root per funzionare correttamente, quindi state attenti. In alternativa potreste creare uno speciale gruppo chiamato 'suidexec', e posizionare gli account di utenti fidati in questo gruppo. Con chgrp(1) spostate i programmi suid fidati nel gruppo suidexec, e togliete a tutti gli altri il permesso di exec. # find / -user root -perm "-u+s" */bin/ping */bin/mount -- solo root dovrebbe poter montare file system */bin/umount -- lo stesso vale qui /bin/su -- questo non toccatelo! /bin/login /sbin/pwdb_chkpwd */sbin/cardctl -- utilità di controllo per le PCMCIA card */usr/bin/rcp -- Usate ssh */usr/bin/rlogin -- come sopra */usr/bin/rsh -- " */usr/bin/at -- usate cron, o disabilitateli entrambi */usr/bin/lpq -- installate LPRNG */usr/bin/lpr -- " */usr/bin/lprm -- " */usr/bin/mh/inc */usr/bin/mh/msgchk /usr/bin/passwd -- non toccate! */usr/bin/suidperl -- ogni nuova versione di suidperl sembra avere un buffer overflow */usr/bin/sperl5.003 -- usatelo solo se necessario /usr/bin/procmail -- */usr/bin/chfn */usr/bin/chsh */usr/bin/newgrp */usr/bin/crontab */usr/X11R6/bin/dga -- un sacco di buffer overflow anche in X11 */usr/X11R6/bin/xterm -- " */usr/X11R6/bin/XF86_SVGA -- " */usr/sbin/usernetctl /usr/sbin/sendmail */usr/sbin/traceroute -- potete sopportare di dover digitare la password di root ogni tanto 5. Aggiornate sendmail. Scaricate il sorgente da ftp://ftp.sendmail.org/pub/sendma il. Decomprimetelo e seguite le istruzioni. Installate smrsh (fornito con sendmail) se avete due minuti in più. Questo programma risponde a molti dei problemi che ha la gente con sendmail, come l'invio di email a programmi arbitrari. Editate sendmail.cf e settate l'opzione 'PrivacyOptions' a 'goaway': O PrivacyOptions=goaway Se non avete intenzione di ricevere posta da internet, NON FATE GIRARE SENDMAIL IN MODALITA' DI RICEZIONE (sendmail -bd)!. In questo caso, disabilitate /etc/rc.d/init.d/sendmail.init e fate un 'killall -TERM sendmail'. Potrete ancora inviare posta al di fuori del vostro sistema. 6. Aggiornate BIND se lo usate. Il BIND più recente può essere trovato all'http://www.isc.org . Altrimenti disabilitatelo del tutto. 7. Ricompilate il kernel. Di solito lo faccio anche solo per migliorare le prestazioni rispetto al kernel di default. CONSIGLIO: settate tutt le opzioni di firewalling anche se il computer non è un firewall. CONFIG_FIREWALL=y CONFIG_NET_ALIAS=y CONFIG_INET=y # CONFIG_IP_FORWARD is not set # CONFIG_IP_MULTICAST is not set CONFIG_SYN_COOKIES=y CONFIG_RST_COOKIES=y CONFIG_IP_FIREWALL=y CONFIG_IP_FIREWALL_VERBOSE=y # CONFIG_IP_MASQUERADE is not set # CONFIG_IP_TRANSPARENT_PROXY is not set CONFIG_IP_ALWAYS_DEFRAG=y CONFIG_IP_ACCT=y # CONFIG_IP_ROUTER is not set # CONFIG_NET_IPIP is not set CONFIG_IP_ALIAS=m 8. Applicate i patch: Ogni problema noto con il loro software può essere trovato alla RedHat nelle loro pagine di Errata.(vedi http://www.redhat.com/support/docs/errata.html per trovare le patch da applicare alla tua versione). RedHat fa verament.e un buon lavoro nel tenere aggiornate queste pagine. Vi sono anche li nk ai file RPM che vi serviranno con istruzioni per l'installazione. 9. Configurate i tcp_wrappers: Tcp_wrappers sono un modo per controllare quali computer della rete posssono fare un 'talk' al vostro. Questo pacchetto, scritto dal guru della sicureza Wieste Venema, sta di fronte ai programmi lanciati da inetd (o quelli collegati alle sue librerie) consultando il suo file di configurazone per vedere se concedere o meno transizioni di rete. Per esempio, per consentire il telnet e l'ftp da casa attraverso il vostro isp, bloccando tutto il resto, aggiungete le righe seguenti in /etc/hosts.allow: in.ftpd : .dialup.your-isp.com : allow all : all : deny SSH, sendmail e altri pacchetti possono venire compilati con il supporto di tcp_wrappers. Leggete la pagina del manuale di tcpd(1) per ulteriori informazioni.
Secure Linux patches by Solar Designer: |
Questo sito è gestito da Miguel Angel Sepulveda © Michael Jastremski LinuxFocus 1998 |