abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

9.12. 20:11 | Nová verze

Byl vydán Debian 9.3, tj. třetí opravná verze Debianu 9 s kódovým názvem Stretch a Debian 8.10, tj. desátá opravná verze Debianu 8 s kódovým názvem Jessie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 9 a Debianu 8 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

Ladislav Hagara | Komentářů: 0
9.12. 00:44 | Nová verze

Po 6 měsících vývoje od vydání verze 0.13.0 byla vydána verze 0.14.0 správce balíčků GNU Guix a na něm postavené systémové distribuce GuixSD (Guix System Distribution). Na vývoji se podílelo 88 vývojářů. Přibylo 1 211 nových balíčků. Jejich aktuální počet je 6 668. Aktualizována byla také dokumentace.

Ladislav Hagara | Komentářů: 2
8.12. 21:33 | Nová verze

Po půl roce vývoje od vydání verze 5.9 byla vydána nová stabilní verze 5.10 toolkitu Qt. Přehled novinek na wiki stránce. Současně byla vydána nová verze 4.5.0 integrovaného vývojového prostředí (IDE) Qt Creator nebo verze 1.10 nástroje pro překlad a sestavení programů ze zdrojových kódů Qbs.

Ladislav Hagara | Komentářů: 0
7.12. 11:11 | Komunita

Naprostá většina příjmů Mozilly pochází od výchozích webových vyhledávačů ve Firefoxu. Do konce listopadu 2014 měla Mozilla globální smlouvu se společností Google. Následně bylo místo jedné globální smlouvy uzavřeno několik smluv s konkrétními vyhledávači pro jednotlivé země. V USA byla podepsána pětiletá smlouva s vyhledávačem Yahoo. Dle příspěvku na blogu Mozilly podala společnost Yahoo na Mozillu žalobu ohledně porušení této

… více »
Ladislav Hagara | Komentářů: 0
7.12. 05:55 | Zajímavý článek

V Londýně probíhá konference věnovaná počítačové bezpečnosti Black Hat Europe 2017. Průběžně jsou zveřejňovány prezentace. Videozáznamy budou na YouTube zveřejněny o několik měsíců. Zveřejněna byla například prezentace (pdf) k přednášce "Jak se nabourat do vypnutého počítače, a nebo jak v Intel Management Engine spustit vlastní nepodepsaný kód". Dle oznámení na Twitteru, aktualizace vydaná společností Intel nevylučuje možnost útoku.

Ladislav Hagara | Komentářů: 5
7.12. 04:44 | Komunita

Virtualizační nástroj GNOME Boxy ve Fedoře 27 umožňuje jednoduše stáhnout a nainstalovat Red Hat Enterprise Linux, který je pro vývojáře zdarma. Vývojová verze GNOME Boxy již umožňuje jednoduše stáhnout a nainstalovat další linuxové distribuce. Ukázka na YouTube. Seznam distribucí a jejich verze, nastavení a cesty k ISO obrazům je udržován v knihovně a databázi libosinfo (GitLab).

Ladislav Hagara | Komentářů: 0
7.12. 03:33 | Nová verze

Google Chrome 63 byl prohlášen za stabilní (YouTube). Nejnovější stabilní verze 63.0.3239.84 tohoto webového prohlížeče přináší řadu oprav a vylepšení. Vylepšeny byly také nástroje pro vývojáře. Opraveno bylo 37 bezpečnostních chyb.

Ladislav Hagara | Komentářů: 9
6.12. 22:55 | Pozvánky

Spolek OpenAlt zve příznivce otevřených technologií a otevřeného přístupu na 147. brněnský sraz, který proběhne v pátek 15. prosince od 18:00 hodin v restauraci Severka na rohu Tučkové a Zahradníkové.

Ladislav Hagara | Komentářů: 0
6.12. 22:33 | Komunita

V roce 2013 byl představen projekt Debsources, jehož cílem bylo a je poskytnout webové rozhraní ke zdrojovým kódům balíčků obsažených v Debianu. Projekt doteď běžel na doméně debian.net. Dnes bylo oznámeno, že projekt byl přesunut na oficiální infrastrukturu Debianu. Služba Debian Sources nově běží na doméně debian.org. V plánů je řada vylepšení. Již dnes je ke službě k dispozici API a procházet lze také patche a licence.

Ladislav Hagara | Komentářů: 0
6.12. 05:55 | IT novinky

Hodnota Bitcoinu, decentralizované kryptoměny, překonala hranici 12 000 dolarů. Před týdnem byla překonána hranice 10 000 dolarů [reddit].

