## page was renamed from GuidaMailSqlServer
#format wiki
#language it
<
>
<>
= Introduzione =
Questa guida spiega come configurare un server di posta con supporto '''[[https://it.wikipedia.org/wiki/Structured_Query_Language|SQL]]'''.
= Installazione =
[[AmministrazioneSistema/InstallareProgrammi|Installare]] i seguenti pacchetti con i [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministrazione]]. Digitare in un [[AmministrazioneSistema/Terminale|terminale]] i comandi: {{{
sudo apt install postfix-mysql
sudo apt install mysql-server
sudo apt install dovecot-pop3d
sudo apt install dovecot-imapd
sudo apt install apache2
sudo apt install libapache2-mod-php4
}}}
= Configurazione SMTP =
Modificare con i [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministrazione]] e con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/etc/postfix/main.cf` aggiungendo la direttiva: {{{
alias_maps = mysql:/etc/postfix/mysql-aliases.cf
alias_database = mysql:/etc/postfix/mysql-aliases.cf
}}}
{{{#!wiki important
Eliminare le direttive `hash:/etc/aliases` se si vuole configurare un sistema che accetti posta soltanto per utenti definiti nel vostro database SQL!
}}}
Il file `/etc/postfix/mysql-aliases.cf` è fatto nel modo seguente: {{{
user = someone
password = some_password
dbname = customer_database
table = mxaliases
select_field = forw_addr
where_field = alias
}}}
{{{#!wiki note
Come si vede, bisogna specificare utente, password, database, tabella del database Sql che contiene le corrispondenze fra utenti di posta e alias names ed è necessario definire anche i campi da selezionare per ottenere l'alias dell'utente di posta definito.
}}}
== Creare il Database ==
0. Creare il database e le tabelle come nell'esempio che segue:{{{
mysql -u root -p -D postaliases
mysql> create table mxaliases (forw_addr varchar(64),alias varchar(64),password varchar(64),home varchar(64),uid integer not null,gid integer not null );
mysql>insert into mxaliases values ('giulio','g.bianchi','njZCfywEU/olE,'/home/postaliases','0','0');
}}}
== Generare le password ==
* Generare le password in hashing CRYPT con l'utility di apache2 '''htpasswd2''', digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
htpasswd2 -c postaliases_passwords m.rossi
}}}
* Per aggiungere le password degli utenti, digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
htpasswd2 postaliases_passwords g.bianchi
}}}
== Gestire tabelle ==
Per aggiornare o eliminare righe dalla vostra tabella, usare i comandi SQL, digitare nel [[AmministrazioneSistema/Terminale|terminale]] i seguenti comandi:{{{
mysql>update mxaliases set alias='g.bianchi' where forw_addr='giulio';
mysql>delete from mxaliases where forw_addr='marco';
}}}
Controllare con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/etc/mysql/my.cnf` che l'indirizzo di binding del database '''[[Server/MySql|mysql]]''' (dovrebbe essere l'IP di rete del server MYSQL e non 127.0.0.1). Nel nostro esempio è:{{{
bind_address = 192.168.77.1
}}}
Verificare il funzionamento delle tabelle, consultare il [[#Verificare_funzionamento_tabelle|paragrafo]].
0. Riavviare il servizio mysql, consultare il [[#Riavviare_MySql|paragrafo]].
0. Riavviare il servizio postfix, consultare il [[#Riavviare_postfix|paragrafo]].
Ora passiamo alla configurazione del server POP3 e IMAP.
= Configurazione di POP3 e IMAP =
== Generare cartella utenti ==
Generare la `home` directory degli utenti e renderla scrivibile per tutti.
* [[AmministrazioneSistema/ComandiBase#mkdir|Creare]] la cartella utente nella '/home'. Digitare in [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
mkdir /home/postaliases;chmod -R 777 /home/postaliases
}}}
* Modificare il file `/etc/dovecot/dovecot-mysql.conf` come segue: {{{
db_host = wilcoyote.example.com
db_port = 3306
#db_unix_socket = /var/tmp/mysql.sock
db = postaliases
db_user = root
db_passwd = azsxdcfv
db_client_flags = 0
default_pass_scheme = CRYPT
password_query = SELECT password FROM mxaliases WHERE alias = '%n'
user_query = SELECT home, uid, gid FROM mxaliases WHERE alias = '%n'
}}}
* Controllare sempre che nel file `/etc/dovecot/dovecot.conf` vi sia la riga seguente: {{{
protocols = pop3 pop3s imap imaps
}}} assicurarsi che vi siano le direttive {{{
auth_userdb = mysql /etc/dovecot/dovecot-mysql.conf
auth_passdb = mysql /etc/dovecot/dovecot-mysql.conf
}}} e modificare le righe: {{{
first_valid_uid = 0
last_valid_uid = 10000
first_valid_gid = 0
last_valid_gid = 10000
}}} I valori di ''last'' dipendono da quanti utenti avrà il sistema di posta.
Riavviare '''dovecot''', consultare il [[#Riavviare_dovecot|paragrafo]]. Testare la configurazione.
= Webmail protetta con SSL =
Procedere come segue:
== Creare il certificato per la protezione di Apache ==
Procedere con la configurazione di [[Server/Apache|apache2]], digitare in [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
apache2-ssl-certificate -days 3650
}}}
{{{#!wiki note
Cambiare 3650 con la durata in giorni del certificato
}}}
== Aggiungere un `Virtual``Host` ==
Aggiungere un `Virtual``Host`:
* Con i [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministrazione]] e con un [[Ufficio/EditorDiTesto|editor di testo]], aprire il file `/etc/apache2/sites-enabled/000-default` e configurare come segue l'esempio:{{{
ServerName webmail.example.com
DocumentRoot /usr/share/squirrelmail
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
}}}
* Controllare che in `/etc/apache2/mods-enabled/` siano presenti i moduli:{{{
ssl.conf
ssl.load
php4.conf
php4.load
}}}
* Riavviare i servizi apache2, consultare il paragrafo [[#Riavviare_apache2|apache2]].
* Riavviare i servizi postfix e dovecot, consultare i paragrafi [[#Riavviare_dovecot|dovecot]] e [[#Riavviare_postfix|postfix]].
= Risoluzione dei problemi =
== Verificare funzionamento tabelle ==
Verificare che tutto funziona, con un [[AmministrazioneSistema/Terminale|terminale]] il seguente comando: {{{
mysql -u root -p -h DNSdbmysql -D postaliases
}}}
{{{#!wiki note
sostituire a `DNSdbmysql` l'IP o il nome dell'host che ospita il database.
}}}
== Riavviare apache2 ==
* Riavviare apache2 {{{
sudo /etc/init.d/apache2 restart
}}}
== Riavviare dovecot ==
Riavviare '''dovecot''' in [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
sudo /etc/init.d/dovecot restart
}}}
== Riavviare postfix ==
Riavviare '''postfix''', digitare in [[AmministrazioneSistema/Terminale|terminale]] il seguente comando: {{{
sudo /etc/init.d/postfix restart
}}}
== Riavviare MySql ==
Per riavviare mysql, digitare in [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
/etc/init.d/mysql restart
}}}
----
CategoryServer CategoryDaRevisionare