Postfix LDAP · 18 min read · Sep 30, 2025

Hosting virtuale Postfix con backend LDAP e Dovecot come server IMAP/POP3 su Ubuntu Bionic Beaver 18.04 LTS

Questa guida descriverà come impostare e configurare l’hosting di posta virtuale con un backend LDAP.

Il software che utilizzeremo in questa guida: Postfix (MTA), Dovecot (IMAP / POP3), Gnarwl (vacation), OpenLDAP (LDAP) e vMailpanel come interfaccia di gestione.

Opzionali sono Proftpd FTP, Roundcube (webmail) e MariaDB (backend SQL per Roundcube).

Questo ha funzionato per me, ma non posso garantire che questa configurazione funzioni per te, quindi questa guida viene fornita senza alcuna garanzia.

Assunzioni

Questa guida assume le seguenti configurazioni, se la tua installazione differisce da questa, sostituisci le voci qui sotto con la tua configurazione reale.

Percorso di consegna della posta (caselle di posta):

/home/vmail/

Utente vmail:

UID:1000, GID:1000

Utente postfix:

UID: 108, GID:108

Base dn di OpenLDAP:

dc=example,dc=tld

Account amministratore di OpenLDAP:

cn=admin,dc=example,dc=tld

Ricerca dn di vMailpanel:

o=hosting,dc=example,dc=tld

Un account di sola lettura per l’albero o=hosting,dc=example,dc=tld:

cn=vmail,o=hosting,dc=example,dc=tld

Stai utilizzando root come utente durante questa guida.

Se desideri, ad esempio, o=maildomains o ou=domains, assicurati di sostituire o=hosting con ciò che desideri, specialmente in acl.ldif. Questo file acl è rigoroso, phamm non funzionerà correttamente se non è esattamente come dovrebbe essere. Se desideri un utente di sola lettura diverso da phamm, sostituisci cn=phamm con cn=wat-you ovunque in questa guida.

Questa guida presuppone anche che tu abbia installato e configurato il tuo server Ubuntu secondo le tue esigenze, ci sono molte buone guide su Howtoforge, ad esempio:

Il Server Perfetto - Ubuntu 18.04 (Bionic Beaver) con Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot e ISPConfig 3.1

Puoi fermarti dopo l’installazione e la configurazione di Apache2.

Passo 1: Scarica vMailpanel

Scarica il pacchetto vMailpanel:

cd /usr/share

Ottieni l’ultima versione di vMailpanel:

git clone https://git.com/wolmfan68/vMailpanel

OK, ora possiamo iniziare.

Passo 2: Installa e configura OpenLDAP

Installa OpenLDAP e ldap-utils:

apt -y install slapd ldap-utils php-ldap

Riconfigura slapd per assicurarti che rifletta la tua configurazione desiderata

dpkg-reconfigure slapd

Dovrai rispondere ad alcune domande:

Omittere la configurazione del server OpenLDAP? No
Nome di dominio DNS: example.tld ==> inserisci qui il tuo nome di dominio
Nome dell'organizzazione: example.tld ==> inserisci qui la tua organizzazione
Password dell'amministratore: secret ==> inserisci qui la tua password
Conferma password: secret 
Backend del database da utilizzare: MDB
Vuoi che il database venga rimosso quando slapd viene rimosso? Sì
Spostare il vecchio database? Sì

Cambia nella directory /etc/ldap/schema:

cd /etc/ldap/schema

Copia il phamm.schema e il perversia.net.schema dal pacchetto phamm nella directory schema:

cp /usr/share/vMailbox/schema/* /etc/ldap/schema.

Ora aggiungiamo gli schemi a openldap.

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/phamm.ldif  
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/ISPEnv2.ldif  
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/amavis.ldif  
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/pureftpd.ldif  
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/perversia.net.ldif

Ora creiamo l’entry o=hosting e l’account vmail.

Modifica il testo qui sotto secondo le tue esigenze e desideri e genera una password per l’account vmail. L’hash attualmente in questo file imposta la password su sola lettura

Per creare l’hash per l’account vmail emetti il seguente comando:

slappasswd -h {MD5}

Digita la password desiderata due volte e copia il risultato nel testo qui sotto.

nano base.ldif

Contenuti di base.ldif

dn: o=hosting,dc=example,dc=tld
objectClass: organization
objectClass: top
o: hosting description: Organizzazione di Hosting
# Account di sola lettura
dn: cn=vmail,o=hosting,dc=example,dc=tld
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: vmail
userPassword: {MD5}M267sheb6qc0Ck8WIPOvQA==
description: Account di sola lettura

Carica il base dn nel database con il seguente comando:

ldapmodify -a -D cn=admin,dc=example,dc=tld -W -f base.ldif

Ora dobbiamo modificare gli acl in modo che il corretto accesso venga dato a ciascun tipo di utente.

ldapmodify -Y EXTERNAL -H ldapi:/// -f acl-remove.ldif
ldapmodify -Y EXTERNAL -H ldapi:/// -f acl-new.ldif

Puoi controllare i nuovi acl con il seguente comando:

slapcat -n 0

Questo conclude la configurazione di OpenLDAP.

Passo 3: Installa e configura Postfix

Prima di questo, dobbiamo avere l’utente vmail e la sua home directory.

Crea l’utente e il gruppo vmail:

useradd vmail

Per impostazione predefinita, viene creato anche il gruppo vmail.

Controlla /etc/passwd per l’uid e il numero di gruppo attuali.

Successivamente, crea la directory vmail e imposta la proprietà all’utente e al gruppo vmail.

mkdir /home/vmail  
mkdir /home/vmail/domains  
chown -R vmail:vmail /home/vmail

Esegui il seguente comando per installare Postfix e altre applicazioni richieste:

apt install postfix postfix-ldap

Ti verranno poste due domande. Rispondi come segue:

Tipo generale di configurazione della posta: <–Standalone
Nome della posta di sistema: <– mail.example.tld

Non installiamo sasl poiché utilizzeremo il Dovecot LDA e consegneremo.

Ora creiamo i certificati per TLS:

mkdir /etc/postfix/ssl  
cd /etc/postfix/ssl/  
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
chmod 600 smtpd.key  
openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key  
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

Nota: puoi copiare tutti i file sotto examples/postfix nella tua directory etc/postfix e apportare modifiche di conseguenza. Per motivi di completezza, fornirò la configurazione completa qui sotto.

Ora configureremo postfix:

cd /etc/postfix  
mv /etc/postfix/main.cf /etc/postfix/main.cf.bck
nano /etc/postfix/main.cf

E incolla il seguente nel file. Si prega di notare che questa configurazione consente l’invio (inoltro) di e-mail da parte di utenti autenticati, e anche l’invio di e-mail locali (come ad esempio a root, postmaster, …) agli alias rispettivi se sono configurati.

smtpd_banner = $myhostname ESMTP $mail_name
biff = no

append_dot_mydomain = no

delay_warning_time = 4h

smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache

myhostname = mail.example.tld
alias_maps = hash:/etc/aliases,
alias_database = hash:/etc/aliases
myorigin = localhost
relayhost =
mynetworks = 127.0.0.0/8
dovecot_destination_recipient_limit = 1
mailbox_command = /usr/lib/deliver
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
#smtp_bind_address = your ip address (optional) ==>decommenta e cambia l’indirizzo ip per la tua configurazione.
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
broken_sasl_auth_clients = yes
smtpd_tls_auth_only = no

smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

home_mailbox = Maildir/

smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_invalid_hostname
reject_non_fqdn_hostname
reject_non_fqdn_sender
reject_non_fqdn_recipient
reject_unauth_destination
reject_unauth_pipelining
reject_invalid_hostname
reject_unknown_sender_domain
reject_rbl_client list.dsbl.org
reject_rbl_client cbl.abuseat.org
reject_rhsbl_sender dsn.fc-ignorant.org

smtpd_data_restrictions =
reject_unauth_pipelining,
reject_multi_recipient_bounce,
permit

smtpd_helo_required = yes

maildrop_destination_concurrency_limit = 2
maildrop_destination_recipient_limit = 1
gnarwl_destination_concurrency_limit = 1
gnarwl_destination_recipient_limit = 1
transport_maps = hash:/etc/postfix/transport, ldap:/etc/postfix/ldap-transport.cf
mydestination = $transport_maps, localhost, localhost.localdomain, $myhostname, localhost.$mydomain, $mydomain

virtual_alias_maps =
ldap:/etc/postfix/ldap-aliases.cf,
ldap:/etc/postfix/ldap-virtualforward.cf,
ldap:/etc/postfix/ldap-accountsmap.cf

virtual_mailbox_base = /home/vmail
virtual_mailbox_maps =
ldap:/etc/postfix/ldap-accounts.cf
virtual_minimum_uid = 1000 ==> Cambia questo con l’uid reale dell’utente vmail
virtual_uid_maps = static:1000 ==> Cambia questo con l’uid reale dell’utente vmail
virtual_gid_maps = static:1000 ==> Cambia questo con l’uid reale dell’utente vmail

local_recipient_maps = $alias_maps

recipient_bcc_maps = ldap:/etc/postfix/ldap-vacation.cf

nano /etc/postfix/master.cf

E incolla il seguente nel file (aggiungi alla fine):

dovecot   unix  -       n       n       -       -       pipe
         flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}
gnarwl    unix  -       n       n       -       -       pipe
         flags=F  user=vmail argv=/usr/bin/gnarwl -a ${user}@${nexthop} -s ${sender}

Ora dobbiamo scrivere i diversi file ldap-xxx.cf

nano ldap-accounts.cf

E incolla il seguente:

server_host = localhost
server_port = 389
version = 3
bind = yes
start_tls = no
bind_dn = cn=vmail,o=hosting,dc=example,dc=tld
bind_pw = readmonly
search_base = o=hosting,dc=example,dc=tld
scope = sub
query_filter = (&(&(objectClass=VirtualMailAccount)(mail=%s))(forwardActive=FALSE)(accountActive=TRUE)(delete=FALSE))
result_attribute = mailbox

nano ldap-accounstmap.cf

E incolla il seguente:

server_host = localhost
server_port = 389
version = 3
bind = yes
start_tls = no
bind_dn = cn=vmail,o=hosting,dc=example,dc=tld
bind_pw = readonly
search_base = o=hosting,dc=example,dc=tld
scope = sub
query_filter = (&(&(objectClass=VirtualMailAccount)(mail=%s))(forwardActive=FALSE)(accountActive=TRUE)(delete=FALSE))
result_attribute = mail

nano ldap-aliases.cf

E incolla il seguente:

server_host = localhost
server_port = 389
version = 3
bind = yes
start_tls = no
bind_dn = cn=vmail,o=hosting,dc=example,dc=tld
bind_pw = readonly
search_base = o=hosting,dc=example,dc=tld
scope = sub
query_filter = (&(&(objectClass=VirtualMailAlias)(mail=%s))(accountActive=TRUE))
result_attribute = maildrop

nano ldap-transport.cf

E incolla il seguente:

server_host = localhost
server_port = 389
version = 3
bind = yes
start_tls = no
bind_dn = cn=vmail,o=hosting,dc=example,dc=tld
bind_pw = readonly
search_base = o=hosting,dc=example,dc=tld
scope = sub
query_filter = (&(&(vd=%s)(objectClass=VirtualDomain))(accountActive=TRUE)(delete=FALSE))
result_attribute = postfixTransport

nano ldap-vacation.cf

E incolla il seguente:

server_host = localhost
server_port = 389
version = 3
bind = yes
start_tls = no
bind_dn = cn=vmail,o=hosting,dc=example,dc=tld
bind_pw = readonly
search_base = o=hosting,dc=example,dc=tld
scope = sub
query_filter = (&(&(objectClass=VirtualMailAccount)(mail=%s))(vacationActive=TRUE)(forwardActive=FALSE)(accountActive=TRUE)(delete=FALSE))
result_attribute = mailAutoreply

nano ldap-virtualforward.cf

E incolla il seguente:

server_host = localhost
server_port = 389
version = 3
bind = yes
start_tls = no
bind_dn = cn=vmail,o=hosting,dc=example,dc=tld
bind_pw = readonly
search_base = o=hosting,dc=example,dc=tld
scope = sub
query_filter = (&(&(objectClass=VirtualMailAccount)(mail=%s))(vacationActive=FALSE)(forwardActive=TRUE)(accountActive=TRUE)(delete=FALSE))
result_attribute = maildrop

Questo conclude la configurazione di postfix.

Passo 4: Installa e configura Dovecot

apt install dovecot-imapd dovecot-pop3d dovecot-ldap

Questo installerà dovecot e tutti i file necessari e creerà anche i certificati SSL standard per IMAPs e POP3s.

Per prima cosa, cambiamo nella directory dovecot.

Nota: puoi copiare tutti i file sotto examples/dovecot nella tua directory etc/dovecot e apportare modifiche di conseguenza. Per motivi di completezza, fornirò la configurazione completa qui sotto.

 cd /etc/dovecot

Ora configuriamo i diversi file di configurazione di dovecot.

nano dovecot-ldap.conf.ext

E apporta le seguenti modifiche:

hosts           = localhost:389
ldap_version    = 3
auth_bind       = yes
dn              = cn=vmail,o=hosting,dc=example,dc=tld
dnpass          = readonly
base            = o=hosting,dc=hosting,dc=tld
scope           = subtree
deref           = never

user_attrs = quota=quota=maildir:storage
user_attrs = quota=quota=maildir:storage=%$B
user_filter = (&(objectClass=VirtualMailAccount)(accountActive=TRUE)(mail=%u))
pass_attrs = mail,userPassword
pass_filter = (&(objectClass=VirtualMailAccount)(accountActive=TRUE)(mail=%u))
default_pass_scheme = MD5

cd conf.d
vi 10-auth.conf

E cambia la sezione Password e Database Utente in questo:

#!include auth-deny.conf.ext
#!include auth-master.conf.ext

#!include auth-system.conf.ext
#!include auth-sql.conf.ext
!include auth-ldap.conf.ext
#!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
#!include auth-static.conf.ext

vi 10-mail.conf 

E apporta le seguenti modifiche:

mail_location = maildir:/home/vmail/%d/%u

mail_uid = 1000 ==> cambia al valore uid reale di vmail

mail_gid = 1000 ==> cambia a quello reale valore gid di vmail

first_valid_uid = 1000 ==> cambia al valore uid reale di vmail

first_valid_gid = 1000 ==> cambia a quello reale valore gid di vmail

vi 10-master.conf 

E apporta le seguenti modifiche:

unix_listener auth-userdb {
mode = 0666
user = vmail
group = vmail
}

unix_listener /var/spool/postfix/private/auth {
mode = 0666
}

 vi 15-lda.conf

E apporta le seguenti modifiche:

postmaster_address = [email protected]

lda_mailbox_autocreate = yes

Questo conclude la configurazione di Dovecot.

Passo 5: Installa e configura gnarwl

Installiamo gnarwl:

apt install gnarwl

Ora configuriamo gnarwl.

Per prima cosa, eseguiamo il backup del file di configurazione originale e sostituiamolo con uno nuovo.

mv /etc/gnarwl.conf /etc/gnarwl.conf.bck

Ora creiamo il nuovo file di configurazione:

vi /etc/gnarwl.conf

E inserisci il seguente:

map_sender $sender
map_receiver $recepient
map_subject $subject
map_field $begin vacationStart
map_field $end vacationEnd
map_field $fullname cn
map_field $deputy vacationForward
map_field $reply mail
server localhost
port 389
scope sub
login cn=vmail,o=hosting,dc=example,dc=tld
password readonly
protocol 0
base dc=example,dc=tld
queryfilter (&(mailAutoreply=$recepient)(vacationActive=TRUE))
result vacationInfo
blockfiles /var/lib/gnarwl/block/
umask 0644
blockexpire 48
mta /usr/sbin/sendmail -F $recepient -t $sender
maxreceivers 64
maxheader 512
charset ISO8859-1
badheaders /var/lib/gnarwl/badheaders.db
blacklist /var/lib/gnarwl/blacklist.db
forceheader /var/lib/gnarwl/header.txt
forcefooter /var/lib/gnarwl/footer.txt
recvheader To Cc
loglevel 3

Rendi la directory gnarwl leggibile per l’utente vmail

chown -R vmail:vmail /var/lib/gnarwl/

Successivamente, dobbiamo aggiungere il trasporto gnarwl a postfix

vi /etc/postfix/transport

Inserisci il seguente:

.autoreply      gnarwl:

Ora dobbiamo creare il transport.db

postmap /etc/postfix/transport

Questo conclude la configurazione di gnarwl.

Passo 6: Installa e configura vMailpanel

Poiché abbiamo scaricato vMailpanel prima, possiamo iniziare direttamente con la configurazione dell’interfaccia vMailpanel.

chown -R www-data:www-data /usr/share/phamm  
cd /usr/share/vMailpanel

Ora configureremo phamm per un uso effettivo.

cp config.inc.example.php config.inc.php
nano config.inc.php

Cambia i parametri di connessione ldap per adattarli alla tua configurazione reale.

// *============================*
// *=== Impostazioni del server LDAP ===*
// *============================*

// L'indirizzo del server (IP o FQDN)
define ('LDAP_HOST_NAME','127.0.0.1');

// La versione del protocollo [2,3]
define ('LDAP_PROTOCOL_VERSION','3');

// La porta del server
define ('LDAP_PORT','389');

// Il contenitore
define ('SUFFIX','dc=example,dc=tld');

// L'amministratore bind dn (potrebbe essere rootdn)
define ('BINDDN','cn=admin,dc=example,dc=tld');

// Il contenitore Phamm
define ('LDAP_BASE','o=hosting,dc=example,dc=tld');

e cambia

// Messaggio di benvenuto
define ('SEND_WELCOME',1);
$welcome_msg = '../welcome_message.txt';
$welcome_subject = 'Benvenuto!';
# $welcome_sender = 'postmaster@localhost';
$welcome_bcc = '[email protected]';

Questo invierà un messaggio di benvenuto e un bcc al tuo account postmaster.

Abilita il plugin fpt e person rimuovendo il // nella sezione dei plugin. Se desiderato, puoi anche abilitare i plugin davical e/o jabber, lo schema necessario per questi plugin è installato.

Nel config.inc.php troverai:

define ('DELETE_ACCOUNT_IMMEDIATELY', false);

Se imposti questo su true, la cancellazione dell’account o del dominio avrà effetto immediato. Tuttavia, la casella di posta fisica non viene eliminata (o la directory del dominio). Per eliminare la casella di posta fisica, dovremmo utilizzare lo script cleaner.sh. Questo è descritto di seguito.

Puoi modificare plugins/mail.xml per cambiare i valori predefiniti per SMTP e quota, modificarli secondo le tue esigenze. Il valore predefinito è impostato su 1GB di quota.

Puoi modificare plugins/ftp.xml per cambiare i valori predefiniti per la directory e la quota FTP (base) predefinite, modificarli secondo le tue esigenze.

Non dimenticare di creare gli alias e/o le caselle di posta per postmaster, webmaster poiché questi vengono utilizzati dagli ufficiali e dagli ISP per inviare posta in caso di … Non avere questi indirizzi potrebbe comportare l’inserimento nella lista nera.

Per impostazione predefinita, vengono creati gli alias [email protected] e [email protected] che si impostano su [email protected].

Ora lo script cleaner:

cp tools/cleaner.sh /home/vmail/cleaner.sh

Cambia i seguenti in cleaner.sh

BINDDN="cn=admin,dc=example,dc=tld"  
BINDPW="password"  
LDAP_BASE="o=hosting,dc=example,dc=tld"

Per riflettere la tua installazione

nano /home/vmail/cleaner.sh
crontab -e

Inserisci il seguente:

*/10 * * * * /home/vmail/cleaner.sh

