Hesla se hashují, neukládají
Panel si drží bcrypt hash a nic víc. Nikdo tady tvoje heslo nepřečte - a ze stejného důvodu ti nikdo neřekne, jaké bylo. Jediná cesta zpátky je reset, a o to právě jde.
Bezpečnost
RE:NODE si píše vlastní panel, místo aby si nějaký licencoval, takže bezpečnost tady je něco, co jsme sami postavili a umíme popsat, ne seznam funkcí, který nám prodal někdo jiný. Na této stránce je to, co v něm opravdu je - včetně částí, které jsou spíš omezením než výhodou.
Všechno, co rozhoduje, jestli je požadavek opravdu od tebe.
Panel si drží bcrypt hash a nic víc. Nikdo tady tvoje heslo nepřečte - a ze stejného důvodu ti nikdo neřekne, jaké bylo. Jediná cesta zpátky je reset, a o to právě jde.
Časové kódy z libovolné ověřovací aplikace a jednorázové záložní kódy, které dostaneš hned při zapnutí. Ty kódy si ulož jinam než do telefonu: právě ony tě dostanou zpátky, až o telefon přijdeš.
Přihlášení, registrace a obnova hesla mají limit počtu pokusů na adresu a jsou za captchou. Hádat heslo se přestane vyplácet dlouho předtím, než by to mohlo začít fungovat.
Stránka účtu ukazuje všechny právě otevřené relace, odkud se používají a kdy byly naposledy aktivní, a ty, které nepoznáváš, můžeš ukončit. Samotné cookies jsou šifrované, pro JavaScript nečitelné a z jiných webů se neposílají.
Čím projde požadavek, než se dostane k čemukoli tvému.
Obyčejné HTTP se přesměruje, ne obslouží, a certifikáty se vydávají a obnovují automaticky - takže certifikát nemůže potichu vypršet v neděli.
Požadavek, který něco mění a nepřišel ze stránky, kterou jsme ti poslali my, se odmítne. Jiný web nemůže jednat tvým jménem v záložce, kterou jsi nechal otevřenou.
Většina provozu, který na panel narazí, ho vůbec nehledá: prochází internet a žádá každý server o soubory s přístupovými údaji a zdrojové kódy, které tu nejsou. Takové požadavky poznáme na první pohled, adrese za nimi se přestane odpovídat a s každým dalším návratem zůstává zablokovaná déle. Každé odmítnutí se zapíše do logu, který operátor opravdu čte.
fail2ban stojí před aplikací, takže provoz, který zjevně není zákazník, nestojí ani jeden PHP proces.
Server jednoho zákazníka není složka uvnitř serveru jiného.
Každý server běží ve vlastním kontejneru s vlastním souborovým systémem a vlastními stropy pro paměť, CPU a disk. Soused tvoje soubory nepřečte a ani když má rušný večer, nemůže utrácet tvoje prostředky.
Hesla správce, hesla RCON a databázoví uživatelé se generují pro tvůj server, nesdílí se v rámci tarifu, a ukazují se tobě, nikomu jinému.
Klíč jde omezit na seznam adres, takže uniklý klíč je odjinud k ničemu. Klíče se ukládají šifrované a ukážou se jen jednou, při vytvoření.
Dej někomu konzoli bez souborů, nebo zálohy bez fakturace. Každá akce se v logu aktivity serveru přiřadí účtu, který ji provedl, takže otázka „kdo ho restartoval“ má odpověď.
Pojistka, která neleží na stejném disku jako to, co pojišťuje.
Databáze i běhová data se každou noc vyexportují. Dump se dělá bez zámku, který by zastavil panel, heslo k databázi se nikdy neobjeví na příkazové řádce, kde by ho mohly přečíst jiné procesy, a dva běhy se nemůžou překrýt a navzájem si poškodit data.
Panel, svazky zákazníků i zálohy na stroji sdílí jedno úložiště - takže jeho selhání by vzalo produkci i její pojistku zároveň. Proto se všechno stahuje ještě na samostatný hardware.
U každé kopie se kontroluje integrita archivu a u dumpu databáze i závěrečný záznam, který se zapíše jen tehdy, když dump opravdu doběhl do konce. Záloha, kterou nikdo neověřil, je jen odhad.
Kopie se mažou podle plánu, místo aby se držely navěky. Zálohy, které rostou, dokud s sebou nestáhnou panel, jsou typ havárie, který bychom raději nevymýšleli.
Popořadě, od chvíle, kdy v panelu zmáčkneš tlačítko.
Spojení je šifrované dřív, než se odešle jediný bajt požadavku. Obyčejné HTTP dostane přesměrování a nic víc.
Adresa se posuzuje podle toho, co dosud dělala. Požadavky, které se už prozradily jako nepřátelské, tady končí - s chybou 404, která jim nic neřekne.
Cookie relace se dešifruje a zkontroluje se CSRF token - takže požadavek je od tebe a zároveň ze stránky, kterou jsme ti poslali my.
Teprve pak se akce porovná s tím, co tento účet smí na tomto konkrétním serveru dělat, a zapíše se do logu aktivity serveru.
Ta část stránky o bezpečnosti, která obvykle chybí.
Zemi zjišťujeme z tabulky na našem vlastním stroji. Ověřovat adresu přes službu třetí strany by znamenalo prozrazovat někomu dalšímu naše návštěvníky, jeden požadavek po druhém.
Počítáme, co se čte, abychom věděli, které návody má smysl psát. Kdo je četl, si neuchováváme.
Přesně to hashování znamená. A pokud máš zapnuté dvoufázové ověření a ztratíš i záložní kódy, účet nejde nikomu vrátit - ani tobě. Kódy si schovej.
Arma 3, DayZ, Project Zomboid a 7 Days to Die nejdou nainstalovat anonymně: instalátor se přihlásí do Steamu tvým jménem a server ty údaje potřebuje znovu při každé aktualizaci. Použij účet určený pro servery, nikdy svůj hlavní. Stránka každé z těch her to říká před nákupem, ne až po něm.
Pokud si myslíš, že jsi našel zranitelnost, řekni nám to dřív než komukoli jinému a opravíme ji. Hlášení o skutečném problému má pro nás větší cenu než pro kohokoli, komu bys ho mohl prodat.
Napiš nám