Byla vydána (𝕏) dubnová aktualizace aneb nová verze 1.100 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.100 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.5.
OpenSearch (Wikipedie) byl vydán ve verzi 3.0. Podrobnosti v poznámkách k vydání. Jedná se o fork projektů Elasticsearch a Kibana.
PyXL je koncept procesora, ktorý dokáže priamo spúštat Python kód bez nutnosti prekladu ci Micropythonu. Podľa testov autora je pri 100 MHz približne 30x rýchlejší pri riadeni GPIO nez Micropython na Pyboard taktovanej na 168 MHz.
Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 12.0. Přehled novinek v aktualizované dokumentaci.
Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-05-06. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Pravděpodobně se jedná o poslední verzi postavenou na Debianu 12 Bookworm. Následující verze by již měla být postavena na Debianu 13 Trixie.
Richard Stallman dnes v Liberci přednáší o svobodném softwaru a svobodě v digitální společnosti. Od 16:30 v aule budovy G na Technické univerzitě v Liberci. V anglickém jazyce s automaticky generovanými českými titulky. Vstup je zdarma i pro širokou veřejnost.
sudo-rs, tj. sudo a su přepsáné do programovacího jazyka Rust, nahradí v Ubuntu 25.10 klasické sudo. V plánu je také přechod od klasických coreutils k uutils coreutils napsaných v Rustu.
Fedora se stala oficiální distribucí WSL (Windows Subsystem for Linux).
Společnost IBM představila server IBM LinuxONE Emperor 5 poháněný procesorem IBM Telum II.
Popsané řešení umožňuje doručování do schránek uživatelů, nicméně jediný možný přístup ke zprávám je prostřednictvím programů spouštěných přímo na stejném stroji (případě i odjinud, pokud by byla schránka dostupná třeba přes sshfs), navíc jen takových, které tento způsob podporují. Ovšem s tím se lze málokdy spokojit – standardem je přístup vzdálený, pomocí některého z protokolů k tomu určených.
Protože Postfix tyto věci vůbec neřeší, je na čase pustit k práci také druhý ze zde popisovaných programů – Dovecot. Z hlediska základní kooperace s Postfixem není potřeba nic zvlášť řešit, zejména pokud se jako úložiště používá Maildir (pro mbox by se muselo ohlídat zamykání, aby se programy o soubor schránky nepraly).
Následující text a konfigurace bude odpovídat verzi 1.2. Pro starší verze to může vypadat mírně jinak, přestože základní věci se skoro neliší. Každopádně je dobré se při použití dřívějších verzí podívat do dokumentace a případné odlišnosti promítnout do nastavení. Konfigurační soubor programu Dovecot se standardně nachází na cestě /etc/dovecot/dovecot.conf
.
V první řadě je potřeba zapnout podporu protokolů POP3 a IMAP (musí být samozřejmě nainstalováno vše potřebné – někde je samostatně jádro programu a jednotlivé protokoly, viz třetí díl seriálu). Šifrované verze (protokoly imaps
a pop3s
; běží na samostatných portech) zůstanou vypnuty, protože vyžadují správně nakonfigurovanou technologii SSL.
protocols = imap pop3
Nejenže se nezapnou protokoly imaps a pop3s na zvláštních portech, ale je potřeba vypnout i SSL/TLS jako celek, protože Dovecot podporuje rozšíření STARTTLS
, s jehož pomocí lze TLS zapnout v rámci relace na běžném portu. Současně bude potřeba udělat bezpečnostní ústupek a povolit autentizaci heslem v otevřeném tvaru (viz dále).
ssl = no disable_plaintext_auth = no
Dovecot z bezpečnostních důvodů standardně zakazuje autentizaci heslem v otevřeném tvaru odjinud než z bezpečných adres (běžně jen z místního stroje). Heslo v otevřeném tvaru není problém při použití šifrování, proto se v takovém případě povoluje. Tady jde ovšem o jiný případ – i když se šifrování používat nebude, je heslo v otevřeném tvaru nezbytné. Důvodem je, že pokud se využívá běžná systémové databáze hesel, nelze používat metody, které pro svoji funkci vyžadují heslo v otevřeném tvaru (CRAM-MD5
, DIGEST-MD5
, NTLM
atd.). Takové řešení není bezpečné, zejména používá-li se při přístupu přes Internet. Nejčistším řešením je využít TLS, které je ovšem potřeba správně nakonfigurovat (což není tak úplně triviální a je potřeba si připravit certifikát a klíč). Jinou možností je mít heslo uloženo v otevřeném tvaru, což ale nelze použít s normální systémovou (unixovou) databází.
Z obecných konfiguračních parametrů zbývá již jen jeden. Je to typ a umístění úložiště zpráv. Tady je to jednoduché, používá se úložiště typu Maildir a schránka je adresář Maildir
pod domovským adresářem uživatele.
mail_location = maildir:~/Maildir
Nyní přicházejí na řadu sekce pro jednotlivé protokoly a pro autentizaci. Pro protokol IMAP je žádoucí nastavit toto:
protocol imap { imap_client_workarounds = outlook-idle }
Parametr zapne obcházení chyby implementace protokolu IMAP v programu Microsoft Outlook. Pokud se Outlook zcela jistě používat nebude, není potřeba toto zapínat. Naopak při použití jiných klientů (typicky hodně starých) by se zapnuly jiné podobné volby. Pro protokol POP3 se nastaví tyto hodnoty:
protocol pop3 { pop3_uidl_format = %08Xu%08Xv pop3_client_workarounds = outlook-no-nuls oe-ns-eoh }
První parametr říká, jaký formát budou mít unikátní identifikátory zpráv. Pokud se vytváří nové úložiště, je v podstatě jedno, jak se budou identifikátory generovat. Jedno to ovšem není, přebírá-li se existující úložiště, nad kterým běžel nějaký jiný POP3 server. Určitý problém může být také s klienty (např. Microsoft Outlook 2003) nepodporujícími některé formáty. Uvedený formát odpovídá tomu, který používá program UW ipop3d a je doporučen autorem programu Dovecot. Druhý parametr zapíná podporu pro obcházení chyb některých klientů (podobně jako u protokolu IMAP).
Teď už zbývá jen nastavit autentizaci. Dovecot rozlišuje dva druhy autentizačních dotazů: na hesla a na uživatele. Ne každý informační zdroj lze použít pro obojí. Například na hesla se pro systémové uživatele standardně používá PAM (nelze použít jako databázi uživatelů), k dotazům na uživatele zase databáze passwd
(tedy standardně NSS). Tady je příslušná konfigurační sekce:
auth default { mechanisms = plain login passdb pam { args = dovecot } userdb passwd { } user = root }
Parametr mechanisms udává povolené autentizační mechanismy. Zde jsou uvedeny pouze dva, vzhledem k tomu, jak jsou ověřována hesla (PAM může pouze ověřit, zda je získané heslo správné, ale nemůže ho jako takové získat). Podsekce passdb definuje přístup k databázi hesel, zde s použitím PAM. Jako argument (args
) zde figuruje název služby v rámci PAM (viz dále). Dále je tu prázdná podsekce s databází uživatelů (i když tam nic není, nelze ji vynechat – říká, jak se budou uživatelé ověřovat) a nakonec uživatel, pod kterým poběží autentizační proces (musí mít přístup k heslům, čili v tomto případě to bude root).
Před spuštěním programu Dovecot je potřeba ještě ověřit, zda má PAM nakonfigurovánu službu dovecot
. Při instalace programu z balíčku to obvykle bývá v pořádku, nicméně pokud soubor (typicky /etc/pam.d/dovecot
) chybí, je potřeba ho tam přidat a standardně bude mít tento obsah (může vypadat mírně jinak, např. jako inkludování společných souborů, podle řešení v konkrétní distribuci):
auth required pam_unix.so account required pam_unix.so session required pam_unix.so
To je vše a po spuštění programu Dovecot s touto konfigurací by měl POP3 i IMAP přístup ke schránkám fungovat bezproblémově. Ovšem pozor – uživateli root Dovecot nepovolí přístup ke schránce. Je to logické, zejména v kontextu nešifrovaných hesel běhajících po síti. Proto je obecně lepší, když root vůbec svoji schránku nepoužívá. Prostě se pro tyto účely využívá běžný uživatel, přičemž pošta adresovaná uživateli root se pomocí aliasu přesměruje tomuto uživateli – do souboru /etc/aliases
se na konec přidá pravidlo jako je toto:
root: uzivatel
I když řešení se schránkami běžných uživatelů v systému je jednoduché a v řadě případů dobře použitelné, hlavně u dedikovaných poštovních serverů je vhodnější (a často v podstatě nezbytné) použít tzv. virtuální uživatele, kteří nemají své uživatelské účty v systému jako celku. Použití virtuálních uživatelů má celou řadu výhod:
Programy lze samozřejmě nastavit i tak, aby fungovaly současně pro systémové i virtuální uživatele, i když je to většinou zbytečné. Jako úložiště pro schránky virtuálních uživatelů se samozřejmě nepoužívají žádné domovské adresáře. Úložiště je centrální (typicky pod /var/mail
), může být i fyzicky oddělené od poštovního serveru. Oddělit pak snadno lze i doručování zpráv a přístup k nim.
Teoretický úvod o virtuálních uživatelích byl předstupněm toho, co přijde příště. Oba programy (Postfix a Dovecot) vytvoří silnou dvojici, která bude těsně spolupracovat – a to tak, že Postfix využije služeb programu Dovecot. Cílem bude ověřování virtuálních uživatelů, a to jak pro účely doručování (tedy jestli uživatel vůbec existuje), tak pro ověření pro odesílání zpráv (často je žádoucí mít možnost právo uživatele odesílat poštu ověřit i jinak než pouze podle síťových adres).
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
home_mailbox = Mailbox home_mailbox = Maildir/Jak je z názvů patrné, v prvním případě se nastaví doručování do souboru formátu mbox s názvem
Mailbox
, ve druhém případě to bude formát Maildir a adresář nazvaný taktéžMaildir
.
Není tu něco špatně? Slovo za rovnítkem definuje co? Formát nebo název souboru? Co umístění souboru? /var/spool/mail nebo domovský adresář?
Priste. Jak je napsano na konci clanku
Cílem bude ověřování virtuálních uživatelů, a to jak pro účely doručování (tedy jestli uživatel vůbec existuje), tak pro ověření pro odesílání zpráv (často je žádoucí mít možnost právo uživatele odesílat poštu ověřit i jinak než pouze podle síťových adres).
Pokud je tam lomítko, tak se to bere jako adresář pro maildir.Přesně tak. Asi jsem měl použít lepší formulaci, takhle to nemusí být dostatečně zřejmé.
mail_spool_directory
.
smtpd_recipient_restrictions = permit_mynetworks, reject_non_fqdn_sender, reject_unknown_sender_domain, reject_non_fqdn_recipient, reject_unknown_recipient_domain, check_recipient_access hash:/etc/postfix/access, check_sender_access hash:/etc/postfix/access, reject_unauth_destinationNebo má v článku prezentované řešení jiné výhody? Btw ten permit na konci je přidán jen z psychologického hlediska, je tak? Díky
Rozumím tomu správně, že nic nepokazím když použiji zkrácený zápis (s smtp_delay_reject=yes)Ano, za předpokladu smtp_delay_reject=yes by se to mělo chovat stejně.
Nebo má v článku prezentované řešení jiné výhody?Upřednostňuji rozdělení na jednotlivé části, je to podle mého názoru přehlednější a názornější.
Btw ten permit na konci je přidán jen z psychologického hlediska, je tak?Ano, je tam proto, aby bylo na první pohled patrné, co nastane, pokud žádné pravidlo nevyhoví.