Perfekcyjny serwer na Ubuntu 18.04 Nginx, MySQL, PHP, Postfix, BIND, Dovecot, Pure-FTPD z panelem ISPConfig 3.1

W dzisiejszym poradniku opiszę proces przygotowania w pełni działającego serwera webowego wraz z darmowym panelem do zarządzania ISPConfig.
Poradnik został przygotowany pod najnowszą wersję Ubuntu 18.04

Na początek dokonujemy zmiany hostname systemu. Krok ten opisywałem w tym poradniku.

Logujemy się na konto root poleceniem:

I wpisujemy hasło. Następnie instalujemy nasz ulubiony edytor plików tekstowych dla przykładu nano:

Kolejnym krokiem jest ustawienie repozytoriów w pliku /etc/apt/sources.list

wykonujemy je poleceniem:

Plik powinien wyglądać następująco:

Następnie dokonujemy aktualizacji repozytoriów oraz aktualizacji systemu:

Dla pewności poprawnego działania systemu i zapisania wszystkich zmian dokonujemy restartu systemu poleceniem:

reboot

Po restarcie ponownie logujemy się do systemu na konto root i dokonujemy zmiany powłoki systemu.
Wykonamy to poleceniem:

W komunikacie zaznaczamy opcję no czyli nie:

Wyłączamy AppArmor

AppArmor to rozszerzenie bezpieczeństwa (podobne do SELinux), które powinno zapewniać rozszerzone zabezpieczenia. Sprawdzimy, czy jest zainstalowany, i jeśli to konieczne, usuniemy go. Moim zdaniem nie potrzebujemy go do skonfigurowania bezpiecznego systemu i zwykle powoduje więcej problemów niż korzyści.

Dezaktywacji dokonamy wydając polecenia:

Synchronizujemy czas na serwerze z serwerem NTP

Instalacja Postfix, Dovecot, MariaDB, phpMyAdmin, rkhunter, Binutils

Tutaj drobna uwaga aby zainstalować posfixa niezbędne jest odinstalowanie sendmaila. Wykonamy to poleceniem:

Następnie instalujemy wszystkie pakiety:

Instalator poprosi nas o wybranie 2 opcji które zaznaczamy jak poniżej:

Uruchamiamy TLS /SSL w postfix

Edytujemy plik:

I od komentujemy sekcję smtpd_client_restrictions=permit_sasl_authenticated,reject

Całość powinna wyglądać jak poniżej:

Po wykonaniu zmian dokonujemy restartu posfixa

Chcemy, aby MariaDB / MySQL nie tylko na localhost. Dlatego edytujemy plik /etc/mysql/mariadb.conf.d/50-server.cnf (dla MariaDB lub /etc/mysql/my.cnf (dla MySQL) i zakomentuj linię bind-address = 127.0.0.1:

Dodajemy # przy bind-address

Ustawiamy hasło root serwera mysql oraz przechodzimy podstawową konfigurację wydając polecenie:

Odpowiadamy na pytania jak poniżej:

Ustawiamy metodę uwierzytelniania hasła na natywną, abyśmy mogli później do PHPMyAdmin połączyć się jako użytkownik root:

echo “update mysql.user set plugin = ‘mysql_native_password’ where user=’root’;” | mysql -u root

Modyfikacja pliku /etc/mysql/debian.cnf i ustawienie hasła root

Poniżej zmodyfikowany plik wygląda tak:

Edytujemy plik /etc/mysql/my.cnf i Haszujemy nasłuch lokalny Mysql

Plik powinien wyglądać jak poniżej:

Dokonujemy restartu serwera mysql poleceniem:

Instalacja Amavisd-new, SpamAssassin, And ClamAV

Aby zaktualizować sygnatury antywirusowe ClamAV i uruchomić usługę Clamd wydajemy następujące polecenia:

Aktualizacja bazy wirusów może trochę potrwać należy cierpliwie poczekać.

Poniższy błąd można zignorować przy pierwszym uruchomieniu freshclam.

Program amavisd-new zawiera obecnie błąd w Ubuntu 18.04, który uniemożliwia prawidłowe podpisanie e-maili z Dkim. Uruchom następujące polecenia, aby załączyć amavisd-new.

Dokonujemy instalacji Nginx, PHP 7.2 (PHP-FPM), oraz Fcgiwrap

Nginx instalujemy poleceniem:

Usuwamy serwer www Apache:

Uruchamiamy serwer Nginx

Instalujemy PHP

Następnie wyszukujemy moduły php i dokonamy ich instalacji.

Edytujemy plik php.ini

Dokonujemy zmian 2 linijkach

I zmieniamy:

Oraz

Dokonujemy przeładowania php poleceniem:

Instalujemy pakiet FCIWRAP dzięki niemu ISPConfig zajmie się poprawną konfiguracją vhost.

Instalujemy i konfigurujemy phpMyAdmin

I konfigurujemy

Instalacja Let’s Encrypt

ISPConfig pozwala również zarządzać (tworzyć / modyfikować / usuwać) listy mailingowe Mailman. Jeśli chcesz skorzystać z tej funkcji, zainstaluj Mailman w następujący sposób:

Wybierz co najmniej jeden język, np .:

Wykonujemy polecenie i odpowiadamy na pytania

root@server1:~#

edytujemy plik /etc/aliases i dodajemy:

Przeładowujemy, restatartujemy postfixa i uruchamiamy mailmana

Instalujemy PureFTPd oraz Quota

Edytujemy plik /etc/default/pure-ftpd-common i ustawiamy w następujący sposób

Uruchamiamy TLS oraz SSL dla serwera FTP:

Podajemy swoje dane jak poniżej:

Nadajemy chmod i restartujemy serwer FTP

Instalacja serwer DNS BIND

Instalacja Vlogger, Webalizer, oraz AWStats

Dokonujemy edycji w pliku /etc/cron.d/awstats i komentujemy go w sposób podany poniżej:

Instalacja Jailkit

Obecna wersja Jailkit 2.19 ma błąd składniowy, który uniemożliwia jej kompilację. Aby to naprawić, otwórz plik debian / changelog za pomocą nano:

I dodaj następujący wiersz w linii 5, a następnie pusty wiersz:

Dokonujemy rekompilacji

Instalujemy Fail2Ban oraz UFW

Następnie tworzymy plik:/etc/fail2ban/jail.local o następującej zawartości:

Dokonujemy przeładowania usługi

s

Instalacja Webmaila Roundcube

Podczas konfiguracji wybieramy następująco:

Edytujemy plik /etc/roundcube/config.inc.php i zmieniamy domyślny host

Instalacja ISPConfig 3.1

Dla pewności zatrzymujemy Apache, usuwamy go i restartujemy Nginx

Następie Pobieramy najnowszą wersję ISPConfig i ją rozpakowujemy.

Uruchamiamy skrypt instalacyjny:

Odpowiadamy na pytania jak poniżej:

Gotowe skrypt został zainstalowany i jest dostępny pod adresem https://ipserwera:8080

Domyślne dane do panelu to login admin hasło admin

Takim sposobem mamy w pełni działający i skonfigurowany serwer www raz z serwerem poczty bazami danych i ftp.

Źródło: https://www.howtoforge.com/tutorial/perfect-server-ubuntu-18.04-with-apache-php-myqsl-pureftpd-bind-postfix-doveot-and-ispconfig/