CarCar > Sicurezza Informatica

C1 Sommario Sicurezza


C16-W    Si puo' disabilitare la funzione di autorun per tutte le unita'?

La chiave del registry che ci interessa si trova nella gerarchia HKEY_CURRENT_USER che ha le impostazioni dell'utente di default (se no si cerchi la gerarchia dell'utente interessato). In particolare, il percorso e' il seguente:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\
Explorer\"NoDriveTypeAutoRun"


(si cerchi con Regedit, Avvio -> Esegui -%#62 regedit.exe).

Il valore per disabilitare l'autorun su tutti i tipi di unita' e' "FF, 0, 0, 0". Ogni bit del primo byte rappresenta un certo tipo di unita', se il bit e' impostato a 1, allora l'autorun e' disabilitato per quel tipo di unita' cui il bit fa riferimento.

[Sommario]


C01-X    Come posso rendere Linux piu' sicuro da intrusioni?

Regola generale e' di disabilitare tutti i servizi che non verranno forniti ad altre macchine (vale anche per macchine effettivamente usate come server). Esempi di tali servizi sono: httpd (server web), telnet, ftp, pop3 e sendmail; ci sono inoltre time stream, time dgram, shell, login, ntalk, systat, netstat, auth. Ancora, togliere portmapper, nfsd e mountd.
In particolare, se la macchina Linux di cui si parla e' una stazione di lavoro domestica o comunque non integrata in una rete (LAN oppure Intranet/Internet), vanno tranquillamente disabilitati anche quelli. Ricordate che piu' servizi sono attivi piu' grande e' il numero di porte aperte, e maggiori sono quindi le possibilita' di attacco.

[Sommario]


C02-X    Come faccio a sapere che servizi ho attivi?

Si dia il comando:

grep -v "^#" /etc/inetd.conf

per vedere quali servizi ti serve di OFFRIRE. Di solito, nessuno. Forse non sarebbe malvagio dare via un identd, ed a quel punto l'UNICA riga non #-ata di /etc/inetd.conf sarebbe

ident stream tcp wait nobody /usr/sbin/in.identd in.identd -w -t120

dove l'utente nobody dovrebbe avere diritti molto ristretti, per usare un eufemismo. Poi si dia:

killall -HUP inetd

per resettare inetd, e per sapere che servizi il proprio computer espone all'esterno:

netstat -a | grep LISTEN\\b | cut -f2 -d':'

Bisogna anche tenere conto che smbd, netbios ed altri servizi non partono sempre da inetd ma da un file in /etc/rc.d/...

Se invece in inetd.conf e' presente anche la seguente riga non commentata: auth stream tcp wait root /usr/sbin/in.identd in.identd -w -t120 -l se la macchina e' destinata all'uso personale e non devono essere offerti servizi all'esterno, e' meglio togliere il flag -l. Questo perche' identd serve al remoto solo finche' il sistema locale non e' stato compromesso; ma in caso di macchina per uso personale, la distinzione e' inutile; secondo perche' si potrebbe floodare il sistema con una serie di richieste alla porta 113 facendo si' che il file di log o la consolle diventino incomprensibili. Spesso l'opzione serve ai root di un sistema multiutente per beccare i fake-mailer alle prime armi o i cretinotti su IRC che si fan regalare la K.

[Sommario]


C03-X    Non posso disabilitare tutti i servizi di sistema. C'e' modo di difendersi comunque?

Basta sfruttare la gestione dei permessi di Linux. Se lasci qualcosa di attivo in inetd.conf, metti in /etc/hosts.deny:

ALL: ALL

e in etc/hosts.allow:

ALL: 127.0.0.1

[Ovviamente se non intendi fornire servizi ad altre macchine]. Il significato (espresso in modo un po' pedestre) di tali istruzioni e' il seguente: a tutte le macchine e' vietato tutto (ALL: ALL in hosts.deny), alla macchina locale e' pero' permesso tutto (ALL: 127.0.0.1 in hosts.allow). In tal modo il sistema caccera' a pedate qualunque intruso che tentasse di connettersi.

[Sommario]


C04-X    E' necessario che sendmail venga lanciato al boot della macchina?

Anzitutto ci sono demoni di posta piu' leggeri, come qmail. Se pero' si usa sendmail allora non conviene farlo partire al boot, se sei l'unico utente della macchina non ce n'e' bisogno ed e' un po' piu' difficile controllarlo. Lo si faccia invece partire da inetd mettendo in inetd.conf:

smtp stream tcp nowait mail /usr/sbin/tcpd /usr/sbin/sendmail -bs

[Sommario]


C06-X    Come posso sapere se e chi mi sta attaccando?

Tcpd permette di monitorare la connessione TCP. Si puo' affiancare a tcpd i pacchetti iplogger (per controllare anche il traffico ICMP e quello TCP non loggato da tcpd) e udplog di Leonardo Serni, reperibili a: www.linuxvalley.com/~lserni.

Se poi al momento della connessione si lancia il comando:

xterm -e tail -f logfile

dove logfile e` il file di log usato dai programmi sopra citati, es. /var/log/secure per tcpd (nella RH), /var/log/messages (nella Slack), in caso vedi in syslog.conf dove vanno i messaggi con facility authpriv, /var/log/messages per udplog ecc., si puo' disporre di un vero e proprio monitor in tempo reale dei tentativi di attacco.
Nei primi due file citati ci sono sia i log del kernel (generati da klogd) che i log per la rete (syslogd).

[Sommario]


C06-X    Pericolosita' dei commenti in host.equiv

Dal suddetto file e' necessario togliere tutte le righe commentate, cioe' quelle che iniziano con il carattere "#". Esiste infatti un modo di exploitare una macchina con un file host.equiv contenente dei commenti. Infatti, pare che una riga del tipo

#
# Questa riga
#

affermi che lo host "#" puo' loggarsi senza password. Se cosi' e', e se qualcuno riesce ad assumere abbastanza controllo DNS da rifarsi un nome come "#", ha tutti i numeri per giocare un brutto tiro alla macchina con tale buco.

[Sommario]


C07-X    Voglio stampare in locale, togliendo la disponibilita' del server di stampa al "resto del mondo".

Si puo' fare lanciando lpd in /etc/inetd.conf, sotto tcpd, come qui indicato:

printer stream tcp nowait root /usr/sbin/tcpd /usr/bin/lpd -i

A questo punto inserisci nel file /etc/hosts.deny la linea

ALL:ALL:spawn safe_finger -l @%h 2>& 1| mail -s "%d-%h %u" root

(se hai safe_finger, se no "ALL:ALL")

e inserisci in /etc/hosts.allow la linea

ALL:127.0.0.1

in.identd:ALL

[Sommario]


C08-X    Come posso sapere chi sta usando i miei servizi?

Il demone che serve si chiama auth. Esso in pratica fa un finger a chi cerca di fare qualcosa, e comunica al sistemista (cioe' a te) il risultato via mail. Naturalmente l'host che riceve il finger deve avere questo servizio attivo, altrimenti non dara' la risposta che si cerca.

Ecco come si puo' lanciare auth:

ident stream tcp wait nobody /usr/sbin/in.identd in.identd -w -t120 -o -e

questo fa si' che non venga usato syslog e che inetd non debba fare troppa fatica per gestire le connessioni, dal momento che si limita ad avviare identd. Questo impedisce di fare flooding troppo facilmente, e in casi estremi e' possibile identificare chi fa flood con uno script e tagliarlo fuori con route o ipfwadm.

[Sommario]


C09-X    Non mi va / non posso disabilitare tutti i servizi della mia Linux box.

Soluzione alternativa: ricompilare il kernel con il supporto per il firewall, lasciare tutti i servizi che occorrono ma bloccarli conipfwadm.

[Sommario]


C10-X    Se non voglio/posso fare a meno di usare X, posso almeno renderlo sicuro?

Se si e' su una rete, bisogna controllare che il server X sia ben protetto. Da un'altra macchina della rete si dia un comando di questo tipo:

    xterm -display tuo_IP:0

Se la macchina da controllare non fa parte di una rete, si puo' usare un bounce o chi per lui, che permetta di connettersi alla porta 6000 di localhost. In ogni caso, se la connessione alla porta 6000 riesce ed appare l'xterm sullo schermo, il server X e' aperto al mondo come il back orifice di un BOservizzato. Il comando da dare e'

xhost -

mentre un rimedio duraturo consiste nel filtrare con ipfwadm ogni connessione alla porta 6000 da proteggere, che non provenga dalla interfaccia lo (ifconfig).

[Sommario]


Fonte...Massimiliano Baldinelli...it.faq

 

Sicurezza informatica - By Carlo Carmagnini