Server casalingo (SOHO): differenze tra le versioni

Nessun cambiamento nella dimensione ,  1 apr 2006
m
nessun oggetto della modifica
mNessun oggetto della modifica
mNessun oggetto della modifica
Riga 1: Riga 1:
==Introduzione==
==Introduzione==
[http://www.cacti.net Cacti] � un completo strumento per monitorare il sistema che si poggia su snmpd (lo stesso usato anche da mrtg).
Con questa guida intendo spiegare all'utente debian come configurare un server mail basato su Postfix (http://www.postfix.org).
Uno dei punti di forza di cacti l'elevata facilit� di configurazione, senza per questo non garantire una elevata flessibilit�.
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==
==Installazione di Postfix==
Cacti � gi� disponibile nei repository Debian, e quindi installabile tramite apt-get...
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
Per il suo funzionamento richiede un database [http://www.mysql.com mysql] a cui appoggiarsi per memorizzare i dati e il [http://geekcorp.com/snmpd/ server snmpd] per accedere ai dati da elaborare, oltre a questi programmi, inoltre, � necessario installare (o avere gi� configurato) il webserver [http://www.apache.org Apache] con l'estensione [http://www.php.net PhP].


Se, quindi, queste cose non sono presenti, consiglio di installarle:
<pre>
<pre>
# apt-get install snmpd mysql-server
# apt-get update
# apt-get install popa3d imapd
</pre>
</pre>


nella sezione ''configurazione'' analizzeremo la configurazione di questi due server.
fatto questo in /etc/inetd.conf verranno aggiunti i servizi per il pop3 e l'imapd.
Procediamo all'installazione dell'MTA vero e proprio


Ora installiamo cacti (che installer anche ''apache'', ''php4'', ''php4-mysql'', ''php4-cli'', e altre applicazioni necessarie al suo funzionamento):
<pre>
<pre>
# apt-get install cacti
# apt-get install postfix
</pre>
</pre>


Durante l'installazione di cacti, verranno poste delle domande (che qui riporto con delle risposte di esempio):
==Configurazione base==
* '''MySQL server host name ''': ''localhost'';
Quasi tutte le opzioni di configurazione di Postfix si trovano nel file /etc/postfix/main.cf
* '''Database name for cacti ''': ''cacti'';
* '''Cacti database username''': ''cacti'';
* '''Cacti user password''': ''cactipass'';
* '''Webserver type''': nel nostro caso selezioniamo ''Apache-SSL'', ma � possibile effettuare la scelta pi� conveniente per il proprio sistema.


{{Box|Nota Bene|durante la configurazione ci viene ricordato che la configurazione di mysql deve essere fatta manualmente, come vedremo in seguito}}
Ecco i principali tag a cui conviene prestare attenzione:


==Configurazione==
===MySql===
Se la prima installazione di MySql sulla macchina, consigliato cambiare la password di root in quanto, di default, non impostata:
<pre>
<pre>
#/usr/bin/mysql
myhostname = valore indica il nome che assumer� il vostro server mail (es: mail.nomedominio.it).
mysql> set password for root@localhost=password('rootpw');
myorigin = valore indica il dominio usato per la posta inviata dal server.
mysql> exit
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>


Una volta impostata, procediamo con la creazione del database e dell'utente che avr� accesso al database ''cacti'';
Su questi ultimi due punti � il caso di soffermarsi. Stiamo considerando ora quali ip considerare validi per l'invio della posta.
 
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>
mysql> create database cacti;
alias_maps = hash:/etc/aliases
mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactipass';
mysql> flush privileges;
mysql> exit
</pre>
</pre>


Ora non ci resta che sistemare il database, creando le tabelle ed inserendo i dati necessari:
e per rendere questo file una mappa utilizzabile da Postfix lanciamo il comando
 
<pre>
<pre>
# zcat /usr/share/doc/cacti/cacti.sql.gz | mysql -u root -p cacti
# postalias /etc/aliases
</pre>
</pre>


Bene, la configurazione di MySql � terminata.
==Multidominio, Virtual Domain e Sender Canonical==
Nel caso il vostro Server debba ricevre la posta per pi� domini non dobbiamo fare altro che modificare la tag mydestination come segue
 
<pre>
mydestination = localhost, /etc/postfix/local-domain
</pre>


===Snmpd===
creare il file /etc/postfix/local-domain e inserire li i domini da considerare locali uno per riga senza virgole.
La configurazione di snmpd, se cacti � installato sulla stessa macchina che si vuole monitorare,  � limitata a dare l'accesso in lettura a snmpd, cos� da permetterne l'interrogazione da parte di cacti.
 
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:


Per fare questo, modifichiamo il file '''/etc/snmp/snmpd.conf''' con il nostro editor di testo preferito, e facciamo in modo che le righe:
<pre>
<pre>
com2sec paranoid  default        public
info@dominio1.it marco -> le mail in arrivo per tale indirizzo sono redirezionate a marco
#com2sec readonly  default        public
webmaster@dominio2.it andrea@dominio4.it -> le mail verranno inviate a andrea@dominio4.it
#com2sec readwrite default        private
@dominio3.com alessandro -> tutte le mail inviate a qualsiasi indirizzo @dominio3.com sono inviate all'utente alessandro
</pre>
</pre>
diventino:
 
aggiungiamo in /etc/postfix/main.cf
 
<pre>
<pre>
#com2sec paranoid  default        public
virtual_maps = hash:/etc/postfix/virtual
com2sec  readonly  127.0.0.1      public
#com2sec readwrite default        private
</pre>
</pre>


Una volta salvato il tutto, riavviamo snmpd con un semplice:
e prepariamo la map con il comando
 
<pre>
<pre>
# /etc/init.d/snmpd restart (oppure reload)
# postmap /etc/postfix/virtual
</pre>
</pre>


===Php===
Pu� essere utile sempre per la gestione di pi� domini usare un file che associ ad un nome utente un indirizzo mittente particolare.
Cacti utilizza php sia come estensione di apache, sia come ''cli'' (common line interpreter).
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.
Per evitare problemi, � necessario controllare che l'estensione per mysql sia abilitata nei seguenti file:
Aggiungiamo in /etc/main.cf la seguente riga:
* '''/etc/php4/cli/php.ini''' per quanto riguarda php4-cli;
* '''/etc/php4/apache/php.ini''' per quanto riguarda php e apache.


La modifica di questi file consiste, in pratica, nella rimozione del ''';''' di commento alla seguente riga:
<pre>
<pre>
;extension=mysql.so
sender_canonical_maps = hash:/etc/postfix/sender_canonical
</pre>
</pre>


===Cacti===
ed infine prepariamo la map con
Per terminare la configurazione base del sistema, rechiamoci al seguente indirizzo:


http://localhost/cacti (se � stato scelto Apache/Apache2)<br/>
<pre>
https://localhost/cacti (se � stato scelto Apache-SSL)
# postmap /etc/postfix/sender_canonical
</pre>


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


Premiamo ''Next>>'' dopo la prima schermata di presentazione;<br/>
<pre>
Selezioniamo ''New Install'' e controlliamo che i dati riportati siamo corretti, altrimenti � possibile modificarli nel file '''/etc/cacti/debian.php''', dopo di che andiamo avanti;<br/>
# apt-get install amavisd-new clamv clamv-daemon
Nella pagina di riepilogo degli eseguibili, controlliamo che siano stati rilevati tutti, altrimenti � necessario installarli manualmente, come  '''SNMP Utility Version''' selezioniamo la 2�: ''NET-Smtp .x'';<br/>
</pre>


Ora siamo davanti alla schermata di LogIn.<br/>
Dopo l'installazione dobbiamo dire a Postfix di far processare le mail dal vostro antivirus. Aggiungiamo a /etc/postfix/main.cf quanto segue:
I dati per la prima autenticazione sono:<br/>
'''Username:''' ''admin''<br/>
'''Password:''' ''admin''


verremo obbligati a cambiare password: facciamolo!!!
<pre>
content_filter = amavis:[127.0.0.1]:10024
mentre nel file /etc/postfix/master.cf:
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>


==Aggiunta di Monitor==
abilitiamo spamassassin modificando in /etc/default/spamassassin
Ora il sistema � pronto per essere configurato: dopo aver effettuato il login, infatti, potremo accedere a due aree distinte: ''Console'' e ''Graphs''; la prima rappresenta il centro di controllo, da dove � possibile aggiungere nuovi monitor (''New Graphs'') od aggiungere nuovi computer, router o altro (''Devices'').


L'aggiunta � molto intuitiva, per quanto riguarda l'utilizzo dei monitor gi� presenti, e normalmente non necessita di modifiche se non riguardanti l'aspetto (colori, unit� di misura).
<pre>
ENABLE=1
</pre>


==Gestione Utenti==
aggiungiamo al file /etc/procmailrc quanto segue:
Cacti permette la gestione degli utenti, in modo da rendere possibile la visualizzazione delle statistiche ad utenti anonimi (opzione abilitata di default) tramite la pagina https://localhost/cacti/graph_view.php?action=tree, oltre alla definizione di utenti con facolt� ristrette (limitazioni a determinate aree e/o funzioni).
Tutte le opzioni sono modificabili tramite la voce ''User Management'' presente nel men� di sinistra della sezione ''Console''. Le opzioni disponibili sono autoesplicative, e di facile gestione.
L'utente ''guest'' � quello utilizzato per l'accesso anonimo.


==Personalizzazione==
<pre>
Cacti permette una vasta gamma di personalizzazioni, che vanno dall'aggiunta di macchine da monitorare, alla definizione di nuove sorgenti di dati, ottenibili tramite snmp o script ad hoc.
DROPPRIVS=yes
:0fw
| /usr/bin/spamassassin
</pre>


Vediamo nel dettaglio come implementare queste soluzioni.
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.


==Utilizzo Avanzato==
==WebMail - Openwebmail==
===Monitorare pi� macchine===
Per poter usufruire del servizio di webmail � necessario usare un server web.
Se siamo in una rete dove sono presenti pi� macchine, risulta utile e comodo avere sotto controllo il loro funzionamento...
Io vi consiglio apache con supporto php e cgi. In questa guida presumo che nel vostro server sia gi� presente apache configurato a dovere.
Cacti ci viene in contro anche in questo, permettendo di monitorare diverse macchine (definite ''Devices''), il tutto in modo semplice e molto intuitivo.
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>


====Configurazione della macchina====
ed il gioco � fatto.
Prenderemo in esame il caso in cui la macchina da monitorare sia un computer con linux (per router, switch ed altri dispositivi simili, si rimanda al manuale specifico).
Per creare nuove mailing-list basta usare il comando newlist e per rimuoverle rmlist.
Per permettere l'accesso al server snmpd, � sufficiente effettuare la modifica che � stata apportata precedentemente alla macchina su cui � stato installato cacti.
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.


====Configurazione di Cacti====
----
Per aggiungere un nuovo ''Device'', � necessario seguire i seguenti passi:
Per qualsiasi informazione
* posizionarsi nella sezione '''console''';
* selezionare '''Devices''' dalla sezione '''Management''' nella barra di sinistra;
* selezionare il bottone '''Add''' dalla barra in alto;
* completare il form inserendo i dati richiesti:
:; Description : Il nome che si vuole dare al Device;
:; Hostname : l'indirizzo ip o il [[ FQDN ]] del Device;
:; Host Template : il tipo di dispositivo (in questo caso ''Linux Local Machine'');
:; SNMP Options : le opzioni per la connessione al server snmpd del device; sono corretti (nella maggioranza dei casi) i valori di default;
* nella pagina che segue � possibile selezionare ''Create Graphs for this Host'', per accedere alla sezione dove indicare quali monitor attivare;
* da quel momento, inizier� il monitoraggio del device appena aggiunto.


www.giorgioravera.it


Per aggiungere il device alla ''Visualizzazione ad Albero'', � necessario andare in Console->Graph Trees->Default Tree->Add e aggiungere il device, impostando '''Host''' come ''Tree Item Type''.
giorgio@giorgioravera.it
[[Categoria:Networking]][[Categoria:Sicurezza]]
1 760

contributi