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 ...
-
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á…
-
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é,…
-
Jak otestovat IMAP server pomocí telnetu
Občas potřebuji rychle otestovat funkčnost IMAP serveru a to se lehce udělá z bashe, buď pomocí telnetu, nebo příkazu nc, tedy: nc localhost 143 a1 LOGIN jmeno heslo a2 LIST "" "*" a3 LOGOUT Server – pokud je vše ok – po a2 vypíše list všech složek IMAPu…
-
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…
-
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
-
dnsmasq a svázání mac adresy s určitou IP
Občas se pozapomenu a hledám zcela jasný konstrukt kterak dané mac přiřadit patřičnou IP (hodí se to například pro tiskrány) dhcp-host=BRN_39C7AD,00:80:77:39:c7:ad,192.168.2.201,12h kde BRN_39C7AD je hostname, 00:80:77:39:c7:ad mac adresa, 192.168.2.201 přidělovaná IP a 12h je lease time.
-
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…
-
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.
-
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 ;
-
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