Server casalingo (SOHO): differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
mNessun oggetto della modifica
m (compatibile per tutte le versioni, guida quasi esclusivamente teorica con rimandi ad altre guide)
 
(23 versioni intermedie di 8 utenti non mostrate)
Riga 1: Riga 1:
==Introduzione==
{{Versioni compatibili}}
Con questa guida intendo spiegare all'utente debian come configurare un server mail basato su Postfix (http://www.postfix.org).
__TOC__
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==
= Introduzione =
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


<pre>
Avete un PC collegato 24 ore su 24 a Internet? Bene, potete sfruttarlo in molti modi.
# apt-get update
* Farlo diventare uno splendido server web per tutte le vostre prove. Come si sa, al giorno d'oggi ci sono molti siti che offrono spazio web, anche con supporto PHP, ma volete mettere la comodità di avere questo spazio nel nostro PC? I vantaggi sono molti, uno su tutti il fatto che possiamo essere amministratori della nostra macchina, quindi personalizzare anche parecchio il nostro spazio.
# apt-get install popa3d imapd
* Usarlo come file server.
</pre>
* Usarlo come mail server.
* Usarlo come "muletto" per far girare programmi di p2p
* Ecc.
In questa guida si offre un elenco degli strumenti più utili per gestire un piccolo server casalingo, a seconda degli usi che si desidera farne.


fatto questo in /etc/inetd.conf verranno aggiunti i servizi per il pop3 e l'imapd.
= Accedere al PC da internet =
Procediamo all'installazione dell'MTA vero e proprio


<pre>
Se volete installare servizi come web server, mail server, ecc. o semplicemente volete poter amministrare la vostra macchina dall'esterno della vostra LAN dovrete necessariamente associare un [[FQDN]] ("dominio" semplificando) all'IP pubblico della vostra macchina (che non ha nulla a che vedere con gli IP che voi attribuite ai dispositivi della vostra LAN), a meno che il vostro ISP non vi garantisca un IP statico (improbabile, e comunque può sempre essere più comodo ricordarsi un [[FQDN]]).
# apt-get install postfix
Esistono diversi servizi che permettono di trasformare un indirizzo IP dinamico "quasi" in uno statico, senza bisogno di registrare (e quindi pagare) alcun dominio. Si veda ad esempio [[DNS dinamici: come ottenerli e configurarli]].
</pre>


==Configurazione base==
= File server =
Quasi tutte le opzioni di configurazione di Postfix si trovano nel file /etc/postfix/main.cf


Ecco i principali tag a cui conviene prestare attenzione:
Se volete condividere file tra macchine differenti o semplicemente rendere accessibili certi file è necessario installare uno o più file server.


<pre>
== In LAN ==
myhostname = valore indica il nome che assumer� il vostro server mail (es: mail.nomedominio.it).
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>


Su questi ultimi due punti � il caso di soffermarsi. Stiamo considerando ora quali ip considerare validi per l'invio della posta.
Per ambienti unix puri può essere comodo usare [[nfs-kernel-server: condividere risorse tra macchine GNU/Linux | NFS]], mentre in ambienti misti Samba ([[Samba: guida rapida | guida rapida]], [[Samba: guida estesa | guida estesa]]). Entrambi gli strumenti possono essere configurati per l'utilizzo fuori LAN, tuttavia l'utilizzo di NFS in tal caso è fortemente sconsigliato per questioni di sicurezza.


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.
== Fuori LAN ==


Tranute mynetworks abilito gli ip presenti nella lista a spedire mail, con mynetworks_style posso specificare uno tra i seguenti tre valori:
Il protocollo più noto è sicuramente [[Installare un server FTP con ProFTPD | FTP]]/SFTP, tuttavia se si desidera avere un accesso più completo (come se fossero condivisi tramite nfs o samba) può essere interessante usare [[SSHFS: montare una risorsa remota sfruttando FUSE ed SSH | SSHFS]].


