Nainštalujte Roundcube Webmail na Ubuntu 22.04/20.04 s PostgreSQL


Roundcube je bezplatný open source plnohodnotný webmailový klient napísaný v PHP. Webmail je poštový klient vo vašom prehliadači, čo znamená, že namiesto čítania a odosielania e-mailov z poštového klienta pre stolné počítače, ako je Mozilla Thunderbird, môžete pristupovať k svojim e-mailom z webového prehliadača. Tento tutoriál vám ukáže, ako nainštalovať webovú poštu Roundcube na Ubuntu 22.04/20.04 s databázovým serverom PostgreSQL.

Vlastnosti Roundcube

Funkcia Roundcube zahŕňa:

  • Adresár
  • Správa priečinkov
  • Vyhľadávanie správ
  • Filter správ
  • Kontrola pravopisu
  • Podpora MIME
  • PGP šifrovanie a podpisovanie
  • Integrácia Mailvelope
  • Používatelia môžu zmeniť svoje heslá v Roundcube.
  • Importujte e-maily vo formáte MIME alebo Mbox.
  • Email znovu odoslaný (bounce)
  • Podpora vyrovnávacej pamäte Redis a Memcached
  • Podpora pre SMTPUTF8 a GSSAPI
  • Responzívny vzhľad s názvom Elastic s plnou podporou mobilných zariadení
  • Podpora OAuth2/XOauth (s háčikmi doplnkov)
  • Zhromaždení príjemcovia a dôveryhodní odosielatelia
  • Plná podpora Unicode s databázou MySQL
  • Podpora rozšírenia IMAP LITERAL

Požiadavky

Ak chcete postupovať podľa tohto návodu, predpokladá sa to

  • Postfix SMTP server a Dovecot IMAP server boli nainštalované na vašom serveri Ubuntu 22.04/20.04

Ak nie, kliknite na vyššie uvedené odkazy a postupujte podľa pokynov na dokončenie predpokladov. Upozorňujeme, že ak ste predtým nastavili svoj e-mailový server pomocou iRedMail, váš server spĺňa všetky požiadavky a Roundcube je už na vašom serveri nainštalovaný.

Teraz pristúpime k inštalácii Roundcube.

Krok 1: Stiahnite si Roundcube Webmail na Ubuntu 22.04/20.04

Prihláste sa na svoj server Ubuntu cez SSH a potom spustite nasledujúci príkaz na stiahnutie najnovšej stabilnej verzie 1.6 z úložiska Roundcube Github.

wget https://github.com/roundcube/roundcubemail/releases/download/1.6.0/roundcubemail-1.6.0-complete.tar.gz

Poznámka: Na stiahnutie Roundcube z príkazového riadku môžete vždy použiť vyššie uvedený formát adresy URL. Ak vyjde nová verzia, jednoducho nahraďte 1.6.0 novým číslom verzie. Na stránke sťahovania Roundcube môžete skontrolovať, či existuje nové vydanie.

Rozbaľte tarball, presuňte novovytvorený priečinok do webového koreňa (/var/www/) a zároveň ho premenujte na roundcube.

tar xvf roundcubemail-1.6.0-complete.tar.gz

sudo mv roundcubemail-1.6.0 /var/www/roundcube

Prejdite do adresára roundcube.

cd /var/www/roundcube

Nastavte používateľa webového servera (www-data) ako vlastníka adresára temp a logs, aby webový server mohol zapisovať do týchto dvoch adresárov .

sudo chown www-data:www-data temp/ logs/ -R

Krok 2: Nainštalujte rozšírenia PHP

Ak chcete nainštalovať požadované rozšírenia PHP, spustite nasledujúci príkaz.

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php

sudo apt update

sudo apt install php-net-ldap2 php-net-ldap3 php-imagick php8.1-common php8.1-pgsql php8.1-gd php8.1-imap php8.1-curl php8.1-zip php8.1-xml php8.1-mbstring php8.1-bz2 php8.1-intl php8.1-gmp php8.1-redis

Krok 3: Vytvorte databázu a používateľa pre Roundcube v PostgreSQL

Nainštalujte PostgreSQL

Zadajte nasledujúci príkaz na inštaláciu PostgreSQL na Ubuntu.

sudo apt install postgresql postgresql-contrib

Po nainštalovaní sa databázový server PostgreSQL automaticky spustí a počúva na 127.0.0.1:5432, ako je možné zobraziť pomocou:

