Bře 25

Po hacknutí mého serveru neznámým útočníkem jsem začal hledat lepší způsoby ochrany (každopádně jsem si za to mohl sám, heslem totiž byla 5-písmenná kámošova přezdívka:-) ) a jedním z prvních, na který jsem při tom narazil, je zakázání přihlašování pod rootem přes ssh.

O co přesně jde? Při klasickém povolení přihlašování pod rootem, musí útočník uhádnout heslo pro root. To je dejme tomu 6-mistné = 38x38x38x38x38x38 možných kombinací. I to samozřejmě dost, ale člověk nikdy neví:-) Kdežto při zakázání logování pod rootem musí útočník uhádnout jak jméno uživatele, jeho heslo, a pak se přihlásit jako root (příkaz su root) a samozřejmě zadat rootovského hesla. Za předpokladu, že jméno uživatelovi vytvoříme náhodné 6-mistné, uživatelovo i rootovské heslo bude 6-místné => 38 na osmnáctou možných kombinací – což dost těžko představitelné číslo;-)

Jak na to? První si v konzuli vytvořte na serveru uživatele s libovolným jménem (klidně postačí vaše přezdívka) pomocí příkazu adduser jméno (následně budete vyzvání k zadání heslo pro toho uživatele). Pak už jen stačí zakázat logování pod rootem, v /etc/ssh/sshd_config najděte řádek PermitRootLogin yes a přepište jej na PermitRootLogin no. Pak by jste měli ssh restartovat (/etc/init.d/ssh restart). Při přísštím pokusu o přihlášení se vám již nepůjde pod rootem přihlásit, jediná možnost je přihlášení pod vaším uživatelem, a následným zadáním příkazu su root.

Problém však je, pokud jste líný a máte u sebe na desktopu windows (XP) a ke kopírování na váš server používáte WinSCP. V něm mě totiž tato úprava dělá problém a budete muset nahrávat soubory pouze do vašeho domovského adresáře a pak přes Putty je překopírovat pod rootem do požadovaného umístění.

Pokud hledáte způsob jak zabezpečit své daty a chcete se vyhnout potupné a hlavně otravné
re-instalaci serveru (se špatnou zálohou dat = ztrátou 100% dat), zakázání logování pod rootem jenom doporučuji. Jinak dalším způsobem je používání certifikátů, ale o tom napíšu až někdy jindy.