Modoboa: Porovnání verzí

Z Poznámkový blok
Přejít na: navigace, hledání
(Upgrade)
(Přesun)
 
(Není zobrazeno 15 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
  
  sudo apt update && sudo apt upgrade
+
  sudo apt update && sudo apt -y upgrade
 
  sudo apt -y install sudo ssh mc git python3
 
  sudo apt -y install sudo ssh mc git python3
  sudo apt autoremove
+
  sudo apt -y autoremove
  
 
== Příprava DNS ==
 
== Příprava DNS ==
Řádka 30: Řádka 30:
 
  [general]
 
  [general]
 
  hostname = modo.%(domain)s
 
  hostname = modo.%(domain)s
 +
 +
[certificate]
 +
type = letsencrypt
 
  ...
 
  ...
 
  [letsencrypt]
 
  [letsencrypt]
Řádka 40: Řádka 43:
 
== 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:
 
Vzhledem k indovidualní konfiguraci je pak potřeba opravit konfigurace:
Řádka 52: Řádka 56:
  
 
'''Poznámka''':
 
'''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.
 
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.3
+
# 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
 
  extensions = modoboa-amavis modoboa-webmail modoboa-contacts modoboa-radicale
  
Řádka 59: Řádka 67:
 
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:
 
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
 
* 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.
+
* 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''':
 
'''Vytvoření zálohy''':
 
  sudo ./run.py --silent-backup slapnet.cz
 
  sudo ./run.py --silent-backup slapnet.cz
 
  cd modoboa_backup
 
  cd modoboa_backup
  sudo tar -cf modoba_backup.tar backup_MM_DD_YYYY_HH_mm
+
  sudo tar -cf modoboa-backup.tar backup_MM_DD_YYYY_HH_mm
  
 
'''Obnova ze zálohy''':
 
'''Obnova ze zálohy''':
  sudo ./run.py --restore ./modoboa_backup/backup_MM_DD_YYYY_HH_mm
+
sudo tar -xf modoboa-backup.tar
  sudo ./modoboa_backup/backup_MM_DD_YYYY_HH_mm/installer.cfg ./installer.cfg
+
  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, viz samostatný odstavec. Poté vypneme nginx:
 
Pro automatickou aktualizaci certifikátů po běžné instalaci Modoboa doinstalujeme Cerboot, viz samostatný odstavec. Poté vypneme nginx:
  
  systemctl stop nginx.service
+
  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).
 
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).
  
  certbot certonly --standalone -d modo.slapnet.cz -d mail.example.com
+
  sudo certbot certonly --standalone -d modo.slapnet.cz -d mail.example.com
 
   
 
   
 
  sudo certbot delete --cert-path modo.slapnet.cz
 
  sudo certbot delete --cert-path modo.slapnet.cz
Řádka 127: Řádka 148:
 
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
  Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2 <- přegenerujeme, aby se zapsali nove parametry
 
  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 ==

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