Monitoriamo il Sistema: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
m (tag <pre> chiuso male)
mNessun oggetto della modifica
Riga 1: Riga 1:
==Introduzione==
Nell ultimo articolo eravamo rimasti ai RootKit , ma se siamo infetti come scoprirlo?
Con questa guida intendo spiegare all'utente debian come configurare un server mail basato su Postfix (http://www.postfix.org).
con il checksum dei binari di sistema , in questa guida vedremo come fare.
Postfix � un MTA abbastanza sicuro e di recente sviluppo, molto semplice da usare e per alcuni � considerato il successore di sendmail per altro troppo complicato da gestire e con noti problemi di sicurezza.


==Installazione di Postfix==
Partiamo dal presupposto che per poter mettere in atto quanto diremo da qui in poi abbiamo bisogno o di una macchina con os appena installato o dobbiamo essere sicuri al 300% che la nostra macchina non sia compromessa.
Prima di tutto abbiamo bisogno di due demoni uno per la gestione del protocollo pop3 e uno per l'imap. Io consiglio popa3d e imapd
Partiamo con lo scaricarci uno di questi 2 software AFICK AIDE (si veda fondo pagina per i link).


<pre>
Il bello di questi programmi e che oltre che calcore il checksum dei binari , possono controllare gli accessi , i permessi , il numero di link simbolici e tanto altro ancora,per questa guida io mi basero' su AFICK , a noi interessa il file afick.pl e afick.conf il suo file di configurazione.
# apt-get update
mettiamo questi 2 file in /root e prepariamoci per modificare il file di conf per esempio:
# apt-get install popa3d uw-imapd
</pre>
 
fatto questo in /etc/inetd.conf verranno aggiunti i servizi per il pop3 e l'imapd.
Procediamo all'installazione dell'MTA vero e proprio


<pre>
<pre>
# apt-get install postfix
# esempio di file di conf
database:=./afick
warn_dead_symlinks := yes
exclude_suffix := wav WAV mp3 avi
=/ d+i+p+u+g
=/bin p+n+b+m+c+md5
=/sbin p+n+b+m+c+md5
=/usr/sbin p+n+b+m+c+md5
=/usr/bin p+n+b+m+c+md5
</pre>
</pre>


==Configurazione base==
dopo aver controllato che la prima riga di afick.pl contenga la locazione precisa dell eseguibile Perl , possiamo passare a inizializzare il database dei nostri binari,
Quasi tutte le opzioni di configurazione di Postfix si trovano nel file /etc/postfix/main.cf
digitiamo da console quanto segue:
 
Ecco i principali tag a cui conviene prestare attenzione:


<pre>
<pre>
myhostname = valore indica il nome che assumer� il vostro server mail (es: mail.nomedominio.it).
# ./afick.pl -c afick.conf -i
myorigin = valore indica il dominio usato per la posta inviata dal server.
mydestination = localhost, altri_valori indicano i domini che il server dovr� riconoscere come locali e che smister� internamente.
mydomain = valore indica il dominio a cui appartiene il server.
relayhost = valore indica a quale server inoltrare le mail che non si riconoscono come locali.
mailbox_size_limit = 0 indica la dimensione massima delle caselle mail, 0 per nessun limite.
mynetworks = valore altri_valori indica le reti nelle quali il server deve operare (es. 127.0.0.1/8 192.168.0.1/24).
mynetworks_syle = host/subnet/class
</pre>
</pre>


Su questi ultimi due punti � il caso di soffermarsi. Stiamo considerando ora quali ip considerare validi per l'invio della posta.
bene cosi' abbiamo creato il nostro database di sistema , ora facciamo passare un po di tempo e poi controlliamo come va'
 
Postfix non autorizza l'invio della posta da parte di client non autorizzati a farlo e/o di domini sconosciuti, ovvero non � un open-relay. Questo � un gran vantaggio perch� impedisce che il vostro server possa essere usato per spam o peggio.
 
Tranute mynetworks abilito gli ip presenti nella lista a spedire mail, con mynetworks_style posso specificare uno tra i seguenti tre valori:
 
;host: l'invio sar� consentito solo per la macchina locale.
;class: l'invio sar� consentito a tutti i client appartenenti al network di classe A, C o C a cui il server appartiene.
;subnet: indica che Postfix autorizza alla trasmissione tutti i client che appartengono alla stessa sottorete locale del mailserver e costituisce il valore di default.
 
