Hlavní navigace

WebDav: přístup k vlastnímu cloudu

Adam Štrauch

Někdy to až vypadá, že cloud začal požírat věci, které existovaly i bez mráčků. Třeba sdílení souborů mezi počítači tu bylo už dávno, ale když někdo přinesl klienta pro X platforem a umístil data na své servery, máme tu hned cloud. To je vývoj a nic proti němu, ale k čemu je služba s 10 GB, když máme doma několik stovek GB?

Motivováni cloudem

Pod zprávičkami a články na téma Ubuntu One, Dropbox a vůbec obecně o souborech v cloudu, mě někdy zaujmou uživatelé, kteří tvrdí, že by svá data nikdy do cloudu třetí strany nedali. Kolem těchto uživatelů se pak objeví mysteriózní mračno a všichni se potichu ptají „co když tam má video se záběrem přistání v Roswellu“. Takový uživatel nikdy neřekne, jaká data že to chce chránit, a když už, tak jde „pouze“ o rodinné fotografie. Možná jde o postěžování, a nebo možná tito uživatelé neví, že malým serverem není problém nahradit služby tohoto typu.

Já mám svoje soubory uložené na domácím serveru a desktop nebo notebook nesou jen to, co v nich zůstalo z minulosti. Jsou tam, protože chci mít možnost mít doma přístup ke všem souborům bez ohledu na to, který stroj nyní běží (vyjma serveru samozřejmě). Navíc chci být omezen jen tím, kolik disků si do tohoto serveru koupím, a ne politikou firmy. V porovnání s mým úložištěm mi připadají nabídky Dropboxu a Ubuntu One k smíchu. K tomu občas ještě něco stahuju a v tomto případě mi přijde výhodnější stahovat přímo do mého cloudu a mít daný soubor k dispozici z něj a ne roztroušený v různých státech. Necítím se být omezen ani tak podmínkami obou služeb, málo z toho, co skladuji, by se dalo označit za nějaké vyloženě soukromé, ale jejich nabídkou určitě. Zkrátka, pokud máte doma linuxový stroj s veřejnou adresou, který obstarává přístup dalších zařízení k vašim souborům, Dropbox ani Ubuntu One nepotřebujete.

Proč cizí mrak, když můžete mít svůj

Linux je v tomto ohledu bohatá platforma a nabízí nespočet nástrojů, které umí data zpřístupnit. Nebude tu sice podobná synchronizace jako u Dropboxu nebo u Ubuntu One, ale ta může být hodně ošemetná, protože ne vždy funguje podle očekávání. V době psaní článku o Ubuntu One jsem se rozhodl ho používat a jako první jsem vyzkoušel nakopírování zdrojového kódu a jeho editaci. S každým uložením se vedle vytvořil hned další soubor se slovem „kolize“ v názvu a já Ubuntu One velmi rychle opustil.

Dropbox nebo Ubuntu One jsou připravené služby, kterým když svěříte data, tak je tam pravděpodobně najdete, i když republiku vyplaví velká voda. Jsou to černé krabičky, za jejichž pozadím se může skrývat ledacos. Pokud chcete těžit z kapacity svého disku nebo jen z toho, že budete mít data u sebe, toto pozadí je pro vás důležité. Jak dobře ho navrhnete a postavíte, takové bude, a budete se muset vypořádat se vším, co přijde. Mluvím například o replikaci dat na další server nebo o politice zálohování. I když to není hlavním tématem tohoto článku, minimálně to stojí za úvahu. Když si cloud postavíte sami, aspoň budete vědět, jak špatně na tom jste.

Přístup k datům

