Jak konfigurować serwer poczty postfix i dovecot z bazą danych (MariaDB) Bezpiecznie - Część 1

Jak konfigurować serwer poczty postfix i dovecot z bazą danych (MariaDB) Bezpiecznie - Część 1
Serwer poczty pocztowej konfiguracji w Centos 7

W tym 3-Article Seria omówimy, jak skonfigurować Przyrostek serwer pocztowy z ochroną antywirusową i spamem w Centos 7 skrzynka. Należy pamiętać, że te instrukcje działają również w innych dystrybucjach, takich jak Rhel/Fedora I Debian/Ubuntu.

Część 1: Jak bezpiecznie tworzyć i konfigurować bazę danych serwera poczty pocztowej (MariaDB) Część 2: Jak skonfigurować Postfix i Dovecot z użytkownikami domeny wirtualnej w Linux Część 3: Jak dodać ochronę antywirusową i spamową do serwera poczty postfix z CLAMAV i spamassassin Część 4: Jak zainstalować i konfigurować klienta internetowego RoundCube z wirtualnymi użytkownikami w postfix Część 5: Jak korzystać z Sagator, bramy antywirusowej/antispam, aby chronić serwer pocztowy

Nasz plan polega na przechowywaniu konta e -mail i aliasów w Mariadb baza danych, która jest dla naszej wygody, będzie zarządzana przez phpMyAdmin.

Jeśli zdecydujesz się nie zainstalować phpMyAdmin, lub mamy do czynienia z serwerem CLI-FI, zapewnimy również równoważny kod do tworzenia tabel bazy danych, które będą używane w tej serii.

Ponieważ utrzymanie serwera pocztowego jest jednym z niezbędnych zadań, które są zwykle przypisywane administratorom i inżynierom systemu, zapewnimy również kilka wskazówek, aby skutecznie uruchomić tę krytyczną usługę w środowisku produkcyjnym.

Utwórz rekordy A i MX dla domeny w DNS

Przed kontynuowaniem istnieje kilka warunków wstępnych, które należy spełnić:

1. Będziesz potrzebował ważnej domeny zarejestrowanej za pośrednictwem rejestratora domeny. W tej serii będziemy używać www.LinuxNewz.com, który został zarejestrowany Idź Tato.

2. Taka domena musi być wskazana na zewnętrzny adres IP twojego VPS lub dostawcy hostingu w chmurze. Jeśli samodzielnie hostujesz serwer pocztowy, możesz skorzystać z usługi oferowanej przez FreedNS (wymaga rejestracji).

W każdym razie musisz skonfigurować A I MX Rekordy dla Twojej domeny (możesz dowiedzieć się więcej o rekordach MX w tym FAQ z Google).

Po dodaniu możesz je sprawdzić za pomocą narzędzia online, takiego jak Mxtoolbox Lub Viewdns Aby upewnić się, że są one odpowiednio skonfigurowane.

Ważny: Pamiętaj, że może to potrwać chwilę (1-2 dni) do momentu propagowania rekordów DNS i dostępnej domeny. W międzyczasie możesz uzyskać dostęp do VPS za pośrednictwem jego adresu IP, aby wykonać zadania wskazane poniżej.

3. Skonfiguruj Fqdn (W pełni kwalifikowana nazwa domeny) z twojego VPS:

# hostnamEctl set-hostname yourHostName 

Aby ustawić nazwę hosta systemu, a następnie edytuj /etc/hosts w następujący sposób (wymień Aaa.BBB.CCC.DDD, Twoja nazwa Hostn, I Twoja domena z publicznym adresem IP twojego serwera, nazwy hosta i zarejestrowanej domeny):

Aaa.BBB.CCC.Ddd yourHostName.Twoja domena.com yourHostName 

Gdzie Twoja nazwa Hostn to nazwa hosta systemowego, która została ustawiona wcześniej za pomocą hostnamektl Komenda.

Instalowanie wymaganych pakietów oprogramowania

