GNU/Linux >> Znalost Linux >  >> Ubuntu

Virtuální hosting Postfix s backendem LDAP a se serverem Dovecot jako IMAP/POP3 server na Ubuntu Bionic Beaver 18.04 LTS

Tento návod popisuje, jak nastavit a nakonfigurovat hostování virtuální pošty s backendem LDAP.

Software, který v tomto návodu použijeme: Postfix (MTA), Dovecot (IMAP / POP3), Gnarwl (dovolená), OpenLDAP (LDAP)  a vMailpanel jako rozhraní pro správu.

Volitelné jsou Proftpd FTP, Roundcube  (webmail) a MariaDB (základní server SQL pro Roundcube).

To fungovalo pro mě, ale nemohu zaručit, že toto nastavení bude fungovat pro vás, takže tento návod přichází bez jakékoli záruky.

Předpoklady

Tento návod předpokládá následující konfigurace, pokud se vaše instalace od této liší, nahraďte položky níže svou skutečnou konfigurací.

Cesta doručování pošty (poštovní schránky):

/home/vmail/

Uživatel vmail:

UID:1000, GID:1000

Uživatelský postfix:

UID: 108, GID:108

OpenLDAP base dn:

dc=example,dc=tld

Účet správce OpenLDAP:

cn=admin,dc=example,dc=tld

vMailpanel search dn:

o=hosting,dc=example,dc=tld

Účet pouze pro čtení pro strom o=hosting,dc=example,dc=tld:

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

V této příručce používáte uživatele root.

Pokud chcete například o=maildomains nebo ou=domains, nezapomeňte nahradit o=hosting tím, co chcete, zejména v acl.ldif. Tento soubor acl je přísný, phamm nebude fungovat správně, pokud nebude přesně tak, jak má být. Pokud chcete jiného uživatele pouze pro čtení než phamm, nahraďte cn=phamm za cn=wat-you všude v tomto návodu.

Tato příručka také předpokládá, že jste si nainstalovali a nakonfigurovali server Ubuntu podle svých potřeb, například na Howtoforge je spousta dobrých průvodců:

The Perfect Server – Ubuntu 18.04 (Bionic Beaver) s Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot a ISPConfig 3.1

Po instalaci a konfiguraci Apache2 můžete přestat.

Krok 1:Stáhnout vMailpanel

Stáhněte si balíček vMailpanel:

cd /usr/share

Získejte nejnovější verzi vMailpanel:

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

OK, teď můžeme začít.

Krok 2:Instalace a konfigurace OpenLDAP

Nainstalujte OpenLDAP a ldap-utils:

apt -y install slapd ldap-utils php-ldap

Překonfigurujte slapd, abyste se ujistili, že odpovídá požadovanému nastavení

dpkg-reconfigure slapd

Budete muset odpovědět na několik otázek:

Omit OpenLDAP server configuration? No
 DNS domain name: example.tld ==>put your domain name here
Organization name: example.tld ==> put your organization here
 Administrator password: secret ==> put your password
 Confirm password: secret 
Database backend to use: MDB
 Do you want the database to be removed when slapd is purged? Yes
 Move old database? Yes

Přejděte do adresáře /etc/ldap/schema:

cd /etc/ldap/schema

Zkopírujte soubory phamm.schema a perversia.net.schema z balíčku phamm do adresáře schématu:

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

Nyní přidáme schémata do 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

Nyní vytvoříme položku o=hosting a účet vmail.

Upravte níže uvedený text podle svých potřeb a přání a vygenerujte heslo pro účet vmail. Hash aktuálně v tomto souboru nastavuje heslo pouze pro čtení

Chcete-li vytvořit hash pro účet vmail, zadejte následující příkaz:

slappasswd -h {MD5}

Zadejte dvakrát požadované heslo a zkopírujte výsledek do textu níže.

nano base.ldif

Obsah base.ldif

dn: o=hosting,dc=example,dc=tld
objectClass: organization
objectClass: top
o: hosting description: Hosting Organization
# Read only account
dn: cn=vmail,o=hosting,dc=example,dc=tld
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: vmail
userPassword: {MD5}M267sheb6qc0Ck8WIPOvQA==
description: Read only account

Načtěte základní dn do databáze pomocí následujícího příkazu:

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

Nyní musíme upravit ACL tak, aby byl každému typu uživatele udělen správný přístup.

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

