Czym jest ISPConfig3 ?
ISPConfig3 jest panelem hostingowym służącym do zarządzania serwerami poprzez przeglądarkę www. Obejmuje on dwa poziomy wsparcia, Bezpłatny oraz Płatny, Poziom bezpłatny jest w pełni funkcjonalną wersją ISPConfig3, a od wersji płatnej odróżnia go brak wsparcia w pełnym zakresie, czyli wsparcia przez email, zdalne logowanie oraz instalację i doradztwo. Poziom bezpłatny ogranicza się praktycznie do wsparcia poprzez forum dyskusyjne ISPConfig3.
ISPConfig3, jest obecnie jednym z najczęściej wykorzystywanych darmowych paneli www do zarządzania serwerami, ma on też wielu zwolenników na całym świecie.
Posiada on wsparcie dla wielu języków, w tym Polskiego.
Obejmuje on
wsparcie dla wielu demonów (usług, serwerów, czy też programów uruchamianych przy starcie systemu i działających w tle)
- HTTP: Apache2 i Nginx
- SMTP: Postfix
- POP3/IMAP: Dovecot
- FTP: PureFTPD
- DNS: Bind, PowerDNS
- Baza danych: MariaDB i MySQL
ISPConfig3 posiada wsparcie dla aż czterech poziomów dostępu
- Administratora
- Sprzedawcy (Resellera)
- Klienta
- Logowania poprzez e-mail
ISPConfig3 umożliwia łatwe zarządzanie takimi usługami jak
- Strony internetowe (umożliwia także konfigurację gotowego do użycia zestawu dyrektyw dla apache/nginx oraz php)
- Konta email
- Użytkownicy FTP
- Limity Quota
- Bazy danych MySQL
- Praca Crona
- Użytkownicy powłoki SSH/SFTP
- DNS
- Obsługa protokołu IPv4
- Obsługa protokołu IPv6
- Firewall
Jeżeli konfigurowałeś serwer na Raspberry Pi5 według mojego poradnika/tutoriala, panel ten masz już prawdopodobnie zainstalowany na swoim serwerze. W niniejszym tutorialu przedstawię ci podstawowe i najczęściej używane funkcje panelu oraz to, jak ich używać.
Strony internetowe
Żeby założyć stronę internetową musimy przejść do zakładki Strony, a następnie wybrać z menu po lewej stronie zakładkę Strona www. Przedtem najpierw, musisz oczywiście utworzyć dla niej odpowiednie wpisy w dns. Jak to zrobić opisałem w poprzednich artykułach serii.
Strona www
Uzupełnij wszystkie wymagane pola według poniższego wzoru
Domena – tu wpisz nazwę swojej domeny pod którą chcesz udostępnić swoją stronę w internecie.
Limit dysku twardego – jest to tzw. quota, czyli ilość miejsca jakie chcesz przeznaczyć na swoją stronę internetową, z pominięciem rozmiaru samej bazy danych.
Limit ruchu na serwerze – czyli ograniczenie miesięcznego transferu na stronie do zadanej wartości.
CGI, Perl, Ruby itp. – jeśli twoja strona wymaga, któregoś z nich, zaznacz odpowiednie pole. Większość stron nie będzie tego wymagało.
Własne strony błędów – Jeśli chcesz, aby w przypadku wystąpienia błędu na stronie np. error 404, 500 itp. odwiedzającemu stronę, wyświetlił się on w ładnej graficznej formie, zaznacz ta opcję. W przeciwnym wypadku zostanie zwrócony standardowy nagłówek serwera w formie tekstowej.
SSL oraz Let’s Encrypt – zaznacz jeśli chcesz używać połączenia szyfrowanego (mocno zalecane), z wykorzystaniem darmowego i zaufanego (wspieranego też przez wszystkie popularne przeglądarki internetowe) certyfikatu Let’s Encrypt.
PHP – wybierz PHP-FPM. W bardzo rzadkich przypadkach, gdy strona nie chce działać z PHP-FPM, możesz wybrać FAST-CGI. PHP-FPM jest szybsze i jest tu opcją zalecaną.
Wersja PHP – to wersja php z jaką twoja strona ma współpracować. Najczęściej będzie to PHP8.x. To tutaj też, powinieneś zmienić wersję php na 7.4, gdy chcesz używać opisanego w innym artykule OwnCloud. Najwyższa wersja php, z którą OwnCloud współpracuje na dzień pisania tego artykułu, to właśnie PHP7.4. Inne, głównie starsze skrypty, mogą także wymagać, którejś starszej wersji php.
Przekierowanie
w tej zakładce możesz ustawić wszelkie przekierowania takie jak np. 301, 302 itp. jeśli jest to wymagane. Przeważnie nie będzie to wymagane.
SSL
do uzupełnienia, jeśli posiadasz komercyjny, płatny certyfikat SSL dla swojej strony internetowej. Możesz tam przypisać m. inn. swoje klucze komercyjnego certyfikatu ssl.
Statystyki
czyli jak sama nazwa sugeruje, są to statystyki dla twojej strony internetowej
Backup
tutaj możesz zdefiniować backup dla swojej strony internetowej, czyli jej kopie zapasową. Jest to opcja mocno przeze mnie zalecana, uzupełnij pola według poniższego schematu.
myślę, że opis poszczególnych pół jest na tyle jasny, że nie muszę tłumaczyć, za co poszczególne pola odpowiadają. Wspomnę tylko, że przy ustawieniu trzech kopii zapasowych, zawsze będą dostępne trzy ostatnie kopie z trzech ostatnich dni. Ostatnia czwarta kopia, będzie zastępowana nową kopią.
Opcje
W niniejszej zakładce możesz zdefiniować kilka ważnych opcji, np. w jaki sposób Twój serwer ma pracować. W większości przypadków, standardowe ustawienia będą ok. Ich konfigurację jednak opiszę w kolejnej części związanej z poprawą i optymalizacją wydajności serwera. W chwili obecnej zainteresować ciebie jednak powinny opcje odnośnie ustawienia własnych dyrektyw, czy to dla serwera www, czy też php. Te opiszę dokładnie poniżej.
Możesz kliknąć teraz w przycisk Save, aby zapisać zmiany i przejść do założenia nowej bazy danych dla swojej strony.
Utwórzmy teraz dla swojej strony, użytkownika oraz bazę danych.
Użytkownik bazy danych
W menu po lewej stronie wybierzmy zakładkę Użytkownicy bazy danych.
Następnie wypełnijmy wymagane pola Database user: czyli nazwę użytkownika bazy danych. Na potrzeby niniejszego poradnika niech to będzie np. mojabaza. W następnej kolejności uzupełnijmy pole Database password: do tego celu możesz użyć wbudowanego generatora haseł Generate Password, albo też ręcznie wpisać hasło ustalone przez siebie. Kolejnym krokiem będzie powtórzenie hasła (wpisanego wyżej) w polu Repeat Password: i kliknięcie przycisku Save.
Baza danych
następnie wybierz zakładkę Baza danych, i utwórz nową bazę danych dla swojej strony internetowej.
Strona – Wybierz nazwę swojej strony internetowej, dla której tworzysz bazę danych.
Nazwa bazy danych – mojabaza zastąp własną nazwą dla tworzonej bazy danych
Database quota – możesz nie zmieniać tego parametru, chyba że zamierzasz hostować jakąś wymagającą stronę, której baza może się rozrosnąć nadmiernie, w sposób niekontrolowany np. Forum dyskusyjne. Ustaw wtedy ten limit na jakąś rozsądną wartość, aby w przypadku jej nadmiernego rozdęcia nie zająć całego miejsca na dysku twardym i tym sam nie doprowadzić do zablokowania całego systemu operacyjnego serwera.
Użytkownik bazy danych – użytkownik, którego przed chwilą utworzyłeś, w powyższym przykładzie także mojabaza
Resztę opcji możesz pozostawić bez zmian. Kliknij zapisz.
Kolejnym krokiem będzie utworzenie użytkownika ftp, przecież będziesz musiał jakoś przesłać pliki strony na serwer.
Użytkownik FTP
Wybierz w zakładce menu po lewej stronie Użytkownik FTP, a następnie kliknij w zielony przycisk Dodaj nowego użytkownika FTP.
Strona www – wybierz stronę dla jakiej tworzysz użytkownika ftp.
Nazwa użytkownika – wymyśl i wpisz jakąś sensowną nazwę dla tworzonego użytkownika ftp. Poprzedź ją znakiem _ czyli np. _uzytkownik. Użycie podkreślnika pozwoli na większą czytelność użytej nazwy ale o tym za chwilę.
hasło – tak jak w przypadku użytkownika bazy danych, możesz użyć dostępnego generatora haseł, albo ustalić swoje.
Limit na twardym dysku – możesz ustawić taki, jak w przypadku ustawiania quota dla stron www albo pozostawić bez zmian.
Kliknij Zapisz
Taka konfiguracja pozwoli ci już uruchomić swoją pierwszą stronę www. Aby zalogować się na konto ftp. możesz użyć do tego celu programu Filezilla. Podaj swoje zewnętrzne ip., użytkownika ftp. np. default_uzytkownik oraz hasło. default to standardowa nazwa dopisywana na początku utworzonego przez ciebie użytkownika, jeśli nie zdefiniowałeś nowego użytkowqnika w Panelu ISPConfig3. Jeżeli jednak zdefiniowałeś nowego użytkownika w panelu ISPConfig3, to zastąp ją jego nazwą.
Jeśli połączenie z serwerem po FTP przebiegło pomyślnie, wrzuć pliki strony na serwer do katalogu web.
Jeśli kopiowanie przebiegło pomyślnie, uruchom w przeglądarce internetowej https://twojastrona.pl, powinno uruchomić to skrypt konfiguracyjny strony, np. opisywany w innym artykule OwnCloud, WordPress, Joomlę itp. o ile stawiasz stronę od nowa, a nie przenosisz ją z innego serwera. Uzupełnij wymagane dane.
ps. serwer bazy danych: localhost, użytkownik i nazwa bazy danych c0mojabaza. c0 (c zero), to standardowy przedrostek dodawany przez panel o ile tego nie zmieniłeś lub nie tworzyłeś w panelu innych użytkowników.
Monitor
W zakładce tej masz podgląd na wszelkie logi swoich usług internetowych, takich jak serwer www, firewall, fail2ban itp. oraz na stan pakietów oprogramowania serwera. Warto bliżej zapoznać się z zawartością niniejszej zakładki.
System
Zakładka będąca niejako nakładką na niektóre pliki konfiguracyjne twojego serwera. Warte uwagi na początek to
Dodatkowe wersje PHP
możesz skonfigurować tutaj dodatkowe np. nowe wersje php jeśli takie się ukażą. Przykład konfiguracji możesz wziąć z wersji już istniejących na serwerze.
Zestawy dyrektyw
to tutaj możesz skonfigurować swoje własne zestawy dyrektyw dla serwera www oraz PHP. Pozwalają one na ich szybkie wykorzystanie potem w razie potrzeby, bez ich ręcznego wpisywania za każdym razem jak tylko chcemy utworzyć nową stronę.
Poniżej opiszę kilka takich dyrektyw, które możesz potraktować jako przykład. Jeżeli stawiałeś serwer według opisu z innych części poradnika, będziesz mógł je wykorzystać do własnych potrzeb.
Kliknij w zakładkę menu po lewej stronie Zestawy dyrektyw
Nazwa – Brotli
Rodzaj – tu wybierz rodzaj swojego serwera www z jakiego korzystasz Apache lub Nginx
Zestaw – wpisz poniższą treść i kliknij przycisk Zapisz
# Włączenie na stronie kompresji Brotli
<IfModule mod_brotli.c>
AddOutputFilterByType BROTLI_COMPRESS text/xml image/svg+xml application/x-font-ttf image/vnd.microsoft.icon application/x-font-opentype application/json font/eot application/vnd.ms-fontobject application/javascript font/otf application/xml application/xhtml+xml text/javascript application/x-javascript text/plain application/x-font-truetype application/xml+rss image/x-icon font/opentype text/css image/x-win-bitmap
</IfModule>
Dyrektywa odpowiada za włączenie kompresji Brotli na stronie, jeśli zainstalowałeś go na serwerze (opisany w poprzedniej części poradnika)
ModSecurity
Jeśli na serwerze masz zainstalowany moduł ModSecurity
Nazwa – ModSecurity
Rodzaj – tu wybierz rodzaj swojego serwera www z jakiego korzystasz Apache lub Nginx
Zestaw –
# Właczenie na stronie ModSecurity
<IfModule mod_security2.c>
SecRuleEngine On
</IfModule>
Stop SpamBot
Autorski zestaw dyrektyw, który wycina niechciane boty z serwera. Działa on jednak trochę inaczej niż większość rozwiązań dostępnych w internecie, gdyż wycina cały ruch, a następnie udostępnia te, które chcielibyśmy widzieć. Z tego też powodu, gdybyś chciał skorzystać z niniejszego rozwiązania, przejrzyj jakie boty są dopuszczone do serwera. Jeśli chciałbyś, aby jakieś dodatkowe boty (np. boty statystyk) mogły skanować twoją stronę, dopisz je według poniższego schematu. Żaden ruch zwykłego użytkownika, nie jest przez ten skrypt blokowany.
Nazwa – Stop SpamBot
Rodzaj – tu wybierz rodzaj swojego serwera www z jakiego korzystasz Apache lub Nginx
Zestaw –
#Dopuszczenie do strony wybranych botów internetowych i blokada reszty
SetEnvIfNoCase User-Agent .*google.* search_robot
SetEnvIfNoCase User-Agent .*yahoo.* search_robot
SetEnvIfNoCase User-Agent .*BingBot.* search_robot
SetEnvIfNoCase User-Agent .*Mozilla.* search_robot #przeglądarki
Order Deny,Allow
Deny from All
Allow from env=search_robot
Jak korzystać z tak utworzonego zestawu dyrektyw ?
W opisywanej już zakładce Opcje twojej strony www, pokażą się odpowiednie przyciski, kliknij w wymagany przycisk, a zestaw dyrektyw zostanie dodany automatycznie. Dyrektywy te można łączyć ze sobą, także tworzyć nowe.
Jeśli chodzi o dyrektywy PHP, których nie opisałem, to tworzymy je i używamy w podobny sposób. Możemy dzięki nim np. zwiększyć limit pamięci dla skryptów php, ich czas wykonania itp.
Firewall
Dzięki tej opcji możesz zdefiniować własne reguły dla firewalla, otworzyć wymagane porty, zarówno dla protokołu TCP jak UDP. Standardowo są tam zdefiniowane już jakieś porty na jakich działają standardowe usługi, jednak jeśli nie korzystasz np. z serwerów pocztowych na serwerze, czy DNS, to usuń te zbędne. Jeśli instalujesz na serwerze dodatkowe usługi jak np. Samba, czy NFS, to dopisz tam dla nich odpowiednie porty, abyś mógł z nich korzystać.
Korzystanie z konfiguracji Firewalla w Panelu ISPConfig3 jest łatwe i przyjemne, przy czym powinieneś zwrócić baczną uwagę na to, co usuwasz, pomyłka i usunięcie np. portu 22 i jednocześnie 8080 z dopuszczonych na firewallu, może nieść ze sobą poważne konsekwencje. Wymieniony przeze mnie port 22, akurat odpowiedzialny jet za połączenia ssh (o ile nie zmieniłeś tego portu na inny w pliku konfiguracyjnym dla demona ssh), więc usunięcie go spowoduje utratę połączenia z konsolą serwera RPi5, do której nie będziesz się mógł zalogować z zewnątrz. Port 8080 natomiast, odpowiada za połączenia z panelem ISPConfig3, więc usunięcie go sprawi, że nie będziesz mógł wejść do panelu, aby naprawić swój błąd.
Jedynym rozwiązaniem tego potencjalnego problemu, będzie podłączenie klawiatury i monitora do Raspberry Pi5 i fizyczne zalogowanie się do serwera, w celu naprawy swojego błędu i przywrócenie dostępu do tych usług. Jeśli serwer stoi w domu, to będzie to upierdliwe ale wykonalne, jednak jeśli serwer stoi gdzieś na zewnątrz i dostęp do niego jest utrudniony ? wtedy zrobi się poważny problem.
Inne opcje panelu ISPConfig3
Opisane przeze mnie opcje, to nie wszystko co oferuje nam ISPConfig3, opisywanie ich jednak w tym poradniku wykracza po za jego ramy. Zachęcam ciebie jednak do zapoznania się z nimi we własnym zakresie i odwiedzenia strony panelu https://www.ispconfig.org/documentation/, gdzie wszystko dokładnie jest opisane. Z wersją demo panelu, możesz zapoznać się także odwiedzając stronę https://www.ispconfig.org/ispconfig/online-demo/
cz. 1 Raspberry Pi 5: Niezbędne Akcesoria do Uruchomienia Własnego Serwera WWW
cz. 2 Instalacja Apache, MySQL, PHP na Raspberry Pi 5
cz. 3 Konfiguracja DNS dla Serwera WWW na Raspberry Pi 5
cz. 5 Optymalizacja Stron hostowanych na Raspberry Pi 5: Jak Przyspieszyć stronę WWW
cz. 6 Bezpieczeństwo Serwera WWW na Raspberry Pi 5: Konfiguracja Zabezpieczeń
cz. 7 Jak skonfigurować Cloudflare pod serwer WWW na Raspberry Pi 5 Praktyczny poradnik
cz. 8 Monitorowanie serwera WWW na Raspberry Pi 5 za pomocą Monit
cz. 9 Własny NAS: Serwer www na Raspberry Pi5
cz. 10 Serwer internetowy na Raspberry Pi 5 — 6 miesięcy testów i optymalizacji