Modoboa: Porovnání verzí

Z Poznámkový blok
Přejít na: navigace, hledání
(Let’s Encrypt)
(Přesun)
 
(Není zobrazeno 75 mezilehlých verzí od stejného uživatele.)
Řádka 4: Řádka 4:
 
Pro novou instalaci si připravíme nejnovější distribuci Debiana, provedeme aktualizace a doinstalujem potřebne balíčky
 
Pro novou instalaci si připravíme nejnovější distribuci Debiana, provedeme aktualizace a doinstalujem potřebne balíčky
  
  apt update && apt upgrade
+
  sudo apt update && sudo apt -y upgrade
  apt -y install sudo ssh mc python3 python3-pip git
+
  sudo apt -y install sudo ssh mc git python3
  apt autoremove
+
  sudo apt -y autoremove
  
 
== Příprava DNS ==
 
== Příprava DNS ==
 
Pro snadnou instalaci a funkcionalitu je dobré si předem nastavit potřebne DNS zaznamy:
 
Pro snadnou instalaci a funkcionalitu je dobré si předem nastavit potřebne DNS zaznamy:
  
mail IN A <IP adresa email serveru>
+
        mail IN A <IP adresa email serveru>
      IN MX mail
+
 +
            @ IN MX 10 mail
 +
 +
            @ IN TXT "v=spf1 mx ~all"
 +
      _dmarc IN TXT "v=DMARC1; p=quarantine; pct=100;"
 +
 +
  autoconfig IN CNAME mail
 +
autodiscover IN CNAME mail
 +
V případě kdy v konfiguraci povolíme podepisovíní metodou DKIM, bude potřeba přidat ještě dalsi TXT zaznam.
  
 
== Instalace ==
 
== Instalace ==
Řádka 18: Řádka 26:
 
  git clone https://github.com/modoboa/modoboa-installer
 
  git clone https://github.com/modoboa/modoboa-installer
 
  cd modoboa-installer
 
  cd modoboa-installer
 +
./run.py --stop-after-configfile-check <your domain>
 +
Tímto připravíme konfigurační soubor 'installer.cfg' pro instalaci Modoby. V něm pak provedeme požadované změny aby instalace byla provedena dle naších představ.
 +
[general]
 +
hostname = modo.%(domain)s
 +
 +
[certificate]
 +
type = letsencrypt
 +
...
 +
[letsencrypt]
 +
email = admin@<your domain>
 +
 +
Po nastaveni spustíme vlastni instalaci:
 
  sudo ./run.py <your domain>
 
  sudo ./run.py <your domain>
 +
'''Pozor''': Pokud chceme provést obnovu ze zálohy, tak konfigurační soubor porovnáme ze zálohou a patřičně upravíme.
  
 
== Upgrade ==
 
== Upgrade ==
 
By také melo být velice jednoduché. V návodě je sice postup, ale k instalátoru byl přidán parametr --upgrade. Tudíž by mělo stačit
 
By také melo být velice jednoduché. V návodě je sice postup, ale k instalátoru byl přidán parametr --upgrade. Tudíž by mělo stačit
  git clone https://github.com/modoboa/modoboa-installer
+
  #git clone https://github.com/modoboa/modoboa-installer # jen pokud nemame zatim stazeno
 
  cd modoboa-installer
 
  cd modoboa-installer
 +
git pull
 
  sudo ./run.py --upgrade <your domain>
 
  sudo ./run.py --upgrade <your domain>
 +
Vzhledem k indovidualní konfiguraci je pak potřeba opravit konfigurace:
 +
* /etc/nginx/sites-available/modo.slapnet.cz
 +
* /etc/nginx/sites-available/autoconfig.slapnet.cz
 +
 +
 +
* /etc/postfix/main.conf
 +
* /etc/postfix/master.cf
 +
 +
'''Poznámka''':
 +
 +
