Linux Server

Všechno co dělám, dělám blbě, ale dělám to tak léta a funguje to bezpečně a spolehlivě, takže to vlastně asi až tak blbě nedělám ...

  • Linux Server,  Windows

    Pomalý TCP upload na Windows7, Windows 8 za Linux NAT

    Pomalý upload za Linux NAT? V posledních pár dnech se mi projevil poměrně zajímavý problém – u jednoho zákazníka najednou totálně padl TCP upload skrz NAT do Internetu. Upload na bránu samotnou byl ok. Protože se problém týkal jen strojů s Windows 7 a Windows 8 resp. 8.1, podezíral jsem MS z nějaké nekalé aktualizace. Bohužel se mi nedařilo nalézt žádnou takovou, která by výkon skutečně ovlivnila. Ani instalace posledních ovladačů ze stránky výrobce nepomohla, ba dokonce ani „hraní si“ s parametry síťovky. Nakonec jsem narazil na hlášení tohoto bugu a začalo mi svítat, protože jsem skutečně nedávno aktualizoval na nový kernel, na což jsem zapomněl. V kostce se jedná…

  • Bash,  Linux,  Linux Server

    Jak otestovat rychlost sítě co nejjednodušeji

    Ideální je iperf, o tom žádná. V některých případech ale na našich milých krabičkách (např. ubiquiti) není k dispozici a ani se nedá nijak jednoduše nainstalovat. V drtivé většině případů je ale k dispozici netcut tedy „nc“ a obligátní dd. Je to hrubé, neefektní, ale o to více efektivní 🙂 Server side: nc -l 1234 | dd of=/dev/null Client side: dd if=/dev/urandom bs=1500 count=20000 | nc xxx.xxx.xxx.xxx 1234 V podstatě jen vygenerujeme bordel o velikosti 30MB a protáhneme to linkou hrubě co to jde a pošleme to do kelu … 🙂 PS: Oněch block-size 1500 má svůj význam – čistě náhodou se jedná o defaultní MTU. Takže pokud máte jiné,…

  • Bash,  Linux,  Linux Server

    Jak z MJPEG streamu z kamery ukládat v intervalu jeden snímek

    Krkolomný název, což? Ale vyjadřuje přesně to, co chceme udělat tj. z webkamery, která nám kdesi třeba nad staveništěm spokojeně bzučí, dostaneme například co 5 minut jeden snímek ve formátu JPEG. Kamera má navíc HTTP Basic Auth, takže se nám to ještě komplikuje i o toto. Nejjednodušší, jak jsem objevil je přes curl stáhnout kousek streamu: curl -m 2 --user uzivatel:heslo "http://co.kde.cz/video.cgi?videp.mjpg" >output/out.mjpg Kde parametr „m“ vyjadřuje dobu po kterou se bude stream stahovat – teoreticky stačí i jedna vteřina, ale měl jsem občas problém s kolísavostí kvality internetu na straně stavby, tedy raději 2s. Parametr „user“ nám zabezpečí autentizaci. Následně pak pomocí ffmpeg vyexportovat z videa snímky: ffmpeg -i…

  • Linux Server

    mysql a poškozený table event

    Nedávno se mi podařilo „rozbít“ si mysql zajímavým způsobem, vše fungovalo, až na dump databáze, který končil hláškou: mysqldump: Couldn't execute 'show events': Cannot proceed because system tables used by Event Scheduler were found damaged at server start ... Řešení této politováníhodné situace, ke které dochází maximálně 1x za 10 let je naštěstí prosté: mysql_upgrade -u root -p --verbose --force service mysql restart

  • Linux Server

    DNS záznamy potřebné pro funkci mail serveru jasně a jednoduše

    I taková naprosto jasná a jednoduchá věc se zdá býti pro hodně lidí problém. O co se jedná? V reálu se setkávám i u „profesionálních“ serverů s nevhodně nebo absolutně špatně nastavenými DNS záznamy pro provoz poštovního serveru. Snad nejkřiklavějším případem budiž nejmenovaná česká společnost, která pro svou doménu vůbec neměla nastavené MX záznamy a divila se, že jim je zamítána kontrola e-mailu na webovém formuláři (který kontroloval validitu domény prostým dotazem na MX). Správce se mne tehdy tázal, proč s tím mám problém, „když to funguje“. Odpověď proč to funguje je nasnadě – každý poštovní server se ptá prvně po MX záznamech domény a pokud je nedostane, pak zprávu…

  • Linux,  Linux Server

    ext 4(3) a defragmentace

    Opět jsem narazil na tvrzení, že je nutné ext systémy defragmentovat. Není. Tečka, konec věty. I v těch nejšílenějších situacích, kdy se dosáhne zmiňovaného zaplnění nad 95% je stále dost a dost prostoru na to, aby systém efektivně předcházel fragmentaci alokací bloků poblíž fyzického umístění souboru. Pokud náhodou po defragmentaci zatoužíte, nakopírujte prostě data z jednoho mount pointu na druhé a zpět. Pokud by vás ani toto neuspokojilo, pak existují nástroje jako je e2defrag a e4defrag.

  • Linux Server

    BIND a include v zónovém souboru

    Pokud někdy někdo narazíte na potřebu include v zónovém souboru bindu/named (například proto, že chcete mít statické jisté základní DNS záznamy, ale jiné chcete tak nějak polodynamicky aktualizovat), vězte, že to lze. Jen se k tomu musí jeden prohrabat. A proto má tato informace své místo na výsluní i zde. Zajišťuje to (překvapivě) klíčové slovo include, nicméně narozdíl od syntaxe v jiných souborech bindu v této podobě: $INCLUDE /etc/bind/cosi.cosi ;

  • Linux Server

    Jak zabezpečit /tmp?

    Hodně exploitů využívá chyb  aplikací ke spuštění vlastního kódu v /tmp Setkal jsem se s tímto problémem u takových aplikací jako je phpMyAdmin, WordPress, Horde+IMP a mnoho a mnoho dalších. Aby jeden mohl o kousek lépe spát (a neviděl procesy jako minerd, runcron, delegate a podobné vytěžovat ze 100% všechna CPU) stačí označit /tmp tak, aby v něm nešly spouštět soubory. Poměrně jednoduše vytvoříme 1GB image, do kterého vetkneme ext filesystém a pomocí parametru noexec pro mount zakážeme spuštění čehokoliv v /tmp # dd if=/dev/zero of=/home/tmp.img bs=1024 count=1000000 # mke2fs /home/tmp.img # echo "/home/tmp.img /tmp ext2 loop,noexec,nosuid,rw 0 0" >>/etc/fstab # rm -rf /tmp/* # mount /tmp # chmod 0777 /tmp