Gestione domini virtual con postfixadmin: Difference between revisions
Jump to navigation
Jump to search
m New page: {{Stub}} Da repository RVM sudo aptitude install postfixadmin sudoedit config $CONF['admin_email'] = 'gabriele.vivinetto@rvmgroup.it'; $CONF['postfix_admin_url'] = 'http://firemar.ma... |
mNo edit summary |
||
| Line 1: | Line 1: | ||
Il pacchetto .deb di postfixadmin è stato inserito nel repository RVM. Alternativamente scaricarlo ed installarlo a mano | |||
*Installarlo da repository RVM: | |||
sudo aptitude install postfixadmin | sudo aptitude install postfixadmin | ||
* Creare il database | |||
postfixadmin | |||
* Creare lo user con tutti i diritti sul db postfixadmin | |||
postfixadmin/postfixpassword | |||
* Modificare i parametri di configurazione: | |||
cd /etc/postfixadmin | |||
sudoedit config | |||
<pre> | |||
$CONF['admin_email'] = 'gabriele.vivinetto@rvmgroup.it'; | $CONF['admin_email'] = 'gabriele.vivinetto@rvmgroup.it'; | ||
// Il login inziale dell'utente amministrativo | |||
$CONF['postfix_admin_url'] = 'http:// | $CONF['postfix_admin_url'] = 'http://myserver.priv/postfixadmin'; | ||
// URL per far funzionare i link interni | |||
$CONF['database_type'] = 'mysqli'; | $CONF['database_type'] = 'mysqli'; | ||
$CONF['database_host'] = 'localhost'; | $CONF['database_host'] = 'localhost'; | ||
$CONF['database_user'] = 'postfixadmin'; | $CONF['database_user'] = 'postfixadmin'; | ||
$CONF['database_password'] = ' | $CONF['database_password'] = 'postfixpassword'; | ||
$CONF['database_name'] = 'postfixadmin'; | $CONF['database_name'] = 'postfixadmin'; | ||
$CONF['database_prefix'] = ''; | $CONF['database_prefix'] = ''; | ||
// Impostazioni DB | |||
$CONF['encrypt'] = 'cleartext'; | $CONF['encrypt'] = 'cleartext'; | ||
// Per semplificare, storiamo le password in cleartext | |||
$CONF['default_aliases'] = array ( | $CONF['default_aliases'] = array ( | ||
'abuse' => 'abuse@ | 'abuse' => 'abuse@mydomain.com.com', | ||
'hostmaster' => 'hostmaster@ | 'hostmaster' => 'hostmaster@mydomain.com', | ||
'postmaster' => 'postmaster@ | 'postmaster' => 'postmaster@mydomain.com', | ||
'webmaster' => 'webmaster@ | 'webmaster' => 'webmaster@mydomain.com' | ||
); | ); | ||
// Questi sono gli alias che vengono creati per TUTTI i domini, se si sceglie di creare quelli default | |||
$CONF['domain_path'] = 'YES'; | $CONF['domain_path'] = 'YES'; | ||
$CONF['domain_in_mailbox'] = 'YES'; | $CONF['domain_in_mailbox'] = 'YES'; | ||
// Le caselle verranno create nel folder nomeuser@mydomain.com | |||
$CONF['aliases'] = '0'; | $CONF['aliases'] = '0'; | ||
$CONF['mailboxes'] = '0'; | $CONF['mailboxes'] = '0'; | ||
$CONF['maxquota'] = '0'; | $CONF['maxquota'] = '0'; | ||
// Di default non creare gli alias di default, nessun amailbox di default e non abilitare la quota. | |||
</pre> | |||
* Andare alla pagina di setup, e controllare che tutto sia ok: | |||
http:// | http://myserver.priv/postfixadmin/setup.php | ||
* Generare la password di setup, ed inserirla nel file di configurzione | |||
login con email | cd /etc/postfixadmin | ||
$CONF['setup_password'] = 'f74986889643960430367b466d2575e6:537950f5dcb72607483e | |||
* Fare login con email e passord specificati | |||
* Creare il dominio ed uno user di test | |||
==Configurazione postfix== | ==Configurazione postfix== | ||
grep postfix /etc/passwd | * Identificare uid e gid dello user postfix (tipicamente 101/101): | ||
grep postfix /etc/group | grep postfix /etc/passwd | ||
grep postfix /etc/group | |||
* Impostare i parametri diconfigurazioene per i domini virtuali: | |||
<pre> | |||
cat | sudo tee -a /etc/postfix/main.cf <<EOFile | |||
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf | virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf | ||
virtual_gid_maps = static:101 | virtual_gid_maps = static:101 | ||
| Line 59: | Line 83: | ||
virtual_uid_maps = static:101 | virtual_uid_maps = static:101 | ||
EOFile | EOFile | ||
</pre> | |||
* Eliminare i domini virtuali dai parametri | |||
mydestination | |||
relay_domains | |||
* Creare i file di configurazioni per le query SQL (cambiare la password) | |||
** Alias map: | |||
<pre> | |||
cat | sudo tee /etc/postfix/mysql_virtual_alias_maps.cf <<EOFile | cat | sudo tee /etc/postfix/mysql_virtual_alias_maps.cf <<EOFile | ||
user = postfixadmin | user = postfixadmin | ||
password = | password = postfixpassword | ||
hosts = 127.0.0.1 | hosts = 127.0.0.1 | ||
dbname = postfixadmin | dbname = postfixadmin | ||
query = SELECT goto FROM alias WHERE address='%s' AND active = '1' | |||
EOFile | EOFile | ||
</pre> | |||
'''NOTA: /etc/aliases servirà SOLO per gli alias LOCALI cioè le mail inviate a destinatari SENZA DOMINIO''' | |||
** Domini virtuali considerati locali: | |||
<pre> | |||
cat | sudo tee /etc/postfix/mysql_virtual_domains_maps.cf<<EOFile | cat | sudo tee /etc/postfix/mysql_virtual_domains_maps.cf<<EOFile | ||
user = postfixadmin | user = postfixadmin | ||
password = | password = postfixpassword | ||
hosts = 127.0.0.1 | hosts = 127.0.0.1 | ||
dbname = postfixadmin | dbname = postfixadmin | ||
#query = SELECT domain FROM domain WHERE domain='%s' | |||
#optional query to use when relaying for backup MX | |||
query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '0' AND active = '1' | |||
EOFile | EOFile | ||
</pre> | |||
** Mailbox virtuali | |||
<pre> | |||
cat | sudo tee /etc/postfix/mysql_virtual_mailbox_maps.cf <<EOFile | cat | sudo tee /etc/postfix/mysql_virtual_mailbox_maps.cf <<EOFile | ||
user = postfixadmin | user = postfixadmin | ||
password = | password = postfixpassword | ||
hosts = 127.0.0.1 | hosts = 127.0.0.1 | ||
table = mailbox | table = mailbox | ||
dbname = postfixadmin | dbname = postfixadmin | ||
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1' | |||
#query = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s' AND active = '1' | |||
EOFile | EOFile | ||
</pre> | |||
* Configurazione autenticazione SASL per postfix | |||
sudo aptitude install libsasl2-modules-sql libsasl2-modules | |||
sudoedit /etc/postfix/sasl/smtpd.conf | |||
<pre> | |||
pwcheck_method: auxprop | pwcheck_method: auxprop | ||
mech_list: PLAIN LOGIN | mech_list: PLAIN LOGIN | ||
| Line 102: | Line 144: | ||
sql_hostnames: 127.0.0.1 | sql_hostnames: 127.0.0.1 | ||
sql_user: postfixadmin | sql_user: postfixadmin | ||
sql_passwd: | sql_passwd: postfixpassword | ||
sql_database: postfixadmin | sql_database: postfixadmin | ||
sql_select: select password from mailbox where username ='%u@%r' | sql_select: select password from mailbox where username ='%u@%r' | ||
</pre> | |||
sudo invoke-rc.d saslauthd restart | sudo invoke-rc.d saslauthd restart | ||
* Creazione folders: | |||
<pre> | |||
sudo mkdir -p /home/vmail/marzottospa.com | sudo mkdir -p /home/vmail/marzottospa.com | ||
sudo chmod -R 770 /home/vmail | sudo chmod -R 770 /home/vmail | ||
sudo chown -R postfix:postfix /home/vmail/ | sudo chown -R postfix:postfix /home/vmail/ | ||
</pre> | |||
* Check config | * Check config | ||
sudo postconf | sudo postconf | ||
==Configurazione Dovecot== | |||
sudoedit /etc/dovecot/dovecot-sql.conf | |||
connect = dbname=postfixadmin user=postfixadmin host=127.0.0.1 password= | <pre> | ||
connect = dbname=postfixadmin user=postfixadmin host=127.0.0.1 password=postfixpassword | |||
default_pass_scheme = PLAIN | default_pass_scheme = PLAIN | ||
| Line 141: | Line 189: | ||
WHERE \ | WHERE \ | ||
username = '%u' | username = '%u' | ||
</pre> | |||
sudoedit /etc/dovecot/dovecot.conf | sudoedit /etc/dovecot/dovecot.conf | ||
<pre> | |||
protocols = imap imaps pop3 pop3s | protocols = imap imaps pop3 pop3s | ||
disable_plaintext_auth = no | disable_plaintext_auth = no | ||
| Line 168: | Line 219: | ||
user = root | user = root | ||
} | } | ||
</pre> | |||
sudo invoke-rc.d dovecot restart | sudo invoke-rc.d dovecot restart | ||
Revision as of 12:40, 22 February 2011
Il pacchetto .deb di postfixadmin è stato inserito nel repository RVM. Alternativamente scaricarlo ed installarlo a mano
- Installarlo da repository RVM:
sudo aptitude install postfixadmin
- Creare il database
postfixadmin
- Creare lo user con tutti i diritti sul db postfixadmin
postfixadmin/postfixpassword
- Modificare i parametri di configurazione:
cd /etc/postfixadmin sudoedit config
$CONF['admin_email'] = 'gabriele.vivinetto@rvmgroup.it';
// Il login inziale dell'utente amministrativo
$CONF['postfix_admin_url'] = 'http://myserver.priv/postfixadmin';
// URL per far funzionare i link interni
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'postfixpassword';
$CONF['database_name'] = 'postfixadmin';
$CONF['database_prefix'] = '';
// Impostazioni DB
$CONF['encrypt'] = 'cleartext';
// Per semplificare, storiamo le password in cleartext
$CONF['default_aliases'] = array (
'abuse' => 'abuse@mydomain.com.com',
'hostmaster' => 'hostmaster@mydomain.com',
'postmaster' => 'postmaster@mydomain.com',
'webmaster' => 'webmaster@mydomain.com'
);
// Questi sono gli alias che vengono creati per TUTTI i domini, se si sceglie di creare quelli default
$CONF['domain_path'] = 'YES';
$CONF['domain_in_mailbox'] = 'YES';
// Le caselle verranno create nel folder nomeuser@mydomain.com
$CONF['aliases'] = '0';
$CONF['mailboxes'] = '0';
$CONF['maxquota'] = '0';
// Di default non creare gli alias di default, nessun amailbox di default e non abilitare la quota.
- Andare alla pagina di setup, e controllare che tutto sia ok:
http://myserver.priv/postfixadmin/setup.php
- Generare la password di setup, ed inserirla nel file di configurzione
cd /etc/postfixadmin
$CONF['setup_password'] = 'f74986889643960430367b466d2575e6:537950f5dcb72607483e
- Fare login con email e passord specificati
- Creare il dominio ed uno user di test
Configurazione postfix
- Identificare uid e gid dello user postfix (tipicamente 101/101):
grep postfix /etc/passwd grep postfix /etc/group
- Impostare i parametri diconfigurazioene per i domini virtuali:
cat | sudo tee -a /etc/postfix/main.cf <<EOFile virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf virtual_gid_maps = static:101 virtual_mailbox_base = /home/vmail virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf virtual_minimum_uid = 101 virtual_transport = virtual virtual_uid_maps = static:101 EOFile
- Eliminare i domini virtuali dai parametri
mydestination relay_domains
- Creare i file di configurazioni per le query SQL (cambiare la password)
- Alias map:
cat | sudo tee /etc/postfix/mysql_virtual_alias_maps.cf <<EOFile user = postfixadmin password = postfixpassword hosts = 127.0.0.1 dbname = postfixadmin query = SELECT goto FROM alias WHERE address='%s' AND active = '1' EOFile
NOTA: /etc/aliases servirà SOLO per gli alias LOCALI cioè le mail inviate a destinatari SENZA DOMINIO
- Domini virtuali considerati locali:
cat | sudo tee /etc/postfix/mysql_virtual_domains_maps.cf<<EOFile user = postfixadmin password = postfixpassword hosts = 127.0.0.1 dbname = postfixadmin #query = SELECT domain FROM domain WHERE domain='%s' #optional query to use when relaying for backup MX query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '0' AND active = '1' EOFile
- Mailbox virtuali
cat | sudo tee /etc/postfix/mysql_virtual_mailbox_maps.cf <<EOFile user = postfixadmin password = postfixpassword hosts = 127.0.0.1 table = mailbox dbname = postfixadmin query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1' #query = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s' AND active = '1' EOFile
- Configurazione autenticazione SASL per postfix
sudo aptitude install libsasl2-modules-sql libsasl2-modules
sudoedit /etc/postfix/sasl/smtpd.conf
pwcheck_method: auxprop mech_list: PLAIN LOGIN auxprop_plugin: sql sql_verbose: yes sql_engine: mysql sql_hostnames: 127.0.0.1 sql_user: postfixadmin sql_passwd: postfixpassword sql_database: postfixadmin sql_select: select password from mailbox where username ='%u@%r'
sudo invoke-rc.d saslauthd restart
- Creazione folders:
sudo mkdir -p /home/vmail/marzottospa.com sudo chmod -R 770 /home/vmail sudo chown -R postfix:postfix /home/vmail/
- Check config
sudo postconf
Configurazione Dovecot
sudoedit /etc/dovecot/dovecot-sql.conf
connect = dbname=postfixadmin user=postfixadmin host=127.0.0.1 password=postfixpassword
default_pass_scheme = PLAIN
password_query = \
SELECT \
password \
FROM \
mailbox
WHERE \
username = '%u'
user_query = \
SELECT \
CONCAT('/home/vmail/',maildir) AS home, \
concat('maildir:/home/vmail/', maildir) as mail, \
101 AS uid, \
101 AS gid \
FROM \
mailbox \
WHERE \
username = '%u'
sudoedit /etc/dovecot/dovecot.conf
protocols = imap imaps pop3 pop3s
disable_plaintext_auth = no
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:/home/vmail/%d/%n
mail_access_groups = mail
first_valid_uid = 101
first_valid_gid = 101
protocol imap {
}
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
}
auth default {
mechanisms = digest-md5 plain
passdb sql {
args = /etc/dovecot/dovecot-sql.conf
}
userdb sql {
args = /etc/dovecot/dovecot-sql.conf
}
user = root
}
sudo invoke-rc.d dovecot restart
Riferimenti
- Jitamitra: Configure Postfix, Postfixadmin, Dovecot On Debian & Ubuntu
- v2p1 Mail server Debian Lenny Postfix Virtual PostfixAdmin MySQL Dovecot Amavisd-new SquirrelMail MailZu
- Postfixadmin – setup/install guide for virtual mail users on Postfix | David Goodwin
- SourceForge.net: Postfixadmin-CLI - postfixadmin
- HowTo/DovecotLDAPostfixAdminMySQL - Dovecot Wiki