sudo ss -lnpt | grep 5432

Ukážkový výstup:

LISTEN 0      244        127.0.0.1:5432       0.0.0.0:*    users:(("postgres",pid=24074,fd=5))

Ak v okne príkazového riadka nevidíte žiadny výstup, potom PostgreSQL nebeží. Spustite ho týmto príkazom:

sudo systemctl start postgresql

Ak chcete povoliť automatické spustenie PostgreSQL pri štarte, spustite

sudo systemctl enable postgresql

Ak sa stále odmieta spustiť, musíte skontrolovať súbor denníka pod /var/log/postgresql/, aby ste zistili, čo sa pokazilo.

Vytvorenie databázy

Prihláste sa do PostgreSQL ako používateľ postgres.

sudo -u postgres -i psql

Vytvorte databázu roundcube. Nazval som to roundcube, ale môžete použiť akýkoľvek názov. (Nevynechávajte bodkočiarku.)

CREATE DATABASE roundcubemail;

Vytvorte používateľa databázy (roundcubeuser) a nastavte heslo. Nahraďte roundcube_password preferovaným heslom. Upozorňujeme, že heslo by nemalo obsahovať znak #, inak sa možno nebudete môcť prihlásiť neskôr.

CREATE USER roundcube WITH PASSWORD 'roundcube_password';

Udeľte povolenia používateľovi databázy.

ALTER DATABASE roundcubemail OWNER TO roundcube; 

GRANT ALL PRIVILEGES ON DATABASE roundcubemail TO roundcube;

Stlačením Ctrl+D sa odhlásite z konzoly PostgreSQL.

Importujte počiatočné tabuľky do databázy roundcube. Budete musieť zadať heslo, ktoré ste práve vytvorili.

psql -h 127.0.0.1 -d roundcubemail -U roundcube -W -f /var/www/roundcube/SQL/postgres.initial.sql

Krok 4: Vytvorte súbor Apache Virtual Host alebo Nginx Config File pre Roundcube

Apache

Ak používate webový server Apache, vytvorte virtuálneho hostiteľa pre Roundcube.

sudo nano /etc/apache2/sites-available/roundcube.conf

Poznámka: Ak ste postupovali podľa môjho návodu Postfix/Dovecot, virtuálny hostiteľ už existuje. mali by ste upraviť nasledujúci súbor. (Odstráňte texty z tohto súboru, ktorý bol pridaný v časti 2, a pridajte nové texty nižšie.)

sudo nano /etc/apache2/sites-available/mail.example.com.conf

Vložte nasledujúci text do súboru. Nahraďte mail.example.com svojím skutočným názvom domény a nezabudnite preň nastaviť záznam DNS A.

<VirtualHost *:80>
  ServerName mail.example.com
  DocumentRoot /var/www/roundcube/

  ErrorLog ${APACHE_LOG_DIR}/roundcube_error.log
  CustomLog ${APACHE_LOG_DIR}/roundcube_access.log combined

  <Directory />
    Options FollowSymLinks
    AllowOverride All
  </Directory>

  <Directory /var/www/roundcube/>
    Options FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>

</VirtualHost>

Uložte a zatvorte súbor. Potom povoľte tohto virtuálneho hostiteľa pomocou:

sudo a2ensite roundcube.conf

Znova načítajte Apache, aby sa zmeny prejavili.

sudo systemctl reload apache2

Teraz by ste mali vidieť webového sprievodcu inštaláciou Roundcube na http://mail.example.com/installer.

Nginx

Ak používate webový server Nginx, vytvorte virtuálneho hostiteľa pre Roundcube.

sudo nano /etc/nginx/conf.d/roundcube.conf

Poznámka: Ak ste postupovali podľa môjho návodu Postfix/Dovecot, virtuálny hostiteľ už existuje. mali by ste upraviť nasledujúci súbor. (Odstráňte texty z tohto súboru, ktorý bol pridaný v časti 2, a pridajte nové texty nižšie.)

sudo nano /etc/nginx/conf.d/mail.example.com.conf

Vložte nasledujúci text do súboru. Nahraďte názov domény a nezabudnite preň nastaviť záznam DNS A.

