![Glatko, inteligentno Plymouth Boot Splash](/f/1159215716c7d0337e5bce6a15064f87.png?width=100&height=100)
U ovom 3-članak serija raspravljat ćemo kako postaviti a Postfix poslužitelj pošte s zaštitom od virusa i neželjene pošte u CentOS 7 kutija. Imajte na umu da ove upute vrijede i za druge distribucije, kao što su RHEL/Fedora i Debian/Ubuntu.
1. dio: Kako sigurno stvoriti i postaviti bazu podataka postfix poslužitelja pošte (MariaDB)
Naš plan sastoji se od spremanja računa e -pošte i pseudonima u MariaDB bazom podataka koja će nam biti praktična, upravljat će se putem phpMyAdmin.
Ako odlučite ne instalirati phpMyAdmin, ili imate posla s poslužiteljem samo za CLI, također ćemo pružiti ekvivalentni kôd za stvaranje tablica baze podataka koje će se koristiti u ovoj seriji.
Budući da je održavanje poslužitelja pošte jedan od osnovnih zadataka koji se obično dodjeljuju sustavu administratori i inženjeri, također ćemo dati nekoliko savjeta za učinkovito vođenje ove kritične usluge u proizvodnji okoliš.
Prije nego nastavite, potrebno je ispuniti nekoliko preduvjeta:
1. Trebat će vam valjana domena registrirana putem registra domena. U ovoj seriji koristit ćemo www.linuxnewz.com
, koji je registriran putem GoDaddy.
2. Takva domena mora biti usmjerena na vanjski IP vašeg VPS -a ili pružatelja usluga hostinga u oblaku. Ako sami hostirate svoj poslužitelj pošte, možete koristiti uslugu koju nudi FreeDNS (potrebna registracija).
U svakom slučaju morate postaviti A
i MX
zapise i za svoju domenu (više o zapisima MX možete saznati u ovaj FAQ s Googlea).
Nakon što ih dodate, možete ih potražiti pomoću mrežnog alata kao što je MxToolbox ili ViewDNS kako bi bili sigurni da su pravilno postavljeni.
Važno: Imajte na umu da može potrajati (1-2 dana) sve dok DNS zapisi ne budu propagirani i vaša domena dostupna. U međuvremenu možete pristupiti svom VPS -u putem njegove IP adrese za izvršavanje dolje navedenih zadataka.
3. Konfigurirajte FQDN (Potpuno kvalificirano ime domene) vašeg VPS -a:
# hostnamectl set-hostname vašeime.
za postavljanje naziva hosta sustava, a zatim uredite /etc/hosts kako slijedi (zamijenite AAA.BBB.CCC.DDD, ime vašeg domaćina, i vaša domena s javnim IP -om vašeg poslužitelja, vašim imenom hosta i vašom registriranom domenom):
AAA.BBB.CCC.DDD yourhostname.yourdomain.com yourhostname.
gdje ime vašeg domaćina je naziv hosta sustava koji je prethodno postavljen pomoću hostnamectl naredba.
4. Da biste instalirali potrebne softverske pakete kao što su Apache, Postfix, Dovecot, MariaDB, PhpMyAdmin, SpamAssassin, ClamAV itd., Morate omogućiti EPEL spremište:
# yum instalirajte epel-release.
5. Nakon što slijedite gore navedene korake, instalirajte potrebne pakete:
# yum update && yum install httpd httpd-devel postfix dovecot dovecot-mysql spamassassin clamav clamav-scanner clamav-scanner-systemd clamav-data clamav-update mariadb mariadb-server php phpMyAdmin.
# aptitude update && aptitude install apache2 postfix dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-mysql spamassassin clamav clamav-daemon clamav-baza mariadb-klijent mariadb-poslužitelj php5 phpMyAdmin.
6. Pokrenite i omogućite web i poslužitelje baze podataka:
# systemctl omogući httpd mariadb. # systemctl pokrenite httpd mariadb.
# systemctl omogućiti apache2 mariadb. # systemctl pokrenite apache2 mariadb.
Kad instalacija završi i gornja usluga bude omogućena i pokrenuta, počet ćemo postavljanjem baze podataka i tablica za pohranu podataka o računima pošte Postfix.
Radi jednostavnosti koristit ćemo phpMyAdmin, alat namijenjen upravljanju MySQL / MariaDB baze podataka putem web sučelja za stvaranje i upravljanje bazom podataka e -pošte.
No, da bismo se prijavili i koristili ovaj alat, moramo slijediti ove korake:
7. Omogućite MariaDB račun (to možete učiniti pokretanjem mysql_secure_installation
uslužni program iz naredbenog retka, dodjeljivanje lozinke za korisnički korijen i postavljanje zadanih postavki koje alat predlaže osim "Želite li daljinski onemogućiti prijavu s root -om?“:
ili na drugi način stvoriti novog korisnika baze podataka:
MariaDB [(nema)]> CREATE USER 'dba'@'localhost' IDENTIFICIRANO 'YourPasswordHere'; MariaDB [(nema)]> ODOBRI SVE PRIVILEGIJE NA *. * TO 'dba'@'localhost'; MariaDB [(nema)]> FLUSH PRIVILEGES;
8. Budući da ćemo koristiti web aplikaciju za upravljanje bazom podataka poslužitelja e -pošte, moramo poduzeti potrebne mjere opreza kako bismo zaštitili veze sa poslužiteljem. Inače, naše phpMyAdmin vjerodajnice će putovati u običnom tekstu preko žice.
Postaviti Sigurnost transportnog sloja (TLS) na poslužitelju slijedite korake navedene u 8. dio iz serije RHCE: Implementacija HTTPS -a putem TLS -a pomoću usluge mrežne sigurnosti (NSS) za Apache prije nego što nastavite dalje.
Bilješka: ako nemate pristup poslužiteljskoj konzoli, morat ćete pronaći drugi način za generiranje potrebne entropije tijekom stvaranja ključa. U tom slučaju razmislite o instaliranju rng-alati i trčanje rngd -r /dev /urandom.
9. U /etc/httpd/conf.d/phpMyAdmin.conf (CentOS) ili /etc/phpmyadmin/apache.conf (Debian i izvedenice), locirajte sve pojave sljedećih redaka i pobrinite se da ukazuju na javni IP vašeg poslužitelja:
Zahtijeva ip AAA.BBB.CCC.DDD. Dopustite iz AAA.BBB.CCC.DDD.
Osim toga, onemogućite zadane pseudonime i izradite novi za pristup stranici za prijavu na phpMyAdmin. To će pomoći u zaštiti web stranice od robota i vanjskih napadača koji ciljaju www.vaša domena.com/phpmyadmin ili www.vaša domena.com/phpMyAdmin.
#Alias /phpMyAdmin /usr /share /phpMyAdmin. #Alias /phpmyadmin /usr /share /phpMyAdmin. Pseudonim /managedb /usr /share /phpMyAdmin.
Također, dodajte sljedeći redak unutra :
Zahtijeva sve odobreno.
10. Provjerite je li vaša domena dodana omogućenim web mjestima. Stvoriti /etc/httpd/sites-available/linuxnewz.com.conf (CentOS) ili /etc/apache2/sites-available/linuxnewz.com (Debian) sa sljedećim sadržajem (provjerite DocumentRoot, web-mjesta dostupna, i omogućene web stranice direktoriji postoje):
ServerName www.linuxnewz.com ServerAlias linuxnewz.com DocumentRoot /var/www/linuxnewz.com/public_html ErrorLog /var/www/linuxnewz.com/error.log CustomLog /var/www/linuxnewz.com/requests.log kombinirani indeksi opcija FollowSymLinks.
i simbolična veza:
# ln -s /etc/httpd/sites-available/linuxnewz.com.conf /etc/httpd/sites-enabled/linuxnewz.com.conf.
# a2enzite linuxnewz.com.
i gotovi ste.
11. Sada možete otvoriti svoj phpMyAdmin sučelje na https://www.yourdomain.com/managedb
(imajte na umu da uspiob je pseudonim koji smo ranije postavili za imenik podataka phpMyAdmin).
Ako to ne uspije (što može biti uzrokovano kašnjenjem u širenju ili nedostatkom konfiguracije DNS zapisa), za sada možete pokušati koristiti javnu IP adresu poslužitelja umjesto www.vaša domena.com:
U svakom slučaju, nakon što se prijavite na phpMyAdmin, vidjet ćete sljedeće sučelje. Klik Novi u lijevom odjeljku:
Unesite naziv baze podataka (EmailServer_db u ovom slučaju nema potrebe za odabirom usporedbe) i kliknite Stvoriti:
12. Na sljedećem ekranu odaberite a Ime za prvu tablicu (gdje ćemo pohraniti domene kojima će upravljati ovaj poslužitelj pošte.
Imajte na umu da čak i kada ćemo u ovoj seriji upravljati samo jednom domenom, kasnije možete dodati još) i broj polja koja želite u njoj, a zatim kliknite Ići. Od vas će se tražiti da imenujete i konfigurirate ta dva polja u kojima možete sigurno nastaviti kako je prikazano na sljedećim slikama:
Kad odaberete PRIMARNO pod, ispod Indeks za DomainId, prihvatite zadane vrijednosti i kliknite Ići:
Alternativno, možete kliknuti Pregled SQL -a da biste vidjeli kôd ispod haube:
CREATE TABLE `EmailServer_db`.`Domains_tbl` (` DomainId` INT NOT NULL AUTO_INCREMENT, `DomainName` VARCHAR (50) NOT NULL, PRIMARY KEY (` DomainId`)) ENGINE = InnoDB;
Kad budete spremni, kliknite Uštedjeti za potvrdu promjena. Tada ćete moći kliknuti Novi pod, ispod EmailServer_db za nastavak stvaranja tablica:
13. Sada slijedite ove korake za stvaranje ostalih tablica. Klikni na SQL karticu i unesite označeni kôd za svaki objekt baze podataka.
Imajte na umu da smo u ovom slučaju odabrali stvaranje tablice pomoću SQL upita zbog odnosa koji se moraju uspostaviti između različitih tablica:
CREATE TABLE `Users_tbl` (` UserId` INT NOT NULL AUTO_INCREMENT, `DomainId` INT NOT NULL,` password` VARCHAR (100) NOT NULL, `Email` VARCHAR (100) NOT NULL, PRIMARNI KLJUČ (`UserId`), JEDINSTVENI KLJUČ` Email` (`Email`), STRANI KLJUČ (DomainId) REFERENCE Domains_tbl (DomainId) NA IZBRIŠI CASCADE) MOTOR = InnoDB;
Trebali biste dobiti poruku potvrde (ako nije, phpMyAdmin će zatražiti sintaksičke greške):
CREATE TABLE `Alias_tbl` (` AliasId` INT NOT NULL AUTO_INCREMENT, `DomainId` INT NOT NULL,` Source` varchar (100) NOT NULL, Varchar `odredišta` (100) NIJE NULA, PRIMARNI KLJUČ (` AliasId`), STRANI KLJUČ (DomainId) LITERATURA Domains_tbl (DomainId) NA IZBRIŠI KASKADA. ) MOTOR = InnoDB;
(Klik Ići pri dnu za nastavak stvaranja tablice).
Do ovog trenutka trebali biste imati sljedeću strukturu baze podataka:
Što znači da ste spremni za početak dodavanja zapisa u sljedećem odjeljku.
14. Sada ćemo u tri tablice umetnuti sljedeće zapise. Lozinke za [zaštićena e -pošta] i [zaštićena e -pošta] bit će šifriran i INSERT INTO Users_tbl izjava.
Također, imajte na umu da su e -poruke poslane na [zaštićena e -pošta] bit će preusmjeren na [zaštićena e -pošta]:
INSERT INTO Domains_tbl (DomainName) VALUES ('linuxnewz.com'); INSERT INTO Users_tbl (DomainId, password, Email) VALUES (1, ENCRYPT ('PasswordForFirstEmailAccount', CONCAT ('$ 6 $', SUBSTRING (SHA (RAND ()), -16)))), '[zaštićena e -pošta]'); INSERT INTO Users_tbl (DomainId, password, Email) VALUES (1, ENCRYPT ('PasswordForSecondEmailAccount', CONCAT ('$ 6 $', SUBSTRING (SHA (RAND ()), -16))), '[zaštićena e -pošta]'); INSERT INTO Alias_tbl (DomainId, Source, Destination) VRIJEDNOSTI (1, '[zaštićena e -pošta]', '[zaštićena e -pošta]');
Dodavanjem naše domene, dva korisnička računa i pseudonima e -pošte spremni smo za nastavak postavljanja našeg poslužitelja e -pošte u sljedećem članku ove serije, gdje ćemo konfigurirati Golubinjak i Postfix.
U ovom smo članku naveli pakete potrebne za instalaciju Postfix poslužitelja e -pošte u CentOS 7 VPS i objasnili kako upravljati bazom podataka koja se nalazi u bazi pomoću phpMyAdmina.
U sljedeća dva članka pregledat ćemo konfiguraciju dva programa koji će se pobrinuti za distribuciju e -pošte za našu domenu (2. dio) i pokazati vam kako dodati zaštitu od neželjene pošte i virusa (3. dio) za vaš poslužitelj.
Do tada, slobodno nas kontaktirajte putem donjeg obrasca ako imate pitanja ili komentara.