StoryBundle: indie knihy bez DRM za pakatel

Někteří možná znáte Humble Indie Bundle, kde jednou za určitou dobu vyjde balíček několika her pro Windows, Mac i Linux, bez DRM a podobných nesmyslů (leč bohužel stále proprietárních). Abyste je získali, stačí zaplatiti vámi stanovenou libovolnou cenu. Část výtěžku jde na charitu.

StoryBundle je podobný počin, ale nejedná se o balíček her, nýbrž o balíček e-knih. Absence DRM je samozřejmostí a knihy jsou dostupné ve formátech EPUB a MOBI. Vystačíte si s libovolnou čtečkou, včetně té od oné nechvalně známé firmy, která pálí… totiž maže lidem z čteček knihy. Ale to je úplně jiný problém pro úplně jiný příspěvek.

Zpět tedy ke StoryBundle. V tuto chvíli (a ještě následujících 18 dní a 13 hodin) probíhá jejich první akce vůbec, zahrnuje cca 7 titulů, kde 5 z nich můžete získat od 1 USD, přičemž k získání všech 7 musíte zaplatit 7 USD (v současném kurzu asi 150Kč). Knihy jsou (jak správně očekáváte) v anglickém jazyce a co se žánrů týče, jedná se převážně sci-fi/fantasy.

Síťová neutralita: nutná, nikoliv postačující podmínka

Narazil jsem na zprávu o snaze prosadit síťovou neutralitu na poli EU. ISP by si nemohli dovolit zasahovat do vaší komunikace (např. omezováním rychlosti určitých portů nebo typů připojení, atd.) a současně tvrdit, že vám poskytují připojení k Internetu. Současně by také měli poskytovat informace o tom, jak upravují váš provoz, co zaznamenávají, atd.

To by bylo samozřejmě pěkné, ale bohužel to neřeší problém řady vlád, které usilují (mnohdy na základě lobbyingu velkých firem) o cenzuru a kontrolu nad tím, co na Internetu děláte. Sarkozy například nedávno chtěl lidi posílat do vězení za to, že si zobrazí (a možná i přečtou) webovou stránku. Jak něco takového může vyplodit prezident demokratické země asi nikdy nepochopím.

Francie také třeba implementovala zákon, který umožňuje vlastníkům autorských práv odpojit kohokoliv od Internetu prostým zasláním upozornění jeho ISP. Proces obchází soudy, vlastníci autorských práv nemusejí nic dokazovat a i když je možné se odvolat, dá se tím prý dosáhnout pouze zmírnění trestu, ale nikoliv zrušení trestu.

Síťovou neutralitu je třeba aplikovat nejenom ve vztahu k ISP, ale také k vládám a politikům. A nejenom síťovou neutralitu.

Prohlížení webu přes SSH SOCK5 proxy

OpenSSH toho umí poměrně hodně a není proto divu, že se o něm píší i celé knihy. Jednou jeho zajímavou vlastností je možnost vytvořit SOCKS5 proxy, která bude veškerou komunikaci směrovat přes SSH. Máte-li tedy SSH účet na nějakém serveru, kde to administrátor nezakázal, můžete surfovat „přes“ něj. Příkaz pro vytvoření SOCKS5 proxy vypadá takto:

ssh -D 8888 -Nf uzivatel@example.com

Parametr volby -D určuje místní port, kde bude sídlit SOCKS5 proxy. Tento port na localhostu je pak samozřejmě třeba nastavit v prohlížeči.

Vlastosti a výhody tohoto nástroje jsou:

  1. komunikace je šifrována mezi vámi a SSH serverem, váš ISP tedy nebude mít šanci sledovat obsah vaší komunikace
  2. SOCKS5 proxy umí tunelovat nejenom vlastní komunikaci, ale i DNS dotazy (doporučuji se ujistit Wiresharkem, ne všechen software to nutně umí), tudíž, pokud váš prohlížeč neprosakuje, váš ISP by neměl mít šanci zjistit s jakými weby komunikujete sledováním DNS provozu
  3. komunikace samozřejmě není šifrována mezi SSH serverem a cílovým serverem, tudíž správce tohoto serveru a/nebo váš „serverový“ ISP uvidí jak komunikaci, tak DNS dotazy

Mezi důvody, proč tento nástroj použít, může patřit:

  • jste někde připojeni přes nešifrovanou nebo neznámou WiFi
  • nedůvěřujete svému ISP
  • jste připojeni přes cenzurujícího ISP
  • chcete obejít omezení přístupu na nějaký web (některé weby jsou dostupné např. pouze z USA nebo jiné země)
  • chcete extra-bezpečně přistupovat k webu umístěném přímo na daném serveru s SSH
  • atd.

Přirozeně, tento nástroj je možné použít i s jiným softwarem než nutně s prohlížečem, stačí podpora SOCKS5.

