Perfekcyjna Konfiguracja Multiservera ISPConfig na Ubuntu 24.04 i Debian 12

Perfekcyjna Konfiguracja Multiservera ISPConfig na Ubuntu 24.04 i Debian 12

 

Współczesne rozwiązania hostingowe często wymagają elastyczności i skalowalności. **ISPConfig** to potężny panel kontrolny do zarządzania serwerami, który idealnie nadaje się do konfiguracji wielu maszyn (multiserver setup). Dzięki niemu możesz rozdzielić usługi takie jak serwery WWW, bazy danych czy poczta elektroniczna na dedykowane maszyny, zwiększając wydajność i bezpieczeństwo.

Ten przewodnik pokaże Ci, jak zbudować wydajną i niezawodną konfigurację multiservera ISPConfig, wykorzystując najnowsze wersje systemów operacyjnych **Ubuntu 24.04 (Noble Numbat)** i **Debian 12 (Bookworm)**. Omówimy konfigurację serwera głównego (master) oraz serwerów podrzędnych (slave), przygotowując Cię do profesjonalnego zarządzania infrastrukturą.

Uwaga: Ten przewodnik zakłada, że masz podstawową wiedzę na temat zarządzania serwerami Linux i poleceń terminala. Wszelkie polecenia należy wykonywać z uprawnieniami roota lub za pomocą `sudo`.

Spis Treści

  1. Wprowadzenie do Konfiguracji Multiserverowej ISPConfig
  2. Wymagania Wstępne
  3. Przygotowanie Systemu Bazowego (Master i Slave)
  4. Konfiguracja Zapory Sieciowej (UFW)
  5. Konfiguracja Serwera Głównego (Master) ISPConfig
  6. Konfiguracja Serwerów Podrzędnych (Slave) ISPConfig
  7. Konfiguracja Wspólnych Usług w Konfiguracji Multiserverowej
  8. Testowanie i Weryfikacja Konfiguracji
  9. Zaawansowane Wskazówki i Optymalizacja
  10. Podsumowanie

1. Wprowadzenie do Konfiguracji Multiserverowej ISPConfig

Konfiguracja multiserverowa ISPConfig pozwala na rozproszenie obciążenia i usług na wiele serwerów fizycznych lub wirtualnych. Typowy scenariusz to:

  • Serwer Master: Zarządza panelem ISPConfig, bazami danych dla ISPConfig, DNS i często WWW.
  • Serwer(y) Slave: Obsługują określone usługi, np. dodatkowe serwery WWW, bazy danych dla klientów, serwery pocztowe, czy serwery DNS.

Zalety takiego podejścia to:

  • Wydajność: Rozłożenie obciążenia na wiele maszyn.
  • Niezawodność: Awaria jednej usługi (np. serwera pocztowego) nie wpływa na inne (np. serwery WWW).
  • Bezpieczeństwo: Izolacja usług zmniejsza ryzyko naruszeń.
  • Skalowalność: Łatwe dodawanie nowych serwerów slave w miarę wzrostu potrzeb.

2. Wymagania Wstępne

Do tej konfiguracji będziesz potrzebować co najmniej dwóch serwerów (fizycznych lub VPS) z zainstalowanym czystym systemem:

  • **Ubuntu 24.04 LTS (Noble Numbat)** lub
  • **Debian 12 (Bookworm)**

Dla każdego serwera:

  • **Dostęp root** lub użytkownik z uprawnieniami sudo.
  • **Statyczny adres IP** dla każdego serwera.
  • **Nazwy hostów (FQDN)** dla każdego serwera (np. master.example.com, web1.example.com, mail.example.com).
  • **Minimum 2 GB RAM** (zalecane 4 GB lub więcej dla serwera Master, w zależności od liczby zarządzanych stron/użytkowników).
  • **Minimum 20 GB przestrzeni dyskowej**.
  • **Otwarty port 8080/tcp** (dla panelu ISPConfig) oraz porty dla usług (22/ssh, 80/http, 443/https, 25/smtp, 587/submission, 465/smtps, 110/pop3, 995/pop3s, 143/imap, 993/imaps, 53/tcp+udp dla DNS, 3306/tcp dla MySQL/MariaDB).
