|
|
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
| |
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