Postfiks poçta serwerini we kepderi maglumat bazasy (MariaDB) bilen nädip sazlamaly - 1-nji bölüm


Bu 3 makalaly seriýamyzda, CentOS 7 gutusynda antiwirus we spam goragy bilen Postfix poçta serwerini nädip gurmalydygyny ara alyp maslahatlaşarys. Bu görkezmeleriň RHEL/Fedora we Debian/Ubuntu ýaly beýleki paýlamalarda-da işleýändigini ýadyňyzdan çykarmaň.

Biziň meýilnamamyz, phpMyAdmin arkaly dolandyryljak MariaDB maglumatlar bazasynda e-poçta hasaplaryny we lakamlaryny saklamakdan ybarat.

PhpMyAdmin gurmazlygy saýlasaňyz ýa-da diňe bir CLI serweri bilen iş salyşýan bolsaňyz, bu seriýalyň dowamynda ulanyljak maglumatlar binýadynyň tablisalaryny döretmek üçin ekwiwalent kod bereris.

Poçta serwerini saklamak we işlemek, adatça ulgam dolandyryjylaryna we in engineenerlerine berlen möhüm meseleleriň biri bolansoň, önümçilik gurşawynda bu möhüm hyzmaty netijeli dolandyrmak üçin birnäçe maslahat bereris.

DNS-de domen üçin A we MX ýazgylaryny dörediň

Has öňe gitmezden ozal ýerine ýetirilmeli birnäçe şertler bar:

1. Size domen registratorynyň üsti bilen hasaba alnan dogry bir domen gerek bolar. Bu seriýamyzda GoDaddy arkaly hasaba alnan www.linuxnewz.com ulanarys.

2. Şeýle domen, VPS ýa-da bulut hosting üpjün edijiňiziň daşarky IP-sine gönükdirilmelidir. Poçta serweriňizi özbaşdak ýerleşdirýän bolsaňyz, FreeDNS tarapyndan hödürlenýän hyzmaty ulanyp bilersiňiz (hasaba alynmagyny talap edýär).

Her niçigem bolsa, domeniňiz üçin A we MX ýazgylaryny gurmaly bolarsyňyz (bu sowalda MX ýazgylary barada Google-dan has köp maglumat alyp bilersiňiz).

Goşulandan soň, olaryň dogry gurnalandygyny anyklamak üçin MxToolbox ýa-da ViewDNS ýaly onlaýn gural ulanyp gözläp bilersiňiz.

Üns beriň: DNS ýazgylary ýaýradylýança we domeniňiz elýeterli bolýança biraz wagt gerek bolup biler (1-2 gün). Şol bir wagtyň özünde, aşakda görkezilen meseleleri ýerine ýetirmek üçin VPS-ä IP adresi arkaly girip bilersiňiz.

3. VPS-iňiziň FQDN (Doly kwalifikasiýa domen adyny) sazlaň:

# hostnamectl set-hostname yourhostname

ulgam host adyny bellemek, soňra/etc/hostlary aşakdaky ýaly redaktirläň (AAA.BBB.CCC.DDD, adyňyzy we domeniňizi serweriňiziň umumy IP-si, host adyňyz we hasaba alnan domeniňiz bilen çalşyň):

AAA.BBB.CCC.DDD yourhostname.yourdomain.com       yourhostname

bu ýerde yourhostname, hostnamectl buýrugy bilen öň gurlan ulgam host ady.

Gerekli programma üpjünçilik paketlerini gurmak

4. Apache, Postfix, Dovecot, MariaDB, PhpMyAdmin, SpamAssassin, ClamAV we ş.m. ýaly zerur programma üpjünçilik paketlerini gurmak üçin EPEL ammaryny işletmeli:

# yum install epel-release

5. aboveokardaky ädimleri ýerine ýetireniňizden soň, zerur paketleri guruň:

# 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-base mariadb-client mariadb-server php5 phpMyAdmin

6. Web we maglumat bazasynyň serwerlerine başlaň we işlediň:

# systemctl enable httpd mariadb
# systemctl start httpd mariadb
# systemctl enable apache2 mariadb
# systemctl start apache2 mariadb

Gurmak tamamlanandan we ýokardaky hyzmat açyk we işledilenden soň, Postfiks poçta hasaplary barada maglumatlary saklamak üçin maglumat bazasyny we tablisalary gurup başlarys.

Postfiks poçta hasaplary maglumatlar bazasyny döretmek

Ityönekeýlik üçin, e-poçta maglumatlar bazasyny döretmek we dolandyrmak üçin web interfeýsi arkaly MySQL/MariaDB maglumat bazalaryny dolandyrmagy maksat edinýän gural phpMyAdmin ulanarys.

