-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ,,,,,,,, ,, $$ $$ $$ $$ $$ -Ascii ,$" $$ ,$"""$, $$ $$ $$ ,$" ,$"""$, $$"""$, -by $$,,,,,$" ,,,,,$$ "$, $"$, $$ $$ ,,,,,$$ $$ $$ -Bun]{er ,$" "$, ,$"" ,$" $$ $" $$ $$ ,$" ,$"" ,$" ,$" $$ -RawLab $$ "$, $$ ,$$ "$$" "$,$ $$ $$ ,$$ $$ ,$" -member "" "" """"" "" "" "" """"""""" """"" "" """"""" -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - http://RawLab.cjb.net - - La luce nella rete! - ------------------------------------------------------------------------------------------ ..:: HO INSTALLATO LINUX? COME FACCIO A RENDERLO SICURO? ::.. Fondamenti di protezione per linux in rete! Autore: Bun]{er - scorpiotnt@tin.it - RawLab® member ------------------------------------------------------------------------------------------ A chi si rivolge: a chiunque ha installato linux per la prima volta e non sa dove sbattere il naso per sistemare tutti i buchetti che lasciano il sistema vulnerabile. ------------------------------------------------------------------------------------------ # Elemento Primo - PASSWORD di systema Innanzitutto la cosa piu' importante da fare, anche se sembra banale, e' quella di scegliere delle password non intuitive sia per il ROOT che per gli UTENTI (perche' non usare password alfanumeriche?) e di testare suddette password con i programmi tipo Jack the RIpper e Crack per vedere se vengono indovinate... Le password si sentono spesso nominare come primo punto d'approdo in un systema da "bukare", anche se non e' propriamente vero possono cmq risultare una via vulnera_ bile all'attakko. -- CURIOSITA' --> Linux adotta sistemi di criptazione delle password ad una via e nonostante spesso si senta dire che i proggy come Jack e Crack le decriptano cio' non e' vero, i proggy si limitano ad INDOVINARLE testando l'accesso con password racchiuse in un file dizionario. # Elemento secondo - Disattivazione dei servizi non necessari Molto probabilmente se avete appena installato il systema vi ritrovate con svariati servizi (demoni in ascolto) che a voi non servono proprio a nulla! La seconda cosa da fare e' dunque quella di controllare questi servizi che restano in ascolto su una determinata porta (*/etc/services*) e disattivarli. Per fare cio' vi tornano molto utili i programmilli come NETSTAT e FUSER ("man netstat" - "man fuser") con i quali potete rilevare le porte ed i servizi in ascolto su di esse. Adesso avete la lista dei servizi che la vostra linuxbox offre... ma davvero vi servono tutti? Non credo... Decidete queli tenere e quali disattivare e procedete in questo modo: alcuni di essi vengono attivati dal super-server internet INETD, in questo caso e' sufficente editare il file /etc/inetd.conf e commentare con un # i servizi da disabilitare. Per riavviare inetd bastera' scrivere # killall -HUP inetd Alcuni invece (come portmapper) vengono avviati di default nel runlevel scelto. Per non avviare i demoni andate nella dir "/etc/rc*" oppure "/etc/rc.d/rcX.d" dove X e' il numero di runlevel che si usa (nel mio caso il 3, ovvero login non visuale)... in ogni caso potete controllare quale sia il vostro runlevel con il comando # runlevel Una volta nella directory potrete disabilitare qualsiasi servizio, di rete e non, semplicemente modificando il nome dei links da "Sxxnomefile" a "Kxxnomefile", dove xx sono dei numeri che indicano l'ordine di avvio, questo perche' al riavvio verranno attivati solamente i demoni con la S al contrario si quelli con la K iniziale. Un altro modo per proteggersi e' quello di settare nei file di tcpd (ovvero /etc/hosts.allow e /etc/hosts.deny) chi puo' utilizzare i servizi e chi no. Ad esempio mettendo in /etc/hosts.deny la riga: ALL : ALL impedira' a chiunque di connettersi ai servizi protetti da tcpd. # Elemento terzo - Impedire di visualizzare al login, distro e kernel utilizzati Non so se ci avete mai fatto caso, ma quando entrate su una shell vi compare prima della richiesta di login una messaggio. Spesso indica la versione del systema, oppure la societa' o qualsiasi altra cosa voglia indicare... Eppure quando fate il login sul vostro systema vi compare la distro utilizzata e la versione del kernel... Come fare per toglierla o modificarla? Semplice andate dentro la dir /etc/rc.d e commentate le seguenti righe dello skript "rc.local" come ho fatto io: #echo "" > /etc/issue #echo "$R" >> /etc/issue #echo "Kernel $(uname -r) on $a $SMP$(uname -m)" >> /etc/issue #cp -f /etc/issue /etc/issue.net #echo >> /etc/issue Come avrete notato fanno riferimento a due files, ovvero "issue" e "issue,net", andate un po' sotto la dir /etc ed apriteli! SORPRESA!!! Contengono proprio il messaggio che verra' visualizzato al login (ISSUE => LOGIN LOCALE, mentre ISSUE.NET => LOGIN REMOTO). Adesso li potete modificare a piacimento senza che vengano sovrascritti al riavvio da rc.local. SEMPLICE NO??? ;) ------------------------------------------------------------------------------------------ Bah, credo che come prima skremata possa bastare! =) Nel prossimo txt vi parlero' dell'utilizzo di IPCHAINS (kernel 2.2.X), ovvero dell'utilizzo del KERNEL FIREWALLING per bloccare tutto cio' che ci da' fastidio! Salutz -------->> Bun]{er - RawLab® member - scorpiotnt@tin.it PS: questo testo e' il risultato dell'unione di articoli sparsi qua e la, che l'autore ha ritenuto utile racchiudere insieme e semplificare.