Archiv pro rubriku: tech

Jak sledovat ČT4 Sport ze zahraničí

Vzhledem k tomu, že Česká televize nemá zakoupená práva na vysílání Olympiády v Soči po internetu do zahraničí, je sledování olympiády (a zvláště českých sportovců) poměrně obtížné.

Nabízím návod, jak za poměrně malé peníze získat možnost sledování ČT 4 Sport i v zahraničí. Není to návod pro úplně běžné uživatele, ale ti zkušenější si s ním určitě poradí.

Potřebné znalosti:

  • Základy ovládání linuxu (editace konfiguračních souborů. SSH)
  • Základy znalost síťové problematiky vašeho operačního systému

Úvod

ČT 4 Sport lze sledovat pouze v České republice, a tak musíme nás počítač donutit, aby se tvářil, jako že v České republice je. To se dělá pomocí VPN. Komerčně nabízené služby jsou pro náš případ zbytečně drahé. Nastavíme si tady vlastní VPN server, ke kterému se budeme připojovat.

Nastavení VPN serveru

Server musí být umístěný v ČR, využijeme proto některého z poskytovatelů VPS serverů. Já používám VirtualMaster. Tam si založíme účet, nabijeme tam nejnižší částku (100Kč) třeba přes PayPal.

Vytvoříme VPS. Já jsem použil 4GB HDD a 512MB RAM ve verzi Personal s OS Ubuntu. Provoz takového serveru vyjde na 0.3581 Kč za hodinu. Počkáme, až se server vytvoří a připojíme se na něj přes SSH.

Nyní vytvoříme nejjednodušší nezabezpečený VPN server podle následující návodu.

Tímto máme spuštěný vlastní VPN server.

Nastavení klientského počítače

Nyní nám už stačí náš počítač připojit do vytvořené VPN sítě. Pro Windows 8 je zde docela pěkný návod. Pro ostatní platformy ho určitě najdete na Googlu. Stačí zadat VPN client PPTP „váš OS“.

Včera jsem takto sledoval hokej, na můj server byly připojeny 2 počítače z různých částí Evropy a připojení fungovalo plynule jen s velmi občasným zaseknutím, které bylo beztak způsobeno servery ČT. Podle článků na internetu o špatné dostupnosti ČT4 Sport v ČR, kdy se nenačetla ani stránka s přenosem, si myslím, že takto řešený přenos je spolehlivější i v ČR.

Rychlé vyhledávání domén & zkracovač URL xcv.cz

Už pár let používám na domény vynikající nastroj domaintyper.com (doporučil mi ho po ukončení služby ajaxwhois.com @jirimanas). Není tam dokonce ani žádné omezení na počet vyzkoušených názvů (nebo jsem aspoň na žádné nenarazil).

Dnes během slabší části přednášky Advanced algorithms jsem našel poslední volnou .cz tříznakovou doménu, která má všechna tři písmena vedle sebe na klávesnici (i anglické) – xcv.cz (zkoušel jsem pouze směr zleva do prava). Původně jsem chtěl některou z domén lh(a-z).cz, ale všechny kromě ošklivé lhq.cz  byly obsazené.

Na doméně poběží můj soukromý zkracovač url adres.

Skype ve Windows 8

Windows 8 používají místo klasické nabídky Start nepříliš zdařilé (a na desktopových počítačích použitelné) rozhraní Metro. Po pár dnech se dá na přechod zvyknout, nicméně některé aplikace (zejména ty od Microsoftu) přešly pod křídla Metra a Windows Store. 

Jednou z těchto aplikací je Skype. Zatímco dříve modrá ikona s bílým S byla stálým obyvatelem lišty s programy, nyní je pryč. Jediná možnost, jak Skype spustit a ovládat je přes Metro aplikaci. 

Jak se vrátit k původnímu Skype?

Stáhněte si poslední verzi Skype for Windows desktop a nainstalujte :)

Nyní po vstupu do Metra zkuste napsat Skype (jen zmáčkněte Windows klávesu, nebo ikonu na liště a pište). Máte dvě možnosti spuštění – Skype a Skype na ploše. A právě Skype na ploše je ta verze, na kterou jsme zvyklí.

Jak vytisknout PDF dokument zamknutý pro tisk?