Stejně jako je Linux dobrý na uchovávání dat, je dobrý i na jejich poskytování. Ani se nemusím moc zamýšlet, aby mi hned nevypadla Samba, pohodlné sdílení dat na lokální síti, FTP nepohodlné sdílení po celém internetu, NFS, mocné sdílení na lokální síti nebo třeba SFTP, bezpečné sdílení po celém internetu. Každá z těchto technologií má své plusy i mínusy a ani jedna se mi neosvědčila pro pohodlné, rychlé a bezpečné sdílení souborů kdekoli, kde je nějaké připojení k internetu. Nabízet Sambu mimo lokální sít si netroufnu kvůli bezpečnosti. NFS by mohlo být dobré, kdyby bylo lépe podporované na Windows nebo na Androidu. FTP je starý protokol, který si někdy neumí poradit s češtinou a SFTP má komplikované pozadí na to, že chci jen přesunout soubory, což se projevuje na rychlosti.

Nějakou dobu jsem používal k přenosu souborů HTTP protokol a webový server Nginx. HTTP je jednoduchý a hlavně bezstavový. To znamená, že každému požadavku přijde nějaká odpověď a tím komunikace může skončit. Není nic mezi tím, před tím nebo za tím. Nedělá mu pak problémy, když změníte připojení k síti. Když jsem teď hledal, jak dopadl Ubuntu One klient pro KDE, napadlo mě, že bych mohl Nginx obohatit technologií WebDav, která přidá k HTTP pár nových metod a se soubory se dá hned pohodlně pracovat. Navíc se umí dobře chovat jako souborový systém a nezatěžuje spojení zbytečnostmi. Když se k tomu ještě přidá SSL, je tu vcelku bezpečný způsob, jak pohodlně sdílet soubory mezi počítači s různými operačními systémy a nebo mobilními telefony.

Protokol WebDav se začal formovat v roce 1996 a chvilku na to se objevily první implementace. Dokončen byl až v roce 2007. Přidané metody zajišťují přístup k metadatům a to, aby se soubory na serveru mohlo pracovat více lidí. K zabezpečení jednotlivých souborů před editací několika lidmi se používají zámky. Komunikace klienta a serveru pak probíhá částečně i pomocí XML, jako například získání výpisu adresářové struktury.

WebDav server

Rozjet WebDav server není nic složitého. Použít můžete Apache, lighttpd a když se trochu snažíte tak i Nginx. Apache je moloch, který je v tomto případě jak kanón na vrabce. Nginx potřebuje nějaké skripty, které se postarají o nepodporované ale důležité části protokolu. Zůstal lighttpd, který funguje víc než dobře.

Nakonfigurovat lighttpd, aby sdílelo a bylo zabezpečené heslem není nějak složité a stačí tento konfigurační soubor:

server.modules = (
    "mod_alias",
    "mod_webdav",
)

server.document-root       = "/cesta/k/datum/"
server.errorlog            = "/var/log/lighttpd/error.log"
mimetype.use-xattr = "enable"
server.port               = 8080
server.pid-file            = "/var/run/lighttpd.pid"
dir-listing.encoding        = "utf-8"
server.dir-listing          = "enable"
server.username            = "<uživatel>"
server.groupname           = "<skupina>"

## mimetype mapping
include_shell "/usr/share/lighttpd/create-mime.assign.pl"

webdav.activate = "enable"
webdav.is-readonly = "disable"
webdav.sqlite-db-name = "/var/run/lighttpd/lighttpd.webdav_lock.db"
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/etc/lighttpd/.npass"
auth.require = ( "" => ( "method" => "basic",
            "realm" => "webdav",
            "require" => "valid-user" ) ) 

Nejdříve řekneme serveru, že chceme použít modul mod_webdav. Pak nastavíme, kde bude adresář s daty, erorlog, port a hlavně skupinu a uživatele. Nezapomeneme změnit vlastníka a skupinu logů, WebDav databáze a adresáře s daty stejně. Pak lighttpd sdělíme, že chceme WebDav i se zápisem, a na konci nastavíme autentizaci, Soubor .npass vytvoříme pomocí utilitky htpasswd.

# htpasswd /etc/lighttpd/.npass username 

Tímto způsobem můžeme uživatele přidat nebo upravit, na smazání se používá navíc přepínač -D.

WebDav klient

