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:1000Utente postfix:
UID: 108, GID:108Base dn di OpenLDAP:
dc=example,dc=tldAccount amministratore di OpenLDAP:
cn=admin,dc=example,dc=tldRicerca dn di vMailpanel:
o=hosting,dc=example,dc=tldUn account di sola lettura per l’albero o=hosting,dc=example,dc=tld:
cn=vmail,o=hosting,dc=example,dc=tldStai 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/shareOttieni l’ultima versione di vMailpanel:
git clone https://git.com/wolmfan68/vMailpanelOK, ora possiamo iniziare.
Passo 2: Installa e configura OpenLDAP
Installa OpenLDAP e ldap-utils:
apt -y install slapd ldap-utils php-ldapRiconfigura slapd per assicurarti che rifletta la tua configurazione desiderata
dpkg-reconfigure slapdDovrai rispondere ad alcune domande:
Omittere la configurazione del server OpenLDAP? NoNome di dominio DNS: example.tld ==> inserisci qui il tuo nome di dominioNome dell'organizzazione: example.tld ==> inserisci qui la tua organizzazionePassword dell'amministratore: secret ==> inserisci qui la tua passwordConferma password: secret Backend del database da utilizzare: MDBVuoi che il database venga rimosso quando slapd viene rimosso? SìSpostare il vecchio database? SìCambia nella directory /etc/ldap/schema:
cd /etc/ldap/schemaCopia 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.ldifOra 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.ldifContenuti di base.ldif
dn: o=hosting,dc=example,dc=tldobjectClass: organizationobjectClass: topo: hosting description: Organizzazione di Hosting# Account di sola letturadn: cn=vmail,o=hosting,dc=example,dc=tldobjectClass: simpleSecurityObjectobjectClass: organizationalRolecn: vmailuserPassword: {MD5}M267sheb6qc0Ck8WIPOvQA==description: Account di sola letturaCarica il base dn nel database con il seguente comando:
ldapmodify -a -D cn=admin,dc=example,dc=tld -W -f base.ldifOra 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.ldifldapmodify -Y EXTERNAL -H ldapi:/// -f acl-new.ldifPuoi controllare i nuovi acl con il seguente comando:
slapcat -n 0Questo 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 vmailPer 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/vmailEsegui il seguente comando per installare Postfix e altre applicazioni richieste:
apt install postfix postfix-ldapTi 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 1024chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csropenssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crtopenssl rsa -in smtpd.key -out smtpd.key.unencryptedmv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650Nota: 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.bcknano /etc/postfix/main.cfE 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.cfE 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.cfE 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.cfE 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.cfE 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.cfE 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-ldapQuesto 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/dovecotOra configuriamo i diversi file di configurazione di dovecot.
nano dovecot-ldap.conf.extE 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.dvi 10-auth.confE 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.confE 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 gnarwlOra 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.bckOra creiamo il nuovo file di configurazione:
vi /etc/gnarwl.confE 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 3Rendi 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/transportInserisci il seguente:
.autoreply gnarwl:Ora dobbiamo creare il transport.db
postmap /etc/postfix/transportQuesto 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/vMailpanelOra configureremo phamm per un uso effettivo.
cp config.inc.example.php config.inc.phpnano config.inc.phpCambia 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.shCambia 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.shcrontab -eInserisci il seguente:
*/10 * * * * /home/vmail/cleaner.shQuesto 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.confE aggiungi tra le voci
Alias /vmailpanel /usr/share/vMailpanel/publicQuesto 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 roundcubeSuccessivamente, andiamo nella shell MySQL:
mysql -u root -pNella 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.gztar xvzf roundcubemail-1.3.6.tar.gzmv roundcubemail-1.3.6 /var/www/roundcubechown -R www-data:www-data /var/www/roundcubecd /var/www/roundcubeControlla 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.sqlOra modifichiamo la configurazione di Roundcube:
cp config/config.inc.php.sample config/config.inc.phpImposta la configurazione del database:
nano config/config.inc.phpCambia 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.phpModifica la configurazione:
nano plugins/password/config.inc.phpCambia 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/vacationOra modifichiamo la configurazione e cambiamo:
nano plugins/vacation/config.inc.phpCambia:
$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.confE 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-ldapA 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.confE 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.confA:
# 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.cA:
# Installa proftpd-mod-ldap per utilizzare questo
LoadModule mod_ldap.cE da:
# Installa proftpd-mod-ldap per utilizzare questo
# LoadModule mod_quotatab_ldap.cA:
# 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 True33 è 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 restartservice dovecot restartservice proftpd restartservice apache2 restartOra 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:
Sono iscritto a questo thread, quindi riceverò notifiche sui nuovi post in questo thread.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.