server {
  listen 80;
  listen [::]:80;
  server_name mail.example.com;
  root /var/www/roundcube/;
  index index.php index.html index.htm;

  error_log /var/log/nginx/roundcube.error;
  access_log /var/log/nginx/roundcube.access;

  location / {
    try_files $uri $uri/ /index.php;
  }

  location ~ \.php$ {
   try_files $uri =404;
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }

  location ~ /.well-known/acme-challenge {
    allow all;
  }
 location ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
    deny all;
  }
  location ~ ^/(bin|SQL)/ {
    deny all;
  }
 # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }
}

Uložte a zatvorte súbor. Potom otestujte konfigurácie Nginx.

sudo nginx -t

Ak je test úspešný, znova načítajte Nginx, aby sa zmeny prejavili.

sudo systemctl reload nginx

Teraz by ste mali vidieť webového sprievodcu inštaláciou Roundcube na http://mail.example.com/installer.

Krok 5: Povolenie HTTPS

Dôrazne sa odporúča, aby ste na šifrovanie webovej pošty používali TLS. HTTPS môžeme povoliť nainštalovaním bezplatného certifikátu TLS vydaného spoločnosťou Let’s Encrypt. Spustite nasledujúci príkaz a nainštalujte klienta Let’s Encrypt (certbot) na server Ubuntu 22.04/20.04.

sudo apt install certbot

Ak používate Nginx, musíte si nainštalovať aj doplnok Certbot Nginx.

sudo apt install python3-certbot-nginx

Potom spustite nasledujúci príkaz na získanie a inštaláciu certifikátu TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email  -d mail.example.com

Ak používate Apache, nainštalujte si doplnok Certbot Apache.

sudo apt install python3-certbot-apache

A spustite tento príkaz na získanie a inštaláciu certifikátu TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email  -d mail.example.com

Kde

  • --nginx: Použite doplnok nginx.
  • --apache: Použite doplnok Apache.
  • --agree-tos: súhlasíte so zmluvnými podmienkami.
  • --redirect: Vynúti HTTPS presmerovanie 301.
  • --hsts: Pridajte hlavičku Strict-Transport-Security do každej odpovede HTTP. Nútiť prehliadač, aby vždy používal TLS pre doménu. Chráni pred odstránením SSL/TLS.
  • --staple-ocsp: Povolí zošívanie OCSP. Platná odpoveď OCSP je pripojená k certifikátu, ktorý server ponúka počas TLS.

Certifikát by sa teraz mal získať a automaticky nainštalovať.

Poznámka: Ak ste postupovali podľa môjho návodu Postfix/Dovecot a teraz nainštalujete Roundcube na rovnaký server, potom vám certbot pravdepodobne povie, že certifikát pre mail.example.com už existuje, ako je uvedené nižšie, takže môžete sa rozhodnúť nainštalovať existujúci certifikát TLS do konfiguračného súboru webového servera.

Krok 6: Pridanie lokálneho záznamu DNS

Odporúča sa upraviť súbor /etc/hosts na poštovom serveri a pridať nasledujúcu položku, aby Roundcube nemusel zisťovať verejný DNS, čo o niečo zrýchli načítanie webovej stránky .

127.0.0.1  localhost mail.example.com

Krok 7: Nakonfigurujte Roundcube

Prejdite do konfiguračného adresára Roundcube.

cd /var/www/roundcube/config/

Skopírujte vzorový konfiguračný súbor.

sudo cp config.inc.php.sample config.inc.php

Upravte nový súbor.

sudo nano config.inc.php

Nájdite nasledujúci riadok, ktorý hovorí Roundcube, ako sa pripojiť k databáze.

$config['db_dsnw'] = 'mysql://roundcube:pass@localhost/roundcubemail';

Nahraďte mysql reťazcom pgsql.

Potom nahraďte pass skutočným heslom Roundcube. Ak heslo obsahuje špeciálne znaky, musíte použiť percentuálne kódovanie. Ak je napríklad heslo mPcEIRxyJhCz8uiWIUopqWzaSTk=, riadok bude vyzerať takto:

$config['db_dsnw'] = 'pgsql://roundcube:mPcEIRxyJhCz8uiWIUopqWzaSTk%3D@localhost/roundcubemail';

Špeciálny znak = predstavuje %3D.

Potom nájdite nasledujúce dva riadky.

$config['imap_host'] = 'localhost:143';

$config['smtp_host'] = 'localhost:587';

Nahraďte hodnotu takto:

$config['imap_host'] = 'tls://mail.example.com:143';

$config['smtp_host'] = 'tls://mail.example.com:587';

Nájdite nasledujúci riadok.