V rámci vývoje se mění seznam modulů vlastni modoboa který je definován v souboru ''installer.cfg''. Proto je vhodné tento seznam následně také upravit.
 +
# verze 2.2.0
 +
extensions = modoboa-amavis modoboa-pdfcredentials modoboa-postfix-autoreply modoboa-sievefilters modoboa-webmail modoboa-contacts modoboa-radicale
 +
 +
# verze 2.3.2
 +
extensions = modoboa-amavis modoboa-webmail modoboa-contacts modoboa-radicale
 +
 +
== Backup ==
 +
Pomocí instalačního skriptu je možné provádět a případně i obnovit kompletni modoba server. V praxi při přechodu mezi verzemi jsem objevil dva skryté problémy:
 +
* Změna rozložení modulů - v nastaveni Modoba - Parametry - Obecné -> Výchozí přesměrování aplokace nastavit Uživatelský profil
 +
* Vytvořit nový konfigurační soubor "installer.cfg", porovnat jej z původním a rozumně původní soubor editovat. Poslední (26.10.2024):
 +
extensions = modoboa-amavis modoboa-webmail modoboa-contacts modoboa-radicale
 +
 +
extensions = modoboa-amavis modoboa-pdfcredentials modoboa-postfix-autoreply modoboa-sievefilters modoboa-webmail modoboa-contacts modoboa-radicale
 +
 +
'''Vytvoření zálohy''':
 +
sudo ./run.py --silent-backup slapnet.cz
 +
cd modoboa_backup
 +
sudo tar -cf modoboa-backup.tar backup_MM_DD_YYYY_HH_mm
 +
 +
'''Obnova ze zálohy''':
 +
sudo tar -xf modoboa-backup.tar
 +
sudo ./run.py --restore ./modoboa_backup/backup_MM_DD_YYYY_HH_mm <your domain>
 +
sudo cp ./modoboa_backup/backup_MM_DD_YYYY_HH_mm/installer.cfg ./installer.cfg
 +
== Přesun ==
 +
Původně jsem se snažil přesunout Modoboa na nový server pomocí zálohy. Bohužel se mi to nedařilo, některé věci v administraci nefungovali, ... Nakonec se mi povedl přesun provést ručně:
 +
 +
# Nainstalujeme kompletně nový systém z Modoboa serverem.
 +
# Z původního sytému přes administraci provedeme export domén a uživatelů.
 +
# Provedeme zálohu adresáře ´/srv/vmail´ kterou přesuneme na nový server.
 +
# Na novém serveru naimportujeme domény a uživatele
 +
# Ze zálohy obnovíme soubory v adresáři ´/srv/vmail´
 +
# Opravíme práva ´sudo chown vmail:vmail -R /srv/vmail´
 +
 
== Let’s Encrypt ==
 
== Let’s Encrypt ==
Pro automatickou aktualizaci certifikátů po běžné instalaci Modoboa doinstalujeme Cerboot. Poté vypneme nginx a vygenerujeme provizorní certifikáty pro všechny potřebné domény.
+
Pro automatickou aktualizaci certifikátů po běžné instalaci Modoboa doinstalujeme Cerboot, viz samostatný odstavec. Poté vypneme nginx:
 +
 
 +
sudo systemctl stop nginx.service
 +
 
 +
Spustíme požadavek na vygenerování provizorního certifikáty pro všechny potřebné domény (musí být již funkční DNS zaznamy).
  
  systemctl stop nginx.service
+
  sudo certbot certonly --standalone -d modo.slapnet.cz -d mail.example.com
 
   
 
   
  certboot certonly -d mail.example.com
+
  sudo certbot delete --cert-path modo.slapnet.cz
 +
sudo certbot --nginx -d modo.slapnet.cz -d mail.example.com
  
budeme dotazani
+
Budeme dotázáni:
 
  How would you like to authenticate with the ACME CA?
 
  How would you like to authenticate with the ACME CA?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