;host: l'invio sar� consentito solo per la macchina locale.
= P2P =
;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==
Si vedano per esempio le seguenti guide:
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>
* [[aMule]]
alias_maps = hash:/etc/aliases
* [[Transmission]]
</pre>


e per rendere questo file una mappa utilizzabile da Postfix lanciamo il comando
= SSH =


<pre>
È lo strumento principe per avere accesso tramite terminale al vostro computer da remoto, sia da dentro che fuori la vostra LAN. Si veda per esempio [[SSH | questa pagina]].
# postalias /etc/aliases
</pre>


==Multidominio, Virtual Domain e Sender Canonical==
= Web server Apache =
Nel caso il vostro Server debba ricevre la posta per pi� domini non dobbiamo fare altro che modificare la tag mydestination come segue


<pre>
Iniziamo come prima cosa a scaricare i pacchetti che ci servono. Il primo pacchetto che ci serve è Apache. [http://www.apache.org Apache] è un noto webserver, usato da moltissimi siti in tutto il mondo. Procediamo quindi con l'installazione, dando:
mydestination = localhost, /etc/postfix/local-domain
<pre># apt-get install apache2</pre>
</pre>


creare il file /etc/postfix/local-domain e inserire li i domini da considerare locali uno per riga senza virgole.
Lasciamo il tempo ad apt-get di scaricare il necessario ed installarlo. Se ora andiamo in <code>/var/www/</code> noteremo una pagina, <code>index.html</code>. Per testare il corretto funzionamento del web server aprite un browser e digitate nella barra degli indirizzi <code>indirizzo_server</code>, per esempio <code>localhost</code> se apache è installato sul PC che avete davanti. Si aprirà la pagina <code>index.html</code> (quella che abbiamo visto in <code>/var/www/</code>). Bene, il nostro server è pronto all'uso. Se non modificate la porta standard usata da apache, cioè la 80, non dovreste aver bisogno di fare null'altro, in caso contrario se il vostro PC è all'interno di una LAN e siete dietro un router, allora dovrete impostare il port forwarding della suddetta porta, altrimenti il server web non sarà accessibile dall'esterno.


Fatto questo conviene preparare un file per la gestione dei domini virtuali in modo tale da associare il giusto dominio al dato utente
Per informazioni più estese vedere:
creiamo allora il file /etc/postfix/virtual
La sintassi da usare � la seguente:


<pre>
* [[Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5]]
info@dominio1.it marco -> le mail in arrivo per tale indirizzo sono redirezionate a marco
* [[Apache e Virtual Hosts: configurare Apache2 per ospitare più siti web]]
webmaster@dominio2.it andrea@dominio4.it -> le mail verranno inviate a andrea@dominio4.it
@dominio3.com alessandro -> tutte le mail inviate a qualsiasi indirizzo @dominio3.com sono inviate all'utente alessandro
</pre>


aggiungiamo in /etc/postfix/main.cf
{{Autori
 
|Autore = [[Utente:Bedo|Bedo]]
<pre>
|Estesa_da =
virtual_maps = hash:/etc/postfix/virtual
: [[Utente:Wtf|Wtf]]
</pre>
|Verificata_da =
 
: [[Utente:Wtf|Wtf]]
e prepariamo la map con il comando
|Numero_revisori = 1
 
}}
<pre>
[[Categoria:Web server]]
# postmap /etc/postfix/virtual
</pre>
 
Pu� essere utile sempre per la gestione di pi� domini usare un file che associ ad un nome utente un indirizzo mittente particolare.
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>
sender_canonical_maps = hash:/etc/postfix/sender_canonical
</pre>
 
ed infine prepariamo la map con
 
<pre>
# postmap /etc/postfix/sender_canonical
</pre>
 
==Antivirus - Amavis e ClamaV==
Passiamo ora alla configurazione dell'antivirus da installare sul vostro MTA.
Procediamo all'installazione:
 
<pre>
# apt-get install amavisd-new clamv clamv-daemon
</pre>
 
Dopo l'installazione dobbiamo dire a Postfix di far processare le mail dal vostro antivirus. Aggiungiamo a /etc/postfix/main.cf quanto segue:
 
<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>
 
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
 
www.giorgioravera.it
 
giorgio@giorgioravera.it

Versione attuale delle 21:10, 18 ott 2019

Debian-swirl.png Versioni Compatibili

Tutte le versioni supportate di Debian

Introduzione

Avete un PC collegato 24 ore su 24 a Internet? Bene, potete sfruttarlo in molti modi.

  • Farlo diventare uno splendido server web per tutte le vostre prove. Come si sa, al giorno d'oggi ci sono molti siti che offrono spazio web, anche con supporto PHP, ma volete mettere la comodità di avere questo spazio nel nostro PC? I vantaggi sono molti, uno su tutti il fatto che possiamo essere amministratori della nostra macchina, quindi personalizzare anche parecchio il nostro spazio.
  • Usarlo come file server.
  • Usarlo come mail server.
  • Usarlo come "muletto" per far girare programmi di p2p
  • Ecc.

In questa guida si offre un elenco degli strumenti più utili per gestire un piccolo server casalingo, a seconda degli usi che si desidera farne.

Accedere al PC da internet

Se volete installare servizi come web server, mail server, ecc. o semplicemente volete poter amministrare la vostra macchina dall'esterno della vostra LAN dovrete necessariamente associare un FQDN ("dominio" semplificando) all'IP pubblico della vostra macchina (che non ha nulla a che vedere con gli IP che voi attribuite ai dispositivi della vostra LAN), a meno che il vostro ISP non vi garantisca un IP statico (improbabile, e comunque può sempre essere più comodo ricordarsi un FQDN). Esistono diversi servizi che permettono di trasformare un indirizzo IP dinamico "quasi" in uno statico, senza bisogno di registrare (e quindi pagare) alcun dominio. Si veda ad esempio DNS dinamici: come ottenerli e configurarli.

File server

Se volete condividere file tra macchine differenti o semplicemente rendere accessibili certi file è necessario installare uno o più file server.

In LAN

Per ambienti unix puri può essere comodo usare NFS, mentre in ambienti misti Samba ( guida rapida, guida estesa). Entrambi gli strumenti possono essere configurati per l'utilizzo fuori LAN, tuttavia l'utilizzo di NFS in tal caso è fortemente sconsigliato per questioni di sicurezza.

Fuori LAN

Il protocollo più noto è sicuramente FTP/SFTP, tuttavia se si desidera avere un accesso più completo (come se fossero condivisi tramite nfs o samba) può essere interessante usare SSHFS.

P2P

Si vedano per esempio le seguenti guide:

SSH

È lo strumento principe per avere accesso tramite terminale al vostro computer da remoto, sia da dentro che fuori la vostra LAN. Si veda per esempio questa pagina.

Web server Apache

Iniziamo come prima cosa a scaricare i pacchetti che ci servono. Il primo pacchetto che ci serve è Apache. Apache è un noto webserver, usato da moltissimi siti in tutto il mondo. Procediamo quindi con l'installazione, dando:

# apt-get install apache2

Lasciamo il tempo ad apt-get di scaricare il necessario ed installarlo. Se ora andiamo in /var/www/ noteremo una pagina, index.html. Per testare il corretto funzionamento del web server aprite un browser e digitate nella barra degli indirizzi indirizzo_server, per esempio localhost se apache è installato sul PC che avete davanti. Si aprirà la pagina index.html (quella che abbiamo visto in /var/www/). Bene, il nostro server è pronto all'uso. Se non modificate la porta standard usata da apache, cioè la 80, non dovreste aver bisogno di fare null'altro, in caso contrario se il vostro PC è all'interno di una LAN e siete dietro un router, allora dovrete impostare il port forwarding della suddetta porta, altrimenti il server web non sarà accessibile dall'esterno.

Per informazioni più estese vedere:




Guida scritta da: Bedo Swirl-auth40.png Debianized 40%
Estesa da:
Wtf
Verificata da:
Wtf

Verificare ed estendere la guida | Cos'è una guida Debianized