$config['des_key'] = 'rcmail-!24ByteDESkey*Str';

Nahraďte predvolený kľúč niektorými náhodnými znakmi, ako je uvedené nižšie.

$config['des_key'] = '58kptbzEcNKi/bc9OL90//3ATnQ=';

Ďalej nájdite nasledujúce riadky

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

V predvolenom nastavení sú povolené iba dva doplnky. Môžeme povoliť viac doplnkov, ako je uvedené nižšie.

// List of active plugins (in plugins/ directory)
$config['plugins'] = ['acl', 'additional_message_headers', 'archive', 'attachment_reminder', 'autologon', 'debug_logger', 'emoticons', 'enigma', 'filesystem_attachments', 'help', 'hide_blockquote', 'http_authentication', 'identicon', 'identity_select', 'jqueryui', 'krb_authentication', 'managesieve', 'markasjunk', 'new_user_dialog', 'new_user_identity', 'newmail_notifier', 'password', 'reconnect', 'redundant_attachments', 'show_additional_headers', 'squirrelmail_usercopy', 'subscriptions_option', 'userinfo', 'vcard_attachments', 'virtuser_file', 'virtuser_query', 'zipdownload'];

Nakoniec môžeme povoliť vstavanú kontrolu pravopisu pridaním nasledujúceho riadku na koniec tohto súboru.

$config['enable_spellcheck'] = true;

Uložte a zatvorte súbor.

Prejdite na svoju webovú doménu a prihláste sa.

Webmailové rozhranie Roundcube

Teraz by ste mali odstrániť celý priečinok inštalátora z koreňového adresára dokumentu alebo sa uistiť, že možnosť enable_installer v súbore config.inc.php je vypnutá.

sudo rm /var/www/roundcube/installer/ -r

Tieto súbory môžu verejnosti odhaliť citlivé konfiguračné údaje, ako sú heslá serverov a šifrovacie kľúče. Uistite sa, že nemáte prístup na stránku inštalátora z vášho prehliadača.

Ak sa na webovej stránke zobrazuje chyba, skontrolujte súbor denníka chýb Roundcube (/var/www/roundcube/logs/error.log), aby ste zistili, kde sa stala chyba.

Krok 8: Nakonfigurujte filter správ Sieve

Vo webmaile Roundcube môžete vytvoriť priečinky a potom vytvoriť pravidlá na filtrovanie e-mailových správ do rôznych priečinkov. Aby ste to mohli urobiť, musíte nainštalovať server ManageSieve pomocou nasledujúceho príkazu.

sudo apt install dovecot-sieve dovecot-managesieved

Postfix štandardne používa svojho vstavaného lokálneho doručovacieho agenta (LDA) na presúvanie prichádzajúcich e-mailov do obchodu správ (doručená pošta, odoslané, kôš, nevyžiadaná pošta atď.). Môžeme ho nakonfigurovať tak, aby používal Dovecot na doručovanie e-mailov prostredníctvom protokolu LMTP, čo je zjednodušená verzia SMTP. LMTP umožňuje vysoko škálovateľný a spoľahlivý poštový systém a je potrebný, ak chcete použiť sieve plugin na filtrovanie prichádzajúcich správ do rôznych priečinkov.

Nainštalujte server Dovecot LMTP.

sudo apt install dovecot-lmtpd

Upravte hlavný konfiguračný súbor Dovecot.

sudo nano /etc/dovecot/dovecot.conf

Pridajte k podporovaným protokolom lmtp a sieve.

protocols = imap lmtp sieve

Uložte a zatvorte súbor. Potom upravte súbor Dovecot 10-master.conf.

sudo nano /etc/dovecot/conf.d/10-master.conf

Zmeňte definíciu služby lmtp na nasledujúcu.

service lmtp {
 unix_listener /var/spool/postfix/private/dovecot-lmtp {
   group = postfix
   mode = 0600
   user = postfix
  }
}

Ďalej upravte hlavný konfiguračný súbor Postfixu.

sudo nano /etc/postfix/main.cf

Pridajte nasledujúce riadky na koniec súboru. Prvý riadok hovorí Postfixu, aby doručoval e-maily do lokálneho úložiska správ cez server LMTP holubník. Druhý riadok deaktivuje SMTPUTF8 v Postfixe, pretože Dovecot-LMTP nepodporuje toto e-mailové rozšírenie.

mailbox_transport = lmtp:unix:private/dovecot-lmtp
smtputf8_enable = no