1: Spin up a temporary webserver (standalone)
 
2: Place files in webroot directory (webroot)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1 <- dočasný web server
 
 
  Plugins selected: Authenticator standalone, Installer None
 
  Plugins selected: Authenticator standalone, Installer None
 
  Enter email address (used for urgent renewal and security notices)
 
  Enter email address (used for urgent renewal and security notices)
Řádka 47: Řádka 113:
 
  agree in order to register with the ACME server. Do you agree?
 
  agree in order to register with the ACME server. Do you agree?
 
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  (Y)es/(N)o: Y                              <- souhlasime z podminkami
+
  (Y)es/(N)o: Y                              <- souhlasíme z podmínkami
 
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
  Would you be willing, once your first certificate is successfully issued, to
 
  Would you be willing, once your first certificate is successfully issued, to
Řádka 55: Řádka 121:
 
  EFF news, campaigns, and ways to support digital freedom.
 
  EFF news, campaigns, and ways to support digital freedom.
 
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  (Y)es/(N)o: N                              <- nechci dostavat reklami emaily
+
  (Y)es/(N)o: N                              <- nechci dostávat reklamí emaily
 
 
 
 
 
 
mkdir /srv/modoboa/instance/sitestatic/.well-known
 
 
 
 
 
  
Na závěr v instalačním adresáří přenastavime soubor `installer.cfg`. Email adresu nastavíme na správce, aby byl informován v případě končící platnosti certifikátu:
+
V instalačním adresáři přenastavíme soubor `installer.cfg`. Email adresu nastavíme na správce, aby byl informován v případě končící platnosti certifikátu:
  
 
  [certificate]
 
  [certificate]
Řádka 74: Řádka 134:
 
Poté aktualizujeme instalaci:
 
Poté aktualizujeme instalaci:
 
  sudo ./run.py --upgrade <your domain>
 
  sudo ./run.py --upgrade <your domain>
 +
 +
V případě potřeby spustíme nginx:
 +
systemctl start nginx.service
 +
 +
Nakonec nastavíme adresář a platné parametry pro generování certifikátu (opět ze všemi platnými domény):
 +
mkdir /srv/modoboa/instance/sitestatic/.well-known
 +
certbot certonly --webroot -w /srv/modoboa/instance/sitestatic/ -d mail.example.com
 +
Pravděpodobně budeme opět dotázáni:
 +
What would you like to do?
 +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 +
1: Keep the existing certificate for now
 +
2: Renew & replace the certificate (may be subject to CA rate limits)
 +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 +
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2 <- přegenerujeme, aby se zapsali nove parametry
 +
 +
Pro aplikaci nového certifikátu je potřeba následně restartovat:
 +
sudo systemctl restart dovecot
 +
sudo systemctl restart postfix
 +
sudo systemctl restart nginx
  
 
== Certbot ==
 
== Certbot ==
Řádka 85: Řádka 164:
  
 
V našem případe pro Modoboa nepotřebujeme žádný.
 
V našem případe pro Modoboa nepotřebujeme žádný.
 +
== Roundcube ==
 +
Součástí instalace Modoboa je i uživatelské web rozhraní správu poštovního klienta. To mi ale připadá velmi základní. Oproti tomu mám pocit, že rozhrani Roundcube je mnohem lepší. Navíc se dá k Modoboa doinstalovat, jako nezávisle rozhrani.
 +