Questo eseguirà lo script cleaner ogni 10 minuti. Sentiti libero di cambiare il timing.

Ora aggiungeremo vMailpanel ad Apache

nano /etc/apache2/conf-enabled/000-default.conf

E aggiungi tra le voci il seguente:

Alias /vmailpanel /usr/share/vMailpanel/public

Questo conclude la configurazione di vMailpanel.

Passo 7: Installa e configura Roundcube webmail

Per prima cosa, creiamo un database chiamato roundcube:

mysqladmin -u root -p create roundcube

Successivamente, andiamo nella shell MySQL:

mysql -u root -p

Nella shell MySQL, creiamo l’utente roundcube con la password roundcube_password (sostituiscila con una password a tua scelta) che ha privilegi SELECT, INSERT, UPDATE, DELETE sul database roundcube. Questo utente sarà utilizzato da Postfix e Courier per connettersi al database roundcube:

GRANT SELECT, INSERT, UPDATE, DELETE ON roundcube.* TO 'roundcube'@'localhost' IDENTIFIED BY 'roundcube_password';  
GRANT SELECT, INSERT, UPDATE, DELETE ON roundcube.* TO 'roundcube'@'localhost.localdomain' IDENTIFIED BY 'roundcube_password';  
FLUSH PRIVILEGES;