Uložte a zatvorte súbor. Otvorte súbor /etc/dovecot/conf.d/15-lda.conf.

sudo nano /etc/dovecot/conf.d/15-lda.conf

Prejdite na koniec súboru, odkomentujte riadok mail_plugins a pridajte sieve plugin do lokálneho doručovacieho agenta (LDA).

protocol lda {
    # Space separated list of plugins to load (default is global mail_plugins).
    mail_plugins = $mail_plugins sieve
}

Uložte a zatvorte súbor. Ak môžete nájsť súbor 20-lmtp.conf v adresári /etc/dovecot/conf.d/, mali by ste v tomto súbore povoliť aj zásuvný modul sieve, ako je uvedené nižšie .

protocol lmtp {
      mail_plugins = quota sieve
}

Upravte súbor /etc/dovecot/conf.d/10-mail.conf.

sudo nano /etc/dovecot/conf.d/10-mail.conf

Sieve skripty sú uložené v domovskom adresári každého používateľa. Ak ste postupovali podľa môjho návodu PostfixAdmin a používate domény virtuálnych poštových schránok, musíte pre virtuálnych používateľov povoliť mail_home pridaním nasledujúceho riadku do súboru, pretože virtuálni používatelia nemajú predvolene domovské adresáre .

mail_home = /var/vmail/%d/%n

Uložte a zatvorte súbor.

Nakoniec reštartujte Postfix a Dovecot.

sudo systemctl restart postfix dovecot

Teraz môžete prejsť na webovú poštu Roundcube, otvoriť e-mailovú správu a kliknúť na tlačidlo viac a vybrať možnosť vytvoriť filtre na vytvorenie filtrov správ. Napríklad vytvorím filter, ktorý presunie každý e-mail odoslaný z redhat.com do priečinka Red Hat.

Ak nemáte možnosť vytvoriť filter, je to pravdepodobne preto, že ste nepovolili doplnok managesieve. Upravte súbor config.inc.php.

sudo nano /var/www/roundcube/config/config.inc.php

Na konci tohto súboru nájdete zoznam aktívnych pluginov. pridajte doplnok managesieve do poľa. Na poradí doplnkov nezáleží.

// ----------------------------------
// PLUGINS
// ----------------------------------
// List of active plugins (in plugins/ directory)
$config['plugins'] = ['acl', 'additional_message_headers', 'archive', 'attachment_reminder', 'autologon', 'database_attachments', 'debug_logger', 'emoticons', 'enigma', 'filesystem_attachments', 'help', 'hide_blockquote', 'http_authentication', 'identicon', 'identity_select', 'jqueryui', 'krb_authentication', 'managesieve', 'markasjunk', 'new_user_dialog', 'new_user_identity', 'newmail_notifier', 'password', 'reconnect', 'redundant_attachments', 'show_additional_headers', 'squirrelmail_usercopy', 'subscriptions_option', 'userinfo', 'vcard_attachments', 'virtuser_file', 'virtuser_query', 'zipdownload'];

Uložte a zatvorte súbor.

Upozorňujeme, že ak presuniete sadu filtrov sita zo starého poštového servera na nový poštový server, musíte prejsť na Nastavenia -> Filtre a potom kliknúť na položku Akcie a povoľte súpravu filtrov, inak server Dovecot LMTP nespustí filter sita.

Krok 9: Odstránenie citlivých informácií z hlavičiek e-mailov

V predvolenom nastavení Roundcube pridá hlavičku e-mailu User-Agent, ktorá označuje, že používate webovú poštu Roundcube a číslo verzie. Môžete povedať Postfixu, aby to ignoroval, takže príjemca to nemôže vidieť. Spustite nasledujúci príkaz na vytvorenie súboru kontroly hlavičky.

sudo nano /etc/postfix/smtp_header_checks

Vložte nasledujúce riadky do súboru.

/^User-Agent.*Roundcube Webmail/            IGNORE

Uložte a zatvorte súbor. Potom upravte hlavný konfiguračný súbor Postfixu.

sudo nano /etc/postfix/main.cf

Pridajte nasledujúci riadok na koniec súboru.

smtp_header_checks = regexp:/etc/postfix/smtp_header_checks

Uložte a zatvorte súbor. Potom spustite nasledujúci príkaz na opätovné zostavenie hašovacej tabuľky.

sudo postmap /etc/postfix/smtp_header_checks