Ważne: Upewnij się, że serwery mogą komunikować się ze sobą po wszystkich wymaganych portach. W środowiskach chmurowych może być konieczna konfiguracja grup bezpieczeństwa (security groups) lub firewalli na poziomie dostawcy.

3. Przygotowanie Systemu Bazowego (Master i Slave)

Te kroki należy wykonać na wszystkich serwerach (Master i Slave).

Aktualizacja Systemu

Zawsze zacznij od aktualizacji list pakietów i uaktualnienia istniejących pakietów do najnowszych wersji.

sudo apt update && sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo apt autoremove -y

Konfiguracja Nazwy Hostów

Ustaw unikalną i w pełni kwalifikowaną nazwę hosta (FQDN) dla każdego serwera. Upewnij się, że rekordy DNS dla tych nazw hostów wskazują na odpowiednie adresy IP.

Na Serwerze Master:

sudo hostnamectl set-hostname master.example.com

Na Serwerze Slave 1 (np. serwer WWW):

sudo hostnamectl set-hostname web1.example.com

Na Serwerze Slave 2 (np. serwer pocztowy):

sudo hostnamectl set-hostname mail.example.com

Edycja Pliku /etc/hosts

Dodaj wpisy dla wszystkich serwerów w pliku /etc/hosts na każdym serwerze. Dzięki temu serwery będą mogły poprawnie rozpoznawać się nawzajem po nazwach FQDN bez konieczności polegania wyłącznie na DNS.

sudo nano /etc/hosts

Dodaj następujące linie (zastąp adresy IP i nazwy hostów swoimi):

127.0.0.1       localhost
127.0.1.1       master.example.com  master
YOUR_MASTER_IP  master.example.com  master
YOUR_WEB1_IP    web1.example.com    web1
YOUR_MAIL_IP    mail.example.com    mail

# Opcjonalnie, jeśli masz więcej serwerów
# YOUR_DB_IP      db1.example.com     db1

Zapisz i zamknij plik (Ctrl+O, Enter, Ctrl+X).

Konfiguracja Autoryzacji Kluczem SSH (Dla Automatyzacji)

Chociaż nie jest to ściśle wymagane dla samej instalacji ISPConfig, skonfigurowanie autoryzacji kluczem SSH między serwerem Master a Slave’ami jest kluczowe dla bezpieczeństwa i ułatwia automatyzację (np. za pomocą Ansible) oraz niektóre wewnętrzne procesy ISPConfig.

Generowanie klucza SSH na serwerze Master:

ssh-keygen -t rsa -b 4096 -C "ispconfig_master_key"

Naciśnij Enter dla domyślnej lokalizacji i bez hasła (jeśli planujesz automatyzację, bez hasła jest wygodniejsze, ale mniej bezpieczne; z hasłem będzie wymagało agenta SSH).

Kopiowanie klucza publicznego na serwery Slave:

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

Zastąp `your_user` nazwą użytkownika z uprawnieniami sudo na serwerach slave. Zostaniesz poproszony o hasło tego użytkownika.

Przetestuj połączenie SSH bez hasła:

ssh [email protected]

Powinieneś zalogować się bez podawania hasła. Powtórz dla wszystkich serwerów slave.

4. Konfiguracja Zapory Sieciowej (UFW)

**UFW (Uncomplicated Firewall)** to prosty w obsłudze firewall dla Linuksa. Zainstaluj i skonfiguruj go na **wszystkich serwerach**.

Instalacja UFW

sudo apt install ufw -y

Domyślne Reguły

UFW domyślnie blokuje połączenia przychodzące. Zezwól na połączenia wychodzące.

sudo ufw default deny incoming
sudo ufw default allow outgoing

Zezwolenie na Wymagane Porty

Poniżej przedstawiono standardowe porty. Dostosuj je do ról poszczególnych serwerów. Na serwerze Master MUSI być otwarty port 8080.

Wspólne porty (na każdym serwerze):