Jak už bylo řečeno, WebDav běží na nespočtu platforem. Sám využívám klienta pro Androida WebDAV Navigator a podporu v desktopovém prostředí KDE. Úložiště můžete připojit ale také pomocí FUSE a souborového systému davfs2, ale podobně pohodlné jako NFS to není. Když chcete například spustit na takto připojeném úložišti video, je nejdříve celé staženo a až pak se přehrávač dostane ke slovu. To nevadí u 50 MB, ale když jde o jednotky GB, už to je problém. Podobně se chová podpora v kio_http v KDE.

Pro připojení WebDav úložiště pomocí davfs2 provedeme třeba takto:

sudo mount.davfs http://10.0.0.1:8080/ /mnt/webdav/ -o uid=<uživatel>,gid=<skupina>,rw,_netdev 

Další možnost je zmíněné KDE, kde lze využít položku Místní síť → Přidat síťovou složku nebo do URI zadat webdav://uživa­tel@10.0.0.1:8080/. V GNOME to funguje podobně a používá se dialog Připojit k serveru. Pokud nemáte ani jedno prostředí, použijte davfs2, odvede stejně dobrou službu.

Závěr

Jak bylo řečeno, k problémové synchronizaci, kdy se data synchronizují mezi všemi zúčastněnými stroji, se s určitým pohodlím jen tak nedopracujeme, minimálně ne s prostředky dostupnými v Linuxu/Windows i na mobilních platformách. Za to ale máme prakticky neomezený cloud a pokud použijeme navíc například GlusterFS nebo jiný způsob replikace dat mezi servery a přidáme spolehlivé zálohování, budou naše data v dostatečném bezpečí a kdo ví, možná na tom budou líp než na Dropboxu nebo Ubuntu One.

Jak sdílíte soubory mezi svými zařízeními vy mimo domácí síť?

Našli jste v článku chybu?

27. 7. 2011 0:12

Jirka (neregistrovaný)

Popisuje autor opravdu přístup ke cloudu nebo jen k souborům uloženým na serveru? Cloud je totiž služba, která nabízí kapacitu (výpočetní, úložní,...), aniž by uživatel musel řešit, kde se data reálně ukládají/kde probíhají výpočty. Pokud si autor doma rozběhne např. 10 serverů a na nich službu, která nabídne jejich kapacity jako jednu službu, můžeme se bavit o cloudu. Ale prosím, nebuďme zbytečně moderní a nenazývejme cloudem cokoliv.

24. 8. 2011 20:45

w359 (neregistrovaný)

scp, WinSCP. Priamo na domaci NAS, takze v zasade existuje iba jedna verzia kazdeho suboru.
Zohladnuje aj obmedzenia daneho NASu - minimalny hardver a aplikacna podpora. T.j. ak sa nechcem pustat do kroskompilacie na blizsie nezistenu platformu alebo si budovat vyvojove prostredie priamo na danom hardveri. Co teda nechcem :-)


Vitalia.cz: Cena stejného léku se liší i o tisíce

Cena stejného léku se liší i o tisíce

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Vitalia.cz: Taky věříte na pravidlo 5 sekund?

Taky věříte na pravidlo 5 sekund?

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

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

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

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Vitalia.cz: Típněte to! Kde všude si už nezakouříte?

Típněte to! Kde všude si už nezakouříte?

Podnikatel.cz: Udávání a účtenková loterie, hloupá komedie

Udávání a účtenková loterie, hloupá komedie

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

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

Vitalia.cz: 4 příčiny zápachu z úst a jak s ním zatočit

4 příčiny zápachu z úst a jak s ním zatočit

Podnikatel.cz: Snížení DPH na 15 % se netýká všech

Snížení DPH na 15 % se netýká všech

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

120na80.cz: Na ucho teplý, nebo studený obklad?

Na ucho teplý, nebo studený obklad?

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Vitalia.cz: Nejlepší obranou při nachlazení je útok

Nejlepší obranou při nachlazení je útok