Znova načítajte Postfix, aby sa zmena prejavila.

sudo systemctl reload postfix

Postfix teraz nebude zahŕňať User-Agent: Roundcube Webmail v hlavičkách pri odosielaní odchádzajúcich e-mailov.

Krok 10: Nakonfigurujte doplnok Password Plugin v Roundcube

Roundcube obsahuje zásuvný modul pre heslá, ktorý umožňuje používateľom meniť svoje heslá z rozhrania webovej pošty. Upravte súbor config.inc.php.

sudo nano /var/www/roundcube/config/config.inc.php

Skontrolujte, či je doplnok heslo v zozname doplnkov na konci tohto súboru. Na poradí doplnkov nezáleží.

$config['plugins'] = array('acl', 'additional_message_headers', 'password', .....);

Uložte a zatvorte súbor.

Tento doplnok však musíme nakonfigurovať skôr, ako bude fungovať. Spustite nasledujúci príkaz a skopírujte konfiguračný súbor distribuovaného doplnku hesla do nového súboru.

sudo cp /var/www/roundcube/plugins/password/config.inc.php.dist /var/www/roundcube/plugins/password/config.inc.php

Upravte konfiguračný súbor doplnku hesla.

sudo nano /var/www/roundcube/plugins/password/config.inc.php

Nájdite nasledujúci riadok:

$config['password_db_dsn'] = '';

Tento parameter sa používa na informovanie doplnku hesiel, kde sú uložené používateľské heslá. V predvolenom nastavení je hodnota prázdna a dopytuje sa v databáze roundcube, ktorá neukladá heslá používateľov. Ak ste postupovali podľa môjho návodu PostfixAdmin, heslá používateľov sú uložené v tabuľke postfixadmin.mailbox, takže musíme zmeniť hodnotu na:

$config['password_db_dsn'] = 'pgsql://postfixadmin:postfixadmin_database_password@127.0.0.1/postfixadmin';

