Poštni strežnik
Učni list 9: Vzpostavitev poštnega strežnika z Postfix in Dovecot¶
Namen vaje¶
Tvoja naloga je, da vzpostaviš osnovni laboratorijski poštni sistem in razumeš delitev med pošiljanjem pošte (SMTP) ter branjem pošte (IMAP/POP3).
Kako brati mikro razlage¶
- razčlenitev sintakse — kaj pomeni posamezni del ukaza
- kaj se zgodi po pritisku Enter — neposredna posledica v sistemu ali omrežju
- na kaj ukaz vpliva — datoteka, proces ali port
- kaj pričakuješ kot rezultat — konkretna kontrolna točka
Cilj je, da ne ostaneš na ravni prepisal sem ukaz, ampak prideš do ravni vem, zakaj sem ga izvedel in kaj moram po njem preveriti.
Cilji¶
- razumeš razliko med SMTP in IMAP/POP3
- znaš namestiti Postfix in Dovecot
- znaš pripraviti osnovno laboratorijsko domeno za pošto
- znaš ustvariti uporabnike in preveriti dostavo sporočila
- znaš s klienta preveriti odziv SMTP in IMAP servisa
Potrebna oprema in predznanje¶
- DNS zapis
mail.lab.localkaže na strežnik - strežnik ima ime ali zapis, povezan z laboratorijsko pošto
- razumeš osnovni pojem uporabniškega računa na Linuxu
Teorija v ozadju¶
Poštni sistemi niso ena sama storitev. SMTP skrbi za pošiljanje oziroma predajo pošte. IMAP in POP3 pa skrbita za dostop do uporabniških nabiralnikov.
V tej vaji bomo uporabili Postfix kot SMTP strežnik in Dovecot kot IMAP/POP3 strežnik. Namen vaje ni zgraditi internet-ready poštni sistem, ampak razumeti tok pošte v lokalnem laboratoriju.
Laboratorijska domena lab.local je dobra za razumevanje koncepta, ni pa primerna za javno produkcijsko dostavo na internet. V internetu pridejo v igro še SPF, DKIM, DMARC, TLS, antispam in kup drugih glavobolov.
Na kaj je treba paziti¶
- To je laboratorijska pošta, ne produkcijska rešitev za internet.
- Pri namestitvi Postfixa izberi način “Internet Site”, a ohrani misel, da to počnemo v internem omrežju.
- Če pošta pride v mapo uporabnika, a klient ne zna brati prek IMAP, je problem v Dovecotu ali v klientu, ne nujno v Postfixu.
Kako brati to vajo
Vsak korak ima tri plasti: kaj narediš, kaj ukaz pomeni in kaj se v ozadju zgodi v sistemu ali omrežju. Cilj ni slepo kopiranje ukazov, ampak razumevanje, zakaj posamezni korak obstaja.
Navodila po korakih¶
1. Preveri DNS zapis za poštni strežnik in MX¶
Kaj narediš
Na klientu ali strežniku preveri, ali mail.lab.local kaže na strežnik in ali domena vsebuje MX zapis.
Ukazi
Mikro razlaga ukazov¶
Ukaz 1: dig mail.lab.local
- Razčlenitev sintakse:
digpošlje DNS poizvedbo zamail.lab.localin prikaže natančen odgovor strežnika.- Kaj se zgodi po pritisku Enter: Pošlješ DNS poizvedbo in vidiš, kaj konkretni strežnik vrne za ime, IP naslov ali MX zapis.
- Na kaj ta ukaz vpliva:
- Porti:
53/TCP,53/UDP - Kaj pričakuješ kot rezultat: V odgovoru vidiš pravilen zapis A, PTR ali MX ter pravi naslov iz laboratorijske domene.
Ukaz 2: dig lab.local MX
- Razčlenitev sintakse:
digpošlje DNS poizvedbo zalab.local MXin prikaže natančen odgovor strežnika.- Kaj se zgodi po pritisku Enter: Pošlješ DNS poizvedbo in vidiš, kaj konkretni strežnik vrne za ime, IP naslov ali MX zapis.
- Na kaj ta ukaz vpliva:
- Porti:
53/TCP,53/UDP - Kaj pričakuješ kot rezultat: V odgovoru vidiš pravilen zapis A, PTR ali MX ter pravi naslov iz laboratorijske domene.
Zakaj je korak pomemben¶
Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.
Kaj ta korak pomeni
Poštni sistem je močno odvisen od DNS-a. Če nimaš pravilnega A in MX zapisa, je logika pošte nepopolna že na konceptualni ravni.
Kaj se dogaja v ozadju
MX zapis pove, kateri strežnik sprejema pošto za domeno. A zapis pa omogoča, da se to ime pretvori v IP naslov.
Primer povezave med zapisoma
To pomeni: pošiljatelj najprej iz MX zapisa izve ime poštnega strežnika, nato pa iz A zapisa dobi še njegov IP naslov.
Kaj moraš opaziti
Pričakuješ, da mail.lab.local kaže na 192.168.56.10 in da je MX nastavljen na mail.lab.local..
Če ne dela, preveri
- Če teh zapisov ni, se vrni na DNS vajo in jih dodaj.
2. Na strežniku nastavi smiselno ime gostitelja za pošto¶
Kaj narediš
Strežnik lahko po želji preimenuješ v mail ali pa vsaj dodaš ustrezen zapis.
Ukazi
Mikro razlaga ukazov¶
Ukaz 1: hostnamectl
- Razčlenitev sintakse:
- Pokaže trenutno sistemsko ime, tip virtualizacije, jedro in druge osnovne podatke o sistemu.
- Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
- Na kaj ta ukaz vpliva:
- Datoteke:
/etc/hostname - Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Ukaz 2: cat /etc/hosts
- Razčlenitev sintakse:
catprebere in izpiše vsebino datoteke/etc/hostsna terminal.- Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
- Na kaj ta ukaz vpliva:
- Datoteke:
/etc/hosts - Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Zakaj je korak pomemben¶
Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.
Kaj ta korak pomeni
Ni nujno, da je sistemsko ime nujno mail, je pa didaktično lepo, če se poštni strežnik tudi tako predstavi.
Kaj se dogaja v ozadju
Postfix uporablja nastavitve myhostname in sorodne parametre za identiteto pri SMTP dialogu.
Kaj moraš opaziti
Pomembno je, da konfiguracija in DNS skupaj smiselno opisujeta isti strežnik.
Če ne dela, preveri
- Če zamenjaš hostname, ne pozabi uskladiti
/etc/hostsin po potrebi DNS-a.
3. Namesti Postfix, Dovecot in poštna orodja¶
Kaj narediš
Na strežniku namesti SMTP in IMAP/POP3 komponento ter ukaz mail.
Ukazi
Mikro razlaga ukazov¶
Ukaz 1: sudo apt update
- Razčlenitev sintakse:
sudoukaz izvede z administratorskimi pravicami.aptje upravljalnik paketov na Debian/Ubuntu sistemih.updatene namešča programov; samo osveži lokalni seznam paketov iz repozitorijev.- Kaj se zgodi po pritisku Enter: Sistem osveži lokalne informacije o paketih. Ni še spremembe storitev, ampak priprava na korektno namestitev ali posodobitev.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Ukaz 2: sudo apt install postfix dovecot-imapd dovecot-pop3d mailutils -y
- Razčlenitev sintakse:
installnamesti navedene pakete:postfix dovecot-imapd dovecot-pop3d mailutils.-ysamodejno potrdi namestitev.- Kaj se zgodi po pritisku Enter: Na sistem se namesti nov paket oziroma storitev. Ob tem se pogosto ustvarijo konfiguracijske datoteke, sistemska enota
systemdin včasih se servis zažene že sam. - Na kaj ta ukaz vpliva:
- Datoteke:
/etc/postfix/main.cf,/etc/dovecot/conf.d/10-mail.conf - Procesi/storitve:
postfix,dovecot - Porti:
25/TCP,143/TCP - Kaj pričakuješ kot rezultat: Paket se namesti brez napake, na koncu pa ni vrstice tipa
E:alifailed.
Zakaj je korak pomemben¶
Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.
Kaj ta korak pomeni
Postfix sprejema in oddaja pošto, Dovecot pa omogoča dostop do poštnih nabiralnikov. mailutils doda praktično orodje mail za lokalno testiranje.
Kaj se dogaja v ozadju
Pri namestitvi Postfixa boš izbiral način konfiguracije. Za laboratorij izberi Internet Site in kot sistemsko ime pošte vnesi mail.lab.local.
Kaj moraš opaziti
Po namestitvi naj bosta na voljo servisa postfix in dovecot.
Če ne dela, preveri
- Če čarovnik Postfixa ni pravilno nastavljen, bomo ključne vrstice vseeno ročno uredili v naslednjem koraku.
4. Uredi osnovno konfiguracijo Postfixa¶
Kaj narediš
V datoteki main.cf nastavi laboratorijsko domeno in dostavo v Maildir.
Ukazi
Mikro razlaga ukazov¶
Ukaz 1: sudo nano /etc/postfix/main.cf
- Razčlenitev sintakse:
nanoodpre besedilno datoteko v terminalskem urejevalniku.- Odpira se datoteka
/etc/postfix/main.cf. Če datoteka še ne obstaja, jo boš ob shranjevanju ustvaril. - Kaj se zgodi po pritisku Enter: Sprememba se še ne zgodi v teku storitve. Najprej spremeniš datoteko na disku; učinek nastopi šele po restartu ali reloadu storitve.
- Na kaj ta ukaz vpliva:
- Datoteke:
/etc/postfix/main.cf - Procesi/storitve:
postfix - Porti:
25/TCP - Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Zakaj je korak pomemben¶
Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.
Primer konfiguracije
myhostname = mail.lab.local
mydomain = lab.local
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/
mynetworks = 127.0.0.0/8 192.168.56.0/24
Kaj ta korak pomeni
myhostname določa identiteto strežnika, mydomain domeno, mydestination pove, za katere domene je ta strežnik lokalni končni cilj, home_mailbox = Maildir/ pa določi, da se pošta shranjuje v uporabnikovo mapo Maildir.
Kaj se dogaja v ozadju
Maildir je praktičen format, kjer so sporočila shranjena kot posamezne datoteke. Dovecot se z njim dobro razume.
Kaj moraš opaziti
V datoteki ne smejo ostati protislovne stare vrstice za iste nastavitve.
Če ne dela, preveri
- Če imaš iste parametre zapisane večkrat, boš hitro izgubil pregled nad tem, kaj dejansko velja.
5. Uredi Dovecot za Maildir¶
Kaj narediš
Nastavi Dovecot, da bere uporabniške poštne predale iz Maildir.
Ukazi
Mikro razlaga ukazov¶
Ukaz 1: sudo nano /etc/dovecot/conf.d/10-mail.conf
- Razčlenitev sintakse:
nanoodpre besedilno datoteko v terminalskem urejevalniku.- Odpira se datoteka
/etc/dovecot/conf.d/10-mail.conf. Če datoteka še ne obstaja, jo boš ob shranjevanju ustvaril. - Kaj se zgodi po pritisku Enter: Sprememba se še ne zgodi v teku storitve. Najprej spremeniš datoteko na disku; učinek nastopi šele po restartu ali reloadu storitve.
- Na kaj ta ukaz vpliva:
- Datoteke:
/etc/dovecot/conf.d/10-mail.conf - Procesi/storitve:
dovecot - Porti:
143/TCP - Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Zakaj je korak pomemben¶
Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.
Primer konfiguracije
Kaj ta korak pomeni
Dovecot mora vedeti, kje pošta fizično leži. Če Postfix dostavlja v Maildir, mora tudi Dovecot iskati tam.
Kaj se dogaja v ozadju
Če Postfix in Dovecot ne govorita o isti lokaciji pošte, bo pošta “obstajala”, a je klient ne bo videl.
Kaj moraš opaziti
Vrednost mail_location mora biti usklajena z načinom dostave v Postfixu.
Če ne dela, preveri
- Če uporabljaš drug format nabiralnika, bo ta vrstica drugačna. Za to vajo ostajamo pri Maildir, ker je preglednejši.
6. Ustvari laboratorijska uporabnika¶
Kaj narediš
Na strežniku ustvari npr. uporabnika alice in bob.
Ukazi
Mikro razlaga ukazov¶
Ukaz 1: sudo adduser alice
- Razčlenitev sintakse:
adduserustvari lokalnega uporabnikaalicein pripravi njegov domači imenik.- Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Ukaz 2: sudo adduser bob
- Razčlenitev sintakse:
adduserustvari lokalnega uporabnikabobin pripravi njegov domači imenik.- Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Zakaj je korak pomemben¶
Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.
Kaj ta korak pomeni
Lokalni uporabniški računi bodo imeli vsak svoj domači imenik in s tem tudi svoj poštni predal.
Kaj se dogaja v ozadju
V tej vaji ne postavljamo virtualnih domen in ločenih poštnih baz. Uporabimo najpreprostejši model: sistemski uporabniki = poštni uporabniki.
Kaj moraš opaziti
Po ustvarjanju uporabnikov imata oba domača imenika v /home.
Če ne dela, preveri
- Če pozabiš geslo uporabnika, bo kasnejša prijava v IMAP klient lahko težavna.
7. Ponovno zaženi servisa in preveri poslušanje portov¶
Kaj narediš
Naloži novo konfiguracijo Postfixa in Dovecota.
Ukazi
sudo systemctl restart postfix
sudo systemctl restart dovecot
sudo systemctl status postfix
sudo systemctl status dovecot
ss -tulpen | egrep ":25|:143"
Mikro razlaga ukazov¶
Ukaz 1: sudo systemctl restart postfix
- Razčlenitev sintakse:
restartustavi in ponovno zažene enotopostfix. To je potrebno po spremembi konfiguracije.- Kaj se zgodi po pritisku Enter: Proces storitve ponovno prebere konfiguracijo. Če je konfiguracija napačna, se storitev lahko ne zažene ali ostane v stanju napake.
- Na kaj ta ukaz vpliva:
- Datoteke:
/etc/postfix/main.cf - Procesi/storitve:
postfix - Porti:
25/TCP - Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Ukaz 2: sudo systemctl restart dovecot
- Razčlenitev sintakse:
restartustavi in ponovno zažene enotodovecot. To je potrebno po spremembi konfiguracije.- Kaj se zgodi po pritisku Enter: Proces storitve ponovno prebere konfiguracijo. Če je konfiguracija napačna, se storitev lahko ne zažene ali ostane v stanju napake.
- Na kaj ta ukaz vpliva:
- Datoteke:
/etc/dovecot/conf.d/10-mail.conf - Procesi/storitve:
dovecot - Porti:
143/TCP - Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Ukaz 3: sudo systemctl status postfix
- Razčlenitev sintakse:
systemctlupravlja storitve vsystemd.status postfixpokaže, ali je enotapostfixaktivna, kdaj je bila zagnana in ali je javila napake.- Kaj se zgodi po pritisku Enter: Ne spreminja sistema, ampak ti da opazovalno točko: ali storitev teče, od kdaj teče in ali javlja napake.
- Na kaj ta ukaz vpliva:
- Datoteke:
/etc/postfix/main.cf - Procesi/storitve:
postfix - Porti:
25/TCP - Kaj pričakuješ kot rezultat: V izpisu iščeš stanje
active (running)ali vsaj jasen razlog, zakaj storitev ni aktivna.
Ukaz 4: sudo systemctl status dovecot
- Razčlenitev sintakse:
systemctlupravlja storitve vsystemd.status dovecotpokaže, ali je enotadovecotaktivna, kdaj je bila zagnana in ali je javila napake.- Kaj se zgodi po pritisku Enter: Ne spreminja sistema, ampak ti da opazovalno točko: ali storitev teče, od kdaj teče in ali javlja napake.
- Na kaj ta ukaz vpliva:
- Datoteke:
/etc/dovecot/conf.d/10-mail.conf - Procesi/storitve:
dovecot - Porti:
143/TCP - Kaj pričakuješ kot rezultat: V izpisu iščeš stanje
active (running)ali vsaj jasen razlog, zakaj storitev ni aktivna.
Ukaz 5: ss -tulpen | egrep ":25|:143"
- Razčlenitev sintakse:
- Ukaz
ss -tulpen | egrep ":25|:143"izvedi natančno tako, kot je zapisan, nato pa preveri učinek na storitev, datoteko ali mrežno povezavo. - Kaj se zgodi po pritisku Enter: Pregleduješ stanje mrežnih vtičnic v jedru. Tako preveriš, ali je storitev res odprla pričakovani port.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: V izpisu vidiš pričakovani port in pravilni proces, ki posluša promet.
Zakaj je korak pomemben¶
Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.
Kaj ta korak pomeni
Postfix mora poslušati SMTP na portu 25, Dovecot pa IMAP na 143. To je osnovni tehnični dokaz, da obe storitvi živita.
Kaj se dogaja v ozadju
Tukaj se lepo vidi delitev vlog: en servis za pošiljanje, drugi za branje.
Kaj moraš opaziti
Pričakuješ oba servisa v stanju active (running) in porta 25 ter 143 v izpisu.
Če ne dela, preveri
- Če eden teče, drugi pa ne, ne mešaj diagnostike. Obravnavaj vsak servis posebej.
8. Pošlji prvo lokalno sporočilo med uporabnikoma¶
Kaj narediš
Kot uporabnik alice pošlji sporočilo uporabniku bob.
Ukazi
Mikro razlaga ukazov¶
Ukaz 1: sudo -u alice bash -c "echo Pozdrav iz laboratorija | mail -s Test bob@lab.local"
- Razčlenitev sintakse:
sudo -u aliceukaz izvede kot uporabnikalice.mail -spošlje e-pošto z zadevo in vsebino prek lokalnega MTA, tukaj prek Postfix-a.- Prejemnik sporočila je
bob@lab.local. - Kaj se zgodi po pritisku Enter: Preverjaš tok elektronske pošte: sprejem SMTP povezave, oddajo sporočila in kasnejšo hrambo v uporabnikovem predalu.
- Na kaj ta ukaz vpliva:
- Porti:
25/TCP,143/TCP - Kaj pričakuješ kot rezultat: SMTP strežnik sprejme ukaze brez napake, uporabnik pa v
Maildirdejansko dobi novo sporočilo.
Zakaj je korak pomemben¶
Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.
Kaj ta korak pomeni
S tem testiraš lokalno oddajo pošte skozi Postfix brez potrebe po zunanjem odjemalcu.
Kaj se dogaja v ozadju
Ukaz mail pošlje sporočilo lokalnemu MTA-ju (Postfix), ki ga nato dostavi v Maildir uporabnika bob.
Kaj moraš opaziti
V uporabnikovi mapi bob se mora ustvariti struktura Maildir, če je prej še ni bilo.
Če ne dela, preveri
- Če sporočilo ne pride, preveri
mailqin dnevnike Postfixa.
9. Preveri, ali je pošta res dostavljena v Maildir¶
Kaj narediš
Na strežniku kot uporabnik bob preglej nabiralnik.
Ukazi
Mikro razlaga ukazov¶
Ukaz 1: sudo -u bob ls -R /home/bob/Maildir
- Razčlenitev sintakse:
- Ukaz kot uporabnik
bobrekurzivno pregleda vsebino poti/home/bob/Maildir. - Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
- Na kaj ta ukaz vpliva:
- Datoteke:
~/Maildir - Kaj pričakuješ kot rezultat: SMTP strežnik sprejme ukaze brez napake, uporabnik pa v
Maildirdejansko dobi novo sporočilo.
Ukaz 2: sudo -u bob find /home/bob/Maildir -type f | head
- Razčlenitev sintakse:
findpoišče datoteke v poti/home/bob/Maildir.-type fomeji rezultat samo na datoteke.headpokaže samo prvih nekaj rezultatov, da izpis ostane berljiv.- Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
- Na kaj ta ukaz vpliva:
- Datoteke:
~/Maildir - Kaj pričakuješ kot rezultat: SMTP strežnik sprejme ukaze brez napake, uporabnik pa v
Maildirdejansko dobi novo sporočilo.
Zakaj je korak pomemben¶
Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.
Kaj ta korak pomeni
Tu prvič fizično vidiš, kje pošta leži. To je zelo didaktično: sporočilo ni abstrakten oblak, ampak konkretna datoteka.
Kaj se dogaja v ozadju
V Maildir formatu so sporočila običajno v mapah new, cur in tmp.
Kaj moraš opaziti
V mapi new ali cur mora biti vsaj ena datoteka s sporočilom.
Če ne dela, preveri
- Če mape ni, se pošta ni dostavila ali pa format ni pravilno nastavljen.
10. S klienta preveri SMTP in IMAP odziv¶
Kaj narediš
Na klientu se z nc poveži na port 25 in 143 ter preveri pozdravni banner.
Ukazi
Mikro razlaga ukazov¶
Ukaz 1: nc -vz mail.lab.local 25
- Razčlenitev sintakse:
ncoziroma netcat preveri povezljivost do gostiteljamail.lab.localna portu25.-vpoda bolj zgovoren izpis,-zpa samo preveri odprt port brez pošiljanja podatkov.- Kaj se zgodi po pritisku Enter: Preverjaš tok elektronske pošte: sprejem SMTP povezave, oddajo sporočila in kasnejšo hrambo v uporabnikovem predalu.
- Na kaj ta ukaz vpliva:
- Porti:
25/TCP,143/TCP - Kaj pričakuješ kot rezultat: SMTP strežnik sprejme ukaze brez napake, uporabnik pa v
Maildirdejansko dobi novo sporočilo.
Ukaz 2: nc -vz mail.lab.local 143
- Razčlenitev sintakse:
ncoziroma netcat preveri povezljivost do gostiteljamail.lab.localna portu143.-vpoda bolj zgovoren izpis,-zpa samo preveri odprt port brez pošiljanja podatkov.- Kaj se zgodi po pritisku Enter: Preverjaš tok elektronske pošte: sprejem SMTP povezave, oddajo sporočila in kasnejšo hrambo v uporabnikovem predalu.
- Na kaj ta ukaz vpliva:
- Porti:
25/TCP,143/TCP - Kaj pričakuješ kot rezultat: SMTP strežnik sprejme ukaze brez napake, uporabnik pa v
Maildirdejansko dobi novo sporočilo.
Zakaj je korak pomemben¶
Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.
Kaj ta korak pomeni
To je minimalen omrežni test, da sta storitvi dosegljivi tudi z druge virtualke.
Kaj se dogaja v ozadju
Če klient doseže banner, pomeni, da sta mreža in servisna vrata pravilno odprta.
Kaj moraš opaziti
Povezava na oba porta mora uspeti.
Če ne dela, preveri
- Če ime ne deluje, preveri DNS. Če ime deluje, povezava pa ne, preveri požarni zid ali servis.
11. Po želji ročno odigraj SMTP dialog¶
Kaj narediš
Na klientu se poveži z nc na SMTP port in pošlji kratko testno sporočilo ročno.
Ukazi
nc mail.lab.local 25
EHLO client.lab.local
MAIL FROM:<alice@lab.local>
RCPT TO:<bob@lab.local>
DATA
To je testno sporocilo.
.
QUIT
Mikro razlaga ukazov¶
Ukaz 1: nc mail.lab.local 25
- Razčlenitev sintakse:
- Odpre ročno TCP sejo do gostitelja
mail.lab.localna portu25. - To je surov test protokola, kjer sam tipkaš SMTP ukaze.
- Kaj se zgodi po pritisku Enter: Preverjaš tok elektronske pošte: sprejem SMTP povezave, oddajo sporočila in kasnejšo hrambo v uporabnikovem predalu.
- Na kaj ta ukaz vpliva:
- Porti:
25/TCP,143/TCP - Kaj pričakuješ kot rezultat: SMTP strežnik sprejme ukaze brez napake, uporabnik pa v
Maildirdejansko dobi novo sporočilo.
Ukaz 2: EHLO client.lab.local
- Razčlenitev sintakse:
- SMTP ukaz
EHLOpredstavi klienta z imenomclient.lab.localin zahteva seznam zmožnosti strežnika. - Kaj se zgodi po pritisku Enter: Preverjaš tok elektronske pošte: sprejem SMTP povezave, oddajo sporočila in kasnejšo hrambo v uporabnikovem predalu.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: SMTP strežnik sprejme ukaze brez napake, uporabnik pa v
Maildirdejansko dobi novo sporočilo.
Ukaz 3: MAIL FROM:<alice@lab.local>
- Razčlenitev sintakse:
- SMTP ukaz določi naslov pošiljatelja:
alice@lab.local. - Kaj se zgodi po pritisku Enter: Preverjaš tok elektronske pošte: sprejem SMTP povezave, oddajo sporočila in kasnejšo hrambo v uporabnikovem predalu.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: SMTP strežnik sprejme ukaze brez napake, uporabnik pa v
Maildirdejansko dobi novo sporočilo.
Ukaz 4: RCPT TO:<bob@lab.local>
- Razčlenitev sintakse:
- SMTP ukaz določi naslov prejemnika:
bob@lab.local. - Kaj se zgodi po pritisku Enter: Preverjaš tok elektronske pošte: sprejem SMTP povezave, oddajo sporočila in kasnejšo hrambo v uporabnikovem predalu.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: SMTP strežnik sprejme ukaze brez napake, uporabnik pa v
Maildirdejansko dobi novo sporočilo.
Ukaz 5: DATA
- Razčlenitev sintakse:
- Po ukazu
DATAstrežnik pričakuje telo sporočila in glave. - Kaj se zgodi po pritisku Enter: Preverjaš tok elektronske pošte: sprejem SMTP povezave, oddajo sporočila in kasnejšo hrambo v uporabnikovem predalu.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: SMTP strežnik sprejme ukaze brez napake, uporabnik pa v
Maildirdejansko dobi novo sporočilo.
Ukaz 6: To je testno sporocilo.
- Razčlenitev sintakse:
- To je vsebina telesa testnega sporočila, ki jo strežnik shrani v poštni predal prejemnika.
- Kaj se zgodi po pritisku Enter: Preverjaš tok elektronske pošte: sprejem SMTP povezave, oddajo sporočila in kasnejšo hrambo v uporabnikovem predalu.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Ukaz 7: .
- Razčlenitev sintakse:
- Sama pika v svoji vrstici zaključi vnos telesa SMTP sporočila.
- Kaj se zgodi po pritisku Enter: Preverjaš tok elektronske pošte: sprejem SMTP povezave, oddajo sporočila in kasnejšo hrambo v uporabnikovem predalu.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: SMTP strežnik sprejme ukaze brez napake, uporabnik pa v
Maildirdejansko dobi novo sporočilo.
Ukaz 8: QUIT
- Razčlenitev sintakse:
- Konča SMTP sejo in korektno zapre povezavo.
- Kaj se zgodi po pritisku Enter: Preverjaš tok elektronske pošte: sprejem SMTP povezave, oddajo sporočila in kasnejšo hrambo v uporabnikovem predalu.
- Na kaj ta ukaz vpliva:
- Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
- Kaj pričakuješ kot rezultat: SMTP strežnik sprejme ukaze brez napake, uporabnik pa v
Maildirdejansko dobi novo sporočilo.
Zakaj je korak pomemben¶
Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.
Kaj ta korak pomeni
To je eden najboljših načinov, da zares razumeš, da je SMTP samo besedilni protokol z ukazi in odgovori.
Kaj se dogaja v ozadju
Ročni dialog odstrani “čarovnijo” grafičnega klienta in pokaže, kako pošta dejansko teče skozi protokol.
Kaj moraš opaziti
Strežnik mora vrniti odzive tipa 250 OK in na koncu sprejeti sporočilo.
Če ne dela, preveri
- Če
RCPT TOzavrne prejemnika, preveri domeno in lokalne uporabnike.
Preverjanje delovanja¶
- [ ] Postfix in Dovecot sta nameščena in aktivna
- [ ] SMTP port 25 in IMAP port 143 poslušata
- [ ] uporabnika
aliceinbobobstajata - [ ] sporočilo se dostavi v
bobov Maildir - [ ] klient doseže poštni strežnik po imenu
mail.lab.local
Vprašanja za razmislek¶
- Kakšna je razlika med SMTP in IMAP?
- Zakaj uporabljamo Postfix in Dovecot skupaj?
- Kaj je Maildir?
- Zakaj laboratorijska pošta še ni produkcijska internetna pošta?
Dodatni izziv¶
Na klient namesti preprost tekstovni poštni odjemalec ali grafični IMAP klient in se prijavi kot bob. Nato primerjaj, kaj vidi klient in kaj vidiš v Maildir strukturi na strežniku.
Mini povzetek¶
Po tej vaji moraš znati na kratko razložiti, kaj je vloga servisa vzpostavitev poštnega strežnika v omrežju, kateri proces ali konfiguracija ga omogoča in kako ga preverimo s klienta.