Pagina principale: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
mNessun oggetto della modifica
Nessun oggetto della modifica
 
(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]]

Versione attuale delle 15:38, 13 apr 2021

Benvenuti su Guide@Debianizzati.Org

La risorsa libera dedicata a Debian e al Software Libero a cui tutti possono contribuire.

Più di 748 Articoli e Guide in Italiano

Cos'è Guide@Debianizzati.Org

Swirl-75-alpha.png
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à Debianizzati e ne condivide lo spirito ed il contratto sociale.

Questo è un 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 linee guida dove troverai le informazioni generali su come editare le pagine.

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

La nostra comunità altro non è che una libera associazione di persone accomunate dai medesimi ideali. La nascita del sito 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.

Per avere ulteriore informazione sulla community Debianizzati ed i suoi scopi ti invitiamo a leggere Cos'è Debianizzati.Org.

Buona Navigazione!

Risorse sul Wiki

Bookcase.png
  • 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 per categorie.
  • FAQ: una raccolta di domande frequentemente poste sul nostro forum.
  • 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.

Contribuire

  • Collabora al Wiki: contribuisci liberamente a far crescere il Wiki e l'interà comunità Debian!
  • 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, se vuoi contribuire a migliorare il Wiki, visita la pagina del progetto!
  • Pagine Richieste: controlla le pagine più richieste e, se vuoi, scrivine il contenuto.
  • 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.

Altre Risorse di Debianizzati.Org

Ezine-logo.png
  • 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.
  • 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.