==Gestione degli Alias==
In teoria ad ogni utente locale del vostro server corrisponde una sola casella mail.
Si possono per� creare degli alias che corrispondano ad un particolare utente, un secondo indirizzo a cui inviare mail per quel dato user.
Di default esiste il file /etc/aliases che contiene una lista di alias a sinistra e i rispettivi utenti ai quali appartengono a destra.
In /etc/postfix/main.cf basta solo aggiungere


<pre>
<pre>
alias_maps = hash:/etc/aliases
# ./afick.pl -c afick.conf -k
</pre>
</pre>


e per rendere questo file una mappa utilizzabile da Postfix lanciamo il comando
se non abbiamo modificato nessun binari inserito nel file di configurazione dovrebbe apparirci in risposta dal programma:


<pre>
<pre>
# postalias /etc/aliases
Hash Database : numero file scanned 0 changed ecc
</pre>
</pre>


==Multidominio, Virtual Domain e Sender Canonical==
bene ora proviamo a modificare qualche file, banalmente:
Nel caso il vostro Server debba ricevre la posta per pi� domini non dobbiamo fare altro che modificare la tag mydestination come segue


<pre>
<pre>
mydestination = localhost, /etc/postfix/local-domain
# touch /sbin/lilo
# ln-s /sbin/sulogin /usr/sbin/sulogin
</pre>
</pre>


creare il file /etc/postfix/local-domain e inserire li i domini da considerare locali uno per riga senza virgole.
ora rieseguiamo il controllo come prima, questa volta in risposta avremmo:
 
Fatto questo conviene preparare un file per la gestione dei domini virtuali in modo tale da associare il giusto dominio al dato utente
creiamo allora il file /etc/postfix/virtual
La sintassi da usare � la seguente:


<pre>
<pre>
info@dominio1.it marco -> le mail in arrivo per tale indirizzo sono redirezionate a marco
new symbolic link : /usr/sbin/sulogin
webmaster@dominio2.it andrea@dominio4.it -> le mail verranno inviate a andrea@dominio4.it
changed file : /sbin/lilo
@dominio3.com alessandro -> tutte le mail inviate a qualsiasi indirizzo @dominio3.com sono inviate all'utente alessandro
changed directory :/usr/sbin
</pre>
</pre>


aggiungiamo in /etc/postfix/main.cf
seguito dai dettagli delle varie operazioni compiute.
 
<pre>
virtual_maps = hash:/etc/postfix/virtual
</pre>


e prepariamo la map con il comando
Dal momento che sappiamo che queste modifiche le abbiamo fatte noi
ora dobbiamo riaggiornare il database:


<pre>
<pre>
# postmap /etc/postfix/virtual
# ./afick.pl -c afick.conf -u
</pre>
</pre>


Pu� essere utile sempre per la gestione di pi� domini usare un file che associ ad un nome utente un indirizzo mittente particolare.
ora sappiamo usare il nostro Monitor di sistema.
Creiamo perci� un file /etc/postfix/sender_canonical dove con la precedente sintassi associamo al nome utente l'indirizzo mittente da mostrare nelle mail inviate.
Aggiungiamo in /etc/main.cf la seguente riga:


<pre>
Uun consiglio che mi sento di darvi e di aggiungere un controllo al db tramite cron in base all uso della macchina ogni giorno ogni 2 ore vedete voi.
sender_canonical_maps = hash:/etc/postfix/sender_canonical
</pre>


ed infine prepariamo la map con
==Non è finita qui==
Credete che questo basti, invece no' pensate un momento se un hacker riuscisse a penetrare il vostro sistema, anche se il nostro db fosse conservato in una partizione apposita read-only, se l'hacker riuscisse a guadagnare la root potrebbe rimontare la partizione in r/w e compromettere il nostro db, quindi come fare diciamo che sara' la base per un prossimo articolo e si chiama RFC e GRSEC


<pre>
# postmap /etc/postfix/sender_canonical
</pre>


==Antivirus - Amavis e ClamaV==
==Link==
Passiamo ora alla configurazione dell'antivirus da installare sul vostro MTA.
Procediamo all'installazione:


<pre>
http://www.afick.sourceforge.net
# apt-get install amavisd-new clamav clamav-daemon
http://www.cs.tut.fi/~rammer/aide.html
</pre>


Dopo l'installazione dobbiamo dire a Postfix di far processare le mail dal vostro antivirus. Aggiungiamo a /etc/postfix/main.cf quanto segue:
Un consiglio scaricate pure chkrootkit e aggiungetelo al cron insieme al tool per il controllo da voi scelto.