Nové acl můžete zkontrolovat pomocí následujícího příkazu:

slapcat -n 0

Tím je konfigurace OpenLDAP ukončena.

Krok 3:Instalace a konfigurace Postfix

Před tím potřebujeme mít uživatele vmail a jeho domovský adresář.

Vytvořte uživatele a skupinu vmail:

useradd vmail

Ve výchozím nastavení je také vytvořen skupinový vmail.

Skutečné uid a číslo skupiny naleznete v /etc/passwd.

Dále vytvořte adresář vmail a nastavte vlastnictví uživatele a skupiny vmail.

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

Spusťte následující příkaz k instalaci Postfixu a dalších požadovaných aplikací:

apt install postfix postfix-ldap

Budou vám položeny dvě otázky. Odpovězte následovně:

Obecný typ konfigurace pošty: <--Stand alone
Název systémové pošty: <-- mail.example.tld

Sasl neinstalujeme, protože použijeme Dovecot LDA a doručíme.

Nyní vytvoříme certifikáty pro 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

Poznámka:Můžete zkopírovat všechny soubory z příkladů/postfixu do vašeho adresáře etc/postfix a podle toho provést změny. Pro úplnost uvedu kompletní nastavení níže.

Nyní nakonfigurujeme postfix:

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

A vložte do něj následující. Upozorňujeme, že tato konfigurace umožňuje odesílání (předávání) e-mailů ověřeným uživatelům a také odesílání místních e-mailů (jako například root, postmaster, ...) na příslušné aliasy, pokud jsou nakonfigurovány.

smtpd_banner =$myhostname ESMTP $mail_name
biff =ne
 
# připojení .domain je úkolem MUA.
append_dot_mydomain =no
 
# Odkomentovat další řádek pro generování varování o „zpožděné poště“
delay_warning_time =4 h
 
# parametry TLS
smtpd_tls_cert_file =/etc/postfix/ssl/smtpd.crt
smtpd_tls_key_file =/etc /postfix/ssl/smtpd.key
smtpd_use_tls =ano
smtpd_tls_session_cache_database =btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache:quetbase =_directsion_cache:quetbase>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 =vše
#smtp_bind_address =vaše ip adresa (volitelné) ==>zrušte označení a změňte IP adresu pro své nastavení.
smtpd_sasl_local_domain = 
smtpd_sasl_auth_enable =ano
smtpd_sasl_security_options =noanonymous

smtpd_sasl_type =dovecosl_path =doveco/sasl_path =pd/sasl_path>broken_sasl_auth_clients =ano
smtpd_tls_auth_only =ne

smtp_use_tls =ano
smtp_tls_note_starttls_offer =ano
smtpd_tls_/pfix/smtp
/etstm_file =/etstm_offer =1
smtpd_tls_received_header =yes
smtpd_tls_session_cache_timeout =3600 s
tls_random_source =dev:/dev/urandom

home_mailbox =Maildir_br>strictionsd> 

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
    odmítnout_ rbl_client list.dsbl.org
    odmítnutí_rbl_client cbl.abuseat.org
    odmítnutí_rhsbl_sender dsn.fc-ignorant.org

smtpd_data_restrictions =
     odmítnutí_bounauth, i_piient
    povolení

smtpd_helo_required =yes
 
# transport_maps
maildrop_destination_concurrency_limit =2 
maildrop_destination_recipient_limit =1
gnarwl_destination_limit =1concurrency >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
 
# virtuální účty pro doručování
virtual_mailbox_base =/home/vmail
virtual_mailbox_maps =
    ldap :/etc/postfix/ldap-accounts.cf
virtual_minimum_uid =1000 ==> Změňte toto na skutečné uid uživatele vmail
virtual_uid_maps =static:1000 ==> Změňte toto na skutečné uid uživatel vmail
virtual_gid_maps =static:1000 ==> Změňte toto na skutečné uid uživatele vmail
 
local_recipient_maps =$alias_maps

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

nano /etc/postfix/master.cf

A vložte do něj následující (přidejte konec):

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}

Nyní musíme napsat různé soubory ldap-xxx.cf

nano ldap-accounts.cf

A vložte do něj následující:

server_host =localhost
server_port =389
verze =3
bind =yes
start_tls =ne
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

A vložte do něj následující:

server_host =localhost
server_port =389
verze =3
bind =yes
start_tls =ne
bind_dn =cn=vmail,o=hosting,dc=example,dc =tld
bind_pw =pouze pro čtení
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

A vložte do něj následující:

server_host =localhost
server_port =389
verze =3
bind =yes
start_tls =ne
bind_dn =cn=vmail,o=hosting,dc=example,dc =tld
bind_pw =pouze pro čtení
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

A vložte do něj následující:

server_host =localhost
server_port =389
verze =3
bind =yes
start_tls =ne
bind_dn =cn=vmail,o=hosting,dc=example,dc =tld
bind_pw =pouze pro čtení
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

A vložte do něj následující:

server_host =localhost
server_port =389
verze =3
bind =yes
start_tls =ne
bind_dn =cn=vmail,o=hosting,dc=example,dc =tld
bind_pw =pouze pro čtení
search_base =o=hosting,dc=example,dc=tld
scope =sub
query_filter =(&(&(objectClass=VirtualMailAccount)(mail =%s))(vacationActive=TRUE)(forwardActive=FALSE)(accountActive=PRAVDA)(delete=FALSE))
result_attribute =mailAutoreply 

nano ldap-virtualforward.cf

A vložte do něj následující:

server_host =localhost
server_port =389
verze =3
bind =yes
start_tls =ne
bind_dn =cn=vmail,o=hosting,dc=example,dc =tld
bind_pw =pouze pro čtení
search_base =o=hosting,dc=example,dc=tld
scope =sub
query_filter =(&(&(objectClass=VirtualMailAccount)(mail =%s))(vacationActive=FALSE)(forwardActive=PRAVDA)(accountActive=PRAVDA)(delete=FALSE))
result_attribute =maildrop

Tím je nastavení postfixu ukončeno.

Krok 4:Instalace a konfigurace Dovecot

apt install dovecot-imapd dovecot-pop3d dovecot-ldap

Tím se nainstaluje dovecot a všechny potřebné soubory a také se vytvoří standardní SSL certifikáty pro IMAP a POP3.

Nejprve se přepneme do adresáře dovecot.

Poznámka:Všechny soubory z příkladů/dovecot můžete zkopírovat do svého adresáře etc/dovecot a provést odpovídající změny. Pro úplnost uvedu kompletní nastavení níže.

 cd /etc/dovecot

Nyní nakonfigurujeme různé konfigurační soubory dovecotu.

nano dovecot-ldap.conf.ext

A proveďte následující změny:

hostitelé            =localhost:389
ldap_version    =3
auth_bind        =ano
dn               =cn=vmail,o=hosting,dc=example,dc /d=tld         >základní             =o=hosting,dc=hosting,dc=tld
rozsah           =podstrom
deref           =nikdy

user_attrs =kvóta=kvóta=maildir:storage
=kvóta=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

A změňte sekci Heslo a databáze uživatelů na toto:

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

A proveďte následující změny:

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

mail_uid =1000 ==> změnit na skutečnou hodnotu uid vmail

mail_gid =1000 ==> změňte toto na skutečnou hodnotu gid vmailu

first_valid_uid =1000 ==> změna na skutečnou hodnotu uid vmail

first_valid_gid =1000 ==> změnit toto na skutečnou hodnotu gid vmailu

vi 10-master.conf 

A proveďte následující změny:

unix_listener auth-userdb {
    režim =0666
    user =vmail
    skupina =vmail
  }

  # Postfix smtp-auth
  unix_listener / var/spool/postfix/private/auth {
    režim =0666
  }

 vi 15-lda.conf

A proveďte následující změny: 

postmaster_address = [e-mail chráněn]

lda_mailbox_autocreate =ano

Tím je konfigurace Dovecot ukončena.

Krok 5:Instalace a konfigurace gnarwl

Pojďme nainstalovat gnarwl:

apt install gnarwl

Nyní nakonfigurujeme gnarwl.

Nejprve si zazálohujeme původní konfigurační soubor a nahradíme jej novým.

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

Nyní vytvoříme nový soubor conf:

vi /etc/gnarwl.conf

A vložte následující:

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

Udělejte adresář gnarwl čitelný pro uživatele vmail

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

Dále musíme přidat transport gnarwl do postfixu

vi /etc/postfix/transport

Vložte následující:

.autoreply      gnarwl:

Nyní musíme vytvořit transport.db

postmap /etc/postfix/transport

