Liigu peamise sisu juurde

ULTIMA JUHEND: Serveri seadistamine usaldusväärseks e-posti edastamiseks. I OSA: Tulemüür

· 8 min lugemine
Customer Care Engineer

email-server-linux-firewall-configuration-smtp-imap-setup-guide

info

Tulemüür on tarkvara (või riistvaralis-tarkvaraline seade), mis kontrollib, millised ühendused serveriga on lubatud ja millised on blokeeritud. Enamikus tänapäevastes Linuxi serveri distributsioonides on teatud tüüpi tulemüür kohe saadaval.

Usaldusväärne e-posti edastamine adressaadini sõltub mitte ainult meiliserverist endast, vaid ka õigetest DNS-kirjetest ja tulemüüri konfiguratsioonist. Kui nendega on midagi valesti, jõuavad teie sõnumid suure tõenäosusega Spam kausta – või ei jõua kohale üldse.

See artikkel kirjeldab peamisi samme, mis võimaldavad teil saavutada peaaegu 100% usaldusväärse sõnumite edastamise oma serverist. 1. osas käsitleme üksikasjalikult võimalikke tulemüüri puudutavaid probleeme; 2. osas leiate juhised DNS-kirjete konfigureerimiseks.

Selles artiklis esitatud teave kehtib ainult Linuxi distributsioonidel töötavate meiliserverite kohta. Näidetena kasutatakse Debian 12 ja Rocky Linux 8.10 koos FASTPANEL juhtpaneeliga.

Eeldused

1. samm. Diagnostikatööriistade installimine

Kirjete ja portide kontrollimiseks vajate:

  • dig – DNS-kirjete analüüsimiseks

  • lsof – meiliserveri oleku kontrollimiseks

  • netcat – pordi kättesaadavuse kontrollimiseks

  • whois – praeguse DNS-teenusepakkuja kontrollimiseks

Installimine Debiani/Ubuntu peale:

sudo apt update && sudo apt install -y bind9-dnsutils netcat-openbsd lsof whois

CentOS/AlmaLinux/Rocky Linux:

sudo yum install -y bind-utils nmap-ncat lsof whois

Meili portide kättesaadavus

info

Port on numbrikood, mida kasutatakse serveri erinevate teenuste poole pöördumiseks. Iga teenus või rakendus kuulab oma pordil, et vahetada andmeid üle võrgu (näiteks HTTP kasutab porti 80 ja SMTP porti 25).

Kõigi järgmiste sammude sooritamiseks ühendage oma serveriga SSH kaudu, kasutades root-kasutaja mandaate või kasutage käskude käivitamisel sudo, nagu näidetes näidatud. Saate õppida, kuidas serveriga SSH kaudu ühendust luua, meie SSH artiklist.

2. samm. Meiliserveri oleku kontrollimine

Enne pordite võrgu kaudu ligipääsetavuse kontrollimist, veenduge esmalt, et meiliserverid töötavad ja toimivad õigesti. Väljuvat e-posti haldab tavaliselt Exim või Postfix ja sissetulevat e-posti Dovecot.

Selle kontrollimiseks, et need töötavad, kasutage käske:

sudo lsof -i:25
sudo lsof -i:143

Kui teenused töötavad, saate väljundi, mis on sarnane järgmisega:

Port 25:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
exim 839 exim 4u IPv6 778199358 0t0 TCP *:smtp (LISTEN)
exim 839 exim 5u IPv4 778199359 0t0 TCP *:smtp (LISTEN)

Kui teie server kasutab mõnda muud SMTP-serverit, näiteks Postfix, näete esimeses veerus selle täpset nime, mitte exim. Vajaduse korral kasutage seda nime järgmistes käskudes.

Port 143:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
dovecot 859 root 39u IPv4 778204692 0t0 TCP *:imap (LISTEN)
dovecot 859 root 40u IPv6 778204693 0t0 TCP *:imap (LISTEN)

See tähendab, et kõik on korras ja saate jätkata järgmise sammuga.

Kui meiliteenused ei tööta, saate tühja väljundi:

~ sudo lsof -i:25
~
~ sudo lsof -i:143
~

Sellisel juhul on midagi valesti ja meiliteenused pole saadaval. Saate proovida neid käsitsi käivitada ja seejärel nende olekut kontrollida:

Debian/Ubuntu:

systemctl restart exim4 dovecot
systemctl status exim4
systemctl status dovecot

CentOS/AlmaLinux/Rocky Linux:

systemctl restart exim dovecot
systemctl status exim
systemctl status dovecot

Töötamise olekus näeb teenuse olek välja sarnane:

Exim:

● exim.service - Exim Mail Transport Agent
Loaded: loaded (/usr/lib/systemd/system/exim.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2025-11-02 16:38:57 UTC; 57min ago
Main PID: 839 (exim)
Tasks: 1
Memory: 11.0M
CGroup: /system.slice/exim.service
└─839 /usr/sbin/exim -bd -q1h

Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.

Dovecot:

● dovecot.service - Dovecot IMAP/POP3 email server
Loaded: loaded (/usr/lib/systemd/system/dovecot.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2025-11-02 16:38:58 UTC; 58min ago
Docs: man:dovecot(1)
https://doc.dovecot.org/
Main PID: 859 (dovecot)
Tasks: 5
Memory: 9.5M
CGroup: /system.slice/dovecot.service
├─ 859 /usr/sbin/dovecot -F
├─ 880 dovecot/anvil
├─ 881 dovecot/log
├─ 882 dovecot/config
└─1729 dovecot/stats

Sellisel juhul on kõik korras ja saate jätkata järgmise sammuga.

Kui teenustega on midagi valesti, näete väljundit, mis on sarnane sellele:

Exim:

● exim.service - Exim Mail Transport Agent
Loaded: loaded (/usr/lib/systemd/system/exim.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Sun 2025-11-02 17:38:44 UTC; 3s ago
Process: 839 ExecStart=/usr/sbin/exim -bd -q${QUEUE} (code=exited, status=0/SUCCESS)
Main PID: 839 (code=exited, status=0/SUCCESS)

Dovecot:

● dovecot.service - Dovecot IMAP/POP3 email server
Loaded: loaded (/usr/lib/systemd/system/dovecot.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Sun 2025-11-02 17:39:32 UTC; 3s ago
Docs: man:dovecot(1)
https://doc.dovecot.org/
Process: 2278 ExecStop=/usr/bin/doveadm stop (code=exited, status=0/SUCCESS)
Process: 859 ExecStart=/usr/sbin/dovecot -F (code=exited, status=0/SUCCESS)
Main PID: 859 (code=exited, status=0/SUCCESS)

Teenuste kättesaamatuks võiks olla mitmeid põhjusi (vead konfiguratsioonifailides, logifailide kogemata kustutamine, serveris vaba kettaruumi puudumine ja palju muud). Need aspektid jäävad selle artikli ulatusest välja.

Kui te selle probleemiga kokku puutute ja soovite seda ise uurida, soovitame meie artiklit süsteemi ajakirjaga töötamise kohta. Või abi saamiseks võtke ühendust oma hosting-teenusepakkuja tugimeeskonnaga. Meie kodu.cloud-is töötame 24/7 ja vastame päringutele mõne minutiga.

3. samm. Meili portide kättesaadavuse kontrollimine globaalsest võrgustikust

E-posti korrektseks toimimiseks peavad järgmised TCP-pordid olema võrgus kättesaadavad:

  • 25, 465, 587 – e-kirjade saatmiseks (SMTP)

  • 143, 993 – e-kirjade vastuvõtmiseks (IMAP)

Nende kättesaadavust saate kontrollida netcat-iga:

nc -vz 1.2.3.4 25

Asendage 1.2.3.4 oma serveri tegeliku IP-aadressiga.

Kui port on avatud, saate järgmise vastuse:

Debian/Ubuntu:

Connection to 1.2.3.4 25 port [tcp/smtp] succeeded!

CentOS/AlmaLinux/Rocky Linux:

Ncat: Version 7.92 ( https://nmap.org/ncat )
Ncat: Connected to 1.2.3.4:25.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.

Kui port on suletud, on vastus järgmine:

Debian/Ubuntu:

nc: connect to 1.2.3.4 port 25 (tcp) failed: Connection refused

CentOS/AlmaLinux/Rocky Linux:

Ncat: Version 7.92 ( https://nmap.org/ncat )
Ncat: Connection refused.

Käivitage see käsk kõigile selle jaotise alguses loetletud portidele. Kui kõik need on saadaval, jätkake selle artikli teise osaga. Kui mitte, minge 4. sammule, et probleem lahendada.

4. samm. Juurdepääsu avamine (valikuline)

Enamasti kasutavad serverid tulemüüri kaitsmiseks soovimatute ühenduste eest iptables või UFW. Käivitage käsk:

sudo ufw status

Kui saate järgmise vastuse:

-bash: ufw: command not found

see tähendab, et kasutatakse iptables. Kui aga väljund algab sellest:

Status: active

See tähendab, et kasutatakse UFW.

Minge selle sammu vastavasse alajaotisse vastavalt kasutatavale tulemüürile.

hoiatus

Linuxis on süsteemi tulemüüri haldamiseks ka muud tarkvara (nftables, firewalld ja teised). Neid ei käsitleta selles artiklis, et mitte selle mahtu suurendada.

Iptables

hoiatus

Selles jaotises kehtivad kõik näited ainult IPv4 kohta. Kui teie serveril on IPv6-aadress ja te soovite ka meiliporte IPv6 kaudu saada, korrake lisaks kõiki käske, kasutades iptables-i asemel ip6tables-i.

Kõigi praeguste reeglite kuvamiseks käivitage:

sudo iptables -L -v -n --line-numbers

Väljund võib serverile lisatud reeglite kogumist sõltudes erineda. Vaikimisi reegleid ei ole, kuid sõltuvalt hostingu konfiguratsioonist või operatsioonisüsteemist võib juba olla tehtud mõningaid seadistusi. Vaatame kahte peamist juhust, mis meiliserveri konfiguratsioonil sageli esinevad.

  1. Võimaldab kõike, mida pole keelatud” poliitika (poliitika ACCEPT)

Sellisel juhul lubab tulemüür vaikimisi kogu liikluse, kuni on loodud reegel, mis seda selgesõnaliselt blokeerib. Seda poliitikat kasutatakse tavaliselt vaikimisi.

Allpool on näide reeglistikust, kus SSH ja meili pordid on blokeeritud:

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 51 5637 DROP 6 -- * * 0.0.0.0/0 0.0.0.0/0 tcp multiport dports 22
2 0 0 DROP 6 -- * * 0.0.0.0/0 0.0.0.0/0 tcp multiport dports 25,143,993,587,465

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 DROP 6 -- * * 0.0.0.0/0 0.0.0.0/0 tcp multiport dports 25,143,993,587,465

Selles näites:

  • Poliitika ACCEPT määratleb vaikimisi käitumise: kõik ühendused on lubatud, kui pole teisiti märgitud.

  • INPUT ahel (sissetulevad ühendused): porti 22 (SSH) ja kõigisse standardsetesse meiliportidesse (SMTP: 25, 465, 587; IMAP: 143; IMAPS: 993) suunatud uued ühendused on blokeeritud.

  • OUTPUT ahel (väljuvad ühendused): samadesse portidesse suunatud väljuvad paketid on blokeeritud.

Reegli number on näidatud rea alguses (num). Kui soovite kustutada, näiteks reegli, mis blokeerib meiliportid INPUT ahelas (reegel number 2), siis käsk on:

sudo iptables -D INPUT 2

Siin:

  • -D – on käsk reegli kustutamiseks.

  • INPUT on ahel, kust reegel kustutatakse (sel juhul sissetulev liiklus).

  • 2 on rea number, kus asub kustutatav reegel.

Sarnaselt, et eemaldada väljuvate portide blokeering sellelt näitelt, peate käivitama:

sudo iptables -D OUTPUT 1
hoiatus

Reagenumbrid käsu iptables -L -v -n --line-numbers väljundis võivad muutuda, kui lisate või kustutate teisi reegleid. Seetõttu, kui lisate uusi reegleid, võivad rea numbrid nihkuda. Vigade vältimiseks kontrollige alati praeguseid rea numbreid enne reegli kustutamist.

Seejärel, et veenduda, et kõik on õigesti, käivitage käsk uuesti:

iptables -L -v -n --line-numbers

Väljund ei tohiks sisaldada meiliportide tööd blokeerivaid reegleid:

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 51 5637 DROP 6 -- * * 0.0.0.0/0 0.0.0.0/0 tcp multiport dports 22

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination

Kui reeglid on endiselt olemas, kontrollige sisestatud käskude ja rea numbrite õigsust.

Pärast tulemüüri reeglite muutmist salvestage muudatused kindlasti; vastasel juhul kaovad need pärast taaskäivitamist. Praeguste iptables reeglite salvestamiseks käivitage:

Debian/Ubuntu:

iptables-save > /etc/iptables/rules.v4

CentOS/AlmaLinux/Rocky Linux:

iptables-save > /etc/sysconfig/iptables

Pärast seda testige meiliportide kättesaadavust uuesti, nagu kirjeldatud 3. sammus. Kui need on endiselt kättesaamatud, jätkake 5. sammule. Kui kõik on korras, jätkake selle artikli teise osaga.

  1. “Blokeeri kõik, mida pole selgesõnaliselt lubatud” poliitika (poliitika DROP)**

Seda tüüpi konfiguratsioon on palju rangem. Kõik pordid ja protokollid on vaikimisi blokeeritud ning ainult selgesõnalised lubamisreeglid konkreetsete portide jaoks lasevad liiklust läbi. See on turvalisem ja soovitatavam lähenemine serveritele, eriti kui soovite riske minimeerida.

Näide reeglitest sellise konfiguratsiooni jaoks:

Chain INPUT (policy DROP 306 packets, 17962 bytes)
num pkts bytes target prot opt in out source destination
1 92 12474 ACCEPT 0 -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 466 32947 ACCEPT 6 -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination

Chain OUTPUT (policy DROP 197 packets, 29192 bytes)
num pkts bytes target prot opt in out source destination
1 44 10332 ACCEPT 0 -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED

Selles näites:

  • INPUT ahel (sissetulevad ühendused): poliitika on DROP, see tähendab, et kõik paketid on vaikimisi blokeeritud, välja arvatud need, mille jaoks on lubamisreeglid.

1. reegel: ACCEPT state RELATED,ESTABLISHED – lubab sissetulevaid pakette, mis on seotud olemasolevate ühendustega või on nendega seotud. See on oluline, et server saaks korrektne vastata väljuvate ühenduste (nt SSH, meil, DNS-päringud) vastustele. 2. reegel: ACCEPT tcp dpt:22 – lubab uusi sissetulevaid ühendusi pordil 22 (SSH).

  • OUTPUT ahel (väljuvad ühendused): poliitika on DROP, see tähendab, et kõik väljuvad paketid on vaikimisi blokeeritud.

1. reegel: ACCEPT state RELATED,ESTABLISHED – lubab väljuvaid pakette, mis on seotud olemasolevate ühendustega. See võimaldab serveril vastata klientide päringutele (nt SSH, meiliühendused) ja säilitada stabiilset ühendust.

Niisiis näeme, et meiliportide jaoks pole lubamisreegleid. Nende lisamiseks käivitage järgmised käsud:

sudo iptables -A INPUT -p tcp -m multiport --dports 25,465,587,143,993 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp -m multiport --dports 25,465,587,143,993 -m state --state NEW,ESTABLISHED -j ACCEPT

Pärast seda salvestage reeglid:

Debian/Ubuntu:

iptables-save > /etc/iptables/rules.v4

CentOS/AlmaLinux/Rocky Linux:

iptables-save > /etc/sysconfig/iptables

Seejärel testige meiliportide kättesaadavust uuesti, nagu kirjeldatud 3. sammus. Kui need on endiselt kättesaamatud, jätkake 5. sammule. Kui kõik on korras, jätkake selle artikli teise osaga.

UFW (Uncomplicated Firewall)

Mõnes serveris kasutatakse iptablesi asemel UFW – tulemüüri konfigureerimiseks lihtsustatud liidest. See sobib lihtsa meiliserveri konfiguratsiooni jaoks ja on sageli levinud Ubuntu ja Debianil.

Selle kontrollimiseks, kas UFW on lubatud ja millised reeglid on aktiivsed, käivitage:

sudo ufw status verbose

Näide väljundist:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip

Siin:

  • Default: deny (incoming) – vaikimisi on kõik sissetulevad ühendused blokeeritud.

  • Default: allow (outgoing) – vaikimisi on kõik väljuvad ühendused lubatud.

Meiliserveri korrektseks toimimiseks peate avama standardpordid. Käivitage järgmised käsud järjestikku:

sudo ufw allow 25/tcp
sudo ufw allow 465/tcp
sudo ufw allow 587/tcp
sudo ufw allow 143/tcp
sudo ufw allow 993/tcp

Kui teil on ka väljuvaid piiranguid, peate SMTP-portid väljamineva e-posti jaoks lubama:

sudo ufw allow out 25/tcp
sudo ufw allow out 465/tcp
sudo ufw allow out 587/tcp

Pärast reeglite lisamist saate neid uuesti kontrollida:

sudo ufw status numbered

Näete reeglite loetelu numbritega. Kui soovite reegli kustutada, kasutage väljundist numbrit:

sudo ufw delete 3

UFW-s salvestatakse reeglid automaatselt ja need jäävad kehtima pärast taaskäivitamist.

Seejärel testige meiliportide kättesaadavust uuesti, nagu kirjeldatud 3. sammus. Kui need on endiselt kättesaamatud, jätkake 5. sammule. Kui kõik on korras, jätkake selle artikli teise osaga.

5. samm. Tulemüür on õigesti konfigureeritud, kuid meili pordid on endiselt kättesaamatud (valikuline)

Selline käitumine näitab, et meili pordid on blokeeritud mitte teie serveri tasemel, vaid teie hostingu-teenusepakkuja seadmetes. Sellisel juhul looge tugipilet ja paluge neil need pordid teie serveri jaoks avada. Kui see pole võimalik, on ainuke lahendus hostingu-teenusepakkuja vahetus.

Meie kodu.cloud-is me ei piira meiliportide tööd mingil viisil. Meie reeglid keelavad masspostituse, kuid heausklikud kliendid saavad e-posti täies mahus kasutada. Te ei pea isegi meiliserverit konfigureerima, sest kõik meie kliendid saavad tasuta juurdepääsu FASTPANEL juhtpaneelile laiendatud litsentsiga. Tellige server koos juhtpaneeliga ja alustage e-posti kasutamist oma domeenil vaid mõne minutiga.

Järgmised sammud õigete DNS-kirjete konfigureerimiseks on käsitletud selle artikli teises osas.