MInulý týden jsem potřeboval vytisknout PDF zamknuté pro tisk. Zadal jsem do Googlu frázi „how to print locked pdf“ s očekáváním dvouminutového řešení. Nope. Nejjednodušší se zdálo nahrát dokument k někomu na server, který ho „odemkne“ a pošle zpět. Vzhledem k tomu, že se jednalo o dokument s citlivými informacemi (a navíc v angličtině), tak bych byl nerad, aby si ho četl někdo další. Dalších několik řešení bylo ve stylu „Stáhněte a nainstalujte si program PDF unlocker“. Ani to jsem nehodlal riskovat.

Jednoduché řešení, jak odemknout PDF

Na editaci vektorových souborů používám Inkscape (zdarma), který umožňuje mimo jiné i import PDF. Stačí tedy do nového dokumentu naimportovat požadované pdfko a uložit opět jako PDF.

Neinstalujte zbytečné jednoúčelové programy plné malware a virů Nainstalujte si užitečný open-source vektorový editor Inkscape.

Ubuntu: No route to host

Na domácím serveru se mi stala zvláštní věc. Pokoušel jsem se forknout repositář z Githubu s Bowerem:

media@mediaserver:/var/www/playground$ bower install bootstrap

Výsledek byl:

bower bootstrap#* not-cached git://github.com/twbs/bootstrap.git#*
 bower bootstrap#* resolve git://github.com/twbs/bootstrap.git#*
 bower bootstrap#* ECMDERR Failed to execute "git ls-remote --tags --heads git://github.com/twbs/bootstrap.git", exit code of #128

Additional error details:
 fatal: unable to connect to github.com:
 github.com[0: 192.30.252.130]: errno=No route to host

Analýza problému

Zaujala mě přeložená adresa Githubu – 192.30.252.130. Pravděpodobně kvůli nedostatku IP adres se začaly přidělovat i rozsahy určené pro lokální sítě – 192.0.0.0 a 138.0.0.0. Spíš jen pro jistotu jsem zkusil telnet:

media@mediaserver:/var/www/playground$ telnet github.com 9418
 Trying 192.30.252.130...
 telnet: Unable to connect to remote host: No route to host

Jako první mě napadlo, jestli není na firewallu v routeru (s dd-wrt) blokovaný port 9418. To byla ale úvaha mylná, protože na jiném počítači v síti git používám bez problému.

Tak jsem zkusil cílovou ip pingnout:

media@mediaserver:/var/www/playground$ ping 192.30.252.130
 PING 192.30.252.130 (192.30.252.130) 56(84) bytes of data.
 From 192.168.1.100 icmp_seq=1 Destination Host Unreachable
 From 192.168.1.100 icmp_seq=2 Destination Host Unreachable
 From 192.168.1.100 icmp_seq=3 Destination Host Unreachable
 From 192.168.1.100 icmp_seq=4 Destination Host Unreachable
 From 192.168.1.100 icmp_seq=5 Destination Host Unreachable
 From 192.168.1.100 icmp_seq=6 Destination Host Unreachable

Áha. Takže se na cílovou ip ani nedostanu. Z jiných počítačů vše v pohodě, problém je tedy přímo v serveru.

Řešení

Rutinně jsem se kouknul na routy:

media@mediaserver:/var/www/playground$ netstat -r
 Kernel IP routing table
 Destination Gateway Genmask Flags MSS Window irtt Iface
 default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
 192.0.0.0 * 255.0.0.0 U 0 0 0 eth0

Bingo! Druhá routa požere všechno začínající 192. Řešení je jednoduché. V mém případě, kdy v lokální síti používám více rozsahů jsem přidal pouze menší rozsah:

media@mediaserver:/var/www/playground$ sudo route add -net 192.30.0.0 netmask 255.255.0.0 gw 192.168.1.1 dev eth0

A routovací tabulka nyní vypadá:

media@mediaserver:/var/www/playground$ netstat -r
 Kernel IP routing table
 Destination Gateway Genmask Flags MSS Window irtt Iface
 default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
 192.0.0.0 * 255.0.0.0 U 0 0 0 eth0
 192.30.0.0 192.168.1.1 255.255.0.0 UG 0 0 0 eth0

A vše funguje:

media@mediaserver:/var/www/playground$ ping 192.30.252.130
 PING 192.30.252.130 (192.30.252.130) 56(84) bytes of data.
 64 bytes from 192.30.252.130: icmp_req=1 ttl=48 time=132 ms
 64 bytes from 192.30.252.130: icmp_req=2 ttl=48 time=132 ms
 64 bytes from 192.30.252.130: icmp_req=3 ttl=48 time=132 ms
 64 bytes from 192.30.252.130: icmp_req=4 ttl=48 time=132 ms
 64 bytes from 192.30.252.130: icmp_req=5 ttl=48 time=132 ms
 64 bytes from 192.30.252.130: icmp_req=6 ttl=48 time=132 ms

Ponaučení

Pokud na jednom stroji nefungují některé stránky nebo služby, vyplatí se kouknout do routovací tabulky.

Lámání hesla v zip archivu: Brute-force & dictionary attack

Občas se stává, že najdeme starý zip soubor, ke kterému jsme zapomněli heslo. Naštěstí to nemusí znamenat, že jsme o obsah přišli. Ukážu tři nejjednodušší postupy, jak se dostat k zaheslovaným datům. Po představení vždy uvedu krátký příklad.

Útok hrubou silou (Brute-force attact)

Jedná se o nejjednodušší, ale také nejméně efektivní způsob. K heslu se dostanete tak, že vyzkoušíte všechny možné kombinace znaků. Pravděpodobnost, že se tímto způsoben dostanete k heslu, je velmi nízká.

Použití

Pro tyto jednodušší útoky lze použít program fcrackzip. Často se nachází v repozitářích jednotlivých distribucí, např. v Ubuntu ho nainstalujete pomocí klasického příkazu:

 sudo apt-get install fcrackzip 

Pomocí parametrů můžeme definovat různá nastavení:

USAGE: fcrackzip          [-b|--brute-force]            use brute force algorithm          [-D|--dictionary]             use a dictionary          [-B|--benchmark]              execute a small benchmark          [-c|--charset characterset]   use characters from charset          [-h|--help]                   show this message          [--version]                   show the version of this program          [-V|--validate]               sanity-check the algortihm          [-v|--verbose]                be more verbose          [-p|--init-password string]   use string as initial password/file          [-l|--length min-max]         check password with length min to max          [-u|--use-unzip]              use unzip to weed out wrong passwords          [-m|--method num]             use method number "num" (see below)          [-2|--modulo r/m]             only calculcate 1/m of the password          file...                    the zipfiles to crack

Pro naše účely budeme používat parametry -v, -l, -c a -u.

Nalezení hesla délky 1-6 s libovolnými znaky a zkouškou otevření:

fcrackzip -v -l 1-6 -u archiv.zip

Nalezení hesla délky 1-6 s čísly a velkými a malými písmeny a zkouškou otevření:

fcrackzip -v -l 1-6 -c aA1 -u archiv.zip

Slovníkový útok (Dictionary attack)

Jedná se určité vylepšení brute-force útoku. Nezkoušíme náhodné (nebo všechny) kombinace, ale pouze hesla, která získáme z předem připraveného seznamu. Úspěšnost prolomení je závislá právě na kvalitě tohoto seznamu.

Jako výchozí slovník se dá použít /usr/share/dict/words, který najdeme ve většině linuxových distribucí. Další slovníky jsou zde: http://www.skullsecurity.org/wiki/index.php/Passwords.

Použití

Příkaz pro použití se změní jen lehce:

fcrackzip -v -D -u -p /usr/share/dict/words archiv.zip

Parametrem -D říkáme, že budeme používat slovník, za -p napíšeme cestu ke slovníku.

Ideální webhostingové řešení

Zdá se, že se mi konečně podařilo vyřešit problém z hostováním webů. Weby, které provozuji, se dají rozdějit na klientské, vynášející a ostatní. U klietských (které v drtivé většině běží na WordPressu) je bezpodmínečně nutné, aby fungovaly za každých okolností. U těch vynášejících je to vhodné taky, u těch ostatních je to jedno – většinou jsou to nějaké testovací projekty, na kterých se učím nové technologie.

