Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Server/MailSqlServer"
Differenze tra le versioni 11 e 12
Versione 11 del 20/11/2021 17.28.20
Dimensione: 5182
Autore: ivantu
Commento: aggiunti link riferimento
Versione 12 del 23/11/2021 12.21.12
Dimensione: 7124
Autore: ivantu
Commento: modifiche strutturali paragrafi
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 9: Linea 9:
Questa guida spiega come configurare un server di posta con supporto '''SQL'''. Questa guida spiega come configurare un server di posta con supporto '''[[https://it.wikipedia.org/wiki/Structured_Query_Language|SQL]]'''.
Linea 13: Linea 13:
[[AmministrazioneSistema/InstallareProgrammi|Installare]] i seguenti pacchetti con i [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministrazione]]: {{{
apt-get install postfix-mysql
apt-get install mysql-server
apt-get install dovecot-pop3d
apt-get install dovecot-imapd
apt-get install apache2
apt-get install libapache2-mod-php4
[[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
Linea 24: Linea 24:
Modificare con [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministrazione]] e con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/etc/postfix/main.cf` aggiungendo la direttiva: {{{ 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: {{{
Linea 30: Linea 30:
Si eliminino le direttive `hash:/etc/aliases` se si vuole configurare un sistema che accetti posta soltanto per utenti definiti nel vostro database SQL!}}} Eliminare le direttive `hash:/etc/aliases` se si vuole configurare un sistema che accetti posta soltanto per utenti definiti nel vostro database SQL!
}}}
Linea 41: Linea 42:
{{{#!wiki note
Linea 42: Linea 44:
}}}
Linea 43: Linea 46:
Si crei il database e le tabelle come nell'esempio che segue : {{{ == Creare il Database ==

 0. Creare
il database e le tabelle come nell'esempio che segue:{{{
Linea 51: Linea 56:
Generare le password in hashing CRYPT con l'utility di apache2 '''htpasswd2''' nel modo seguente : {{{ == Generare le password ==

 *
Generare le password in hashing CRYPT con l'utility di apache2 '''htpasswd2''', digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
Linea 54: Linea 61:

Per aggiungere le password degli utenti usare il comando : {{{
 * Per aggiungere le password degli utenti, digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
Linea 59: Linea 65:
oppure per aggiornare o eliminare righe dalla vostra tabella usare i comandi SQL : {{{ == Gestire tabelle ==

P
er aggiornare o eliminare righe dalla vostra tabella, usare i comandi SQL, digitare nel [[AmministrazioneSistema/Terminale|terminale]] i seguenti comandi:{{{
Linea 61: Linea 69:
mysql> delete from mxaliases where forw_addr='marco'; mysql>delete from mxaliases where forw_addr='marco';
Linea 64: Linea 72:
Si controlli il file `/etc/mysql/my.cnf` e si verifichi che l'indirizzo di binding del database '''mysql''' (dovrebbe essere l'IP di rete del server MYSQL e non 127.0.0.1). Nel nostro esempio è: {{{ 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 è:{{{
Linea 68: Linea 76:
e verificate che tutto vada bene con il comando: {{{
#mysql -u root -p -h DNSdbmysql -D postaliases
}}}
Verificare il funzionamento delle tabelle, consultare il [[#Verificare_funzionamento_tabelle|paragrafo]].
Linea 72: Linea 78:
sostituire a `DNSdbmysql` l'IP o il nome dell'host che opsita il database.  0. Riavviare il servizio mysql, consultare il [[#Riavviare_MySql|paragrafo]].
 0. Riavviare il servizio postfix, consultare il [[#Riavviare_postfix|paragrafo]].
Linea 74: Linea 81:
Riavviate mysql e postfix : {{{
/etc/init.d/mysql restart
/etc/init.d/postfix restart
}}}

la configurazione del MTA è finita , ora passiamo alla configurazione del server POP3 e IMAP.
Ora passiamo alla configurazione del server POP3 e IMAP.
Linea 83: Linea 85:
 * Generare la `home` directory degli utenti e renderla scrivibile per tutti con il comando: {{{ == 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:{{{
Linea 113: Linea 119:
 * Ora riavviare '''dovecot''' con {{{
sudo /etc/init.d/dovecot restart
}}}
e testare la configurazione.
Riavviare '''dovecot''', consultare il [[#Riavviare_dovecot|paragrafo]]. Testare la configurazione.
Linea 121: Linea 125:
 * Creare il certificato per la protezione di apache2 con il comando: {{{
#apache2-ssl-certificate -days 3650
}}} Cambiare 3650 con la durata in giorni del certificato
 * Aggiungere un `Virtual``Host` a `/etc/apache2/sites-enabled/000-default` come da esempio: {{{
== 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:{{{
Linea 133: Linea 147:

* Controllare che in `/etc/apache2/mods-enabled/` siano presenti i moduli: {{{
 * Controllare che in `/etc/apache2/mods-enabled/` siano presenti i moduli:{{{
Linea 141: Linea 154:
 * 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 ==
Linea 145: Linea 176:
 * Assicurarsi che siano avviati sia '''dovecot''' che '''postfix''' {{{ == 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: {{{
Linea 147: Linea 186:
sudo /etc/init.d/dovecot restart }}}

== Riavviare MySql ==

Per riavviare mysql, digitare in [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
/etc/init.d/mysql restart


Introduzione

Questa guida spiega come configurare un server di posta con supporto SQL.

Installazione

Installare i seguenti pacchetti con i privilegi di amministrazione. Digitare in un 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 privilegi di amministrazione e con un 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

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

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

  1. 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 terminale il seguente comando:

    htpasswd2 -c postaliases_passwords m.rossi
  • Per aggiungere le password degli utenti, digitare nel 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 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 editor di testo il file /etc/mysql/my.cnf che l'indirizzo di binding del database 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 paragrafo.

  1. Riavviare il servizio mysql, consultare il paragrafo.

  2. Riavviare il servizio postfix, consultare il 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.

  • Creare la cartella utente nella '/home'. Digitare in 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 paragrafo. Testare la configurazione.

Webmail protetta con SSL

Procedere come segue:

Creare il certificato per la protezione di Apache

Procedere con la configurazione di apache2, digitare in terminale il seguente comando:

apache2-ssl-certificate -days 3650

Cambiare 3650 con la durata in giorni del certificato

Aggiungere un `Virtual``Host`

Aggiungere un VirtualHost:

  • Con i privilegi di amministrazione e con un editor di testo, aprire il file /etc/apache2/sites-enabled/000-default e configurare come segue l'esempio:

    <VirtualHost 127.0.0.1>
    
    ServerName webmail.example.com
    DocumentRoot /usr/share/squirrelmail
    SSLEngine On
    SSLCertificateFile /etc/apache2/ssl/apache.pem
    </VirtualHost>
  • 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 apache2.

  • Riavviare i servizi postfix e dovecot, consultare i paragrafi dovecot e postfix.

Risoluzione dei problemi

Verificare funzionamento tabelle

Verificare che tutto funziona, con un terminale il seguente comando:

mysql -u root -p -h DNSdbmysql -D postaliases

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 terminale il seguente comando:

sudo /etc/init.d/dovecot restart

Riavviare postfix

Riavviare postfix, digitare in terminale il seguente comando:

sudo /etc/init.d/postfix restart

Riavviare MySql

Per riavviare mysql, digitare in terminale il seguente comando:

/etc/init.d/mysql restart


CategoryServer CategoryDaRevisionare