Tím je konfigurace gnarwl uzavřena.

Krok 6:Instalace a konfigurace vMailpanel

Protože jsme si vMailpanel stáhli již dříve, můžeme začít přímo s konfigurací rozhraní vMailpanel.

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

Nyní nakonfigurujeme phamm pro skutečné použití.

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

Změňte parametry připojení ldap tak, aby odpovídaly vaší skutečné konfiguraci.

// *============================*
// *=== LDAP Server Settings ===*
// *============================*

// The server address (IP or FQDN)
define ('LDAP_HOST_NAME','127.0.0.1');

// The protocol version [2,3]
define ('LDAP_PROTOCOL_VERSION','3');

// The server port
define ('LDAP_PORT','389');

// The container
define ('SUFFIX','dc=example,dc=tld');

// The admin bind dn (could be rootdn)
define ('BINDDN','cn=admin,dc=example,dc=tld');

// The Phamm container
define ('LDAP_BASE','o=hosting,dc=example,dc=tld');

a změnit

// Welcome message
define ('SEND_WELCOME',1);
$welcome_msg = '../welcome_message.txt';
$welcome_subject = 'Welcome!';
# $welcome_sender = '[email protected]';
$welcome_bcc = '[email protected]';

To odešle uvítací zprávu a skrytou kopii na váš účet správce pošty.

Povolte plugin fpt and person odstraněním // v sekci plugins. Pokud chcete, můžete také povolit davical a nebo jabber pluginy, schéma potřebné pro tyto pluginy je nainstalováno.

V souboru config.inc.php najdete:

define ('DELETE_ACCOUNT_IMMEDIATELY', false);

Pokud toto nastavíte na hodnotu true, smazání účtu nebo domény se projeví okamžitě. Fyzická poštovní schránka však není odstraněna (ani doménový adresář). Abychom smazali fyzickou schránku, měli bychom použít skript cleaner.sh. To je popsáno níže.

Můžete upravit plugins/mail.xml a změnit výchozí hodnoty pro SMTP a kvótu, upravit je podle svých potřeb. Výchozí je kvóta 1 GB.

Můžete upravit plugins/ftp.xml a změnit výchozí hodnoty výchozího ftp (základního) adresáře a kvóty, upravit je podle svých potřeb.

Nezapomeňte vytvořit aliasy nebo poštovní schránky pro poštmistra, webmastera, protože je používají úředníci a poskytovatelé internetových služeb k odesílání pošty v případě... Neexistence těchto adres může vést k zařazení na černou listinu.

Ve výchozím nastavení jsou vytvořeny aliasy [chráněno e-mailem] a [chráněno e-mailem], které mají výchozí hodnotu [chráněno e-mailem].

Nyní čistší skript:

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

Změňte následující v cleaner.sh

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

Odrážet vaši instalaci

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

Vložte následující:

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

To spustí skript čističe každých 10 minut. Neváhejte změnit načasování.

Nyní přidáme vMailpanel do Apache

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

A mezi položky přidejte následující:

Alias /vmailpanel /usr/share/vMailpanel/public

Tím je konfigurace vMailpanelu uzavřena.

Krok 7:Instalace a konfigurace webové pošty Roundcube

Nejprve vytvoříme databázi s názvem roundcube:

mysqladmin -u root -p create roundcube

Dále přejdeme do prostředí MySQL:

mysql -u root -p

V prostředí MySQL vytvoříme uživatele roundcube s heslem roundcube_password (nahraďte ho heslem dle vašeho výběru), který má oprávnění SELECT,INSERT,UPDATE,DELETE v databázi roundcube . Tohoto uživatele použijí Postfix a Courier k připojení k databázi 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;

Nyní stáhneme a nainstalujeme 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

Vždy zkontrolujte nejnovější verzi Roundcube a stáhněte si ji a upravte výše uvedené příkazy na verzi Roundcube, kterou jste si stáhli.

https://roundcube.net/download/

Nyní načteme sql tabulky do databáze, kterou jsme vytvořili dříve:

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

Nyní upravíme konfiguraci Roundcube:

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

Nastavte konfiguraci databáze:

nano config/config.inc.php

Změňte následující řádek na konfiguraci databáze:

$rcmail_config['db_dsnw'] = 'mysql://roundcube:[email protected]/roundcube';

A změňte následující

Od:

// List of active plugins (in plugins/ directory)
$config['plugins'] = array(
    'archive', 
    'zipdownload',

Komu:

// List of active plugins (in plugins/ directory)
$config['plugins'] = array(
    'archive', 
    'zipdownload',
    'password',
    'vacation', 

Změna:

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

Komu:

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

Změna:

$rcmail_config['default_host'] = '';

Komu:

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

Změna:

$rcmail_config['smtp_server'] = ''; 

Komu

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

Konfigurace zásuvného modulu pro hesla:

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

Upravte konfiguraci:

nano plugins/password/config.inc.php

Změňte následující položky

Od:

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

Komu:

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

Od:

// LDAP Driver options
// -------------------
// LDAP server name to connect to.
// You can provide one or several hosts in an array in which case the hosts are tried from left to right.
// Exemple: array('ldap1.exemple.com', 'ldap2.exemple.com');
// Default: 'localhost'
$rcmail_config['password_ldap_host'] = 'localhost';

// LDAP server port to connect to
// Default: '389'
$rcmail_config['password_ldap_port'] = '389';

// TLS is started after connecting
// Using TLS for password modification is recommanded.
// Default: false
$rcmail_config['password_ldap_starttls'] = false;

// LDAP version
// Default: '3'
$rcmail_config['password_ldap_version'] = '3';

// LDAP base name (root directory)
// Exemple: 'dc=exemple,dc=com'
$rcmail_config['password_ldap_basedn'] = 'dc=exemple,dc=com';

// LDAP connection method
// There is two connection method for changing a user's LDAP password.
// 'user': use user credential (recommanded, require password_confirm_current=true)
// 'admin': use admin credential (this mode require password_ldap_adminDN and password_ldap_adminPW)
// Default: 'user'
$rcmail_config['password_ldap_method'] = 'user';

// LDAP Admin DN
// Used only in admin connection mode
// Default: null
$rcmail_config['password_ldap_adminDN'] = null;

// LDAP Admin Password
// Used only in admin connection mode
// Default: null
$rcmail_config['password_ldap_adminPW'] = null;

// LDAP user DN mask
// The user's DN is mandatory and as we only have his login,
// we need to re-create his DN using a mask
// '%login' will be replaced by the current roundcube user's login
// '%name' will be replaced by the current roundcube user's name part
// '%domain' will be replaced by the current roundcube user's domain part
// Exemple: 'uid=%login,ou=people,dc=exemple,dc=com'
$rcmail_config['password_ldap_userDN_mask'] = 'uid=%login,ou=people,dc=exemple,dc=com';

// LDAP password hash type
// Standard LDAP encryption type which must be one of: crypt,
// ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, or clear.
// Please note that most encodage types require external libraries
// to be included in your PHP installation, see function hashPassword in drivers/ldap.php for more info.
// Default: 'crypt'
$rcmail_config['password_ldap_encodage'] = 'crypt';

// LDAP password attribute
// Name of the ldap's attribute used for storing user password
// Default: 'userPassword'
$rcmail_config['password_ldap_pwattr'] = 'userPassword';

// LDAP password force replace
// Force LDAP replace in cases where ACL allows only replace not read
// See http://pear.php.net/package/Net_LDAP2/docs/latest/Net_LDAP2/Net_LDAP2_Entry.html#methodreplace
// Default: true
$rcmail_config['password_ldap_force_replace'] = true;

Komu:

$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;

Nyní si stáhneme a nainstalujeme plugin pro dovolenou:

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

Nyní upravíme konfiguraci a změníme:

nano plugins/vacation/config.inc.php

Změna:

$rcmail_config['vacation_gui_vacationsubject'] = TRUE;

Komu:

$rcmail_config['vacation_gui_vacationsubject'] = FALSE;

Změna:

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

Komu:

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

Změna:

// 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';

Komu:

// 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';

Změna:

// Search filter to read data
$rcmail_config['vacation_ldap_search_filter'] = '(objectClass=mailAccount)';

// Search attributes to read data
$rcmail_config['vacation_ldap_search_attrs'] = array ('vacationActive', 'vacationInfo');

// array of DN to use for modify operations required to write data.
$rcmail_config['vacation_ldap_modify_dns'] = array (
'cn=%email_local,ou=Mailboxes,dc=%email_domain,ou=MailServer,dc=ldap,dc=my,dc=domain'
);

Komu:

// Search base to read data
$rcmail_config['vacation_ldap_search_base'] =
'mail=%username,vd=%email_domain,o=hosting,dc=example,dc=tld';

// Search filter to read data
$rcmail_config['vacation_ldap_search_filter'] = '(objectClass=VirtualMailAccount)';

// Search attributes to read data
$rcmail_config['vacation_ldap_search_attrs'] = array ('vacationActive', 'vacationInfo');

// array of DN to use for modify operations required to write data.
$rcmail_config['vacation_ldap_modify_dns'] = array (
'mail=%username,vd=%email_domain,o=hosting,dc=example,dc=tld'
);

Musíme změnit kořen dokumentu v konfiguraci serveru Apche2, aby byl přístup k Roundcube.

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

A změnit z:

DocumentRoot /var/www/html

Komu:

DocumentRoot /var/www/

Tím je konfigurace pro Roundcube ukončena.

Krok 8:Instalace a konfigurace proftpd

Nejprve nainstalujeme proftpd a jeho požadavky:

apt install proftpd proftpd-mod-ldap

V závislosti na vaší zátěži se můžete rozhodnout mezi stand alone a inet.d.

Poznámka:Konfigurační soubory můžete zkopírovat z example/proftpd do /etc/proftpd, ale pro přehlednost nastíním všechny kroky konfigurace.

Upravte /etc/proftpd/proftpd.conf:

nano /etc/proftpd/proftpd.conf

A změnit z:

# Use this to jail all users in their homes
# DefaultRoot                   ~

Komu:

# Use this to jail all users in their homes
DefaultRoot      

A změnit z:

#RequireValidShell               off

Komu:

RequireValidShell               off

And change:

# Alternative authentication frameworks
#
# Include /etc/proftpd/ldap.conf
#Include /etc/proftpd/sql.conf

To:

# Alternative authentication frameworks
#
Include /etc/proftpd/ldap.conf
#Include /etc/proftpd/sql.conf
             ~

Now edit /etc/proftpd/modules.conf:

nano /etc/proftpd/modules.conf 

And change from:

# Install proftpd-mod-ldap to use this
#LoadModule mod_ldap.c

To:

# Install proftpd-mod-ldap to use this
LoadModule mod_ldap.c

And from:

# Install proftpd-mod-ldap to use this
# LoadModule mod_quotatab_ldap.c

To:

# Install proftpd-mod-ldap to use this
LoadModule mod_quotatab_ldap.c 

No edit /etc/proftpd/ldap.conf and set the following:

<IfModule mod_ldap.c>
#
#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

</IfModule>

The following commands set the default user to www-data which suits me, you can change these values to suit your setup or leave them out to use the login uid / gid.

LDAPDefaultGID                  33
LDAPDefaultUID 33
LDAPForceDefaultGID True
LDAPForceDefaultUID True

33 Is the uid/gid of my testing setup, it can be different on your setup.

This concludes the proftpd installation.

Step 9:Bringing it all together

Issue the following commands to restart all of the services:

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

Now you can go to phamm and start adding mail domains and users.

Enjoy.

Note:notify me of any errors or problems with this how to so I can improve and amend this how to.

Use this thread in the 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/

I am subscribed to this thread so I will get notifications of new posts in this thread.


Ubuntu
  1. The Perfect Server - Ubuntu 18.04 (Bionic Beaver) s Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot a ISPConfig 3.1

  2. Jak nainstalovat Spamassassin s Postfixem a Dovecotem na Ubuntu/Debian Server

  3. Jak nakonfigurovat poštovní server POP3 / IMAP s Dovecot na Ubuntu 18.04

  1. Instalační příručka Ubuntu 18.04 LTS Server (Bionic Beaver) se snímky obrazovky

  2. Virtuální hosting s Proftpd a MySQL (včetně kvóty) na Ubuntu 14.04LTS

  3. Virtuální uživatelé a domény s Postfixem, Courier, MySQL a SquirrelMail (Ubuntu 13.10)

  1. VBoxHeadless – Spouštění virtuálních strojů s VirtualBox 5.1 na bezhlavém serveru Ubuntu 16.04 LTS

  2. Jak nainstalovat minimální server Ubuntu 18.04 LTS (Bionic Beaver).

  3. Jak nainstalovat Lighttpd s PHP-FPM a MySQL na Ubuntu 20.04 LTS