Doplnku hesiel povie, aby sa pripojil k databáze postfixadmin. Ak si nepamätáte heslo postfixadmin databázy, nájdete ho v súbore /etc/dovecot/dovecot-sql.conf.ext. Ak vaše heslo PostfixAdmin obsahuje jeden znak úvodzoviek, môžete ho ukončiť pomocou spätnej lomky (\').

Potom nájdite nasledujúci riadok.

$config['password_query'] = 'SELECT update_passwd(%c, %u)';

Zmeňte ho na nasledujúce.

$config['password_query'] = 'UPDATE mailbox SET password=%P,modified=NOW() WHERE username=%u';

Odporúčam povoliť kontrolu sily hesla, aby ste používateľom zabránili v nastavovaní týždňových hesiel. Prejdite na začiatok tohto súboru, nájdete nasledujúci riadok.

$config['password_strength_driver'] = null;

Môžeme použiť ovládač sily hesla zxcvbn, takže ho zmeňte na:

$config['password_strength_driver'] = 'zxcvbn';

Ak chcete povoliť iba silné heslá, pridajte do tohto súboru nasledujúci riadok.

$config['password_zxcvbn_min_score'] = 5;

Poznámka: Parameter $config['password_minimum_score'] nefunguje s ovládačom zxcvbn, takže ho nechajte tak.

Môžete tiež nastaviť minimálnu dĺžku hesla. Nájdite nasledujúci riadok.

$config['password_minimum_length'] = 0;

Zmeňte to na:

$config['password_minimum_length'] = 8;

Pripomeňme, že sme použili schému hesiel ARGON2I v návode PostfixAdmin, takže musíme tiež nakonfigurovať doplnok pre heslá na používanie ARGON2I. Nájdite v súbore nasledujúce riadky.

$config['password_algorithm'] = 'clear';

V predvolenom nastavení bude heslo uložené ako čistý text, zmeňte hodnotu na nasledujúcu, aby ste použili vstavaný algoritmus hesla Dovecot.

$config['password_algorithm'] = 'dovecot';

Potom nájdite nasledujúci riadok, ktorý hovorí, kde sa nachádza generátor hash hesiel Dovecot.

$config['password_dovecotpw'] = '/usr/local/sbin/dovecotpw'; // for dovecot-1.x

Zmeňte ho na nasledujúce.

$config['password_dovecotpw'] = '/usr/bin/doveadm pw -r 5';

Potom nájdite nasledujúci riadok, ktorý hovorí, ktorá schéma hesla sa použije.

$config['password_dovecotpw_method'] = 'CRAM-MD5';

Zmeňte to na:

$config['password_dovecotpw_method'] = 'ARGON2I';

Nájdite nasledujúci riadok.

$config['password_dovecotpw_with_method'] = false;

Zmeňte false na true. Týmto pridáte do hashovaného hesla predponu {ARGON2I}, takže budete vedieť, ktorá schéma hesla je použitá.

$config['password_dovecotpw_with_method'] = true;

Uložte a zatvorte súbor. Keďže tento súbor obsahuje heslo databázy, mali by sme povoliť iba používateľovi www-data čítať a zapisovať do tohto súboru.

sudo chown www-data:www-data /var/www/roundcube/plugins/password/config.inc.php
sudo chmod 600 /var/www/roundcube/plugins/password/config.inc.php

Teraz by používatelia mali mať možnosť zmeniť svoje heslá vo webovom rozhraní Roundcube.

Ako nastaviť správy o dovolenke/neprítomnosti

Sitový filter môžeme použiť na vytváranie správ dovolenka/neprítomnosť v práci. Prejdite na Roundcube Nastavenia -> Filtre. Potom kliknutím na tlačidlo vytvoriť vytvorte filter.

  • Pomenujte tento súbor ako „mimo pracovisko“.
  • Nové filtre nie sú deaktivované, takže tlačidlo môžete nechať na pokoji.
  • V poli Rozsah vyberte všetky správy.
  • V nastaveniach akcií vyberte možnosť Znova prehrať so správou a zadajte správu, ktorá sa automaticky odošle.
  • Do poľa ako často odosielať správy zadajte 1, takže automatická odpoveď bude odoslaná každému odosielateľovi iba raz za deň. Ak túto hodnotu nastavíte na7, automatická odpoveď bude odoslaná každému odosielateľovi raz za 7 dní.
  • Ostatné textové polia nechajte prázdne.
  • Kliknite na tlačidlo Uložiť a máte hotovo.

Keď ste späť v kancelárii, môžete prepnúť na tlačidlo „Filter vypnutý “ a kliknúť na tlačidlo Uložiť, čím tento filter zakážete.

Zvýšte limit veľkosti nahrávaného súboru

Ak na spúšťanie PHP skriptov používate PHP-FPM, potom súbory, ako sú obrázky, súbory PDF nahrané do Roundcube, nemôžu byť väčšie ako 2 MB. Ak chcete zvýšiť limit veľkosti nahrávania, upravte konfiguračný súbor PHP.

sudo nano /etc/php/8.1/fpm/php.ini

Nájdite nasledujúci riadok (riadok 846).

upload_max_filesize = 2M

Zmeňte hodnotu, ako je uvedené nižšie. Všimnite si, že táto hodnota by nemala byť väčšia ako limit veľkosti prílohy nastavený serverom Postfix SMTP.

upload_max_filesize = 50M

Potom nájdite nasledujúci riadok (riadok 694).

post_max_size = 8M

Zmeňte maximálnu veľkosť údajov POST, ktoré bude PHP akceptovať.

post_max_size = 50M

Uložte a zatvorte súbor. Prípadne môžete spustiť nasledujúce dva príkazy na zmenu hodnoty bez manuálneho otvárania súboru.

sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 50M/g' /etc/php/8.1/fpm/php.ini

sudo sed -i 's/post_max_size = 8M/post_max_size = 50M/g' /etc/php/8.1/fpm/php.ini

Potom reštartujte PHP-FPM.

sudo systemctl restart php8.1-fpm

Nginx tiež stanovuje limit veľkosti nahrávaného súboru. Predvolený maximálny limit veľkosti nahrávaného súboru nastavený Nginxom je 1 MB. Ak používate Nginx, upravte konfiguračný súbor Nginx.

sudo nano /etc/nginx/conf.d/mail.example.com.conf

Pridajte nasledujúci riadok do virtuálneho hostiteľa SSL.

client_max_body_size 50M;

Uložte a zatvorte súbor. Potom znova načítajte Nginx, aby sa zmeny prejavili.

sudo systemctl reload nginx

V Roundcube sú 3 pluginy na nahrávanie príloh/súborov:

  • databázové_prílohy
  • súborový_systém
  • redundantné_prílohy

Roundcube môže používať iba jeden plugin na nahrávanie príloh/súborov. Zistil som, že doplnok database_attachment môže byť náchylný k chybám a spôsobiť vám problémy. Ak ho chcete zakázať, upravte konfiguračný súbor Roundcube.

sudo nano /var/www/roundcube/config/config.inc.php

Prejdite nadol na koniec tohto súboru. Zobrazí sa zoznam aktívnych doplnkov. Odstráňte 'database_attachments' zo zoznamu. Upozorňujeme, že musíte aktivovať aspoň jeden ďalší doplnok príloh, napríklad filesystem_attachments.

// ----------------------------------
// PLUGINS
// ----------------------------------
// List of active plugins (in plugins/ directory)
$config['plugins'] = ['acl', 'additional_message_headers', 'archive', 'attachment_reminder', 'autologon', 'debug_logger', 'emoticons', 'enigma', 'filesystem_attachments', 'help', 'hide_blockquote', 'http_authentication', 'identicon', 'identity_select', 'jqueryui', 'krb_authentication', 'managesieve', 'markasjunk', 'new_user_dialog', 'new_user_identity', 'newmail_notifier', 'password', 'reconnect', 'redundant_attachments', 'show_additional_headers', 'squirrelmail_usercopy', 'subscriptions_option', 'userinfo', 'vcard_attachments', 'virtuser_file', 'virtuser_query', 'zipdownload'];

Uložte a zatvorte súbor.

Nastavenie viacerých poštových domén

Ak chcete hostiť viacero poštových domén, prečítajte si nasledujúci článok:

  • Ako hostiť viacero poštových domén v PostfixAdmin na Ubuntu

Tipy na riešenie problémov

Ak narazíte na chyby, môžete skontrolovať protokoly chýb webového servera na adrese /var/log/apache2/roundcube_error.log (ak používate Apache) alebo /var/log/nginx/ roundcube.error (ak používate Nginx.), aj chyba Roundcube sa zapisuje do adresára /var/www/roundcube/logs/.

Pripojenie k ukladaciemu serveru zlyhalo

Ak sa vám pri pokuse o prihlásenie do RoundCube zobrazí chyba Pripojenie k ukladaciemu serveru zlyhalo, je to pravdepodobne preto,

  • Server Dovecot nebeží. Dovecot môžete reštartovať pomocou sudo systemctl restart dovecot a skontrolovať jeho stav pomocou systemctl status dovecot.
  • Používate certifikát TLS s vlastným podpisom. Roundcube vyžaduje platný certifikát TLS vydaný dôveryhodnou certifikačnou autoritou, ako je Let’s Encrypt.
  • Platnosť vášho certifikátu TLS vypršala. Certifikát Let’s Encrypt TLS môžete obnoviť pomocou sudo certbot renew, potom reštartujte Postfix a Dovecot (sudo systemctl reštart postfix dovecot).

Môžete tiež skúsiť pridať vlastný záznam DNS do súboru /etc/hosts, ako je popísané v kroku 8 na serveri Roundcube, aby Roundcube správne rozpoznal názov hostiteľa poštového servera.

Nepodarilo sa načítať správu zo servera

Ak sa zobrazí chyba „Interná chyba: nepodarilo sa načítať správu zo servera“, je to pravdepodobne preto, že sa pokúšate otvoriť odstránený e-mail (neplatná adresa URL). Skúste prejsť do koreňovej domény pošty (mail.example.com), aby ste zistili, či funguje.

Dočasné zlyhanie vyhľadávania (kód: 451)

Ak sa pri pokuse o odoslanie e-mailu v Roundcube stretnete s touto chybou, pravdepodobne je niečo v neporiadku s vašou konfiguráciou Postfixu. Niektorí ľudia môžu mať napríklad nasledujúcu chybu v súbore /var/log/mail.log.

warning: connect to pgsql server localhost: connection to server at "localhost" (127.0.0.1), port 5432 failed: FATAL: password authentication failed for user "postfixadmin"?connection to server at "localhost" (127.0.0.1), port 5432 failed: FATAL: password authentication failed for user "postfixadmin"?

To znamená, že vaše overenie heslom pre databázu Postfixadmin nefunguje.

Zabaliť sa

Dúfam, že vám tento návod pomohol nainštalovať Roundcube Webmail na Ubuntu 22.04/20.04. Ako vždy, ak ste považovali tento príspevok za užitočný, prihláste sa na odber nášho bezplatného bulletinu a získajte ďalšie tipy a triky 🙂

Súvisiace články