Ladislav Hagara | Komentářů: 153
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (8%)
 (1%)
 (1%)
 (1%)
 (75%)
 (14%)
Celkem 943 hlasů
 Komentářů: 45, poslední 1.12. 19:00
    Rozcestník

    Použití databáze v programech Postfix a Dovecot

    4. 12. 2009 | Lukáš Jelínek | Sítě | 15374×

    Obsah

    Použití databáze v programech

    link

    Jestliže je databáze vytvořena a jsou v ní připravena nějaká data, lze přejít k propojení programů s databázovým serverem. Propojení spočívá v nakonfigurování programů a v definici dotazů, kterými se budou z databáze získávat data. První přijde na řadu program Postfix.

    Nastavení programu Postfix

    link

    Úprava konfigurace oproti té minulé je velmi jednoduchá. Spočívá ve třech parametrech, z nichž každý nastaví datový zdroj (zde databázi) pro jednu konkrétní oblast:

    virtual_mailbox_domains = mysql:/etc/postfix/mysql/vdomains.cf
    virtual_mailbox_maps = mysql:/etc/postfix/mysql/vmailbox.cf
    virtual_alias_maps = mysql:/etc/postfix/mysql/virtual.cf
    

    Uvedení mysql: říká, že se jako zdroj použije databáze MySQL. Cesta, která za tím následuje, je k souboru se všemi údaji, které jsou potřebné pro provedení dotazu. Nyní je však potřeba vyřešit jeden problém – jak se k databázi připojovat. Většina služeb Postfixu totiž běží v prostředí chroot, což znamená, že nemají přístup k lokálnímu socketu MySQL serveru, přes který se komunikuje. Řešení je v zásadě čtvero:

    • místo unixového socketu použít socket internetový
    • přenastavit MySQL server tak, aby se socket vytvářel v prostoru, kam má Postfix přístup
    • u příslušné služby (v tomto případě rewrite) zrušit chroot
    • využít službu proxymap, která má standardně přístup kamkoliv

    Každý ze způsobů má určité nevýhody. Internetový socket má o něco větší režii než unixový. Přesun socketu znamená přenastavit i všechny klienty, pro které má být k MySQL serveru povolen přístup tímto způsobem. Zrušení chroot o něco sníží bezpečnost. A konečně použití proxymap znamená opět režii navíc (ovšem někdy je tomu právě naopak, viz dále).

    Pro který způsob se rozhodnout? Při malé zátěži lze bez problémů využívat internetový socket, u zatížených poštovních serverů je však mnohem výhodnější nasadit službu proxymap, protože nejen že vyřeší problém s přístupem, ale současně zredukuje počet souběžných připojení na databázový server, který by jinak zbytečně požíral systémové prostředky a případně i zabránil obsloužení některých klientů.

    Každý ze souborů má následující formát (toto je příklad souboru vdomains.cf, tedy pro zjišťování domén):

    hosts = 127.0.0.1
    user = postfix
    password = heslopropostfix
    dbname = mail
    
    query = SELECT 1 FROM Domains WHERE dom_name='%s' AND dom_enabled=1
    

    To je celé. První čtyři řádky obsahují údaje pro připojení k databázi (zde je databáze nazvána mail) a budou se opakovat i pro všechny ostatní dotazy v rámci programu Postfix. Nejzajímavější je ale poslední řádek, tedy samotný dotaz. Vzhledem k tomu, že se zde zjišťuje pouze existence domény v tabulce, jde pouze o to, zda dotaz vrátí nějakou odpověď nebo prázdnou množinu.

    Hodnota %s zde reprezentuje dotazovaný klíč, tedy konkrétně hledanou doménu. Je-li nalezena (a musí být i aktivní, zapnutá), dotaz vrátí zpět číslo 1. Není to kritické – je totiž prakticky jedno, co vrátí, může to být klidně třeba i původní řetězec apod. Pro soubor vmailbox.cf by dotaz vypadal takto (první tři řádky souboru jsou stejné jako u souboru vdomains.cf):

    Pokud se neuvede umístění databáze (hosts), Postfix využije výchozí nastavení, což však obvykle nebude fungovat kvůli prostředí chroot. Pro vzdálenou databázi (nebo místní v explicitním nastavení), je potřeba uvést parametr hosts a nastavit mu jednu či více (budou zkoušeny v náhodném pořadí) adres. Lze uvádět i cesty k unixovým socketů (s prefixem unix:). Pozor – pokud uvedete localhost, Postfix se vždy připojí přes unixový socket! Pro místní připojení přes internetový socket se musí adresa uvést číselně (127.0.0.1).

    query = SELECT CONCAT(dom_name, '/', mb_user, '/')
      FROM Mailboxes NATURAL JOIN Domains
      WHERE mb_enabled=1 AND dom_enabled=1 AND mb_user='%u' AND dom_name='%d'
    

    Tady už to vypadá trochu složitěji. Jediné, co dotaz vrací, je cesta ke schránce typu Maildir, čili něco jako doména/uživatel/ (na názvu sloupce nezáleží). Cesta je získána spojením domény a uživatelského jména, a to jen v případě, že je jak doména, tak i schránka aktivní. Parametry %u%d znamenají uživatelské jméno z adresy, resp. doménu (klíč jde jako celá adresa, tu lze získat pomocí %s; uvedené dva symboly tento klíč rozdělí na samostatné části). Velmi podobně vypadá i dotaz pro aliasy, tedy v souboru virtual.cf:

    query = SELECT al_target FROM Aliases NATURAL JOIN Domains
      WHERE al_enabled=1 AND dom_enabled=1 AND al_user='%u' AND dom_name='%d'
    

    Dotaz dělá skoro totéž jako ten předchozí, tedy zde vrací cílovou adresu aliasu, jsou-li alias i doména aktivní. Nic dalšího už není potřeba nastavovat, toto všechno plně postačuje k tomu, aby Postfix správně doručoval podle hodnot v databázi.

    Pokud budete chtít pro komunikaci s databází využít zmíněné řešení s využitím služby proxymap, je potřeba pozměnit konfiguraci Postfixu takto (jde v podstatě jen o přidání proxy: před každou hodnotu):

    virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql/vdomains.cf
    virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql/vmailbox.cf
    virtual_alias_maps = proxy:mysql:/etc/postfix/mysql/virtual.cf
    

    Hodnota hosts v souborech se pak pro místní MySQL server nemusí vůbec definovat (nebo se nadefinuje jako localhost), služba proxymap se bude připojovat přes unixový socket. Pro základní funkčnost není třeba využívat toto řešení u služby local (tedy parametr virtual_mailbox_maps), ale protože proxymap řeší i problém s počtem souběžných připojení k databázi, je výhodnější stejným způsobem nastavit všechno.

    Pozor na nastavení práv k uvedeným třem souborům. Přístup ke čtení smí mít jen uživatel postfix (přístup k zápisu nepotřebuje). Sice v tomto případě nelze přes přístup Postfixu získat příliš citlivé informace (není přístup k heslům uživatelů a hlavně nelze v databázi nic měnit), nicméně například u aliasy mají určitou citlivost a přístup k nim by neměl mít každý.

    Nastavení programu Dovecot

    link

    U programu Dovecot to bude velmi podobné, i když bude vše mít poněkud jinou syntaxi. Opět je potřeba upravit konfiguraci a vytvořit (v tomto případě jen dva) databázové dotazy. V konfiguračním souboru dovecot.conf se nastaví:

    auth default {
      mechanisms = plain login cram-md5 digest-md5 ntlm
    
      passdb sql {
        args = /etc/dovecot/mysql.conf
      }
    
      userdb sql {
        args = /etc/dovecot/mysql.conf
      }
      
      user = dovecot-auth
      
      socket listen {
        client {
          path = /var/spool/postfix/private/auth
          mode = 0660
          user = postfix
          group = postfix
        }
      }
    }
    

    Mechanismy a SASL socket (pro účely autentizace v programu Postfix) zůstávají stejné jako minule, mění se však zdroj hesel i uživatelů. V obou případech se nastaví stejný konfigurační soubor mysql.conf pro práci s databází (šel by samozřejmě nastavit pokaždé jiný). V tomto souboru bude vše potřebné pro získávání údajů z databáze:

    default_pass_scheme = PLAIN
    driver = mysql
    connect = host=/var/run/mysqld/mysqld.sock dbname=mail user=dovecot password=hesloprodovecot
    
    password_query = SELECT mb_password AS password, '%u' AS user \
      FROM Mailboxes NATURAL JOIN Domains \
      WHERE mb_enabled=1 AND dom_enabled=1 AND mb_user='%n' AND dom_name='%d'
    
    user_query = SELECT 100 AS uid, 100 AS gid, '/var/mail/virtual/%d/%n' AS home \
      FROM Mailboxes NATURAL JOIN Domains \
      WHERE mb_enabled=1 AND dom_enabled=1 AND mb_user='%n' AND dom_name='%d'
    

    Parametr default_pass_scheme říká, jaké je výchozí schéma uložení hesel (viz minulý článek), zde PLAIN. driver je označení databázového ovladače (mysql). Parametr connect uvádí vše potřebné pro připojení k databázi, zde tedy cestu k unixovému socketu, název databáze, uživatelské jméno a heslo.

    Dále už jsou tu vlastní dotazy. Zde je to trochu jiné než u Postfixu. Vracených hodnot je víc a záleží na jejich pojmenování, proto se provádí aliasing. %n zde má stejný význam jako %u u Postfixu, tedy jméno uživatele, zatímco zde %u znamená uživatele včetně domény. V dotazu na uživatele se UID a GID vrací jako pevné hodnoty, cesta ke schránce je také v podstatě pevná, protože je sestavena před odesláním dotazu do databáze. Dotaz jako takový tedy vlastně jen testuje existenci schránky a to, zda je schránka a doména aktivní.

    Opět pozor na nastavení práv k souboru. Měl by ho mít oprávnění číst jen uživatel dovecot-auth. Dostanou-li se k obsahu souboru běžní uživatelé, mohou zjišťovat hesla k poštovním schánkám, tedy velmi citlivé informace.

    Po provedení všech popsaných úkonů by měl server (samozřejmě po načtení nových konfigurací) kompletně fungovat s údaji z databáze. Jedná se skoro o minimum, co lze prostřednictvím databáze provozovat, možnosti jsou mnohem širší, záleží na konkrétních potřebách a cílech.

    Využití LDAP

    link

    Nasazení databáze přináší mnoho výhod, ne vždy je to však to nejlepší řešení. Například ve firemním prostředí bývají uživatelé soustředěni v centrální databázi přístupné protokolem LDAP (konkrétních implementací je řada – například OpenLDAP, Apache Directory Server, Novell eDirectory, Lotus Domino, Active Directory a mnoho dalších). Pak je zbytečné mít ještě nějakou samostatnou databázi pro poštu, potřebné údaje lze získávat pomocí LDAP.

    LDAP patří mezi technologie, které není až tak úplně jednoduché zkrotit (nebo se to nich alespoň říká), proto mohou existovat určité obavy ohledně správného nastavení poštovního serveru, aby LDAP využíval. Že to tak děsivé není, se ukáže v příštím dílu seriálu.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    4.12.2009 06:54 Lampa
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 7 (uživatelé v databázi)
    hmm a jak vidim taky neresi, ze prednost ma alias pred mailboxem(kdy bude v tabulce aliasu stejne jmeno jako v mailboxech), alias domeny; co se tyce dovecotu neni lepsi pouzit prefetch a vratit vse v jednom dotazu nez delat 2 dotazy ?
    Luk avatar 4.12.2009 13:49 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 7 (uživatelé v databázi)
    hmm a jak vidim taky neresi, ze prednost ma alias pred mailboxem(kdy bude v tabulce aliasu stejne jmeno jako v mailboxech)
    To lze řešit buď na aplikační úrovni (aplikace pracující nad databází nedovolí, aby bylo jmeno v obou tabulkach), nebo rozštěpením DB relací s vytvořením další tabulky, čímž se to zajistí na databázové úrovni (to je čistší, ale sežere to víc výkonu).
    co se tyce dovecotu neni lepsi pouzit prefetch a vratit vse v jednom dotazu nez delat 2 dotazy
    V tomto případě ano, protože se v dotazu na uživatele netahají žádné doplňkové informace. Mám v plánu uvést tyto optimalizace pohromadě později v samostatném článku.
    LinuxMarket - linuxový e-shop | LinuxEXPRES - linuxový magazín | OpenOffice.cz - portál uživatelů OpenOffice/LibreOffice
    7.12.2009 06:43 Lampa
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 7 (uživatelé v databázi)
    uvidime, jak rekl slepy, co bude dal

    preposilani mailu s lokalni kopii, je taky velice zadana vec
    4.12.2009 07:50 Martin22
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 7 (uživatelé v databázi)
    A proc pouzivat innodb a ne myisam ?
    4.12.2009 07:55 Lampa
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 7 (uživatelé v databázi)
    myisam nema podporu foreign key a transakci, na kterych je to zalozeno
    Luk avatar 4.12.2009 13:51 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 7 (uživatelé v databázi)
    Přesně, také to v článku říkám. Možná to není dostatečně srozumitelné, pak je to asi moje chyba, měl bych používat lepší formulace ;-)
    LinuxMarket - linuxový e-shop | LinuxEXPRES - linuxový magazín | OpenOffice.cz - portál uživatelů OpenOffice/LibreOffice
    4.12.2009 21:44 Kvakor
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 7 (uživatelé v databázi)
    U popisu řešení tabulek se píše, že InnoDb je kompromis mezi rychlostí a jednoduchostí. Osobně bych se nejspíš rozhodoval podle toho, jak často je databáze upravována a jak moc je zatížený poštovní a databázový server. Při větším množstí úprav je výhodnější InnoDb (díky podpoře transakcí a cizích klíčů), ale pokud je změn málo, provoz velký a databázový server málo výkonný (např. je to původně router nebo NAS s alternativním "firmwarem"), nejspíš by byly MyISAM tabulky výhodnější - transakce nemají u téměř read-only dat smysl, cizí klíč jde celkem snadno odemulovat použitím několika SQL příkazů a při neexcistenci více domén ho není třeba.
    8.12.2009 07:37 Luboz
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 7 (uživatelé v databázi)
    Dakujem za clanok, zaujimave citanie. Uz sa ale tesim na pokracovanie, nakolko skor alebo neskor ma caka tiez prechod z lokalnych userov na Active Directory... Poprosim teda sa zmienit aj o AD v nasledujucom clanku, ak je to mozne... Dakujem
    Luk avatar 8.12.2009 12:20 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 7 (uživatelé v databázi)
    Vzhledem k tomu, že příští článek už je nějakou dobu napsán, tak už do něj těžko zasáhnu ;-) Nějaké zmínky o AD tam samozřejmě jsou, nicméně již dopředu říkám, že praktické zkušenosti s využitím AD pro tyto účely nemám (pouze s OpenLDAP a s Apache Directory Serverem), takže v tomto bohužel nemohu sloužit.
    LinuxMarket - linuxový e-shop | LinuxEXPRES - linuxový magazín | OpenOffice.cz - portál uživatelů OpenOffice/LibreOffice
    16.8.2010 19:41 Tom@T
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 7 (uživatelé v databázi)
    Ahoj, potreboval bych mensi radu, dle navodu az sem vse rozchodil, problem mi nastal pri vyuziti mysql. Postupoval jsem podle instrukci, ale nepodarilo se mi spojit s databazi.

    /var/log/mail.log ,hlasi po restartu dovecotu:
    Aug 16 19:34:32 queeg dovecot: Dovecot v1.0.15 starting up
    Aug 16 19:34:33 queeg dovecot: auth(default): Error in configuration file /etc/dovecot/mysql.conf line 6: Expecting '='
    Aug 16 19:34:33 queeg dovecot: Auth process died too early - shutting down
    Aug 16 19:34:33 queeg dovecot: child 3661 (auth) returned error 89

    soubor mysql.conf mam prepsany spravne - nekolikrat zkontrolovano, nikde jsem nenasel kde by chyba mohla byt, MYSQL na urovni prikazu neumim. Na uveden radku 6 je:

    FROM Mailboxes NATURAL JOIN Domains \

    Pokud mate nekdo nejaky tip tak moc diky
    26.8.2010 10:03 Tom@T
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 7 (uživatelé v databázi)
    takze to musi byt v jedinem radku bez /
    10.10.2010 15:14 depka | skóre: 20 | blog: eterity
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 7 (uživatelé v databázi)
    neni zde unikatni klic v tabulce aliasu na skodu? neumozni mi pak replikovat email na vice aliasu?
    8.7.2011 13:39 Jaroslav
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 7 (uživatelé v databázi)
    Nedaří se mi docílit přeposílání KOPIE emailu. Uživatelé jsou v databázi, přesně jak je tu popsáno. Mám existující uživatele jednicka@domena.cz a dvojka@domena.cz. Chci aby mail který dostala jednička byl okopírován dvojce.

    Do Aliases dám:
    al_user = jednicka
    al_target = jednicka@domena.cz, dvojka@domena.cz

    Výsledkem je, že jednička email správně dostane, ale dvojka dostane 2 kopie. Je to logické, ale dočetl jsem se, že "Postfix is smart enough to not get into a loop". Zjevně to tak není. Věděl by prosím někdo, jak dosáhnout toho, aby oba dostali stejný mail jen jednou?
    8.7.2011 14:45 Jaroslav
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 7 (uživatelé v databázi)
    Ještě to doplním: stejné chování při použití recipient_bcc_maps. Zdá se, že to má něco společného s nastaveními pro amavis: receive_override_options=no_address_mappings.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.