Hvernig á að setja upp Postfix póstþjón og Dovecot með gagnagrunni (MariaDB) á öruggan hátt - Part 1


Í þessari þriggja greina röð munum við ræða hvernig á að setja upp Postfix póstþjón með vírusvörn og ruslpóstvörn í CentOS 7 kassa. Vinsamlegast athugaðu að þessar leiðbeiningar virka einnig á öðrum dreifingum eins og RHEL/Fedora og Debian/Ubuntu.

Áætlun okkar felur í sér að geyma tölvupóstreikninga og samnefni í MariaDB gagnagrunni sem er okkur til hægðarauka, verður stjórnað í gegnum phpMyAdmin.

Ef þú velur að setja ekki upp phpMyAdmin, eða ert að fást við CLI-aðeins miðlara, munum við einnig veita samsvarandi kóða til að búa til gagnagrunnstöflurnar sem verða notaðar í þessari röð.

Þar sem að halda póstþjóni gangandi er eitt af nauðsynlegu verkefnum sem venjulega er úthlutað kerfisstjórum og verkfræðingum, munum við einnig veita nokkur ráð til að keyra þessa mikilvægu þjónustu á skilvirkan hátt í framleiðsluumhverfi.

Búðu til A og MX færslur fyrir lén í DNS

Áður en lengra er haldið eru nokkrar forsendur sem þarf að uppfylla:

1. Þú þarft gilt lén skráð í gegnum lénsritara. Í þessari röð munum við nota www.linuxnewz.com, sem var skráð í gegnum GoDaddy.

2. Slíkt lén verður að benda á ytri IP VPS eða skýhýsingaraðilans þíns. Ef þú ert sjálfur að hýsa póstþjóninn þinn geturðu notað þjónustuna sem FreeDNS býður upp á (krefst skráningar).

Í öllum tilvikum verður þú að setja upp A og MX færslur fyrir lénið þitt líka (þú getur lært meira um MX færslur í þessum algengu spurningum frá Google).

Þegar þeim hefur verið bætt við geturðu flett þeim upp með því að nota nettól eins og MxToolbox eða ViewDNS til að tryggja að þau séu rétt sett upp.

Mikilvægt: Vinsamlegast athugaðu að það getur tekið smá stund (1-2 dagar) þar til DNS færslunum er dreift og lénið þitt er tiltækt. Í millitíðinni geturðu fengið aðgang að VPS þínum í gegnum IP tölu þess til að framkvæma verkefnin sem tilgreind eru hér að neðan.

3. Stilltu FQDN (Fully Qualified Domain Name) á VPS þínum:

# hostnamectl set-hostname yourhostname

til að stilla hýsingarheiti kerfisins, breyttu síðan /etc/hosts sem hér segir (skiptu AAA.BBB.CCC.DDD, hýsingarnafninu þínu og léninu þínu út fyrir opinbera IP netþjónsins þíns, hýsilnafnið þitt og skráða lénið þitt):

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

þar sem yourhostname er kerfishýsingarheitið sem var stillt áður með hostnamectl skipuninni.

Að setja upp nauðsynlega hugbúnaðarpakka

4. Til að setja upp nauðsynlega hugbúnaðarpakka eins og Apache, Postfix, Dovecot, MariaDB, PhpMyAdmin, SpamAssassin, ClamAV o.s.frv. þarftu að virkja EPEL geymsluna:

# yum install epel-release

5. Þegar þú hefur fylgt ofangreindum skrefum skaltu setja upp nauðsynlega pakka:

# 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. Ræstu og virkjaðu vef- og gagnagrunnsþjónana:

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

Þegar uppsetningunni er lokið og ofangreind þjónusta er virkjuð og í gangi munum við byrja á því að setja upp gagnagrunninn og töflurnar til að geyma upplýsingar um Postfix póstreikninga.

Að búa til Postfix póstreikningagagnagrunn

Til einföldunar munum við nota phpMyAdmin, tól sem ætlað er að sjá um stjórnun MySQL/MariaDB gagnagrunna í gegnum vefviðmót, til að búa til og stjórna tölvupóstgagnagrunninum.

Hins vegar, til að skrá þig inn á og nota þetta tól, þurfum við að fylgja þessum skrefum:

7. Virkjaðu MariaDB reikninginn (þú getur gert þetta með því að keyra mysql_secure_installation tólið frá skipanalínunni, úthluta lykilorði fyrir notandarót og stilla sjálfgefnar stillingar sem tólið leggur til NEMA „Banna rótarinnskráningu með fjartengingu ?“:

eða á annan hátt búið til nýjan gagnagrunnsnotanda:

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

Öruggur Apache með skírteini

8. Þar sem við munum nota vefforrit til að stjórna gagnagrunni tölvupóstþjónsins þurfum við að gera nauðsynlegar varúðarráðstafanir til að vernda tengingar við netþjóninn. Annars munu phpMyAdmin skilríkin okkar ferðast í venjulegum texta yfir vírinn.

Til að setja upp Transport Layer Security (TLS) á netþjóninum þínum skaltu fylgja skrefunum sem lýst er í hluta 8 í RHCE seríunni: Innleiðing HTTPS í gegnum TLS með Netöryggisþjónustu (NSS) fyrir Apache áður en lengra er haldið.

Athugið: Ef þú hefur ekki aðgang að stjórnborði þjónsins þarftu að finna aðra leið til að búa til nauðsynlega óreiðu meðan á lyklagerðinni stendur. Í því tilviki gætirðu viljað íhuga að setja upp rng-tools og keyra rngd -r /dev/urandom.

Stilla og tryggja PhpMyAdmin

9. Í /etc/httpd/conf.d/phpMyAdmin.conf (CentOS) eða /etc/phpmyadmin/apache.conf (Debian og afleiður), finndu allar tilvik eftirfarandi lína og vertu viss um að þær bendi á opinbera IP af þjóninum þínum:

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

Að auki skaltu slökkva á sjálfgefna samnöfnunum og búa til nýjan til að fá aðgang að phpMyAdmin innskráningarsíðunni þinni. Þetta mun hjálpa til við að tryggja síðuna gegn vélmennum og utanaðkomandi árásarmönnum sem miða á www.yourdomain.com/phpmyadmin eða www.yourdomain.com/phpMyAdmin.

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

Bættu líka við eftirfarandi línu inni í :

Require all granted

Búðu til Apache VirtualHost fyrir lén

10. Gakktu úr skugga um að léninu þínu sé bætt við virkt vefsvæði. Búðu til /etc/httpd/sites-available/linuxnewz.com.conf (CentOS) eða /etc/apache2/sites-available/linuxnewz.com (Debian) með eftirfarandi innihaldi (vertu viss um að DocumentRoot, sites-available og síður -virkar möppur eru til):

<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>

og táknræni hlekkurinn:

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

og þú ert búinn.

Settu upp Postfix tölvupóstgagnagrunn

11. Nú geturðu opnað phpMyAdmin viðmótið þitt á https://www.yourdomain.com/managedb (athugið að managedb er samnefni sem við settum upp áðan fyrir phpMyAdmin gagnaskrána).

Ef það virkar ekki (sem getur stafað af seinkun á útbreiðslu eða skorti á stillingum DNS-skráa) í bili geturðu prófað að nota opinbera IP tölu netþjónsins þíns í stað www.yourdomain.com:

Í öllum tilvikum, eftir að þú hefur skráð þig inn á phpMyAdmin muntu sjá eftirfarandi viðmót. Smelltu á Nýtt í vinstri hlutanum:

Sláðu inn nafn fyrir gagnagrunninn (EmailServer_db í þessu tilfelli, engin þörf á að velja safn) og smelltu á Búa til:

12. Á næsta skjá skaltu velja nafn fyrir fyrstu töfluna (þar sem við munum geyma lénin sem þessi póstþjónn mun stjórna.

Vinsamlegast athugaðu að jafnvel þegar í þessari röð munum við aðeins stjórna einu léni, þú getur bætt við fleiri síðar) og fjölda reita sem þú vilt hafa í því, smelltu síðan á Fara. Þú verður beðinn um að nefna og stilla þessa tvo reiti, þar sem þú getur örugglega haldið áfram eins og sýnt er á eftirfarandi myndum:

Þegar þú velur PRIMARY undir Index for DomainId skaltu samþykkja sjálfgefna gildin og smella á Go:

Að öðrum kosti geturðu smellt á Preview SQL til að sjá kóðann undir hettunni:

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

Þegar þú ert tilbúinn skaltu smella á Vista til að staðfesta breytingar. Þú munt þá geta smellt á Nýtt undir EmailServer_db til að halda áfram að búa til töflur:

13. Fylgdu nú þessum skrefum til að búa til restina af töflunum. Smelltu á SQL flipann og sláðu inn kóðann sem tilgreindur er fyrir hvern gagnagrunnshlut.

Athugaðu að í þessu tilviki völdum við að búa til töfluna með því að nota SQL fyrirspurn vegna tengslanna sem þarf að koma á milli mismunandi taflna:

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; 

Þú ættir að fá staðfestingarskilaboð (ef ekki, mun phpMyAdmin biðja um setningafræðivillur):

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;

(Smelltu á Go neðst til að halda áfram að búa til töfluna).

Hingað til ættir þú að hafa eftirfarandi gagnagrunnsuppbyggingu:

Sem þýðir að þú ert tilbúinn til að byrja að bæta við nokkrum færslum í næsta kafla.

Að búa til Postfix lén, notendur og samnöfn

14. Við munum nú setja eftirfarandi færslur inn í töflurnar þrjár. Lykilorðin fyrir [email  verða dulkóðuð og INSERT INTO Users_tbl yfirlýsingin.

Athugaðu líka að tölvupósturinn sem sendur var á [email proted]:

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 ', 'tecm[email ');

Eftir að hafa bætt við léninu okkar, tveimur notendareikningum og tölvupóstsamnefni erum við tilbúin til að halda áfram að setja upp tölvupóstþjóninn okkar í næstu grein í þessari röð, þar sem við munum stilla Dovecot og Postfix.

Samantekt

Í þessari grein höfum við skráð pakkana sem þarf til að setja upp Postfix tölvupóstþjón í CentOS 7 VPS og útskýrt hvernig á að stjórna undirliggjandi gagnagrunninum með því að nota phpMyAdmin.

Í næstu tveimur greinum munum við fara yfir uppsetningu forritanna tveggja sem sjá um dreifingu tölvupósts fyrir lénið okkar (Hluti 2) og sýna þér hvernig á að bæta við vörn gegn ruslpósti og vírusum (Hluti 3) fyrir netþjóninn þinn.

Þangað til þá skaltu ekki hika við að hafa samband við okkur með því að nota formið hér að neðan ef þú hefur einhverjar spurningar eða athugasemdir.