<pre>
http://www.chkrootkit.org
content_filter = amavis:[127.0.0.1]:10024
</pre>
mentre nel file /etc/postfix/master.cf:
<pre>
amavis unix - - n - 2 smtp
-o smtp_data_done_timeout=1200
-o disable_dns_lookups=yes
 
127.0.0.1:10025 inet n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
</pre>
 
Di per se non si richiedono altre modifiche per il corretto funzionamento, comunque pu� essere utile dare un occhiata al file /etc/amavis/amavisd.conf per eventuali modifiche.
Il Demone clamav-daemon (freshclam) tiene aggiornato il vostro antivirus aggiornandosi 12 volte al giorno, per eventuali modifiche /etc/clamav/fresclam.conf e /etc/clamv/clamavd.conf
 
==Antispam - Spamassassin==
Pu� essere utile installare un antispam che filtri le mail nel vostro server. Spamassassin � ci� che fa per voi. Installiamolo insieme a procmail:
 
<pre>
# apt-get install spamassassin procmail
</pre>
 
a questo punto aggiungiamo in /etc/postfix/main.cf quanto segue
 
<pre>
mailbox_command = /usr/bin/spamc | procmail -a "$EXTENSION"
</pre>
 
abilitiamo spamassassin modificando in /etc/default/spamassassin
 
<pre>
ENABLE=1
</pre>
 
aggiungiamo al file /etc/procmailrc quanto segue:
 
<pre>
DROPPRIVS=yes
:0fw
| /usr/bin/spamassassin
</pre>
 
Per settaggi particolari di spamassassin vi consiglio di dare un'occhiata al file /etc/spamassassin/local.cf oppure consultare il sito web http://www.yrex.com/spam/spamconfig.php che vi consente di creare un file di configurazione personalizzato rispondendo alle varie domande.
 
==WebMail - Openwebmail==
Per poter usufruire del servizio di webmail � necessario usare un server web.
Io vi consiglio apache con supporto php e cgi. In questa guida presumo che nel vostro server sia gi� presente apache configurato a dovere.
Esistono diversi servizi di WebMail, io ho scelto openwebmail, installiamolo:
 
<pre>
# apt-get install openwebmail
</pre>
 
Dopo l'installazione recatevi in /etc/openwebmail e date un occhiata al file apache.conf che contiene le specifiche per configurare apache.
Apriamo ora /etc/openwebmail/openwebmail.conf e apportiamo le nostre personalizzazioni.
Attenzione alla voce domainnames, spesso auto pu� portare a dei problemi, vi consiglio di specificare il dominio di appartenenza.
Per altre modifiche consultate il file /usr/share/openwebmail/configs/openwebmail.conf
 
==Gestione Mailing-List Mailman + Hypermail==
Ogni mailserver che si rispetti ha anche un gestore di mailing-list. Io vi consiglio di installare mailman che possiede un ottimo supporto web per le varie configurazioni:
 
<pre>
# apt-get install mailman hypermail
</pre>
 
Fatto questo modificate /etc/postfix/main.cf aggiungendo quanto segue:
 
<pre>
alias_maps = hash:/etc/aliases
hash:/var/lib/mailman/data/aliases
transport_maps = hash:/etc/postfix/transport
relay_domains = lists.vostrodominio.com
mailman_destination_recipient_limit = 1
</pre>
 
creiamo /etc/postfix/transport e trasformiamolo in una mappa
 
<pre>
# echo lists.vostrodominio.com mailman: > /etc/postfix/transport
# postmap /etc/postfix/transport
</pre>
 
Modificate ora il file /etc/postfix/master.cf:
 
<pre>
mailman unix - n n - - pipe flags=FR user=list argv=/var/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}
</pre>
 
Modificate nel file /etc/mailman/mm_cfg.py i seguenti tag:
 
<pre>
DEFAULT_EMAIL_HOST = 'vostrodominio.com'
DEFAULT_URL_HOST = 'www.vostrosito.com'
MTA='Postfix'
PUBLIC_EXTERNAL_ARCHIVER = 'hypermail -L it -m /var/lib/mailman/archives/private/%(listname)s.mbox/%(listname)s.mbox -l %(listname)s -d /var/lib/mailman/archives/public/%(listname)s'
PRIVATE_EXTERNAL_ARCHIVER = 'hypermail -c -L it -m /var/lib/mailman/archives/private/%(listname)s.mbox/%(listname)s.mbox -l %(listname)s -d /var/lib/mailman/archives/private/%(listname)s'
PUBLIC_ARCHIVE_URL = '/archives/%(listname)s'
PRIVATE_ARCHIVE_URL = '/archives/%(listname)s'
ARCHIVE_TO_MBOX = 2
</pre>
 
