## 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