SNI aneb virtuální weby přes SSL s jednou IP adresou: stále nic moc

Nasadit moře virtuálních webů na jeden jediný server dnes není vůbec žádný problém (naopak, je to běžná praxe). Vše může bez problémů jet i na jedné IPv4 adrese, kterých, jak asi víte, je teď už kritický nedostatek. Problémem je, že takto mohou weby jet jen přes HTTP, ale už ne přes HTTPS. Proč je tomu tak? Přistupujete-li k nějakému webu, třeba na www.shadow.cz, protože si chcete přečíst tento článek, zašle váš prohlížeč serveru následující požadavek:

GET /blog/1106
Host: www.shadow.cz

Jak je patrné, webový server běžící na příslušné IP adrese z požadavku zjistí, ke kterému webu chcete přistupovat, a zobrazí vám požadovanou stránku. Na jedné IP adrese tak můžou běžet klidně tisíce webů, resp. virtuálních webů (virtual host).

Když chcete k serveru přistupovat přes HTTPS, je situace jiná. Prohlížeč totiž musí nejprve vytvořit šifrované spojení, a teprve potom může přes toto spojení zaslat požadavek s názvem virtuálního webu, ke kterému chcete přistupovat. Webový server tedy nemá žádnou šanci poznat, který certifikát (ty jsou obvykle vydávány pro jednu konkrétní doménu) má prohlížeči naservírovat.

Řešení tohoto problému samozřejmě existuje, je jím rozšíření TLS protokolu (což je nástupce SSL protokolu) s názvem SNI (Server Name Indication), které problém řeší tím, že klient dodá jméno serveru, ke kterému se chce připojit, ještě před tím, než mu server odešle příslušný certifikát.

Situace však není až tak růžová. Servery SNI jakž takž už nějakou dobu podporují. Celé SNI tedy v tuto chvíli stojí a padá především na podpoře prohlížečů. Což o to, takový Firefox podporuje SNI od verze 2.0 (prostředek 2006), ale u IE je situace jiná. Ten sice SNI umí také (od IE 7), jenomže ne na XP, které jsou bohužel stále velice rozšířené. Dokonce ani aktuální osmička na XP stále SNI nepodporuje. Microsoft zde skutečně má očekávání nezklamal, stále brzí pokrok jako brzdila TV Nova digitalizaci. A tak vám na XP nezbyde než uživatelům sdělit, aby vyměnili ošoupaný a neschopný IE za něco produktivnějšího. Jenomže k tomu, abyste to jako provozovatelé webů mohli udělat, musí váš web být schopen toto uživatelům sdělit, což bude těžké, pokud se uživatelům bude zobrazovat chybové hlášení o tom, jak je použitý certifikát nebezpečný a že vzdálený server je určitě nějaký podvodník, který chce uživatele na dálku sežrat. Ach jo.

Abych nenadával jen na Microsoft, ani Google se svým Androidem a Chromem v podpoře SNI neoslnil. Na XP musíte použít až šestku (vydána v září 2010), jinak vám stačí 5.0.342.1 z března 2010. No a co se Androidu týče, tam to možná půjde, ale až ve verzi 3.0, která dosud nebyla vydána. Dřívější verze SNI prostě nepodporují.

Jak dlouho budeme muset čekat, než bude SNI přístupné z běžně dostupného klientského softwaru? Stihneme to ještě před přechodem na IPv6?

Ústavní soud zrušil data retention v ČR

Jak se zdá, neuvěřitelné se stalo realitou. Ústavní soud dnes zrušil povinnost poskytovatelů komunikačních služeb uchovávat až šest měsíců údaje o tom, kdo s kým a jak moc komunikoval. Toto se týká téměř každého uživatele Internetu nebo každého uživatele mobilního telefonu. Příslušné paragrafy zákona o elektronických komunikacích byly do našeho právního řádu včleněny na popud EU (implementace směrnice o data retetnion) a nyní byly shledány protiústavní a zrušeny. Více informací viz web Ústavního soudu. Můj komentář k této věci je krátký, ale výstižný: „Ústavní soude, výborně! Jen tak dál!“.

Záložní MX server v Postfixu

Jak funguje záložní MX server? Tak, že převezme poštu pro primární server, hodí si ji do fronty, a pak se v určitých intervalech snaží poštu opět doručit primárnímu serveru. Zprovoznění této funkcionality je velmi jednoduché, stačí modifikovat /etc/postfix/main.cf následovně:

1) ujistěte se, že v koloně smtpd_recipient_restrictions je umístěno permit_mynetworks před reject_unauth_destination, takto:

smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination

2) přidejte parametr relaydomains, který bude obsahovat proměnnou $mynetworks a seznam všech domén, pro které chcete daný server učinit záložním, tedy např:

relay_domains = $mydestination, shadow.cz

3) ujistěte se, že příslušné domény, pro které chcete daný server učinit záložním, nejsou uvedeny v mydestination, virtual_alias_domains či virtual_mailbox_domains

4) přidejte prázdný parametr relay_recipient_maps:

relay_recipient_maps =

A je hotovo. Jeden drobný problém ovšem stále zůstává – Postfix drží poštu ve frontě jen určitou dobu – pokud se tedy e-mail nepodaří doručit do této doby, je zahozen a je vygenerováno oznámení o nedoručení zprávy. Tuto dobu je možné ovlivňovat parametrem maximal_queue_lifetime. Výchozí hodnota je 5 dní (5d). Pokud byste chtěli tuto dobu prodloužit třeba na 14 dní, vložíte do výše uvedeného konfiguračního souboru následující řádku:

maximal_queue_lifetime = 14d

Nezapomeňte přidat MX záznam záložního serveru do DNS. Funkcionalitu doporučuji před nasazením otestovat někde nanečisto.

Doplňuji zdroj, ze kterého jsem vycházel a přeji happy hacking.

Publikování na WordPress (nejen) pomocí (G)Vimu

Mám rád Vim. Mám moc rád Vim. Používám ho k editaci textu při každé možné příležitosti. Problémem je, že redakční systémy typu WordPress se obvykle ovládají přes webové rozhraní, a přes toto rozhraní se přidává i obsah. Naštěstí WordPress umožňuje i přístup přes xmlrpc rozhraní, což dává vývojářům možnost vytvořit pro ovládání WordPressu alternativní rozhraní.

Toto využívá celá řada „bloggerů“ coby aplikací pro desktop, ale i pro příkazovou řádku. Jednou z aplikací pro příkazovou řádku je blogpost, napsaný Stuartem Rackhamem v Pythonu. Umí publikovat jako článek nebo stránku soubor formátovaný buď v HTML nebo v AsciiDoc. Netestoval jsem, ale na první pohled vypadá zajímavě.

Nicméně, zpět k hlavnímu tématu – publikovat na WordPress lze i z (G)Vimu, a to pomocí několika pluginů. Já jsem pro své potřeby zvolil aktivně vyvíjený Blogit, u kterého mne jeho vývojář velmi příjemně překvapil, když mnou nahlášený bug úspěšně vyřešil v řádu hodin (nyní už není problém s názvy kategorií v Unicode).

Plugin Blogit přináší do Vimu několik příkazů:

:Blogit ls [blog]          list all posts
:Blogit new [blog]         create a new post
:Blogit this [blog]        make this a blog post
:Blogit edit {id} [blog]   edit a post
:Blogit page {id} [blog]   edit a page
:Blogit commit             commit current post or comments
:Blogit push               publish post
:Blogit unpush             unpublish post
:Blogit rm {id}            remove a post
:Blogit tags               update and list tags and categories
:Blogit preview            preview current post locally

S pomocí nich je velmi snadné vytvořit nový příspěvek nebo editovat stávající, a to včetně práce se stránkami (pages). Blogit nabízí také doplňování tagů a kategorií prostřednictvím C-X C-U.

Co více napsat? Pokud používáte Vim a máte někde blog nebo stránky využívající Wodpress, určitě Blogit vyzkoušejte. Pokud používáte jiný CMS, a rádi byste editovali texty příspěvků ve Vimu, můžete použít plugin do Firefoxu s názvem Vimperator, který vám z Firefoxu udělá tak trochu Vim (z hlediska ovládání) a umožní vám upravovat formulářová pole GVimem prostřednictvím C-I.

No a pokud máte rádi Emacs, určitě znáte Conkeror.

Návod na restrictions v Postfixu

Poslední dobou příliš nestíhám psát články do blogu, tak zkusím alespoň odkázat na velmi pěkný návod a velmi obsáhlou dokumentaci, kde si můžete dohledat v návodu neprobrané volby. Přidám ještě trošku kratší dokument na stejné téma. Mohl bych také odkázat na vynikající knihu o Postfixu s názvem Postfix od autorů Ralf Hildebrandt a Patrick Koetter. Seženete ji přirozeně i v českém jazyce ve vašem oblíbeném knihkupectví.

Změna struktury domácí sítě I.

Začal jsem uvažovat o úpravě routeru/serveru, tedy té velké a nevzhledné krabice pod mým stolem, které bych se velmi rád zbavil a nahradil ji něčím menším a úspornějším. Sdílený disk (alias souborový server) mi běží na starém notebooku (jehož výhodou je „vestavěná“ UPSka v podobě baterie), funkci routeru a serveru vykonává ona velká nevzhledná krabice. Nuže, co s tím?

Celý příspěvek