Ora scarichiamo e installiamo Roundcube:

cd/usr/src  
wget https://github.com/roundcube/roundcubemail/releases/download/1.3.6/roundcubemail-1.3.6.tar.gz
tar xvzf roundcubemail-1.3.6.tar.gz
mv roundcubemail-1.3.6 /var/www/roundcube
chown -R www-data:www-data /var/www/roundcube
cd /var/www/roundcube

Controlla sempre l’ultima versione di Roundcube e scarica quella e modifica i comandi sopra in base alla versione di Roundcube che hai scaricato.

https://roundcube.net/download/

Ora carichiamo le tabelle sql nel database che abbiamo creato prima:

mysql -u roundcube -p roundcube <  SQL/mysql.initial.sql

Ora modifichiamo la configurazione di Roundcube:

cp config/config.inc.php.sample config/config.inc.php

Imposta la configurazione del database:

nano config/config.inc.php

Cambia la seguente riga nella configurazione del database:

$rcmail_config['db_dsnw'] = 'mysql://roundcube:roundcube_password@localhost/roundcube';

E cambia la seguente

Da:

// Elenco dei plugin attivi (nella directory plugins/)
$config['plugins'] = array(
    'archive', 
    'zipdownload',

A:

// Elenco dei plugin attivi (nella directory plugins/)
$config['plugins'] = array(
    'archive', 
    'zipdownload',
    'password',
    'vacation', 

Cambia:

chars.$rcmail_config['des_key'] = 'rcmail-!24ByteDESkey*Str';

A:

chars.$rcmail_config['des_key'] = 'your-own-24-digitkeystring';

Cambia:

$rcmail_config['default_host'] = '';

A:

$rcmail_config['default_host'] = 'localhost'; 

Cambia:

$rcmail_config['smtp_server'] = ''; 

A:

$rcmail_config['smtp_server'] = 'localhost'; 

La configurazione per il plugin password:

cp plugins/password/config.inc.php.dist plugins/password/config.inc.php

Modifica la configurazione:

nano plugins/password/config.inc.php

Cambia le seguenti voci

Da:

$rcmail_config['password_driver'] = 'sql';

A:

$rcmail_config['password_driver'] = 'ldap'; 

Da:

// Opzioni del driver LDAP
// -------------------
// Nome del server LDAP a cui connettersi.
// Puoi fornire uno o più host in un array in cui gli host vengono provati da sinistra a destra.
// Esempio: array('ldap1.exemple.com', 'ldap2.exemple.com');
// Predefinito: 'localhost'
$rcmail_config['password_ldap_host'] = 'localhost';

// Porta del server LDAP a cui connettersi
// Predefinito: '389'
$rcmail_config['password_ldap_port'] = '389';

// TLS viene avviato dopo la connessione
// Utilizzare TLS per la modifica della password è raccomandato.
// Predefinito: false
$rcmail_config['password_ldap_starttls'] = false;

// Versione LDAP
// Predefinito: '3'
$rcmail_config['password_ldap_version'] = '3';

// Nome base LDAP (directory radice)
// Esempio: 'dc=exemple,dc=com'
$rcmail_config['password_ldap_basedn'] = 'dc=exemple,dc=com';

// Metodo di connessione LDAP
// Ci sono due metodi di connessione per cambiare la password LDAP di un utente.
// 'user': utilizza le credenziali dell'utente (raccomandato, richiede password_confirm_current=true)
// 'admin': utilizza le credenziali dell'amministratore (questo metodo richiede password_ldap_adminDN e password_ldap_adminPW)
// Predefinito: 'user'
$rcmail_config['password_ldap_method'] = 'user';

// LDAP Admin DN
// Utilizzato solo in modalità connessione admin
// Predefinito: null
$rcmail_config['password_ldap_adminDN'] = null;

// Password dell'amministratore LDAP
// Utilizzato solo in modalità connessione admin
// Predefinito: null
$rcmail_config['password_ldap_adminPW'] = null;

// Maschera DN utente LDAP
// Il DN dell'utente è obbligatorio e poiché abbiamo solo il suo login,
// dobbiamo ricreare il suo DN utilizzando una maschera
// '%login' verrà sostituito dal login dell'utente roundcube corrente
// '%name' verrà sostituito dalla parte nome dell'utente roundcube corrente
// '%domain' verrà sostituito dalla parte dominio dell'utente roundcube corrente
// Esempio: 'uid=%login,ou=people,dc=exemple,dc=com'
$rcmail_config['password_ldap_userDN_mask'] = 'uid=%login,ou=people,dc=exemple,dc=com';

// Tipo di hash della password LDAP
// Tipo di crittografia LDAP standard che deve essere uno dei seguenti: crypt,
// ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, o clear.
// Si prega di notare che la maggior parte dei tipi di codifica richiede librerie esterne
// da includere nella tua installazione PHP, vedere la funzione hashPassword in drivers/ldap.php per ulteriori informazioni.
// Predefinito: 'crypt'
$rcmail_config['password_ldap_encodage'] = 'crypt';

// Attributo password LDAP
// Nome dell'attributo ldap utilizzato per memorizzare la password dell'utente
// Predefinito: 'userPassword'
$rcmail_config['password_ldap_pwattr'] = 'userPassword';

// Sostituzione forzata della password LDAP
// Forza la sostituzione LDAP nei casi in cui l'ACL consente solo la sostituzione e non la lettura
// Vedi http://pear.php.net/package/Net_LDAP2/docs/latest/Net_LDAP2/Net_LDAP2_Entry.html#methodreplace
// Predefinito: true
$rcmail_config['password_ldap_force_replace'] = true;

A:

$rcmail_config['password_ldap_host'] = 'localhost';
$rcmail_config['password_ldap_port'] = '389';
$rcmail_config['password_ldap_starttls'] = false;
$rcmail_config['password_ldap_version'] = '3';
$rcmail_config['password_ldap_basedn'] = 'o=hosting,dc=example,dc=tld';

$rcmail_config['password_ldap_method'] = 'user';
$rcmail_config['password_ldap_adminDN'] = null;
$rcmail_config['password_ldap_adminPW'] = null;

$rcmail_config['password_ldap_userDN_mask'] = 'mail=%login,vd=%domain,o=hosting,dc=example,dc=tld';

$rcmail_config['password_ldap_encodage'] = 'md5';
$rcmail_config['password_ldap_pwattr'] = 'userPassword';

$rcmail_config['password_ldap_force_replace'] = true;

Ora scaricheremo e installeremo il plugin vacation:

cd /usr/src  
wget https://github.com/bhuisgen/rc-vacation/archive/master.zip  
unzip rc-vacation-master.zip  
mv rc-vacation /var/www/roundcube/plugins/vacation  
cd /var/www/roundcube/plugins/vacation

Ora modifichiamo la configurazione e cambiamo:

nano plugins/vacation/config.inc.php

Cambia:

$rcmail_config['vacation_gui_vacationsubject'] = TRUE;

A:

$rcmail_config['vacation_gui_vacationsubject'] = FALSE;

Cambia:

$rcmail_config['vacation_driver'] = 'sql'; 

A:

$rcmail_config['vacation_driver'] = 'ldap';

Cambia:

// Base DN
$rcmail_config['vacation_ldap_base'] = 'dc=ldap,dc=my,dc=domain';

// Bind DN
$rcmail_config['vacation_ldap_binddn'] =
'cn=user,dc=ldap,dc=my,dc=domain';

// Bind password
$rcmail_config['vacation_ldap_bindpw'] = 'pa$$w0rd';

A:

// Base DN
$rcmail_config['vacation_ldap_base'] = 'o=hosting,dc=example,dc=tld';

// Bind DN
$rcmail_config['vacation_ldap_binddn'] = 'cn=admin,dc=example,dc=tld';

// Bind password
$rcmail_config['vacation_ldap_bindpw'] = 'yourpassword';

Cambia:

// Filtro di ricerca per leggere i dati
$rcmail_config['vacation_ldap_search_filter'] = '(objectClass=mailAccount)';

// Attributi di ricerca per leggere i dati
$rcmail_config['vacation_ldap_search_attrs'] = array ('vacationActive', 'vacationInfo');

// array di DN da utilizzare per le operazioni di modifica necessarie per scrivere i dati.
$rcmail_config['vacation_ldap_modify_dns'] = array (
'cn=%email_local,ou=Mailboxes,dc=%email_domain,ou=MailServer,dc=ldap,dc=my,dc=domain'
);

A:

// Base di ricerca per leggere i dati
$rcmail_config['vacation_ldap_search_base'] =
'mail=%username,vd=%email_domain,o=hosting,dc=example,dc=tld';

// Filtro di ricerca per leggere i dati
$rcmail_config['vacation_ldap_search_filter'] = '(objectClass=VirtualMailAccount)';

// Attributi di ricerca per leggere i dati
$rcmail_config['vacation_ldap_search_attrs'] = array ('vacationActive', 'vacationInfo');

// array di DN da utilizzare per le operazioni di modifica necessarie per scrivere i dati.
$rcmail_config['vacation_ldap_modify_dns'] = array (
'mail=%username,vd=%email_domain,o=hosting,dc=example,dc=tld'
);

Dobbiamo cambiare la radice del documento nella configurazione del server Apche2 in modo che Roundcube possa essere accessibile.

nano /etc/apache2/sites-enabled/000-default.conf

E cambia da:

DocumentRoot /var/www/html  

A:

DocumentRoot /var/www/  

Questo conclude la configurazione per Roundcube.

Passo 8: Installa e configura proftpd

Per prima cosa, installeremo proftpd e i suoi requisiti:

apt install proftpd proftpd-mod-ldap

A seconda del tuo carico puoi decidere tra stand alone e inet.d.

Nota: Puoi copiare i file di configurazione da examples/proftpd a /etc/proftpd, ma per chiarezza, elencherò tutti i passaggi di configurazione.

Modifica /etc/proftpd/proftpd.conf:

nano /etc/proftpd/proftpd.conf

E cambia da:

# Usa questo per rinchiudere tutti gli utenti nelle loro case
# DefaultRoot                   ~

A:

# Usa questo per rinchiudere tutti gli utenti nelle loro case
DefaultRoot       

E cambia da:

#RequireValidShell               off  

A:

RequireValidShell               off  

E cambia:

# Framework di autenticazione alternativi  
#  
# Include /etc/proftpd/ldap.conf  
#Include /etc/proftpd/sql.conf

A:

# Framework di autenticazione alternativi  
#  
Include /etc/proftpd/ldap.conf  
#Include /etc/proftpd/sql.conf  

Ora modifica /etc/proftpd/modules.conf:

nano /etc/proftpd/modules.conf 

E cambia da:

# Installa proftpd-mod-ldap per utilizzare questo
#LoadModule mod_ldap.c

A:

# Installa proftpd-mod-ldap per utilizzare questo
LoadModule mod_ldap.c

E da:

# Installa proftpd-mod-ldap per utilizzare questo
# LoadModule mod_quotatab_ldap.c

A:

# Installa proftpd-mod-ldap per utilizzare questo
LoadModule mod_quotatab_ldap.c 

Ora modifica /etc/proftpd/ldap.conf e imposta quanto segue:

  
#  
#LDAPServer ldap://ldap.example.com  
#LDAPBindDN "cn=admin,dc=example,dc=com" "admin_password"  
#LDAPUsers dc=users,dc=example,dc=com (uid=%u) (uidNumber=%u)  
#LDAPUseTLS on  
#  
#  
#LDAPServer ldaps://ldap.example.com  
#LDAPBindDN "cn=admin,dc=example,dc=com" "admin_password"  
#LDAPUsers dc=users,dc=example,dc=com (uid=%u) (uidNumber=%u)  
#  
LDAPServer                      ldap://127.0.0.1/??sub  
LDAPBindDN                      "cn=vmail,o=hosting,dc=example,dc=tld "readonly"  
LDAPUsers                       "o=hosting,dc=example,dc=tld"  "(&(uid=%v)(objectclass=posixAccount))"  
LDAPDefaultGID                  33  
LDAPDefaultUID                  33  
LDAPForceDefaultGID             True  
LDAPForceDefaultUID             True  

  

I seguenti comandi impostano l’utente predefinito su www-data, che si adatta a me, puoi cambiare questi valori per adattarli alla tua configurazione o lasciarli fuori per utilizzare l’uid / gid di accesso.

LDAPDefaultGID                  33  
LDAPDefaultUID                  33  
LDAPForceDefaultGID             True  
LDAPForceDefaultUID             True

33 è l’uid/gid della mia configurazione di test, potrebbe essere diverso nella tua configurazione.

Questo conclude l’installazione di proftpd.

Passo 9: Mettere tutto insieme

Esegui i seguenti comandi per riavviare tutti i servizi:

service slapd restart  
service postfix restart
service dovecot restart
service proftpd restart
service apache2 restart

Ora puoi andare su phamm e iniziare ad aggiungere domini di posta e utenti.

Divertiti.

Nota: informami di eventuali errori o problemi con questa guida in modo che io possa migliorare e modificare questa guida.

Usa questo thread nel forum:

https://www.howtoforge.com/community/threads/postfix-virtual-hosting-with-ldap-backend-and-with-dovecot-as-imap-pop3-server-on-ubuntu-bionic-beav.79408/

Sono iscritto a questo thread, quindi riceverò notifiche sui nuovi post in questo thread.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.