Mám pocit, že všichni cítí, že toto na produkční server prostě nepatří, protože riziko uhodnutí hesla je příliš velké a roboti útočí většinou právě na tento účet.
Necítí to tak úplně všichni. Jsou i lidé, kteří se neřídí pocity, ale racionálním uvažováním. Ti postupují tak, že pokud vyhodnotí uhodnutí hesla přes SSH jako příliš velké riziko, řeší problém s uhodnutím hesla přes SSH. V tomto případě nejsnáze tak, že přihlášení heslem zakážou.
Je pozoruhodné, jak často se navrhují řešení, která daný problém vůbec neřeší. Je to jak v tom vtipu, kdy pán večer hledá pod lampou ztracené klíče. „Opravdu jste je ztratil tady?“ – „Kdepak, ztratil jsem je támhle ve tmě. Ale víte, jak blbě se hledají klíče ve tmě?“
Asi tak. Zakážu heslo, vygeneruju certifikát a hotovo. Nebo dvoufaktor, certifikát + heslo. Není snad sranda, že útočník hraje hru na hesla a netuší, že už uhodl, ale něco mu chybělo?
Root je tak jako tak potřeba při instalaci zařízení bez lokálního terminálu. A SSH s unikátním heslem pro fyzický kus zařízení je asi nejlepší řešení. Nebo někdo zná lepší, kde by nemusel posílat soukromý klíč výrobci? Webový formulář po HTTP? Nebo nastavování root hesla po Telnetu? Nebo nutnost nahrát certifikáty po FTP? Proprietální protokol s klientem vázaným na konkrétní OS a bez možnosti auditovat bezpečnost?
Takže za sebe - zakázat možnost v SSH používat roota mohl vymyslet jenom blbec.
Tohle doporuceni melo smysl v dobe kdy se lidi prihlasovali na servery naprimo. Ucelem bylo aby se z auth logu poznalo kdo se su-cknul na root-a. Dneska ma ale kazda vetsi instituce jump-start servery ze kterych se admini hlasi stylem 'sudo/pbrun ssh -l root <server>' Tzn. k prislaseni na server nepotrebuji znat ani heslo ani klic, a navic jsou vsechna prihlaseni na servery logovana.
Ja som stratil tolko casu a nervov v robote ohladne tohto, ze by som najradsej plakal. Niekto raz pocul, ze root by sa nemal remotne lognut. Je az neuveritelne ako niektore nadnarodne security firmy toto slepo tlacia. A riesenia, ktore poskytuju su este horsie.
Podla mojho nazoru to ma najlepsie vyriesene Solaris cez RBAC. Jo, na Linux sa to asi da nejak natlacit (grsecurity?) tiez.
Za okolnosti v "cloude" alebo vo firmach, kde servery nie su dostupne cez net je to nenormalna pritaz nevediet sa lognut ako root priamo. Hlavne ked sa riesi velky pruser a vsetky tie pseudo riesenia ako sa nelognut priamo ako root zlyhavaju, pripadne poriadne komplikuju pracu.
By ste neverili aky problem bol presvedcit security audit, ze PermitRootLogin yes je v poriadku, kedze root nema nastavene ziadne heslo a da sa prihlasit len cez kluc priamo (a samozrejme consola).
Nechápu brblání, to každý server instalujete a konfigurujete ručně?
Samozřejmě že ne, no jediný důsledek to má, že si obě strany jak ti co maj povolen root přes ssh tak my druzí upravíme instalaci a jede se dál, někdo si to po instalaci povolí jiní už nemusí dělat nic nebo to stejně zakáží.
"Mám pocit, že všichni cítí, že toto na produkční server prostě nepatří, protože riziko uhodnutí hesla je příliš velké a roboti útočí většinou právě na tento účet."
Rozhodně necítí, riziko uhodnutí hesla je přímo závislé na složitosti hesla, ne na jméně účtu. Jestli má někdo místo root/12345 admin/12345 a pak v sudo povolen root pro admin, tak je to kontraproduktivní pocit falešného bezpečí. Je nutno připustit že nové jméno jsou další bity navíc které útočník musí uhodnout.
Podstatně lepší je ta písmena přidat k heslu. Protože heslo je opravdu tajná informace, na rozdíl od přihlašovacího jména, které se považuje za veřejnou informaci a tudíž obvykle existuje mnoho způsobů, kterými může jméno „uniknout“. Navíc když ta písmena přidáte k heslu, obtížnost původního hesla a přidaných písmen se násobí. Pokud z těch písmen uděláte login a útočník dokáže zjistit, zda jím zadaný login existuje (pokud si ho náhodou rovnou nedokáže zjistit), obtížnost se pouze sčítá.
"Pak pri utoku hrubou silou bude zapotrebi uhodnout login A heslo..."
Problém je v tom A. Pokud mám "náhodné" jméno o délce 10 znaků a abecedě 27 znaků, tak mám 27^10 možností. Pokud mám stejně dlouhé heslo, tak mám dalších 27^10 možností. Musím tedy 2x uhádnout 27^10, 2x27^10. Sílu jsem zvýšil jen 2x.
Jestliže těch 10 znaků jména přidám k heslu, mám 20 znakové heslo. 27^20 je mnohem víc, než 2x27^10. (Asi tak 100*10^12.)
Nehledě na to, jak píše Filip, že jméno se nepovažuje za tajné a také se s ním tak většinou ani nezachází.
Ano, a tak to se jménem chodí. Existují služby reagující pouze na jméno (za všechny smtp a to ani nemusí být povolený příkaz vrfy), nehledě na to, že snad v žádném os není jméno uživatele nijak zvlášť chráněno a ostatní uživatelé jej vidí ve výpisech procesů, pomocí příkazu id, nebo si rovnou vylistuje /etc/passwd. Existují tedy možnosti, jak na jméno přijít bez nutnosti současně s ním posílat heslo. A to buď přímo, čímž se první fáze hádání jména smrskne na konstantní složitost, nebo postupně a tím se složitosti jen sčítají.
Takže nápad učinit ze jména a hesla jednu passfrázi (čím by složitost vzrostla exponenciálně a nikoliv jako součet) v reálném systému naráží na mnoho překážek. Mnohem jednodušší je se jménem zacházet jako s veřejným údajem a příslušné náhodné znaky přidat k heslu (pokud nelze použít klíč).
Když je někdo tak blbej a dá si na roota heslo 123456 atp, patří mu to.
Na všechny stroje se přes ssh přihlašuju na roota, proč taky ne? Buďto příjmám jen klíče, nebo i heslo, tak jako tak ale povoluju přihlášení jen z konkrétních IP, z domova, VPNky. Nač bych si tedy musel vytvářet dalšího uživatele? Co si tím pomůžu?
Navíc jak tu zaznělo - falešné bezpečí, blbec co si dá slabé heslo na roota si vytvoří usera admin a tam si to heslo dá stejné... Nic to prostě neřeší.
No to určitě. Když budete mít jenom 14znakové heslo skládající se jenom z velkých a malých písmen anglické abecedy, dává to 52^14 možných kombinací. Když ten počet útočících bodů bude takový, že dokážou vyzkoušet půl bilionu kombinací (což dává datový tok skoro 1 Tbit/s - máte takovou přípojku k serveru?), budou všechny možné kombinace zkoušet čtyři tisíce let. Když mimo písmen použijete ještě číslice, prodlouží se to na padesát tisíc let. Když pak to heslo prodloužíte na 20 znaků, vychází to zhruba na 2 biliardy let, tedy řád 10^15, tedy o několik řádů víc, než je stáří vesmíru. Ještě pořád chcete trvat na tom "jakékoliv"?
Uzitocny navod na hardening SSH: https://stribika.github.io/2015/01/04/secure-secure-shell.html - "This post will still be here when you finish. My goal with this post here is to make NSA analysts sad." :)