Útočí na mě z...

Čas Vánoční je čas pohody, klidu a míru. To platí jen do určité chvíle. Třeba dokud na váš server nezačnou útočit z ... Číny.

Jedná se o celkem aktuální aférku, o které se (pěkně blbě, takže to ani nečtěte) rozepsala Lupa.cz, nějaké detaily o probíhajících útocích jsou na rcnoviny.cz.
Continue reading

Red Hat Certified Engineer

Úplně jsem se tu, narozdíl od Twitteru, zapomněl pochlubit. Chvíli po tom co jsem dosáhl na RHCSA, jsem se rozhodl pokračovat. Napoprvé mi další level v Red Hat certifikaci utekl o 2 body (ze 300), napodruhé se ale zadařilo. Od 25. listopadu mě tak pod číslem 111-122-990 najdete jako RHCE.


Red Hat Certified Engineer

CentOS a vydávání aktualizací

Dnes jen krátce, ale za to se zajímavým odkazem.

Pokud jste uživateli distribuce CentOS, určitě jste si všimli, že vydávání aktualizací minor verzí se oproti RHELu pořád zpožďuje. Vývojáři se snaží alespoň hotfixy a security aktualizace distribuovat přes Continuous Release repozitář. Proč se vývoj táhne vysvětluje v maillistu Johnny Hughes. Ve zkratce: hledejte za tím rozdělení RHELu do několika skupin (Server, Workstation, ...), kde ve stejných skupinách jsou různé balíčky, a zpřísnění politiky pro sdílení některých souborů/balíčků.

A tak se z CentOS "přebalovačů" stávají opravdoví vývojáři..

MySQL: unauthenticated user

Nedávno jsem narazil na zajímavý problém: MySQL na jednom nepříliš vytíženém serveru začalo vracet chybu Too many connections, i když z počet spojení běžně stačí s rezervou. Po chvilce pátrání jsme s programátorem zjistili, že jednou za čas se tam objeví spousta připojení ze vzdáleného (legitimního) serveru označená jako "unauthenticated user". Výpis MySQL procesů byl pak plný takovýchto řádek:

| 263718676 | unauthenticated user | 10.0.0.2:51896 | NULL    | Connect     |   NULL | login  | NULL |

Po chvilce pátrání jsem zjistil, že nejde o útok - ani nevíte jaká je to po pár zkušenostech úleva. Chyba byla ve špatné komunikaci s DNS servery, které dostatečně rychle neodpovídaly.

MySQL se DNS serverů dotazuje téměř při každém uživatelském loginu (používá sice nějakou vnitřní cache, ale asi to není žádná bomba). Využívají se k tomu funkce gethostbyaddr(), pomocí které se zeptá, jaký záznam na této IP vězí. Potom nasadí gethostbyname() a porovná vrácenou IP adresu s původní (více rozepsané je to v dokumentaci). Jednoduché a účinné do okamžku, kdy se zhorší komunikace právě s DNS servery. Nabízejí se dvě možnosti, jak to vyřešit:

  • Použijte přepínač --skip-name-resolve. Hodí se hlavně v případě, že dopředu nevíte, odkud se k serveru klienti připojují. S použitím ale musíte upravit všechny záznamy pro povolené uživatele, tak aby ve sloupci Host byly jen IP adresy nebo 'localhost'.
  • Zapište záznamy s klienty do /etc/hosts souboru. Funkce gethostbyaddr() i gethostbyname() se nejdříve podívají právě do tohoto souboru než aby se dotazovaly jiných serverů. Tato možnost se hodí, pokud máte pár jen statických klientů.

Třeba to někomu pomůže..