Şeýle-de bolsa, bu guralyň içine girmek we ulanmak üçin şu ädimleri ýerine ýetirmeli:

7. MariaDB hasaby açyň (muny buýruk setirinden mysql_secure_installation kömekçi programmasyny işledip, ulanyjy köküne parol bellemek we gural tarapyndan teklip edilen deslapky sazlamalary EXCEPT “Kök girişini uzakdan gadagan etmek arkaly edip bilersiňiz. ? :

ýa-da başgaça täze maglumat bazasy ulanyjysyny dörediň:

MariaDB [(none)]> CREATE USER 'dba'@'localhost' IDENTIFIED BY 'YourPasswordHere';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON * . * TO 'dba'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;

Şahadatnama bilen ygtybarly Apache

8. E-poçta serweriniň maglumat bazasyny dolandyrmak üçin web programmasyny ulanýandygymyz sebäpli, serwere birikmeleri goramak üçin zerur çäreleri görmeli. Otherwiseogsam, phpMyAdmin şahsyýet maglumatlarymyz simiň üstünden açyk tekstde syýahat eder.

Serweriňizde Transport Layer Security (TLS) gurmak üçin, RHCE seriýasynyň 8-nji bölüminde görkezilen ädimleri ýerine ýetiriň: Has dowam etmezden ozal Apache üçin Network Security Service (NSS) ulanyp, TLS arkaly HTTPS-i durmuşa geçirmek.

Bellik: serweriň konsolyna girip bilmeýän bolsaňyz, açar döredilende zerur entropiýa döretmegiň başga ýoluny tapmaly bolarsyňyz. Bu ýagdaýda, rng-gurallaryny gurnamagy we rngd -r/dev/urandom işlemegi göz öňünde tutup bilersiňiz.

PhpMyAdmin-i sazlaň we ygtybarly ediň

9. /etc/httpd/conf.d/phpMyAdmin.conf (CentOS) ýa/serweriňizden:

Require ip AAA.BBB.CCC.DDD
Allow from AAA.BBB.CCC.DDD

Mundan başga-da, phpMyAdmin giriş sahypaňyza girmek üçin deslapky lakamlary öçüriň we täzesini dörediň. Bu, sahypany www.yourdomain.com/phpmyadmin ýa-da www.yourdomain.com/phpMyAdmin nyşana alýan botlardan we daşarky hüjümçilerden goramaga kömek eder.

#Alias /phpMyAdmin /usr/share/phpMyAdmin
#Alias /phpmyadmin /usr/share/phpMyAdmin
Alias /managedb /usr/share/phpMyAdmin

Şeýle hem, -iň içine aşakdaky setir goşuň:

Require all granted

Domen üçin Apache VirtualHost dörediň

10. Domeniňiziň açyk saýtlara goşulandygyna göz ýetiriň. Aşakdaky mazmun bilen /etc/httpd/sites-available/linuxnewz.com.conf (CentOS) ýa-da /etc/apache2/sites-available/linuxnewz.com (Debian) dörediň (DocumentRoot, saýtlar we saýtlar) açyk kataloglar bar):

<VirtualHost *:80>
    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 combined
    Options Indexes FollowSymLinks
</VirtualHost>

we simwoliki baglanyşyk:

# ln -s /etc/httpd/sites-available/linuxnewz.com.conf /etc/httpd/sites-enabled/linuxnewz.com.conf
# a2ensite linuxnewz.com

etdiň

Postfiks e-poçta maglumat bazasyny guruň

11. Indi phpMyAdmin interfeýsiňizi https://www.yourdomain.com/managedb sahypasynda açyp bilersiňiz (dolandyryşyň phpMyAdmin maglumat katalogy üçin öň bellän lakamymyzdygyna üns beriň).

Häzirki wagtda bu netije bermese (DNS ýazgylarynyň ýaýramagynyň gijikdirilmegi ýa-da konfigurasiýasynyň bolmazlygy sebäpli döräp biler) www.yourdomain.com ýerine derek serweriňiziň umumy IP adresini ulanyp bilersiňiz:

Her niçigem bolsa, phpMyAdmin-e gireniňizden soň aşakdaky interfeýsi görersiňiz. Çep bölümdäki Täze düwmesine basyň:

Maglumat bazasynyň adyny giriziň (bu ýagdaýda EmailServer_db, Toplama saýlamagyň zerurlygy ýok) we Dörediň:

12. Indiki ekranda birinji tablisanyň adyny saýlaň (bu poçta serweriniň dolandyrjak domenlerini nirede saklarys).