sudo ufw allow ssh             # Port 22 - Dostęp SSH
sudo ufw allow http            # Port 80 - HTTP
sudo ufw allow https           # Port 443 - HTTPS
sudo ufw allow 53/tcp          # Port 53 - DNS TCP (dla stref)
sudo ufw allow 53/udp          # Port 53 - DNS UDP (dla zapytań)

Dodatkowe porty dla serwera Master:

sudo ufw allow 8080/tcp comment 'ISPConfig Panel' # Panel ISPConfig
# Jeśli Master będzie miał MySQL dla stron WWW:
sudo ufw allow 3306/tcp comment 'MySQL/MariaDB'

Dodatkowe porty dla serwera pocztowego (Mail Slave):

sudo ufw allow 25/tcp comment 'SMTP'
sudo ufw allow 587/tcp comment 'Submission'
sudo ufw allow 465/tcp comment 'SMTPS'
sudo ufw allow 110/tcp comment 'POP3'
sudo ufw allow 995/tcp comment 'POP3S'
sudo ufw allow 143/tcp comment 'IMAP'
sudo ufw allow 993/tcp comment 'IMAPS'

Dodatkowe porty dla serwera WWW (Web Slave):

Zwykle wystarczą porty 80 i 443, już dodane w „wspólnych portach”.

Dodatkowe porty dla serwera baz danych (DB Slave):

sudo ufw allow 3306/tcp comment 'MySQL/MariaDB'

Włączenie UFW

Po skonfigurowaniu reguł, włącz firewall. Zostaniesz poproszony o potwierdzenie.

sudo ufw enable

Potwierdź, wpisując y.

Sprawdź status UFW:

sudo ufw status verbose

5. Konfiguracja Serwera Głównego (Master) ISPConfig

Te kroki wykonaj tylko na serwerze Master.

5.1 Instalacja Wymaganych Pakietów

ISPConfig wymaga szeregu pakietów, takich jak serwer WWW, baza danych, PHP, serwer pocztowy (nawet jeśli usługi pocztowe będą na Slave, Master nadal potrzebuje Postfixa do wysyłki powiadomień) i serwer DNS.

# Dla Ubuntu 24.04
sudo apt install apache2 apache2-utils php8.3 libapache2-mod-php8.3 php8.3-common php8.3-mysql php8.3-xml php8.3-gd php8.3-imap php8.3-cli php8.3-cgi php8.3-curl php8.3-zip php8.3-mbstring php8.3-soap php8.3-intl php8.3-fpm php8.3-ldap php8.3-dev php-pear php-imagick php-zip php-xmlrpc -y
sudo apt install mariadb-server mariadb-client -y
sudo apt install postfix postfix-mysql postfix-sasl-authd dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-mysql opendkim opendkim-tools opendmarc rsyslog -y
sudo apt install bind9 bind9utils bind9-doc dnsutils -y
sudo apt install pure-ftpd -y
sudo apt install clamav clamav-daemon -y
sudo apt install amavisd-new spamassassin -y
sudo apt install unzip bzip2 sudo -y
sudo apt install imagemagick ffmpeg -y
sudo apt install fail2ban -y

# Dla Debian 12 - Zamiast php8.3 będzie php8.2
# sudo apt install apache2 apache2-utils php8.2 libapache2-mod-php8.2 php8.2-common php8.2-mysql php8.2-xml php8.2-gd php8.2-imap php8.2-cli php8.2-cgi php8.2-curl php8.2-zip php8.2-mbstring php8.2-soap php8.2-intl php8.2-fpm php8.2-ldap php8.2-dev php-pear php-imagick php-zip php-xmlrpc -y
# Reszta pakietów jest podobna

Uwaga na PHP: Ubuntu 24.04 domyślnie dostarcza PHP 8.3, Debian 12 PHP 8.2. Upewnij się, że instalujesz odpowiednią wersję.

Konfiguracja MariaDB/MySQL (na serwerze Master)

Zabezpiecz instalację MariaDB i utwórz bazę danych dla ISPConfig.

sudo mysql_secure_installation

Postępuj zgodnie z instrukcjami: ustaw hasło dla roota MariaDB, usuń anonimowych użytkowników, zablokuj zdalny dostęp roota i usuń testową bazę danych.

Zaloguj się do MariaDB i utwórz użytkownika dla ISPConfig:

sudo mysql -u root -p

Wprowadź swoje hasło roota MariaDB. Następnie wykonaj polecenia SQL:

CREATE DATABASE dbispconfig;
GRANT ALL PRIVILEGES ON dbispconfig.* TO 'ispconfig'@'localhost' IDENTIFIED BY 'TwojeSilneHasloISPConfig';
GRANT ALL PRIVILEGES ON dbispconfig.* TO 'ispconfig'@'master.example.com' IDENTIFIED BY 'TwojeSilneHasloISPConfig'; # Jeśli planujesz zdalny dostęp
FLUSH PRIVILEGES;
EXIT;

Zastąp `TwojeSilneHasloISPConfig` bezpiecznym hasłem.

Konfiguracja Postfix (na serwerze Master)

Podczas instalacji Postfixa wybierz „Internet Site” i podaj swoją nazwę FQDN (np. master.example.com).

5.2 Instalacja ISPConfig na Serwerze Master

Pobierz najnowszą stabilną wersję ISPConfig:

cd /tmp
wget -O ispconfig.tar.gz https://www.ispconfig.org/downloads/ISPConfig-3.2.11.tar.gz # Sprawdź najnowszą wersję na stronie ispconfig.org
tar xfz ispconfig.tar.gz
cd ispconfig3_install/install/

Uruchom skrypt instalacyjny:

sudo php -q install.php

Postępuj zgodnie z instrukcjami. Ważne punkty:

  • Wybierz tryb instalacji: expert (dla multiservera).
  • Wybierz master dla typu serwera.
  • Podaj hasło dla użytkownika admin ISPConfig.
  • W przypadku konfiguracji MySQL/MariaDB użyj utworzonej wcześniej bazy dbispconfig i użytkownika ispconfig z jego hasłem.
  • Dla innych usług (Apache, Postfix, Dovecot, Pure-FTPD, BIND) zazwyczaj możesz zaakceptować domyślne ustawienia, chyba że masz specyficzne wymagania.

5.3 Post-instalacyjna Konfiguracja Serwera Master

Po instalacji, panel ISPConfig będzie dostępny pod adresem: https://master.example.com:8080/ (lub `https://YOUR_MASTER_IP:8080/`). Zaloguj się używając użytkownika `admin` i hasła ustawionego podczas instalacji.

W panelu ISPConfig przejdź do System > Remote Users i utwórz nowego użytkownika zdalnego. Będzie to konto, którego ISPConfig Master użyje do połączenia się z serwerami Slave. Zapisz nazwę użytkownika i hasło, będą potrzebne później.

6. Konfiguracja Serwerów Podrzędnych (Slave) ISPConfig

Te kroki wykonaj na każdym serwerze Slave (np. `web1.example.com`, `mail.example.com`).

6.1 Instalacja Wymaganych Pakietów

Pakiety do zainstalowania na serwerach Slave zależą od roli, jaką będą pełnić. Poniżej przedstawiono przykłady dla różnych ról.

Dla serwera WWW (Web Slave):

# Dla Ubuntu 24.04
sudo apt install apache2 apache2-utils php8.3 libapache2-mod-php8.3 php8.3-common php8.3-mysql php8.3-xml php8.3-gd php8.3-imap php8.3-cli php8.3-cgi php8.3-curl php8.3-zip php8.3-mbstring php8.3-soap php8.3-intl php8.3-fpm php8.3-ldap php8.3-dev php-pear php-imagick php-zip php-xmlrpc -y
sudo apt install pure-ftpd -y
sudo apt install fail2ban -y

# Dla Debian 12 (php8.2 zamiast php8.3)
# sudo apt install apache2 apache2-utils php8.2 libapache2-mod-php8.2 php8.2-common php8.2-mysql php8.2-xml php8.2-gd php8.2-imap php8.2-cli php8.2-cgi php8.2-curl php8.2-zip php8.2-mbstring php8.2-soap php8.2-intl php8.2-fpm php8.2-ldap php8.2-dev php-pear php-imagick php-zip php-xmlrpc -y
# sudo apt install pure-ftpd -y
# sudo apt install fail2ban -y

