Pokud se držíte sendmailu, tak na debianu 11 se sendmailem 8.15.2 jsem si otestoval autentizaci smtp relace proti smtp serveru. Na stranu serveru jsou maily předávány na submission port 587, spojení v šifrovaném režimu po STARTTLS. Otestováno i z thunderbirdu.
Instalován je balíček sendmail. Dále i balíček mailutils za účelem snadného odesílání mailů z příkazového řádku příkazem mail.
Můj testovací smtp klient i server jsou online, s veřejnými ip adresami a registracemi v dns. Nicméně v konfiguraci klienta uvádím i základní variantu maškarády. Konfigurace je koncipována pro klientský stroj, z nějž se maily pouze odesílají.
Základ konfiguračního souboru /etc/mail/sendmail.mc vznikl při instalaci. Upravený soubor uvádím pro úsporu místa bez většiny komentářů.
divert(0)dnl
#
# Copyright (c) 1998-2005 Richard Nelson. All Rights Reserved.
define(`_USE_ETC_MAIL_')dnl
include(`/usr/share/sendmail/cf/m4/cf.m4')dnl
VERSIONID(`$Id: sendmail.mc, v 8.15.2-22 2021-03-16 16:04:16 cowboy Exp $')
OSTYPE(`debian')dnl
DOMAIN(`debian-mta')dnl
undefine(`confHOST_STATUS_DIRECTORY')dnl
dnl define(`confLOG_LEVEL', `14')dnl
define(`SMART_HOST',`[mail.hostmaster.sk]')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash -o /etc/mail/authinfo.db')dnl
FEATURE(`no_default_msa')dnl
DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl
DAEMON_OPTIONS(`Family=inet, Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1')dnl
FEATURE(`use_cw_file')dnl
FEATURE(`access_db', , `skip')dnl
FEATURE(`greet_pause', `1000')dnl
FEATURE(`delay_checks', `friend', `n')dnl
define(`confBAD_RCPT_THROTTLE',`3')dnl
FEATURE(`conncontrol', `nodelay', `terminate')dnl
FEATURE(`ratecontrol', `nodelay', `terminate')dnl
FEATURE(`always_add_domain')dnl
MASQUERADE_AS(`hostmaster.sk')dnl
FEATURE(`masquerade_envelope')dnl
include(`/etc/mail/m4/dialup.m4')dnl
include(`/etc/mail/m4/provider.m4')dnl
MAILER_DEFINITIONS
MAILER(`local')dnl
MAILER(`smtp')dnl
V souboru jsem ponechal všeobecné direktivy a rovněž detaily nějak specifické pro debian, jejichž smysl se mi nechtělo zkoumat.
V běžném režimu provozu v logu sendmailu neuvidíte podrobnosti o autentizaci. Stačí ale odkomentovat definici s LOG_LEVEL (a znovu spustit make a restartovat sendmail) a bude to o něco lepší.
V definici SMART_HOST je v hranatých závorkách jméno serveru, na nějž se předávají odchozí maily (a kde je nutné se autentikovat). Další řádky mění komunikaci z portu 25 na submission port 587 na straně smart hosta. Náš klientský sendmail naslouchá jen na loopbackové adrese 127.0.0.1 a tedy není schopen přijímat maily "zvenku". Díky tomu neřešíme pravidla pro relay mailů a celá konfigurace je tím jednodušší. cw_file a access_db jsou obvyklá nastavení. Nyní je k ničemu nepotřebujete, ničemu nepřekážejí, výhledově se mohou hodit. Umělou prodlevu greet_pause jsem ponechal jako částečnou ochranu v situaci, když by se Vašeho stroje zmocnil nějaký spammer neznalý sendmailu. Ta sekundová prodleva by trošku mohla omezit celkový objem mailů. Stejná motivace se týká i BAD_RCPT_THROTTLE, connection control a rate control.
Do MASQUERADE_AS uveďte doménovou část z Vaší mailové adresy. Máte-li adresu
novak@zoznam.sk, napište tam zoznam.sk. Touto maškarádou by se měl odstranit problém s oním hostname debian.debian. Místo toho by v odchozích mailech měla být nyní adresa odesilatele přepisována. Ještě zbývá případné mapování uživatelského jména na část mailové adresy vlevo od znaku @, to jsem neřešil. Testujte to z běžného uživatelského účtu. Bývalo totiž zvykem, že na uživatele root se maškaráda nevztahuje.
Protože se všechny odchozí maily předávají na SMART_HOST, lze soubor /etc/mail/authinfo pojmout minimalisticky a uvést zde jen uživatelské jméno a heslo pro autentizaci na straně ISP. A dále předpokládám, že v thunderbirdu používáte v definici smtp serveru autentizační metodu označovanou jako Normal Password, plain či nějak podobně. Tedy že zabezpečeným kanálem (STARTTLS) se heslo předává v čitelné podobě, a jeho šifrování zajišťuje ten vnější zabezpečený kanál. Tomu odpovídá i stručnější varianta nastavení AUTH_MECHANISMS výše.
AuthInfo: "I:xxxxxxx" "P:yyyyyy"
Další krok v případě debianu je být v adresáři /etc/mail a zavolat program make pro překlad konfiguračního souboru do podoby sendmail.cf. Současně by se měly vytvořit nebo aktualizovat i potřebné mapy, včetně /etc/mail/authinfo.db.
(Varování o chybějící SASL podpoře lze v naší konfiguraci ignorovat). Pak už jen restartovat sendmail, např. systemctl restart sendmail
Nu a pak už si můžete sám sobě do schránky u providera zkusit poslat mail, příkazem např. mail
novak@zoznam.sk.
Snad jsem v tom textu při kopírování/opisování neudělal moc chyb...