Bu seriýalda diňe bir domeni dolandyrsak-da, has soň goşup bilersiňiz) we içindäki meýdanlaryň sanyny belläň, soňra Go basyň. Aşakdaky suratlarda görkezilişi ýaly arkaýyn dowam edip boljak şol iki meýdanyň adyny bellemek we düzmek soralar:

DomainId üçin Index astynda PRIMARY saýlanyňyzda, başlangyç bahalary kabul ediň we Go:

Ativea-da bolmasa, kapotyň aşagyndaky kody görmek üçin “Preview SQL” -e basyp bilersiňiz:

CREATE TABLE `EmailServer_db`.`Domains_tbl` ( `DomainId` INT NOT NULL AUTO_INCREMENT , `DomainName` VARCHAR(50) NOT NULL , PRIMARY KEY (`DomainId`)) ENGINE = InnoDB;

Taýar bolanyňyzda, üýtgeşmeleri tassyklamak üçin Saklamak düwmesine basyň. Soňra tablisalary döretmegi dowam etdirmek üçin EmailServer_db-iň aşagyndaky Täze düwmesine basyp bilersiňiz:

13. Indi tablisalaryň galan bölegini döretmek üçin şu ädimleri ýerine ýetiriň. SQL goýmasyna basyň we her maglumat bazasy obýekti üçin görkezilen kody giriziň.

Bu ýagdaýda dürli tablisalaryň arasynda ýola goýulmaly gatnaşyklar sebäpli SQL talapyny ulanyp tablisany döretmegi saýlandygymyzy unutmaň:

CREATE TABLE `Users_tbl` ( 
    `UserId` INT NOT NULL AUTO_INCREMENT,  
    `DomainId` INT NOT NULL,  
    `password` VARCHAR(100) NOT NULL,  
    `Email` VARCHAR(100) NOT NULL,  
    PRIMARY KEY (`UserId`),  
    UNIQUE KEY `Email` (`Email`),  
    FOREIGN KEY (DomainId) REFERENCES Domains_tbl(DomainId) ON DELETE CASCADE 
) ENGINE = InnoDB; 

Tassyklama habaryny almaly (ýok bolsa, phpMyAdmin sintaksis säwliklerini sorar):

CREATE TABLE `Alias_tbl` (
    `AliasId` INT NOT NULL AUTO_INCREMENT, 
    `DomainId` INT NOT NULL, 
    `Source` varchar(100) NOT NULL, 
    `Destination` varchar(100) NOT NULL, 
    PRIMARY KEY (`AliasId`), 
    FOREIGN KEY (DomainId) REFERENCES Domains_tbl(DomainId) ON DELETE CASCADE
) ENGINE = InnoDB;

(Tablisanyň döredilmegini dowam etdirmek üçin aşaky Go basyň).

Şu wagta çenli maglumat bazasynyň gurluşy bolmaly:

Bu, indiki bölümde käbir ýazgylary goşup başlamaga taýýardygyňyzy aňladýar.

Postfiks domenini, ulanyjylary we lakamlaryny döretmek

14. Indi aşakdaky ýazgylary üç tablisa girizeris. [E-poçta bilen goralan] parollar kodlanar we INSERT INTO Ulanyjylar_tbl beýany.

Şeýle hem, [e-poçta bilen goralan] iberilen e-poçta hatlaryna üns bermegiňizi haýyş edýäris:

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))), '[email ');  
INSERT INTO Users_tbl (DomainId, password, Email) VALUES (1, ENCRYPT('PasswordForSecondEmailAccount', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), '[email ');  
INSERT INTO Alias_tbl (DomainId, Source, Destination) VALUES (1, '[email ', '[email ');

Domenimizi, iki ulanyjy hasaby we e-poçta lakamymyzy goşanymyzdan soň, “Dovecot” we “Postfix” -i düzjek bu seriýamyzyň indiki makalasynda e-poçta serwerimizi gurmagy dowam etdirmäge taýýardyrys.

Gysgaça mazmun

Bu makalada CentOS 7 VPS-de Postfiks e-poçta serwerini gurmak üçin zerur paketleri sanadyk we phpMyAdmin ulanyp, esasy maglumat bazasyny nädip dolandyrmalydygyny düşündirdik.

Indiki iki makalada domenimiz üçin e-poçta paýlanyşyna gözegçilik etjek iki programmanyň konfigurasiýasyny gözden geçireris we serweriňiz üçin spamdan we wiruslardan goragy nädip goşmalydygyny görkezeris (3-nji bölüm).

Oňa çenli soraglaryňyz ýa-da teswirleriňiz bar bolsa aşakdaky formdan peýdalanyp, biziň bilen habarlaşyp bilersiňiz.