4. Aby zainstalować wymagane pakiety oprogramowania, takie jak Apache, Postfix, Dovecot, Mariadb, phpMyAdmin, spamassassin, clamav itp., Musisz włączyć Epel magazyn:

# mniam instaluj epel-uwalnianie 

5. Po wykonaniu powyższych kroków zainstaluj niezbędne pakiety:

W systemach opartych na Centos:

# Yum Update && Yum Instaluj httpd httpd-devel postfix dovecot dovecot-mysql spamassassin clamav-scanner CLAMAV-STESTEMD CLAMAV-DATA CLAMAV-UPDAT MARIADB MARIADB MARIADB-SERVER PHPMYADMIN 

W debian i instrumentach pochodnych:

# APTIUTUTY Aktualizacja && instalacja apache2 postfix dovecot-core doVecot-Imapd dovecot-pop3d dovecot-lmtpd dovecot-mysql spamassassin clamav CLAMAV-Daemon Clamav-baz 

6. Uruchom i włącz serwery internetowe i bazy danych:

W systemach opartych na Centos:

# Systemctl Włącz httpd mariaDB # Systemctl Start httpd mariaDB 

W debian i instrumentach pochodnych:

# SystemCtl Włącz Apache2 MariaDB # Systemctl Start Apache2 Mariadb 

Po zakończeniu instalacji i powyższa usługa jest włączona i uruchomiona, zaczniemy od konfiguracji bazy danych i tabel do przechowywania informacji o kontach pocztowych postfix.

Tworzenie bazy danych konta pocztowego pocztowego

Dla uproszczenia będziemy używać phpMyAdmin, narzędzie przeznaczone do radzenia sobie z administracją Mysql / Mariadb bazy danych za pośrednictwem interfejsu internetowego, aby tworzyć i zarządzać bazą danych e -mail.

Jednak aby zalogować się i użyć tego narzędzia, musimy wykonać te kroki:

7. Włączyć Mariadb Konto (możesz to zrobić, uruchamiając Mysql_Secure_Instalation narzędzie z wiersza poleceń, przypisanie hasła do root użytkownika i ustawienie ustawień domyślnych zaproponowanych przez narzędzie, z wyjątkiem „Zdalnie odrzucaj logowanie root?„:

Wyłącz logowanie do korzenia MySQL

lub w inny sposób utwórz nowego użytkownika bazy danych:

Mariadb [(none)]> Utwórz użytkownika „dba”@„localHost” zidentyfikowane przez „YourPasswordhere”; Mariadb [(none)]> daj wszystkie przywileje na * . * Do „dba”@„localHost”; Mariadb [(none)]> Przywileje spłukające; 
Utwórz nowego użytkownika bazy danych

Zabezpieczyć Apache z certyfikatem

8. Ponieważ będziemy korzystać z aplikacji internetowej do zarządzania bazą danych serwera e -mail, musimy podjąć niezbędne środki ostrożności, aby chronić połączenia z serwerem. W przeciwnym razie nasz phpMyAdmin poświadczenia będą podróżować zwykłym tekstem nad drutem.

Ustawić Bezpieczeństwo warstwy transportowej (Tls) Na swoim serwerze wykonaj kroki przedstawione w Część 8 z serii RHCE: wdrażanie HTTPS za pośrednictwem TLS za pomocą sieci bezpieczeństwa sieci (NSS) dla Apache przed kontynuowaniem.

Notatka: Jeśli nie masz dostępu do konsoli serwera, musisz znaleźć inny sposób na wygenerowanie niezbędnej entropii podczas kluczowego tworzenia. W takim przypadku możesz rozważyć zainstalowanie RNG-tools i bieganie rngd -r /dev /urandom.

Skonfiguruj i zabezpiecz phpMyAdmin

9. W /etc/httpd/conf.D/phpMyAdmin.conf (Centos) Lub /etc/phpmyadmin/apache.conf (Debian i pochodne), zlokalizuj wszystkie wystąpienia następujących wierszy i upewnij się, że wskazują one na publiczne IP twojego serwera:

Wymagaj IP AAA.BBB.CCC.DDD Zezwalaj z AAA.BBB.CCC.DDD 

Dodatkowo wyłącz domyślne aliasy i utwórz nowy, aby uzyskać dostęp do strony logowania PhpMyAdmin. Pomoże to zabezpieczyć witrynę przed botami i zewnętrznymi atakującymi, którzy są celem www.Twoja domena.com/phpMyAdmin Lub www.Twoja domena.com/phpMyAdmin.

#Alias ​​/phpMyAdmin /usr /share /phpMyAdmin #alias /phpMyAdmin /usr /share /phpMyAdmin alias /managedb /usr /share /phpMyAdmin 

Dodaj także następującą linię w środku :

Wymagać wszystkich przyznanych 
Bezpieczny phpmyadmin

Utwórz Apache VirtualHost dla domeny

10. Upewnij się, że Twoja domena jest dodawana do włączonych witryn. Tworzyć /etc/httpd/witryny-dostępne/linuxnewz.com.conf (Centos) Lub /etc/apache2/Sites-Available/LinuxNewz.com (Debian) z następującą zawartością (upewnij się, że DocumentRoot, Witryny-dostępne, I witryny z obsługą katalogi istnieją):

 Servername www.LinuxNewz.com Serveralias LinuxNewz.com dokumentroot/var/www/linuxnewz.com/public_html errorLog/var/www/LinuxNewz.com/błąd.Log CustomLog/var/www/LinuxNewz.com/żądania.Log Combined Options Indexe FoneySymLinks  

i symboliczny link:

Na Centos:
# ln -s/etc/httpd/witryny -dostępny/linuxnewz.com.conf/etc/httpd/witryny-obserwowane/LinuxNewz.com.conf 
Na Debian:
# A2ENSITE LINUXNEWZ.com 

i jesteś skończony.

Konfiguracja bazy danych poczty pocztowej postfix

11. Teraz możesz otworzyć swój phpMyAdmin interfejs w https: // www.Twoja domena.com/managedB (Zauważ ManagedB to alias, który ustanowiliśmy wcześniej dla katalogu danych phpMyAdmin).

Jeśli to nie działa (co może być spowodowane opóźnieniem w propagacji lub braku konfiguracji rekordów DNS), ponieważ możesz spróbować użyć publicznego adresu IP swojego serwera zamiast www.Twoja domena.com:

Login PhpMyAdmin

W każdym razie, po zalogowaniu się do phpMyAdmin, zobaczysz następujący interfejs. Kliknij Nowy W lewej części:

Utwórz nową bazę danych w phpMyAdmin

Wprowadź nazwę bazy danych (EMaTerver_DB W takim przypadku nie ma potrzeby wybierania kolacji) i kliknij Tworzyć:

Wprowadź nazwę bazy danych

12. Na następnym ekranie wybierz nazwa dla pierwszej tabeli (gdzie będziemy przechowywać domeny, który będzie zarządzał serwer poczty.

Należy pamiętać, że nawet w tej serii zarządzimy tylko jedną domenę, możesz dodać więcej później) i liczbę pola, które chcesz, a następnie kliknij Iść. Zostaniesz poproszony o wymienienie i skonfigurowanie tych dwóch pól, w których możesz bezpiecznie kontynuować, jak wskazano na poniższych obrazach:

Utwórz tabelę bazy danych

Kiedy wybierasz PODSTAWOWY pod Indeks Do Domainid, Zaakceptuj wartości domyślne i kliknij Iść:

Dodaj indeks bazy danych

Alternatywnie możesz kliknąć Podgląd SQL Aby zobaczyć kod pod maską:

Utwórz tabelę „eMaTerver_db”.„Domains_tbl” („domainid” int not null auto_increment, „domainname” varchar (50) not null, klucz podstawowy („domainid”)) silnik = innodb; 
Kod indeksu tabeli bazy danych

Gdy będziesz gotowy, kliknij Ratować Aby potwierdzić zmiany. Następnie będziesz mógł kliknąć Nowy pod EMaTerver_DB Aby kontynuować tworzenie tabel:

Utwórz tabele w bazie danych

13. Teraz wykonaj następujące kroki, aby utworzyć resztę tabel. Kliknij na SQL karta i wprowadź wskazany kod dla każdego obiektu bazy danych.

Zauważ, że w tym przypadku postanowiliśmy utworzyć tabelę za pomocą zapytania SQL ze względu na relacje, które należy ustalić między różnymi tabelami:

Users_tbl

Utwórz tabelę „Users_tbl” ('userId' int not null auto_increment, „domainid 'int not null,„ hasło ”varchar (100) nie null,„ e -mail ”varchar (100) nie null, klucz podstawowy („ userid ”), unikalny Klucz „e -mail” („e -mail”), zagraniczny klucz (domainid) referencje domains_tbl (domainid) na delete cascade) silnik = innodb; 
Utwórz tabelę użytkowników postfix

Powinieneś uzyskać wiadomość potwierdzającą (jeśli nie, phpMyAdmin będzie monitował o błędy składniowe):

Potwierdzenie MySQL

Alias_tbl

Utwórz tabelę „alias_tbl” („aliasId” int not null auto_increment, „domainid” int not null, „źródło” varchar (100) not null, „destiner” varchar (100) nie null, klucz podstawowy („aliasid”), obca Key (domainid) odwołuje się do domeny_tbl (domainid) na delete cascade) silnik = innodb; 

(Kliknij Iść na dole, aby kontynuować tworzenie stołu).

Do tego momentu powinieneś mieć następującą strukturę bazy danych:

Struktura bazy danych

Co oznacza, że ​​jesteś gotowy, aby zacząć dodawać kilka rekordów w następnej sekcji.

Tworzenie domeny postfix, użytkowników i aliasów

14. Teraz wstawymy następujące rekordy do trzech tabel. Hasła dla [chroniony e -mail] I [chroniony e -mail] zostanie zaszyfrowane i Wstaw do Users_tbl oświadczenie.

Należy również pamiętać, że wysyłane e -maile [chroniony e -mail] zostanie przekierowany do [chroniony e -mail]:

Wstaw wartości domeny_tbl (nazwa domainname) ('LinuxNewz.com '); Wstaw do Users_tbl (domainid, hasło, e -mail) Wartości (1, Encrypt („PasswordForFirSteMailAccount”, Conat („$ 6 $”, Substring (SHA (rand ()), -16)), '[e -mail chroniony]'); Wstaw do Users_tbl (domainid, hasło, e -mail) Wartości (1, Encrypt („PasswordForSecondEmailaccount”, Conat („$ 6 $”, Substring (SHA (rand ()), -16)), '[e -mail chroniony]'); Wstaw do alias_tbl (domainid, źródło, docelowe) wartości (1, „[e -mail chronione]”, „[e -mail chroniony]”); 

Po dodaniu naszej domeny, dwóch kont użytkowników i aliasu e -mail jesteśmy gotowi kontynuować konfigurowanie naszego serwera e -mail w następnym artykule z tej serii, w którym skonfigurujemy GOVECOT I Przyrostek.

Streszczenie

W tym artykule wymieniliśmy pakiety wymagane do zainstalowania serwera pocztowego postfix w CentOS 7 VPS i wyjaśniliśmy, jak zarządzać bazą danych podstawową za pomocą phpMyAdmin.

W następnych dwóch artykułach przejmiemy konfigurację dwóch programów, które zajmie się dystrybucją e -mail dla naszej domeny (Część 2) i pokaż, jak dodać ochronę przed spamem i wirusami (Część 3) dla twojego serwera.

Do tego czasu możesz skontaktować się z nami za pomocą poniższego formularza, jeśli masz jakieś pytania lub komentarze.