Dla serwera pocztowego (Mail Slave):

sudo apt install postfix postfix-mysql postfix-sasl-authd dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-mysql opendkim opendkim-tools opendmarc rsyslog -y
sudo apt install clamav clamav-daemon -y
sudo apt install amavisd-new spamassassin -y
sudo apt install unzip bzip2 sudo -y
sudo apt install fail2ban -y

Podczas instalacji Postfixa, wybierz „Internet Site” i podaj nazwę FQDN swojego serwera pocztowego (np. mail.example.com).

Dla serwera baz danych (DB Slave – jeśli oddzielny):

sudo apt install mariadb-server mariadb-client -y

Zabezpiecz MariaDB:

sudo mysql_secure_installation

Dla ISPConfig, nie musisz tworzyć bazy `dbispconfig` na Slave’ach DB. ISPConfig będzie tworzył bazy danych klientów bezpośrednio na tym serwerze. Możesz utworzyć użytkownika `root` dla zdalnego dostępu z Mastera (zalecana silna polityka haseł).

sudo mysql -u root -p
CREATE USER 'root'@'master.example.com' IDENTIFIED BY 'BardzoSilneHasloDlaRootaDB!';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'master.example.com' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

Dla serwera DNS (DNS Slave – jeśli oddzielny):

sudo apt install bind9 bind9utils bind9-doc dnsutils -y

6.2 Instalacja ISPConfig na Serwerze Slave

Pobierz i rozpakuj ISPConfig na serwerze Slave tak samo jak na Masterze:

cd /tmp
wget -O ispconfig.tar.gz https://www.ispconfig.org/downloads/ISPConfig-3.2.11.tar.gz # Sprawdź najnowszą wersję
tar xfz ispconfig.tar.gz
cd ispconfig3_install/install/

Uruchom skrypt instalacyjny:

sudo php -q install.php

Tym razem wybierz tryb instalacji:

  • Wybierz tryb instalacji: expert.
  • Wybierz slave dla typu serwera.
  • Podaj **nazwę hosta serwera Master** (np. `master.example.com`).
  • Podaj **nazwę użytkownika zdalnego** (remote user) i **hasło**, które utworzyłeś na serwerze Master (sekcja 5.3).
  • W przypadku konfiguracji usług (Apache, Postfix, Dovecot, Pure-FTPD, BIND, MariaDB), wybierz tylko te, które ten serwer Slave będzie obsługiwał. Na przykład, jeśli to serwer WWW, wybierz Apache i Pure-FTPD. Jeśli to serwer pocztowy, wybierz Postfix i Dovecot.
  • Dla każdej wybranej usługi, zazwyczaj możesz zaakceptować domyślne ustawienia.

6.3 Synchronizacja Serwera Slave z Masterem

Po zakończeniu instalacji na serwerze Slave, powróć do panelu ISPConfig na serwerze Master. Przejdź do System > Servers. Powinieneś zobaczyć swój nowy serwer Slave na liście.

Kliknij na niego i sprawdź, czy wszystkie usługi są poprawnie wykryte. Status „green” (zielony) oznacza, że usługa działa i jest synchronizowana. Jeśli widzisz błędy, sprawdź logi na serwerze Slave i konfigurację firewalla.

7. Konfiguracja Wspólnych Usług w Konfiguracji Multiserverowej

Połączenie usług w multiserverze ISPConfig jest zarządzane z poziomu panelu Master. Oto jak przypisać usługi do konkretnych serwerów.

7.1 Serwer WWW (Apache/Nginx)

W ISPConfig Master, gdy tworzysz nową stronę internetową (Sites > Add new website), będziesz mieć opcję wyboru **”Server”**. Tutaj możesz wybrać serwer (Master lub jeden ze Slave’ów Web) na którym ma być hostowana strona. ISPConfig automatycznie skonfiguruje Apache/Nginx i FTP na wybranym serwerze.

7.2 Serwer Baz Danych (MySQL/MariaDB)

Gdy tworzysz nową bazę danych (Sites > Databases > Add new database), również wybierasz **”Server”**, na którym ma znajdować się ta baza danych. Może to być serwer Master lub dedykowany serwer DB Slave.

