Przejdź do treści

Serwer poczty na FreeBSD 13 (cz. 4): MySQL, phpMyAdmin i bazy systemu pocztowego

Mamy już Apache, HTTPS i PHP (część 3). Teraz baza danych — serce systemu pocztowego, w którym trzymane są domeny i skrzynki. Instalujemy i zabezpieczamy MySQL 5.7, dokładamy panel phpMyAdmin i tworzymy bazy: maia, postfix i roundcube.

📅 Wersje z epoki (2021). MySQL 5.7, phpMyAdmin dla PHP 7.4. Dziś użyłbyś nowszego MySQL/MariaDB — zasady konfiguracji pozostają te same.

Instalacja MySQL

MySQL 5.7 (serwer + klient) instalujemy poleceniem:

pkg install mysql57-server mysql57-client

Pakiety instalowane razem z serwerem i klientem MySQL.

Po instalacji otrzymujemy informację o haśle administratora oraz pliku konfiguracyjnym.

Jeszcze do niedawna poprzednie wersje MySQL po instalacji miały puste hasło root — łatwo było popełnić poważny błąd bezpieczeństwa, zostawiając je puste (każdy z Internetu mógł połączyć się jako root). Wersja 5.7 nadaje hasło automatycznie.

Włączamy usługę w /etc/rc.conf i uruchamiamy serwer:

sysrc mysql_enable="yes"
service mysql-server start

Wpis do rc.conf oraz uruchomienie serwera MySQL.

Zabezpieczenie MySQL

Przed użyciem produkcyjnym uruchamiamy skrypt zabezpieczający (na pytania odpowiadamy Y, ustawiamy też nowe hasło administratora):

mysql_secure_installation
Securing the MySQL server deployment.
VALIDATE PASSWORD PLUGIN ... setup? y
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
Change the password for root ? : y
Remove anonymous users? : y
Disallow root login remotely? : y
Remove test database and access to it? : y
Reload privilege tables now? : y
All done!

Po pierwszym zalogowaniu, przed wykonaniem jakiejkolwiek komendy, należy ponownie zmienić hasło.

Logowanie jako administrator do MySQL i zmiana hasła (hasło na zrzucie jest przykładowe).

MySQL 5.7 jest zainstalowany i zabezpieczony: ustawione hasło administratora oraz wyłączone zdalne logowanie na root (tylko localhost).

phpMyAdmin

Wybieramy pakiet phpMyAdmin pasujący do wersji PHP i instalujemy (wraz z zależnościami):

pkg install phpMyAdmin5-php74

Rozpoczęcie instalacji phpMyAdmin.

Informacje poinstalacyjne phpMyAdmin (linijki do konfiguracji Apache).

W konfiguracji Apache wpisujemy własną nazwę domenową, aby ograniczyć dostęp do panelu tylko z naszego hosta (ochrona przed intruzami):

Brak dostępu dla hostów innych niż wpisane w ustawieniu Apache.

Dopisanie odpowiednich linijek do konfiguracji Apache i restart.

Po pierwszym uruchomieniu phpMyAdmin zgłosił brak rozszerzenia php74-iconv — doinstalowujemy je:

pkg install php74-iconv

Instalacja rozszerzenia php74-iconv.

Zalogowanie do phpMyAdmin na konto administratora.

Bazy danych systemu pocztowego

Tworzymy trzy bazy (z użytkownikami), które wykorzystają kolejne usługi.

maia — dla antyspamu/antywirusa (Maia‑Mailguard). Dodajemy użytkownika i bazę, a następnie importujemy /usr/local/share/doc/maia/maia-mysql.sql. Podczas importu wystąpił błąd w jednej z kwerend, więc resztę dodałem ręcznie z poziomu phpMyAdmin:

Dodanie użytkownika i bazy maia, import pliku SQL.

Ręczny import pozostałych kwerend z pliku maia-mysql.sql.

postfix — tu będą przechowywane wszystkie informacje o skrzynkach i domenach (wykorzysta ją Postfix):

Dodanie użytkownika i bazy postfix.

roundcube — dane webmaila:

Dodanie użytkownika i bazy roundcube.

Co dalej

W części 5 instalujemy i konfigurujemy Dovecot — serwer POP3/IMAP, który będzie udostępniał skrzynki użytkownikom (z uwierzytelnianiem z bazy MySQL).