|
|
(82 versioni intermedie di 8 utenti non mostrate) |
Riga 1: |
Riga 1: |
| =Introduzione= | | __NOTOC__ |
| In questo HowTo verr� Postfix-mysql, il pacchetto Debian che fornisce Postfix con il supporto per interfacciarsi con un database
| | <!-- ---------- RIQUADRO BANNER -------------------------- --> |
| [http://www.mysql.com MySql]. | | <div class="riquadro_banner groupclear"> |
| | <div class="col_float deb_welcome"> |
| | <h1 class="title_banner">Benvenuti su [[Guide@Debianizzati.Org:About|Guide@Debianizzati.Org]]</h1> |
| | <p>La risorsa libera dedicata a Debian e al Software Libero [[Aiuto:Linee guida su come contribuire al Wiki|a cui tutti possono contribuire]].</p> |
| | <p id="articlecount">Più di [[Special:Statistics|{{NUMBEROFARTICLES}}]] Articoli e Guide in Italiano</p> |
| | </div> |
| | <!-- ----------LINK PORTALE----------------------------- --> |
| | <div class="col_float deb_welcome_link"> |
| | * '''[[Cos'è_Debianizzati.Org|Cos'è Debianizzati.Org]]''' |
| | * [http://www.debianizzati.org/ Portale Debianizzati.Org] |
| | * [http://forum.debianizzati.org/ Forum Debianizzati.Org] |
| | * [http://www.debianizzati.org/blog Blog Debianizzati.Org] |
| | * [[contratto sociale|Contratto Sociale]] |
| | </div> |
| | </div> |
|
| |
|
| Questo permetter� di avere un controllo dinamico e flessibile sui domini e mailbox, astraendo il tutto dagli utenti di sistema.
| | <!-- ---------- COLONNA SINISTRA ------------------ --> |
| | <div class="col_container"> |
| | <div class="col_table deb_info"> |
| | <h2 class="title_sezioni">Cos'è Guide@Debianizzati.Org</h1> |
| | [[Image:swirl-75-alpha.png|left]]'''Guide @ Debianizzati.org''' è un progetto che ha lo scopo di raccogliere documentazione italiana su Debian GNU/Linux e su GNU/Linux in generale (nel caso di guide generiche indipendenti dalla distribuzione). Questo progetto è nato in seno alla comunità [http://www.debianizzati.org Debianizzati] e ne condivide lo spirito ed il [[contratto sociale]]. |
|
| |
|
| =Installazione=
| | Questo è un [http://it.wikipedia.org/wiki/Pagina_principale wiki], sentiti quindi libero di contribuire anche solo correggendo piccoli errori, estendendo le guide presenti o scrivendone di nuove. Se vuoi contribuire, per favore, leggi le [[Aiuto:Linee guida su come contribuire al Wiki|linee guida]] dove troverai le informazioni generali su come editare le pagine. |
| I pacchetti necessari sono:
| |
| * '''postfix-mysql''': Il server di posta Postfix con il supporto per il database MySql;
| |
| * '''courier-authmysql, courier-imap''' per la gestione del servizio IMAP, utile per il controllo della posta;
| |
| * '''mysql-server''': il server MySql;
| |
| * '''maildrop, mailfilter''' che andr� a sostituire procmail (che ha il difetto di non poter essere utilizzato in caso di account virtuali.
| |
|
| |
|
| Per installare questi pacchetti, quindi, � sufficiente un semplice: | | Ti preghiamo di non inserire nel wiki contenuti coperti da licenze non libere. In particolare tutte le guide inserite sono da considerarsi rilasciate secondo la licenza "[[Guide@Debianizzati.Org:Copyright]]". Per ulteriori informazioni vedere anche la pagina [[Guide@Debianizzati.Org:General_disclaimer|Disclaimer]]. |
| <pre>
| |
| # apt-get install postfix-mysql courier-authmysql courier-imap mysql-server maildrop mailfilter
| |
| </pre>
| |
|
| |
|
| =Configurazione=
| | La nostra comunità altro non è che una libera associazione di [[Speciale:Listusers|persone]] accomunate dai medesimi ideali. La nascita del sito [http://www.debianizzati.org Debianizzati.Org] e di questo wiki è stata la naturale conseguenza del desiderio di conoscersi e di condividere le rispettive conoscenze, in piena sintonia con l'[[etica hacker]]. |
| La configurazione pu� essere divisa in tre parti: nella prima verr� configurato | |
| il Server MySql, creando le tabelle e gli utenti, nella seconda verr�
| |
| configurato Postifx (con degli approfondimenti sul significato dei vari
| |
| file di configurazione), nella terza verr� installato PostfixAdmin, un ottimo
| |
| tool per la gestione di utenti e domini.
| |
|
| |
|
| ==Mysql==
| | Per avere ulteriore informazione sulla community Debianizzati ed i suoi scopi ti invitiamo a leggere [[Cos'è Debianizzati.Org]]. |
| La configurazione di MySql � semplice, ma richiede alcuni accorgimenti per quanto rigaurda la sicurezza: l'installazione di default, infatti, prevede un utente root senza password, cosa per niente sicura.
| |
|
| |
|
| ===Installazione===
| | Buona Navigazione! |
| L'installazione di MySql � semplice ed immediata:
| | </div> |
| <pre> | | <!-- ---------- COLONNA DESTRA ------------------ --> |
| # apt-get install mysql-server mysql-client
| | <div class="col_table deb_risorse"> |
| </pre> | | <h2 class="title_sezioni">Risorse sul Wiki</h2> |
| Il primo pacchetto � il server, mentre il secondo � il client, che verr� usato in seguito per interagire col server.
| | [[Image:bookcase.png|right|75px]] |
| | * '''[[Indice Guide]]''': troverete qui la raccolta delle guide e degli articoli tecnici dedicati a Debian e a GNU/Linux. Potete navigare tra le guide anche '''[[Lista Categorie|per categorie]]'''. |
| | * '''[[FAQ]]''': una raccolta di domande frequentemente poste sul nostro [http://forum.debianizzati.org forum]. |
| | * '''[[:Categoria:Glossario|Glossario]]''': un glossario dei termini informatici di uso più comune. |
| | * '''[[Tabella Software]]''': una tabella comparativa tra software libero e software proprietario disponibile per le varie applicazioni. |
| | * '''[[Software Libero]]''' raccolta di materiale e libri on-line dedicati al Software Libero e alla sua storia. |
|
| |
|
| ===Configurazione=== | | <h2 class="title_sezioni">Contribuire</h2> |
| Se questa � la prima installazione di MySql, � cosnigliabile modificare la password di root, che di default � impostata ad una stringa vuata.
| | * '''[[Collabora al Wiki]]''': contribuisci liberamente a far crescere il Wiki e l'interà comunità Debian! |
| | * '''[[Adozione Guide| Adotta una guida]]''': consulta l'elenco delle guide che hanno bisogno di manutenzione, ed aiutaci a migliorarle. |
| | * '''[[Revisione Wiki]]''': è in atto un vasto progetto di rinnovamento di [[Guide@Debianizzati.Org:About|Guide@Debianizzati.Org]], se vuoi contribuire a migliorare il Wiki, visita la pagina del progetto! |
| | * '''[[Speciale:PagineRichieste | Pagine Richieste]]''': controlla le pagine più richieste e, se vuoi, scrivine il contenuto. |
| | * '''[[Aiuto:Linee guida su come contribuire al Wiki|Linee guida su come contribuire al Wiki]]''': pagine che descrivono la struttura del Wiki e introducono alla creazione delle guide e ai vari elementi di formattazione. Le "linee guida" per garantire l'omogeneità del Wiki e per aiutarci a mantenere un elevato standard qualitativo. |
| | * '''[[Contribuire a Debian]]''': alcuni suggerimenti sui vari modi per contribuire direttamente a Debian. |
| | </div> |
| | </div> |
| | <!-- ---------- SEZIONE FINALE ------------------ --> |
| | <div class="col_float deb_altre_risorse"> |
| | <h2 class="title_sezioni">Altre Risorse di Debianizzati.Org</h2> |
| | |
| | [[Image:Ezine-logo.png|link=https://www.debianizzati.org/ezine|right|55px]] |
| | * '''[[E-zine]]''': sotto il nome "e-zine" si cela un progetto della comunità Debianizzati.org nel pubblicare un aperiodico online interamente in italiano chiamato "Debianizzati" relativo al sistema operativo Debian. Per saperne di più clicca su "E-zine" per una descrizione più dettagliata. Il progetto è attualmente sospeso, ma i vecchi numeri sono ancora consultabili. |
|
| |
|
| Per cambiare la password di root, � sufficiente modificare la query sottoriportata, modificando opportunamente la stringa ''nuova_password'' con la nuova password di root che si vuole usare.
| | * '''[[Accademia:Indice|Accademia]]''': è un luogo virtuale dove gli utenti della comunità si ritrovano a cadenza regolare per studiare insieme in modo approfondito tematiche che accolgano un interesse condiviso. Il progetto è attualmente sospeso, ma tutto il materiale è ancora liberamente consultabile. |
| | </div> |
|
| |
|
| Se non si usano tool come PhpMyAdmin o MySqlCC, � necessario usare il comando
| | __NOEDITSECTION__ |
| <pre>
| |
| $ mysql -u root
| |
| </pre>
| |
| per accedere come utente root; una volta specificata la password, inoltre, sar� necessario usare il comando
| |
| <pre>
| |
| $ mysql -u root -p
| |
| </pre>
| |
| che, a differenza dell'altro, richiede la password di root per accedere al database (altrimenti non sarebbe possibile eseguire l'accesso.
| |
| | |
| La query per il cambio di password dell'utente root � la seguente:
| |
| <pre>
| |
| USE mysql;
| |
| UPDATE user SET Password = password('nuova_password') WHERE User = 'root');
| |
| </pre>
| |
| | |
| � necessario, per il proseguimento, creare un utente che sar� in grado di accedere al database per leggere i dati. In questo esempio lo chiameremo ''postfix'', ed avr� la password ''passwd''.
| |
| | |
| La seguente query creer� l'utente e dar� ad esso i permessi necessari.
| |
| | |
| <pre>
| |
| USE mysql;
| |
| INSERT INTO user (Host, User, Password) VALUES ('localhost','postfix',password('passwd'));
| |
| INSERT INTO db (Host, Db, User, Select_priv) VALUES ('localhost','postfix','postfix','Y');
| |
| FLUSH PRIVILEGES;
| |
| GRANT USAGE ON postfix.* TO postfix@localhost;
| |
| GRANT SELECT, INSERT, DELETE, UPDATE ON postfix.* TO postfix@localhost;
| |
| CREATE DATABASE postfix;
| |
| </pre>
| |
| | |
| ==Creazione delle Tabelle==
| |
| | |
| La creazione delle tabelle richiede l'esecuzione delle seguenti query:
| |
| | |
| <pre>
| |
| #
| |
| # Table structure for table alias
| |
| #
| |
| USE postfix;
| |
| CREATE TABLE alias (
| |
| address varchar(255) NOT NULL default '',
| |
| goto text NOT NULL,
| |
| domain varchar(255) NOT NULL default '',
| |
| created datetime NOT NULL default '0000-00-00 00:00:00',
| |
| modified datetime NOT NULL default '0000-00-00 00:00:00',
| |
| active tinyint(1) NOT NULL default '1',
| |
| PRIMARY KEY (address)
| |
| ) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Aliases';
| |
| | |
| #
| |
| # Table structure for table domain
| |
| #
| |
| USE postfix;
| |
| CREATE TABLE domain (
| |
| domain varchar(255) NOT NULL default '',
| |
| description varchar(255) NOT NULL default '',
| |
| aliases int(10) NOT NULL default '0',
| |
| mailboxes int(10) NOT NULL default '0',
| |
| maxquota int(10) NOT NULL default '0',
| |
| transport varchar(255) default NULL,
| |
| backupmx tinyint(1) NOT NULL default '0',
| |
| created datetime NOT NULL default '0000-00-00 00:00:00',
| |
| modified datetime NOT NULL default '0000-00-00 00:00:00',
| |
| active tinyint(1) NOT NULL default '1',
| |
| PRIMARY KEY (domain)
| |
| ) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Domains';
| |
| | |
| | |
| #
| |
| # Table structure for table mailbox
| |
| #
| |
| USE postfix;
| |
| CREATE TABLE mailbox (
| |
| username varchar(255) NOT NULL default '',
| |
| password varchar(255) NOT NULL default '',
| |
| name varchar(255) NOT NULL default '',
| |
| maildir varchar(255) NOT NULL default '',
| |
| quota int(10) NOT NULL default '0',
| |
| domain varchar(255) NOT NULL default '',
| |
| created datetime NOT NULL default '0000-00-00 00:00:00',
| |
| modified datetime NOT NULL default '0000-00-00 00:00:00',
| |
| active tinyint(1) NOT NULL default '1',
| |
| PRIMARY KEY (username)
| |
| ) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Mailboxes';
| |
| </pre>
| |
| | |
| Inserimento dei primi dati
| |
| | |
| Con la seguente query verr� inserito un primo utente ed un dominio (ovviamente fittizzi).
| |
| | |
| <pre>
| |
| USE postfix;
| |
| INSERT INTO domain (domain,description) VALUES ('fakedomain.lan','Dominio di Prova');
| |
| INSERT INTO alias (address,goto) VALUES ('alias@fakedomain.lan', 'user@fakedomain.lan');
| |
| INSERT INTO mailbox (username,password,name,maildir) \
| |
| VALUES ('user@fakedomain.lan',password('password') \
| |
| ,'Utente di Prova','user@fakedomain.lan/');
| |
| </pre>
| |
| | |
| | |
| ===Possibili problemi con MySql===
| |
| | |
| Potrebbe sorgere, in seguito, un problema di dialogo tra MySql e Postfix. La cosa � dovuta al fatto che Postfix gira in un ambiente chroot, quindi non ha possibilit� di interagire con MySql tramite il socket (come avviene di default). Un modo per ovviare a questo inconveniente � di modificare il file ''/etc/mysql/my.conf'' modificando la riga
| |
| <pre>
| |
| skip-network
| |
| </pre>
| |
| in
| |
| <pre>
| |
| bind-address = 127.0.0.1
| |
| </pre>
| |
| per fare in modo che mysql sia in ascolto solo all'IP 127.0.0.1 (e quindi non accessibile dall'esterno).
| |
| Se per caso � necessario che MySql possa essere interrogato anche da altri IP, � sufficiente commentare entrambe le righe.
| |
| | |
| | |
| ==Postfix==
| |
| La configurazione di Postfix richiede la modifica del file principare di configurazione '''/etc/postfix/main.cf''' nel modo seguente:
| |
| | |
| ===main.cf===
| |
| <pre>
| |
| virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf
| |
| # vengono assegnate all'utente che gestir� le mailbox un uid e gid statici
| |
| # cos� da evitare di dover creare un utente reale per ogni utente virutale
| |
| virtual_gid_maps = static:1001
| |
| virtual_uid_maps = static:1001
| |
| | |
| # questa direttiva indica dove verranno collocate le mailbox virtuali
| |
| virtual_mailbox_base = /usr/local/virtual
| |
| | |
| # indica con quale backend (mysql) e dove trovare la lista dei domini gestiti
| |
| # dal server
| |
| virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf
| |
| virtual_mailbox_limit = 51200000
| |
| | |
| # indica in quale file di configurazione sono presenti i parametri per ottenere la
| |
| # lista delle mailbox presenti nel sistema
| |
| virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf
| |
| virtual_minimum_uid = 1001
| |
| virtual_transport = virtual
| |
| | |
| # Per la gestione delle quote delle mailbox
| |
| virtual_create_maildirsize = yes
| |
| virtual_mailbox_extended = yes
| |
| # dove trovare i limiti di dimensione della mailbox e come comportarsi
| |
| virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/ \
| |
| mysql_virtual_mailbox_limit_maps.cf
| |
| virtual_mailbox_limit_override = yes
| |
| virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace \
| |
| quota, please try again later.
| |
| virtual_overquota_bounce = yes
| |
| | |
| # indica i domini per cui il server deve accettare la posta in ingresso
| |
| relay_domains = proxy:mysql:/usr/local/etc/postfix/mysql_relay_domains_maps.cf
| |
| </pre>
| |
| | |
| | |
| A questo punto rimane solo da scrivere i file che verranno usati dal backend di MySql per l'autenticazione.
| |
| Come � possibile vedere, i parametri sono molto intuitivi, perci� verr� commentato solo il primo file.
| |
| | |
| ===mysql_virtual_alias_maps.cf===
| |
| <pre>
| |
| # l'utente da usare per collegarsi a mysql
| |
| user = postfix
| |
| # la password dell'utente
| |
| password = postfix
| |
| # l'host a cui collegarsi
| |
| hosts = localhost
| |
| # il nome del database
| |
| dbname = postfix
| |
| # il nome della tabella
| |
| table = alias
| |
| # il campo da cui attingere il dato
| |
| select_field = goto
| |
| # il campo su cui viene fatta la query (in questo
| |
| # caso verr� cercato il record in cui il campo 'address'
| |
| # corrisponde all'email del destinatario. L'indirizzo a cui
| |
| # questa email dovr� essere inviato sar� indicato dal campo 'goto'
| |
| where_field = address
| |
| </pre>
| |
| | |
| ===mysql_virtual_domains_maps.cf===
| |
| Questo file conterr� i dettagli per la connessione e la consultazione della tabella dei domini.
| |
| In questa tabella saranno elencati i domini per i quali postfix potr� accettare la posta.
| |
| | |
| <pre>
| |
| user = postfix
| |
| password = postfix
| |
| hosts = localhost
| |
| dbname = postfix
| |
| table = domain
| |
| select_field = description
| |
| where_field = domain
| |
| # la direttiva 'additional_conditions' permette di aggiungere delle clausole
| |
| # alla ricerca all'interno del database, nel caso seguente (che consiglio di non
| |
| # decommentare, richiede che la il dominio non sia di backup e che sia attivo.
| |
| #additional_conditions = and backupmx = '0' and active = '1'
| |
| </pre>
| |
| | |
| ===mysql_virtual_mailbox_maps.cf===
| |
| <pre>
| |
| user = postfix
| |
| password = postfix
| |
| hosts = localhost
| |
| dbname = postfix
| |
| table = mailbox
| |
| select_field = maildir
| |
| where_field = username
| |
| #additional_conditions = and active = '1'
| |
| </pre>
| |
| | |
| ===mysql_virtual_mailbox_limit_maps.cf===
| |
| Questo file contiene i parametri per l'interrogazione di MySql al fine di ottenere le quote disponibili degli utenti.
| |
| Le quote servono per gestire la dimensione massima di ogni singola casella di posta, impedendo cos� che una sola casella occupi tutto lo spazio a disposizione.
| |
| | |
| <pre>
| |
| user = postfix
| |
| password = postfix
| |
| hosts = localhost
| |
| dbname = postfix
| |
| table = mailbox
| |
| select_field = quota
| |
| where_field = username
| |
| #additional_conditions = and active = '1'
| |
| </pre>
| |
| | |
| ===mysql_relay_domains_maps.cf===
| |
| Questo file contiene i parametri di connessione per ottenere la lista dei domini per i quali postfix fa da releay (quindi accetta la posta dall'esterno (ovviamente per gli utenti autenticati le cose saranno diverse).
| |
| Questo per evitare che il nostro server venga usato come ''Open Relay'', e quindi inserito in blacklist o usato da spammer.
| |
| | |
| <pre>
| |
| user = postfix
| |
| password = postfix
| |
| hosts = localhost
| |
| dbname = postfix
| |
| table = domain
| |
| select_field = domain
| |
| where_field = domain
| |
| additional_conditions = and backupmx = '1'
| |
| </pre>
| |
| | |
| ===Applicazione delle modifiche===
| |
| La configurazione di Postfix per l'interazione con MySql si pu� ritenere conclusa.
| |
| Per applicare le modifiche apportate � necessario riavviare Postfix:
| |
| <pre>
| |
| # /etc/init.d/postfix restart
| |
| </pre>
| |
| | |
| ===mail.cf===
| |
| <pre>
| |
| broken_sasl_auth_clients = yes
| |
| smtpd_recipient_restrictions =
| |
| permit_mynetworks,
| |
| permit_sasl_authenticated,
| |
| reject_non_fqdn_hostname,
| |
| reject_non_fqdn_sender,
| |
| reject_non_fqdn_recipient,
| |
| reject_unauth_destination,
| |
| reject_unauth_pipelining,
| |
| reject_invalid_hostname,
| |
| reject_rbl_client opm.blitzed.org,
| |
| reject_rbl_client list.dsbl.org,
| |
| reject_rbl_client bl.spamcop.net,
| |
| reject_rbl_client sbl-xbl.spamhaus.org
| |
| smtpd_sasl_auth_enable = yes
| |
| smtpd_sasl_local_domain = $myhostname
| |
| smtpd_sasl_security_options = noanonymous
| |
| </pre>
| |
| | |
| ===snmtp.conf===
| |
| <pre>
| |
| pwcheck_method: authdaemond
| |
| log_level: 3
| |
| mech_list: PLAIN LOGIN
| |
| authdaemond_path:/usr/local/var/spool/authdaemon/socket
| |
| </pre>
| |
| | |
| | |
| | |
| =Maildrop: filtraggio della posta=
| |
| ==Installazione==
| |
| L'installazione � molto semplice:
| |
| <pre>
| |
| # apt-get install courier-maildrop
| |
| </pre>
| |
| | |
| Alcuni accorgimenti sono richiesti, per la corretta gestione della posta e delle home degli utenti:
| |
| <pre>
| |
| # adduser --uid 5000 vmail
| |
| </pre>
| |
| il numero 5000 � usato arbitrariamente, � possibile usare un qualsiasi uid, comunque maggiore di 1000, per evitare conflitti con gli altri utenti.
| |
| L'aggiunta di questo utente � necessaria, in quanto sar� attraverso lui che maildrop agir�.
| |
| | |
| [[Categoria:Server]][[Categoria:Networking]]
| |