Fate attenzione alle voci PUBLIC_ARCHIVE_URL e PRIVATE_ARCHIVE_URL.
Sono i link che in mailman verranno associati all'archivio delle vostre mailinglist (www.vostrodominio.it/archives/nomelista). di conseguenza un mio consiglio � creare un link simbolico nella DocumentRoot del server apache in questione:
 
<pre>
# ln -s /var/lib/mailman/archives/public/ archives
</pre>
 
Create poi una lista mailman di default per il server (altrimenti il suo demone si rifiuta di partire)
 
<pre>
# newlist mailman
</pre>
 
ed il gioco � fatto.
Per creare nuove mailing-list basta usare il comando newlist e per rimuoverle rmlist.
Per le altre configurazione mailman crea nella vostra directory cgi-bin un programma che vi consente tramite web di accedere alle varie mailing-list per poter modificarne alcuni parametri, anche in questo caso si richiede una corretta configurazione di apache.


----
----
Per qualsiasi informazione
Autore: debian
 
[[Categoria:Sistema]]
www.giorgioravera.it
[[Categoria:Networking]]
 
giorgio@giorgioravera.it

Versione delle 20:36, 1 apr 2006

Nell ultimo articolo eravamo rimasti ai RootKit , ma se siamo infetti come scoprirlo? con il checksum dei binari di sistema , in questa guida vedremo come fare.

Partiamo dal presupposto che per poter mettere in atto quanto diremo da qui in poi abbiamo bisogno o di una macchina con os appena installato o dobbiamo essere sicuri al 300% che la nostra macchina non sia compromessa. Partiamo con lo scaricarci uno di questi 2 software AFICK AIDE (si veda fondo pagina per i link).

Il bello di questi programmi e che oltre che calcore il checksum dei binari , possono controllare gli accessi , i permessi , il numero di link simbolici e tanto altro ancora,per questa guida io mi basero' su AFICK , a noi interessa il file afick.pl e afick.conf il suo file di configurazione. mettiamo questi 2 file in /root e prepariamoci per modificare il file di conf per esempio:

# esempio di file di conf
database:=./afick
warn_dead_symlinks := yes
exclude_suffix := wav WAV mp3 avi
=/ d+i+p+u+g
=/bin p+n+b+m+c+md5
=/sbin p+n+b+m+c+md5
=/usr/sbin p+n+b+m+c+md5
=/usr/bin p+n+b+m+c+md5

dopo aver controllato che la prima riga di afick.pl contenga la locazione precisa dell eseguibile Perl , possiamo passare a inizializzare il database dei nostri binari, digitiamo da console quanto segue:

# ./afick.pl -c afick.conf -i

bene cosi' abbiamo creato il nostro database di sistema , ora facciamo passare un po di tempo e poi controlliamo come va'

# ./afick.pl -c afick.conf -k

se non abbiamo modificato nessun binari inserito nel file di configurazione dovrebbe apparirci in risposta dal programma:

Hash Database : numero file scanned 0 changed ecc

bene ora proviamo a modificare qualche file, banalmente:

# touch /sbin/lilo
# ln-s /sbin/sulogin /usr/sbin/sulogin

ora rieseguiamo il controllo come prima, questa volta in risposta avremmo:

new symbolic link : /usr/sbin/sulogin
changed file : /sbin/lilo
changed directory :/usr/sbin

seguito dai dettagli delle varie operazioni compiute.

Dal momento che sappiamo che queste modifiche le abbiamo fatte noi ora dobbiamo riaggiornare il database:

# ./afick.pl -c afick.conf -u

ora sappiamo usare il nostro Monitor di sistema.

Uun consiglio che mi sento di darvi e di aggiungere un controllo al db tramite cron in base all uso della macchina ogni giorno ogni 2 ore vedete voi.

Non è finita qui

Credete che questo basti, invece no' pensate un momento se un hacker riuscisse a penetrare il vostro sistema, anche se il nostro db fosse conservato in una partizione apposita read-only, se l'hacker riuscisse a guadagnare la root potrebbe rimontare la partizione in r/w e compromettere il nostro db, quindi come fare diciamo che sara' la base per un prossimo articolo e si chiama RFC e GRSEC


Link

http://www.afick.sourceforge.net http://www.cs.tut.fi/~rammer/aide.html

Un consiglio scaricate pure chkrootkit e aggiungetelo al cron insieme al tool per il controllo da voi scelto.

http://www.chkrootkit.org


Autore: debian