Modoboa: Porovnání verzí
(→Krok 3) |
(→Roundcube) |
||
Řádka 114: | Řádka 114: | ||
* [https://roundcube.net/download/ Stránka z nejaktuálnější verzí] - doporučuji Complete | * [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] | * [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: | Vzhledem k tomu, že Modoboa neběží oproti Roundcube přes PHP, je nutné jej doinstalovat: | ||
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 | 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 | ||
apt install -y php-auth-sasl php-intl php-masterminds-html5 php-mbstring php-net-sieve php-net-socket php-pspell | 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 | sudo -u postgres createuser -e -P roundcube | ||
+ | Následně pro uživatele vytvoříme databazi: | ||
sudo -u postgres createdb -O roundcube -E UNICODE roundcubemail | sudo -u postgres createdb -O roundcube -E UNICODE roundcubemail | ||
− | + | ||
− | === Krok 2 | + | === 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í: | 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> | wget <https://github.com/roundcube/roundcubemail/releases/download/1.6.8/roundcubemail-1.6.8-complete.tar.gz> | ||
Řádka 132: | Řádka 135: | ||
sudo chown www-data:www-data /var/www/roundcube/temp | sudo chown www-data:www-data /var/www/roundcube/temp | ||
sudo chown www-data:www-data /var/www/roundcube/logs | sudo chown www-data:www-data /var/www/roundcube/logs | ||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Krok 3 === | === Krok 3 === | ||
Řádka 188: | Řádka 186: | ||
} | } | ||
− | + | Vytvoříme symlik a restartujeme nginx: | |
+ | ls ... | ||
+ | sudo systemctl reload nginx | ||
=== Krok 4 === | === Krok 4 === | ||
Spustime instalator na https://mail.slapnet.cz/installer/index.php | 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. | ||
== Migrace IMAP == | == Migrace IMAP == |
Verze z 10. 8. 2024, 13:49
Obsah
Ú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 upgrade sudo apt -y install sudo ssh mc git python3 sudo apt 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 sudo ./run.py <your domain>
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 cd modoboa-installer 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
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.
Let’s Encrypt
Pro automatickou aktualizaci certifikátů po běžné instalaci Modoboa doinstalujeme Cerboot, viz samostatný odstavec. Poté vypneme nginx:
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).
certbot certonly --standalone -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
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.
- Vlastní stránka projektu
- Stránka z nejaktuálnější verzí - doporučuji Complete
- Oficiální navod na instalaci
Krok 1
Vzhledem k tomu, že Modoboa neběží oproti Roundcube přes PHP, je nutné jej doinstalovat:
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 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 roundcubemail-1.6.8-complete.tar.gz sudo sudo cp -ar roundcubemail-1.6.8 /var/www/ sudo mv /var/www/roundcubemail-1.6.8 /var/www/roundcube sudo chmod 777 /var/www/roundcube sudo chown www-data:www-data /var/www/roundcube/temp sudo chown www-data:www-data /var/www/roundcube/logs
Krok 3
Nastavime/vutvoříme predpis pro nginx:
server { listen 80; listen [::]:80; server_name mail.slapnet.cz; rewrite ^ https://$server_name$request_uri? permanent; } server { listen 443 ssl; listen [::]:443 ssl; server_name mail.slapnet.cz; root /var/www/roundcube/ 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 / { alias /var/www/roundcube/ index index.php; try_files $uri $uri/ /index.html = 404; } location /.well-known/ { alias /srv/modoboa/instance/sitestatic/.well-known/; } location ~ \.php$ { 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:
ls ... sudo systemctl reload nginx
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.