Ważne: Jeśli używasz dedykowanego serwera DB Slave, upewnij się, że na Masterze skonfigurowałeś połączenie z rootem MariaDB tego Slave’a (jak pokazano w sekcji 6.1).

7.3 Serwer Pocztowy (Postfix, Dovecot)

Podobnie, podczas tworzenia domeny pocztowej (Email > Domains > Add new domain) lub kont e-mail, wybierasz **”Server”**, na którym mają być obsługiwane usługi pocztowe (Master lub Mail Slave).

7.4 Serwer DNS (BIND)

W ISPConfig Master (DNS > Zones > Add new DNS Zone) możesz tworzyć strefy DNS. W sekcji „Server” wybierasz, który serwer (Master lub DNS Slave) będzie podstawowym serwerem DNS dla tej strefy.

Jeśli masz wiele serwerów DNS (np. Master i DNS Slave), ISPConfig automatycznie zsynchronizuje strefy między nimi.

8. Testowanie i Weryfikacja Konfiguracji

Po zakończeniu konfiguracji, dokładnie przetestuj każdą usługę:

  • Panel ISPConfig: Zaloguj się do panelu Master.
  • Dodaj Serwery Slave: Sprawdź, czy wszystkie serwery Slave są widoczne i mają status „green” w System > Servers.
  • Strona WWW: Utwórz nową stronę WWW i przypisz ją do serwera Master lub Web Slave. Sprawdź, czy strona działa, a pliki FTP można przesłać.
  • Baza Danych: Utwórz bazę danych i użytkownika, przypisując ją do odpowiedniego serwera. Spróbuj połączyć się z nią zdalnie.
  • Poczta E-mail: Utwórz domenę pocztową i konto e-mail. Wyślij i odbierz testowe wiadomości.
  • DNS: Utwórz strefę DNS i sprawdź, czy rekordy są propagowane (użyj `dig` lub `nslookup`).

9. Zaawansowane Wskazówki i Optymalizacja

  • **Zabezpieczanie SSH:** Zawsze używaj kluczy SSH zamiast haseł. Rozważ wyłączenie uwierzytelniania hasłem i root-logowania SSH.
  • **Regularne Aktualizacje:** Regularnie aktualizuj systemy operacyjne i ISPConfig, aby zapewnić bezpieczeństwo i stabilność.
  • **Kopie Zapasowe:** Skonfiguruj regularne kopie zapasowe danych i konfiguracji ISPConfig. ISPConfig ma wbudowane narzędzia do tworzenia kopii zapasowych.
  • **Monitorowanie:** Użyj narzędzi monitorujących (np. Prometheus, Grafana, Zabbix) do śledzenia wydajności i stanu wszystkich serwerów.
  • **Optymalizacja Usług:** Dostosuj konfiguracje Apache/Nginx, PHP, MySQL/MariaDB do swoich potrzeb i obciążenia.
  • **HTTPS wszędzie:** Skonfiguruj Let’s Encrypt dla wszystkich domen w ISPConfig, aby zapewnić bezpieczeństwo komunikacji.
  • **Użyj Ansible:** Rozważ wykorzystanie Ansible do automatyzacji instalacji pakietów i początkowej konfiguracji każdego serwera, co znacznie przyspieszy proces i zapewni spójność.

10. Podsumowanie

Skonfigurowanie multiserwera ISPConfig na Debianie 12 lub Ubuntu 24.04 to potężne rozwiązanie do zarządzania hostingiem. Pozwala ono na skalowalność, poprawia bezpieczeństwo i zwiększa niezawodność, rozkładając usługi na dedykowane maszyny.

Ten przewodnik dostarczył solidne podstawy do budowy Twojej własnej infrastruktury multiserwerowej. Pamiętaj, że każdy przypadek użycia jest inny, a optymalna konfiguracja zależy od Twoich specyficznych wymagań dotyczących wydajności i bezpieczeństwa. Regularne testowanie i monitorowanie są kluczowe dla utrzymania zdrowego środowiska hostingowego.

© 2025 Wszystkie prawa zastrzeżone.

 

Netcloud24.com

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *