Hlavní navigace

Sendmail: autentizace, smarthost a blacklist

Petr Macek 1. 12. 2008

Rozšíříme si sendmailové řešení o smart host, blacklisty a smtp autentizaci. U autentizace se bude jednat o ověřování klientů i o nastavení sendmailu jako smtp klienta s autentizací. To se nám může hodit, pokud jsme například zákazník O2 a využíváme jejich servery. Jedná se o rozšíření řešení z minulých dílu.

Smarthost

Proč jej použít? V případě rozesílání zprávy na velké množství adres, můžeme takhle ulevit svému poštovnímu serveru a lince do internetu. Za normálního stavu by se sendmail snažil odeslat zprávu na všechny adresy sám, takže email by od vás odcházel třeba 500krát. Pokud ale nastavíme smarthost (patrně to bude smtp server vašeho poskytovatele), zpráva bude odeslána jednou na smarthost a ten zařídí její další rozesílání. Toto mělo velký význam v době vytáčených linek. Nevýhodou může být další server v cestě, a tím prodloužení celého postupu. Před necelým rokem byly například dlouhodobě přetížené servery jednoho velkého poskytovatele a odesílat takto poštu bylo utrpení. Smarthost nastavíme snadno, stačí v našem mc souboru upravit řádek:

dnl define(`SMART_HOST', `your.isp.mail.server')

na

define(`SMART_HOST', `esmtp:smtp.poskytovatel.cz')dnl

Co vlastně znamená to slovíčko dnl, jsem ještě nepopisoval. Je to vysvětleno ve starším článku.

Po úpravě nezapomeňte restartovat sendmail:

cd /etc/mail
make install
make restart

Blacklisty

Využití některého z blacklist serverů nám může také ulevit. Tyto servery udržují databáze open relay serverů nebo IP adres, ze kterých se rozesílá spam. Vy můžete při příchodu emailu proti těmto databázím odesílatele zkontrolovat a při nálezu serveru na blacklistu zprávu rovnou odmítnout a nezatěžovat se dále s jejím zpracováním. V mc souboru je proto již připravené M4 makro. Lehce ho upravíme třeba pro použití spamcop.net:

FEATURE(`enhdnsbl', `bl.spamcop.net')dnl

Po restartu můžete v maillogu vidět podobný výsledek:

Nov 23 13:55:55 mail sm-mta[54812]: ruleset=check_relay, arg1=[200.195.166.27], arg2=127.0.0.2, relay=27.166.195.200.static.copel.net
[200.195.166.27] (may be forged), reject=550 5.7.1 Rejected: 200.195.166.27 listed at bl.spamcop.net

Můžeme odesílacímu serveru i podrobněji sdělit, proč od něj poštu nechceme, stačí malá úprava v mc souboru:

FEATURE(`enhdnsbl', `bl.spamcop.net', `"Spam blocked see: http://spamcop.net/bl.shtml?"$&{client_addr}', `t')dnl

Výsledek bude teď takový:

Nov 23 00:02:49 mail sm-mta[45392]: ruleset=check_relay, arg1=81.203.250.107.dyn.user.ono.com, arg2=127.0.0.2, relay=81.203.250.107.dyn.user.ono.com [81.203.2
50.107], reject=553 5.3.0 Spam blocked see: http://spamcop.net/bl.shtml?81.203.250.107

SMTP autentizace – sendmail jako smtp klient

Vysvětlili jsme si smarthost. Může se ale objevit komplikace – server poskytovatele může chtít nějakou autentizaci. Tak to funguje třeba u serveru smtp.iol.cz. Řešení není nijak složité, v /etc/mail si založte soubor authinfo:

AuthInfo:smtp.iol.cz "I:uzivatel" "P:heslo"

Potom z něj vytvořte databázi:

makemap hash authinfo < authinfo

V našem konfiguračním souboru nastavte smarthost a přidejte authinfo:

define(`SMART_HOST', `smtp.iol.cz')
FEATURE(`authinfo')

Po restartu sendmailu už bude sendmail posílat autentizační údaje.

SMTP autorizace uživatelů

Uživatelé často žádají dostupnost své pošty kdykoli a kdekoli. Typický obchodník jezdí s notebookem a poštu má v Outlooku. Nastavíme mu poštovní účet a může stahovat poštu. V tom problém není, ale narazit můžeme u odesílání. Třeba při roamingu v zahrančí a používání různých připojení. Těžko budme takového obchodníka učit si nastavovat správný smtp server. Proto mu dovolíme odesílat přes náš firemní server. Samozřejmě se musí nějak ověřit a po ověření mu dovolíme poštu odeslat. Pro začátek si předvedeme nejzákladnější autentizaci. Heslo se posílá zakódovaně, ale stále je odposlechnutelné a patrně i rozluštitelné. V dalších pokračováních si přidáme ještě TLS.

Pro ověřování uživatelů si nainstalujeme autentikační server Cyrus-SASL2.

cd /usr/ports/security/cyrus-sasl2
make install

V menu zaškrtněte AUTHDAEMON, LOGIN, PLAIN, CRAM a DIGEST. Nechceme použít PLAIN  – heslo by se posílalo v nešifrované podobě a byl by možný jeho odposlech. Upravte soubor /usr/local/lib/sasl2/Sendmail.conf  na:

pwcheck_method: saslauthd

Zajistíme automatické spouštění démona při startu serveru, do /etc/rc.conf přidáme:

saslauthd_enable="YES"

Démona si pro teď ručně spustíme:

/usr/local/etc/rc.d/saslauthd start

Jestli cyrus pracuje správně, můžeme ověřit programem  testsaslauthd

root@mail cyrus-sasl2 # testsaslauthd -u uzivatel -p dobreheslo
0: OK "Success."
root@mail cyrus-sasl2 # testsaslauthd -u uzivatel -p spatneheslo
0: NO "authentication failed"

Následně zkompilujeme sendmail s podporou autentifikace. Teoreticky můžeme použít i verzi z ports tree. Je tam připraven například sendmail+tls+sas­l2+ldap. K tomu se dostaneme příště. Dnes tedy kompilace sendmailu, který je přímo v systému. V souboru /etc/make.conf si odkomentujeme následující řádky. Pozor, odstraňte všechny mezery, řádek musí začínat písmenem:

SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL
SENDMAIL_LDFLAGS=-L/usr/local/lib
SENDMAIL_LDADD=-lsasl2

Pokud make.conf nemáte, vytvořte jej a řádky do něj zapište. Další možností je zkopírovat a upravit vzorový make.conf z /usr/share/examples/etc/make.conf.

Vlastní kompilaci provedeme takto:

# cd /usr/src/lib/libsmutil
# make cleandir && make obj && make
# cd /usr/src/lib/libsm
# make cleandir && make obj && make
# cd /usr/src/usr.sbin/sendmail
# make cleandir && make obj && make && make install

Do mc souboru přidáme:

TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl

A po restartu sendmailu máme hotovo. Ještě malé ověření. Stav bez autentifikace:

root@mail # telnet localhost 25
ehlo localhost
250-mail.firma.cz Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-DELIVERBY
250 HELP

A pokus o odeslání:

Nov 25 22:55:06 mail sm-mta[84268]: mAPLt55w084268: ruleset=check_rcpt, arg1=<pm@nekde.cz>, relay=xxx-yyy-54ghz.customer.jinde.cz [199.199.199.199], reject=550 5.7.1 <pm@nekde.cz>... Relaying denied. Proper authentication required.

A po nastaveni autentifikace:

root@mail # telnet localhost 25
ehlo localhost
250-mail.firma.cz Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN
250-DELIVERBY
250 HELP

A odeslání:

Nov 25 22:53:11 mail sm-mta[84239]: AUTH=server, relay=xxx-yyy-54ghz.customer.jinde.cz [199.199.199.199], authid=pm, mech=LOGIN, bits=0

Teď už jen stačí nastavit správně klienta. V outlook expressu v nastavení účtu na záložce servery stačí dole zaškrtnout "Server požaduje ověření" a v nastavení musí být zvoleno "Používat stejné nastavení jako pro server příchozí pošty".

Našli jste v článku chybu?

2. 12. 2008 15:54

Buki (neregistrovaný)
coz pouze nepovoli LOGIN a PLAIN *pokud* neni TLS, nezaridi to, co chtel predchozi prispevek. BTW, jeste bych pridal "y" (nepovoli ANONYMOUS)

1. 12. 2008 17:55

uživatel si přál zůstat v anonymitě
Do mc souboru přihodit:

define(`confAUTH_OPTIONS',`p')dnl

a rekompilnout > sendmail.cf
.




Podnikatel.cz: Babiše přesvědčila 89letá podnikatelka?!

Babiše přesvědčila 89letá podnikatelka?!

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Vitalia.cz: Z tohoto konopí dělají léčivé masti

Z tohoto konopí dělají léčivé masti

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Lupa.cz: Seznam mění vedení. Pavel Zima v čele končí

Seznam mění vedení. Pavel Zima v čele končí

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Lupa.cz: Babiš: E-shopů se EET možná nebude týkat

Babiš: E-shopů se EET možná nebude týkat

Vitalia.cz: Říká amoleta - a myslí palačinka

Říká amoleta - a myslí palačinka

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Vitalia.cz: Dáte si jahody s plísní?

Dáte si jahody s plísní?

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

DigiZone.cz: ČRa DVB-T2 ověřeno: Hisense a Sencor

ČRa DVB-T2 ověřeno: Hisense a Sencor

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?