Klientské weby jsem vždy umístil k webhosterovi, který byl v době realizace považován za kvalitního (to se často měnilo, a tak byly weby u několika webhostingových firem). Toto ale nebyl dlouhodobě udržitelný stav. Poslední hřebíček do rakve udělil Český hosting, kde se vlivem špatného zabezpečení klientova počítače podařilo z hostované domény odeslat několik stovek až tisíc e-mailů. Český hosting na to reagoval tak, že web vypnul (v pátek v 17.30 hodin). Klient se mi ozval kolem sedmé hodiny, že web nefunguje. Považoval jsem za samozřejmost, že společnost, která si účtuje 1200Kč ročně za 1 doménu, bude poskytovat non-stop podporu. Nikoliv. Podpora končí v pátek v 18.00, začíná v pondělí v 9.00. Místo klidného pátečního večera jsem se složitě přesouval web a databázi. Od té chvíle Český hosting nehostuje žádný z mých webů.

Osobní projekty mám už třetím rokem spokojeně na VPS u Savany. Savana také posloužila jako dočasné útočiště klientských webů – administrace, ač vypadajíc zastarale, funguje bez problémů a nová doména lze přidat okamžitě (bez zbytečného schvalování). Weby lze migrovat téměř bez výpadku (pokud vše dobře nastavíte). Bohužel větší nárůst webů přestával zvládat můj omezený (ale jinak plně dostačující) tarif – docházelo k vyčerpání paměti, dlouhým prodlevám. WordPress bohužel nepatří mezi programátorské šperky a některé klietské weby mají i několik stovek návštěv denně (většina samozřejmě ve večerních hodinách).

Po ukončení hostování u Českého hostingu (a s tím i všech ostatních webhosterů) jsem se rozhodnul, že klientské weby budou mít vlastní VPS, která se bude dát parametrově navyšovat. Mezi klady patří nízká koncová cena, jednoduchá správa všech webů, jednorázová platba. Mezi negativa patří zejména vlastní správa samotného serveru. Tam jsem narazil – objednal jsem dvoumodulový VPS u Wedosu a začal nahrávat WordPressy. A začala se ukazovat Chyba 500. Vygooglil jsem řešení, které sice zobrazování chyby minimalizovalo, ale neodstranilo. Na webech se náhodně ukazovala pár minut denně Chyba na straně serveru. Řešení jsem sám nenašel, podpora pro VPS není (pro správu VPS, pro provoz VPS je podpora 24×7). Tím myšlenka VPS pro klienty skončila.

Naštěstí Wedos nabízí více než výhodný webhosting za 25Kč měsíčně. Po dohodě s klienty se každý web přesunul na svůj webhostingový účet se svými fakturačními údaji, ale v centrální správě mého účtu. Nemusím se starat o platby – faktura a ďanový doklad přijde klientovi a zároveň vidím, jestli zaplaceno je nebo není a zda jsou nějaké problémy. Do budoucna to ještě sladím s prodlužováním domény. Weby jsou nyní 100% stabilní, některé i rychlejší a hlavně: Výsledná cena je pro klienty nižší.

Jak nastavit v Eclipse jinou složku v SVN repozitáři?

Ve škole musíme v rámci jednoho předmětu odevzdávat domácí úkoly pomocí SVN. Navíc máme předepsanou složku, kde musí být. Jenže Eclipse při standartním nastavení a použití Subversive vytvoří adresářovou strukturu Nazev_projektu/src/packages/classes.

Konkrétně v mém případě bylo potřeba do svn repozitáře hrubylu1 nahrát složku homeworks, která měla obsahovat úkol homework1.java.

S SVN nemám žádné zkušenosti, a tak jsem vygooglil toto: Na změnu adresářů se používají Externals. Jak je v Subversive nastavit?

Stačí v menu Team zvolit Set External Definition.

Nyní zadáme lokální cestu a vzdálenou, tady jsou hodnoty, které jsem zadal já:

Local Path: tpj/src (tím jsem řekl, že chci do repozitáře nahrát obsah složky src),

URL: standartní url repozitáře.

 

WordPress: HTTP chyba při nahrávání obrázku přes flash uploader na VPS u Wedos

Na jedné instalaci WordPressu na VPS u Wedosu jsem měl problém s nahrávání obrázků (tento problém se týkal wordpressového flash uploaderu i NextGen gallery flash uploaderu).

Po hodinovém hledání jsem narazil na následující opravu:

  1. Připojte se na server přes SSH (já to udělal přes WinSCP)
  2. na konec souboru /etc/httpd/conf/httpd.conf přidejte:
    <IfModule mod_fcgid.c>MaxRequestLen 100000000</IfModule>
  3. Restartujte server (nebo jen http deamon).

Nyní by vše mělo fungovat v pořádku.