Roundcube webmail — instalacja i konfiguracja
Opublikowano: 10 kwietnia 2026 · Kategoria: Hosting / Poczta
Roundcube to jeden z najpopularniejszych webmaili open-source — elegancki interfejs AJAX, obsługa wielu kont, filtry, kontakty i szerokie możliwości rozszerzenia przez pluginy. Jeśli stawiasz własny serwer pocztowy (Postfix + Dovecot), Roundcube jest naturalnym wyborem jako interfejs webowy. Można go też podpiąć do zewnętrznych serwerów IMAP (Gmail, O365, własny hosting). Ten artykuł pokazuje instalację, konfigurację i podstawowe zabezpieczenia.
Instalacja — Ubuntu z Nginx i PHP-FPM
# Zaleznosci sudo apt update sudo apt install nginx php8.1-fpm php8.1-mysql php8.1-intl \ php8.1-json php8.1-mbstring php8.1-iconv php8.1-curl \ php8.1-zip php8.1-xml mariadb-server -y # Pobierz Roundcube (wersja stabilna) cd /var/www/html wget https://github.com/roundcube/roundcubemail/releases/download/1.6.6/roundcubemail-1.6.6-complete.tar.gz tar -xzf roundcubemail-1.6.6-complete.tar.gz mv roundcubemail-1.6.6 roundcube chown -R www-data:www-data roundcube/ # Baza danych sudo mysql -u root <<SQLEOF CREATE DATABASE roundcube CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'roundcube'@'localhost' IDENTIFIED BY 'BezpieczneHaslo2026!'; GRANT ALL PRIVILEGES ON roundcube.* TO 'roundcube'@'localhost'; FLUSH PRIVILEGES; SQLEOF # Import schematu mysql -u roundcube -p roundcube < /var/www/html/roundcube/SQL/mysql.initial.sql
Konfiguracja Nginx z HTTPS
# /etc/nginx/sites-available/roundcube
server {
listen 80;
server_name webmail.twojadomena.pl;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name webmail.twojadomena.pl;
ssl_certificate /etc/letsencrypt/live/webmail.twojadomena.pl/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/webmail.twojadomena.pl/privkey.pem;
root /var/www/html/roundcube;
index index.php;
# Ukryj wrazliwe katalogi
location ~ ^/(config|temp|logs)/ { deny all; }
location ~ /\. { deny all; }
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
# Limit uploadow (zalaczniki)
client_max_body_size 25m;
} sudo ln -s /etc/nginx/sites-available/roundcube /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx
Konfiguracja — config.inc.php
Skopiuj przykładowy plik konfiguracyjny i dostosuj kluczowe parametry:
cd /var/www/html/roundcube/config cp config.inc.php.sample config.inc.php nano config.inc.php
# Kluczowe ustawienia w config.inc.php # DSN bazy danych $config['db_dsnw'] = 'mysql://roundcube:BezpieczneHaslo2026!@localhost/roundcube'; # Serwer IMAP — Dovecot SSL (port 993) $config['default_host'] = 'ssl://localhost'; $config['default_port'] = 993; # Serwer SMTP — Postfix SUBMISSION z TLS (port 587) $config['smtp_server'] = 'tls://localhost'; $config['smtp_port'] = 587; $config['smtp_user'] = '%u'; # uzytkownik z sesji IMAP $config['smtp_pass'] = '%p'; # haslo z sesji IMAP # Unikalny klucz szyfrowania sesji (wygeneruj: openssl rand -base64 18) $config['des_key'] = 'TwojeUnikalneHaslo24znaki!'; # Bezpieczenstwo $config['ip_check'] = true; $config['session_lifetime'] = 10; $config['force_https'] = true; # Wyglad $config['skin'] = 'elastic'; $config['language'] = 'pl_PL'; $config['product_name'] = 'Webmail'; # Maksymalny rozmiar zalacznikow $config['max_message_size'] = '25M'; # Wlaczone pluginy $config['plugins'] = ['archive', 'zipdownload', 'managesieve'];
Konfiguracja Postfix i Dovecot dla Roundcube
Roundcube łączy się do Dovecot przez IMAP (SSL port 993) i do Postfix przez SMTP SUBMISSION (TLS port 587). Kluczowe ustawienia po stronie serwera pocztowego:
# /etc/postfix/main.cf — upewnij sie ze submission jest wlaczony
# /etc/postfix/master.cf — port 587 z SASL auth
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
# /etc/dovecot/conf.d/10-master.conf
# Unix socket dla SASL (Postfix laczy sie tutaj)
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}
# Restart obu uslug po zmianach
sudo systemctl restart postfix dovecot Pluginy — CardDAV i Calendar
# Plugin CardDAV (synchronizacja kontaktow z Nextcloud/Baikal)
# Pobierz rcmcarddav z GitHub
cd /var/www/html/roundcube/plugins
git clone https://github.com/mstilkerich/rcmcarddav.git carddav
cd carddav && composer install --no-dev
# Dodaj 'carddav' do $config['plugins'] w config.inc.php
# Po zalogowaniu uzytkownik konfiguruje CardDAV server w:
# Ustawienia > Kontakty > Dodaj ksiazke adresowa CardDAV
# URL: https://nextcloud.twojadomena.pl/remote.php/dav/addressbooks/users/LOGIN/contacts/
# Plugin Managesieve (filtry wiadomosci Sieve/Dovecot)
# Juz wbudowany — wymaga Dovecot z wtyczka sieve
sudo apt install dovecot-sieve dovecot-managesieved -y
# W /etc/dovecot/conf.d/20-managesieve.conf
# service managesieve-login { ... } — zwykle juz skonfigurowany
sudo systemctl restart dovecot
# Dodaj 'managesieve' do $config['plugins'] i ustaw port:
# $config['managesieve_port'] = 4190; Skórki (skins) — Elastic i Classic
| Skórka | Wygląd | Responsywna | Zalecana dla |
|---|---|---|---|
| elastic | Nowoczesna, Material Design | Tak (mobile-first) | Produkcja — domyślna od RC 1.4 |
| classic | Tradycyjna, 3-kolumnowa | Częściowo | Użytkownicy przyzwyczajeni do starego UI |
| larry | Nowoczesna (starsza) | Nie | Znikająca — migruj do elastic |
Zabezpieczenia i fail2ban
- Usuń instalator po zakończeniu konfiguracji:
rm -rf /var/www/html/roundcube/installer/— zostawienie go to krytyczna luka. - fail2ban — utwórz regułę dla Roundcube loginów: filtruj
/var/log/roundcube/errors.logna frazyIMAP Error: Login failed— ban po 5 próbach w 10 min. - CSP header w Nginx:
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'"; - Aktualizacje — Roundcube jest aktywnie rozwijany. Sprawdzaj nowe wersje i aktualizuj przed publikacją exploitów. Obs: w 2023 odkryto CVE-2023-5631 (stored XSS).
- Ograniczenie dostępu do IP — jeśli webmail jest tylko dla pracowników, rozważ
ograniczenie dostępu do znanych sieci przez Nginx (
allow IP; deny all;).