* [https://roundcube.net/ Vlastní stránka projektu]
 +
* [https://roundcube.net/download/ Stránka z nejaktuálnější verzí] - doporučuji Complete
 +
* [https://github.com/roundcube/roundcubemail/wiki/Installation Oficiální navod na instalaci]
 +
=== Krok 1 ===
 +
Vzhledem k tomu, že Modoboa neběží oproti Roundcube přes PHP, je nutné jej doinstalovat:
 +
sudo apt install -y php php-fpm php-cgi php-zip php-curl php-imagick php-ldap php-pgsql php-gd php-net-smtp php-mail-mime
 +
sudo apt install -y php-auth-sasl php-intl php-masterminds-html5 php-mbstring php-net-sieve php-net-socket php-pspell
 +
 +
Připravíme si databázi. Prvně vytvoříme uživatele. Budeme vyzváni k zadání hesla, nezapomenout !
 +
sudo -u postgres createuser -e -P roundcube
 +
Následně pro uživatele vytvoříme databazi:
 +
sudo -u postgres createdb -O roundcube -E UNICODE roundcubemail
 +
 +
=== Krok 2 ===
 +
Ze stránek https://roundcube.net/download/ si zkopírujeme odkaz na aktuální verzi (Complete) a ten použijme ke stažení:
 +
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.8/roundcubemail-1.6.8-complete.tar.gz
 +
Následně stažený soubor rozbalíme a nakopírujeme do požadovaného adresáře:
 +
tar -xf $(ls roundcubemail*.tar.gz)
 +
rm $(ls roundcubemail*.tar.gz)
 +
 +
sudo mv $(ls | grep roundcubemail) /var/www/roundcubemail
 +
sudo chmod 777 /var/www/roundcubemail
 +
sudo chown www-data:www-data /var/www/roundcubemail/temp
 +
sudo chown www-data:www-data /var/www/roundcubemail/logs
 +
 +
=== Krok 3 ===
 +
Nastavime/vutvoříme predpis pro nginx:
 +
sudo mcedit /etc/nginx/sites-available/mail.slapnet.cz.conf
 +
 +
server {                          # presmerovani na https protokol
 +
    listen 80;
 +
    listen [::]:80;
 +
    server_name mail.slapnet.cz;
 +
    rewrite ^ https://$server_name$request_uri? permanent;
 +
}
 +
 +
server {
 +
    listen 443 ssl http2;
 +
    listen [::]:443 ssl http2;
 +
    server_name mail.slapnet.cz;
 +
    root /var/www/roundcubemail/;
 +
 +
    ssl_certificate /etc/ssl/certs/modo.slapnet.cz.cert;
 +
    ssl_certificate_key /etc/ssl/private/modo.slapnet.cz.key;
 +
    ssl_protocols TLSv1.2 TLSv1.3;
 +
    ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384";
 +
    ssl_prefer_server_ciphers on;
 +
    ssl_session_cache shared:SSL:10m;
 +
    ssl_verify_depth 3;
 +
    ssl_dhparam /etc/nginx/dhparam.pem;
 +
 +
    client_max_body_size 10M;
 +
 +
    access_log /var/log/nginx/mail.slapnet.cz-access.log;
 +
    error_log  /var/log/nginx/mail.slapnet.cz-error.log;
 +
 +
    location / {                  # spusteni vlastniho roundcubemail
 +
        alias /var/www/roundcubemail/;
 +
        index  index.php;
 +
        try_files $uri $uri/ /index.html = 404;
 +
    }
 +
 +
    location /.well-known/ {      # pro cerbot, potvrzeni certifikatu
 +
        alias /srv/modoboa/instance/sitestatic/.well-known/;
 +
    }
 +
 +
    location ~ \.php$ {            # spousteni php skriptu na nginxu
 +
        include snippets/fastcgi-php.conf;
 +
 +
        # With php-fpm (or other unix sockets):
 +
        fastcgi_pass unix:/run/php/php-fpm.sock;
 +
        # With php-cgi (or other tcp sockets):
 +
        #fastcgi_pass 127.0.0.1:9000;
 +
    }
 +
 +
}
 +
Vytvoříme symlik a restartujeme nginx:
 +
sudo ln -s /etc/nginx/sites-available/mail.slapnet.cz.conf /etc/nginx/sites-enabled/mail.slapnet.cz.conf
 +
sudo systemctl reload nginx.service
 +
 +
=== Krok 4 ===
 +
 +
Spustime instalator na https://mail.slapnet.cz/installer/index.php
 +
 +
Následně se otevře web rozhraní která nás provede kontrolou komponent a nastavením ini souboru pro Randcube.
 +
 +
'''General configuration'''
 +
* ip_check -> true
 +
- enable_spellcheck -> true
 +
* identities_level - Úroveň přístupu k identitám. Definuje, co mohou uživatelé dělat se svou identitou.
 +
** many identities with possibility to edit all params - mnoho identit s možností editace všech parametrů - select
 +
** many identities with possibility to edit all params but not email address - mnoho identit s možností upravit všechny parametry, ale ne e-mailovou adresu
 +
** one identity with possibility to edit all params - jedna identita s možností editace všech parametrů
 +
** one identity with possibility to edit all params but not email address - jedna identita s možností upravovat všechny parametry, ale ne e-mailovou adresu
 +
** one identity with possibility to edit only signature - jedna identita s možností editace pouze podpisu
 +
 +
'''Display settings & user prefs'''
 +
* language -> "cz_CZ"
 +
* ...
 +
* mime_param_folding -> Full RFC 2231 (Rouncube, Thunderbird)
 +
 +
'''Plugins'''
 +
* acl
 +
* additional_message_headers
 +
* archive
 +
* attachment_reminder
 +
* ''autologon''
 +
* autologout
 +
* database_attachments
 +
* ''debug_logger''
 +
* emoticons
 +
* enigma
 +
* example_addressbook
 +
* 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_query''
 +
* zipdownload
 +
 +
 +
 +
 +
Po nastavení hesla pro SQL databazi, nezapomeňme databazi inicializovat !
 +
 +
Na zavěr uložíme konfiguraci do /tmp a poté přesuneme:
 +
sudo mv /tmp/config.inc.php /var/www/roundcubemail/config/config.inc.php
 +
Poté je již možné se přihlásit do Roundcube. Pokud je vše v pořádku, zablokujeme instalační skript:
 +
sudo chmod 700 /var/www/roundcubemail/installer/
 +
nebo vložte do konfigurace:
 +
sudo mcedit /var/www/roundcubemail/config/config.inc.php
 +
 +
// Zablokuj pristup kinstalacnimu skriptu
 +
$config['enable_installer'] = false;
 +
 +
== Migrace IMAP ==
 +
* https://imapsync.lamiral.info/
 +
* https://github.com/imapsync/imapsync
  
 
== Odkazy ==
 
== Odkazy ==

Aktuální verze z 28. 10. 2024, 22:58

Úvod

Jedna se o pomerně jednoduchy kompletni email server z web administrací. Domovská stránka projektu je https://modoboa.org.

Příprava instalace

Pro novou instalaci si připravíme nejnovější distribuci Debiana, provedeme aktualizace a doinstalujem potřebne balíčky

sudo apt update && sudo apt -y upgrade
sudo apt -y install sudo ssh mc git python3
sudo apt -y autoremove

Příprava DNS

Pro snadnou instalaci a funkcionalitu je dobré si předem nastavit potřebne DNS zaznamy:

        mail IN A <IP adresa email serveru>

           @ IN MX 10 mail

           @ IN TXT "v=spf1 mx ~all"
      _dmarc IN TXT "v=DMARC1; p=quarantine; pct=100;"

  autoconfig IN CNAME mail
autodiscover IN CNAME mail

V případě kdy v konfiguraci povolíme podepisovíní metodou DKIM, bude potřeba přidat ještě dalsi TXT zaznam.

Instalace

Vlastní instalaci provedeme dle oficiálního návodu - https://modoboa.readthedocs.io/en/latest/

git clone https://github.com/modoboa/modoboa-installer
cd modoboa-installer
./run.py --stop-after-configfile-check <your domain>

Tímto připravíme konfigurační soubor 'installer.cfg' pro instalaci Modoby. V něm pak provedeme požadované změny aby instalace byla provedena dle naších představ.

[general]
hostname = modo.%(domain)s

[certificate]
type = letsencrypt
...
[letsencrypt]
email = admin@<your domain>

Po nastaveni spustíme vlastni instalaci:

sudo ./run.py <your domain>

Pozor: Pokud chceme provést obnovu ze zálohy, tak konfigurační soubor porovnáme ze zálohou a patřičně upravíme.

Upgrade

By také melo být velice jednoduché. V návodě je sice postup, ale k instalátoru byl přidán parametr --upgrade. Tudíž by mělo stačit

#git clone https://github.com/modoboa/modoboa-installer # jen pokud nemame zatim stazeno
cd modoboa-installer
git pull
sudo ./run.py --upgrade <your domain>

Vzhledem k indovidualní konfiguraci je pak potřeba opravit konfigurace:

  • /etc/nginx/sites-available/modo.slapnet.cz
  • /etc/nginx/sites-available/autoconfig.slapnet.cz


  • /etc/postfix/main.conf
  • /etc/postfix/master.cf

Poznámka:

V rámci vývoje se mění seznam modulů vlastni modoboa který je definován v souboru installer.cfg. Proto je vhodné tento seznam následně také upravit.

# verze 2.2.0
extensions = modoboa-amavis modoboa-pdfcredentials modoboa-postfix-autoreply modoboa-sievefilters modoboa-webmail modoboa-contacts modoboa-radicale

# verze 2.3.2
extensions = modoboa-amavis modoboa-webmail modoboa-contacts modoboa-radicale

Backup

Pomocí instalačního skriptu je možné provádět a případně i obnovit kompletni modoba server. V praxi při přechodu mezi verzemi jsem objevil dva skryté problémy:

  • Změna rozložení modulů - v nastaveni Modoba - Parametry - Obecné -> Výchozí přesměrování aplokace nastavit Uživatelský profil
  • Vytvořit nový konfigurační soubor "installer.cfg", porovnat jej z původním a rozumně původní soubor editovat. Poslední (26.10.2024):
extensions = modoboa-amavis modoboa-webmail modoboa-contacts modoboa-radicale
extensions = modoboa-amavis modoboa-pdfcredentials modoboa-postfix-autoreply modoboa-sievefilters modoboa-webmail modoboa-contacts modoboa-radicale

Vytvoření zálohy:

sudo ./run.py --silent-backup slapnet.cz
cd modoboa_backup
sudo tar -cf modoboa-backup.tar backup_MM_DD_YYYY_HH_mm

Obnova ze zálohy:

sudo tar -xf modoboa-backup.tar
sudo ./run.py --restore ./modoboa_backup/backup_MM_DD_YYYY_HH_mm <your domain>
sudo cp ./modoboa_backup/backup_MM_DD_YYYY_HH_mm/installer.cfg ./installer.cfg

Přesun

Původně jsem se snažil přesunout Modoboa na nový server pomocí zálohy. Bohužel se mi to nedařilo, některé věci v administraci nefungovali, ... Nakonec se mi povedl přesun provést ručně:

  1. Nainstalujeme kompletně nový systém z Modoboa serverem.
  2. Z původního sytému přes administraci provedeme export domén a uživatelů.
  3. Provedeme zálohu adresáře ´/srv/vmail´ kterou přesuneme na nový server.
  4. Na novém serveru naimportujeme domény a uživatele
  5. Ze zálohy obnovíme soubory v adresáři ´/srv/vmail´
  6. Opravíme práva ´sudo chown vmail:vmail -R /srv/vmail´

Let’s Encrypt

Pro automatickou aktualizaci certifikátů po běžné instalaci Modoboa doinstalujeme Cerboot, viz samostatný odstavec. Poté vypneme nginx:

sudo systemctl stop nginx.service

Spustíme požadavek na vygenerování provizorního certifikáty pro všechny potřebné domény (musí být již funkční DNS zaznamy).

sudo certbot certonly --standalone -d modo.slapnet.cz -d mail.example.com

sudo certbot delete --cert-path modo.slapnet.cz
sudo certbot --nginx -d modo.slapnet.cz -d mail.example.com

Budeme dotázáni:

How would you like to authenticate with the ACME CA?
Plugins selected: Authenticator standalone, Installer None
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): admin@example.com  <- email na který bude chodit upozornen i o expiraci
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y                              <- souhlasíme z podmínkami
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N                              <- nechci dostávat reklamí emaily

V instalačním adresáři přenastavíme soubor `installer.cfg`. Email adresu nastavíme na správce, aby byl informován v případě končící platnosti certifikátu:

[certificate]
generate = true
type = letsencrypt

[letsencrypt]
email = admin@example.com

Poté aktualizujeme instalaci:

sudo ./run.py --upgrade <your domain>

V případě potřeby spustíme nginx:

systemctl start nginx.service

Nakonec nastavíme adresář a platné parametry pro generování certifikátu (opět ze všemi platnými domény):

mkdir /srv/modoboa/instance/sitestatic/.well-known
certbot certonly --webroot -w /srv/modoboa/instance/sitestatic/ -d mail.example.com

Pravděpodobně budeme opět dotázáni: What would you like to do?

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Keep the existing certificate for now
2: Renew & replace the certificate (may be subject to CA rate limits)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2 <- přegenerujeme, aby se zapsali nove parametry

Pro aplikaci nového certifikátu je potřeba následně restartovat:

sudo systemctl restart dovecot
sudo systemctl restart postfix
sudo systemctl restart nginx

Certbot

V aktuální verzi instalatoru (k 5.3.2023) není cerbut zahrnut, aby byl funkční. Pokud ale chceme mít aktuální certifikáty, tak je nutné ručně doinstalovat.

Základni instalace (python3 pravděpodobně bude již nainstalovám):

apt install -y python3 certbot

Másledně si zkontrolijeme jaké rozšiřující moduli jsou k dispozici a podle potřeby doinstalujeme:

apt list python3-certbot*

V našem případe pro Modoboa nepotřebujeme žádný.

Roundcube

Součástí instalace Modoboa je i uživatelské web rozhraní správu poštovního klienta. To mi ale připadá velmi základní. Oproti tomu mám pocit, že rozhrani Roundcube je mnohem lepší. Navíc se dá k Modoboa doinstalovat, jako nezávisle rozhrani.

Krok 1

Vzhledem k tomu, že Modoboa neběží oproti Roundcube přes PHP, je nutné jej doinstalovat:

sudo apt install -y php php-fpm php-cgi php-zip php-curl php-imagick php-ldap php-pgsql php-gd php-net-smtp php-mail-mime
sudo apt install -y php-auth-sasl php-intl php-masterminds-html5 php-mbstring php-net-sieve php-net-socket php-pspell

Připravíme si databázi. Prvně vytvoříme uživatele. Budeme vyzváni k zadání hesla, nezapomenout !

sudo -u postgres createuser -e -P roundcube

Následně pro uživatele vytvoříme databazi:

sudo -u postgres createdb -O roundcube -E UNICODE roundcubemail

Krok 2

Ze stránek https://roundcube.net/download/ si zkopírujeme odkaz na aktuální verzi (Complete) a ten použijme ke stažení:

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

Následně stažený soubor rozbalíme a nakopírujeme do požadovaného adresáře:

tar -xf $(ls roundcubemail*.tar.gz)
rm $(ls roundcubemail*.tar.gz)

sudo mv $(ls | grep roundcubemail) /var/www/roundcubemail
sudo chmod 777 /var/www/roundcubemail
sudo chown www-data:www-data /var/www/roundcubemail/temp
sudo chown www-data:www-data /var/www/roundcubemail/logs

Krok 3

Nastavime/vutvoříme predpis pro nginx:

sudo mcedit /etc/nginx/sites-available/mail.slapnet.cz.conf
server {                           # presmerovani na https protokol
    listen 80;
    listen [::]:80;
    server_name mail.slapnet.cz;
    rewrite ^ https://$server_name$request_uri? permanent;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name mail.slapnet.cz;
    root /var/www/roundcubemail/;

    ssl_certificate /etc/ssl/certs/modo.slapnet.cz.cert;
    ssl_certificate_key /etc/ssl/private/modo.slapnet.cz.key;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384";
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_verify_depth 3;
    ssl_dhparam /etc/nginx/dhparam.pem;

    client_max_body_size 10M;

    access_log /var/log/nginx/mail.slapnet.cz-access.log;
    error_log  /var/log/nginx/mail.slapnet.cz-error.log;

    location / {                   # spusteni vlastniho roundcubemail
        alias /var/www/roundcubemail/;
        index  index.php;
        try_files $uri $uri/ /index.html = 404;
    }

    location /.well-known/ {       # pro cerbot, potvrzeni certifikatu
        alias /srv/modoboa/instance/sitestatic/.well-known/;
    }

    location ~ \.php$ {            # spousteni php skriptu na nginxu
        include snippets/fastcgi-php.conf;

        # With php-fpm (or other unix sockets):
        fastcgi_pass unix:/run/php/php-fpm.sock;
        # With php-cgi (or other tcp sockets):
        #fastcgi_pass 127.0.0.1:9000;
    }

}

Vytvoříme symlik a restartujeme nginx:

sudo ln -s /etc/nginx/sites-available/mail.slapnet.cz.conf /etc/nginx/sites-enabled/mail.slapnet.cz.conf
sudo systemctl reload nginx.service

Krok 4

Spustime instalator na https://mail.slapnet.cz/installer/index.php

Následně se otevře web rozhraní která nás provede kontrolou komponent a nastavením ini souboru pro Randcube.

General configuration

  • ip_check -> true

- enable_spellcheck -> true

  • identities_level - Úroveň přístupu k identitám. Definuje, co mohou uživatelé dělat se svou identitou.
    • many identities with possibility to edit all params - mnoho identit s možností editace všech parametrů - select
    • many identities with possibility to edit all params but not email address - mnoho identit s možností upravit všechny parametry, ale ne e-mailovou adresu
    • one identity with possibility to edit all params - jedna identita s možností editace všech parametrů
    • one identity with possibility to edit all params but not email address - jedna identita s možností upravovat všechny parametry, ale ne e-mailovou adresu
    • one identity with possibility to edit only signature - jedna identita s možností editace pouze podpisu

Display settings & user prefs

  • language -> "cz_CZ"
  • ...
  • mime_param_folding -> Full RFC 2231 (Rouncube, Thunderbird)

Plugins

  • acl
  • additional_message_headers
  • archive
  • attachment_reminder
  • autologon
  • autologout
  • database_attachments
  • debug_logger
  • emoticons
  • enigma
  • example_addressbook
  • 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_query
  • zipdownload



Po nastavení hesla pro SQL databazi, nezapomeňme databazi inicializovat !

Na zavěr uložíme konfiguraci do /tmp a poté přesuneme:

sudo mv /tmp/config.inc.php /var/www/roundcubemail/config/config.inc.php

Poté je již možné se přihlásit do Roundcube. Pokud je vše v pořádku, zablokujeme instalační skript:

sudo chmod 700 /var/www/roundcubemail/installer/

nebo vložte do konfigurace:

sudo mcedit /var/www/roundcubemail/config/config.inc.php

// Zablokuj pristup kinstalacnimu skriptu
$config['enable_installer'] = false;

Migrace IMAP

Odkazy