"Neexistuje bílá nebo černá, existují pouze odstíny šedé. Nemůžeme říci, zda je to dobré nebo špatné."
A někdy je potřeba zabrousit do odstínů šedé a hledat problémy dříve, než nastanou. Jednou z těchto kontrol může být vyhledávání neúspěšných pokusů o přihlášení k SSH. Naštěstí Ubuntu přichází s jedním řešením, které je dostatečně jednoduché, ale dostatečně výkonné na to, aby odhalilo většinu případů, kdy někdo připustí slabá hesla a útoky hrubou silou.
Každý pokus o přihlášení k serveru SSH se zaznamenává do souboru s názvem auth.log umístěného na adrese /var/log/auth.log démonem rsyslog.
Správci mohou procházet protokoly, aby zjistili, zda tam není podivný příchozí provoz. Soubor protokolu obsahuje mnoho informací v prostém textu, ale není snadné přečíst celý výstup. Musíme se naučit, jak používat grep k prohledávání souboru protokolu a v tomto příkladu se zaměříme na neúspěšné pokusy.
Instalace OpenSSH
OpenSSH je služba, která poskytuje bezpečný vzdálený přístup k systémům ve formě protokolu aplikační vrstvy, zahrnuje také program příkazového řádku scp. Přihlaste se jako uživatel root nebo se přepněte na uživatele s právy sudo a poté pomocí příkazu níže nainstalujte OpenSSH:
sudo apt-get update
sudo apt-get install openssh-server -y
Tento příkaz by měl nainstalovat OpenSSH a jeho závislosti. Měli byste vidět, že se instalují i další balíčky, protože OpenSSH jich ke správnému fungování vyžaduje poměrně hodně.
Po instalaci můžete povolit ssh zadáním následujícího příkazu v okně terminálu:
sudo systemctl enable ssh
Pokud byl příkaz úspěšný, měli byste vidět podobný výstup jako na obrázku níže v okně terminálu:
Následující příkazy lze použít k zastavení SSH na počítačích Ubuntu v případě, že jej chcete deaktivovat:
sudo systemctl stop ssh
Lze jej znovu spustit spuštěním:
sudo systemctl start ssh
Chcete-li zkontrolovat, zda je spuštěn SSH server, můžete použít příkaz níže:
sudo systemctl status ssh
Ve vašem terminálu byste měli vidět podobný výstup:
Na výše uvedeném snímku obrazovky můžete vidět, že SSH server je již spuštěn a povolen, což znamená, že se spustí při bootování.
Jak najít všechny neúspěšné pokusy o přihlášení k SSH
Neúspěšný pokus o přihlášení může být způsoben řadou důvodů, nikoli pouze zneužitím automatického přihlášení. K neúspěšnému pokusu o přihlášení může dojít, když:
- Uživatel může špatně zadat heslo.
- Pokoušíte se použít k přihlášení nesprávné heslo.
- Server je pod útokem hrubou silou a hackeři se snaží uhodnout heslo pomocí automatických skriptů.
Nejjednodušší způsob, jak vypsat seznam všech neúspěšných pokusů o přihlášení k SSH, je použít následující příkaz:
grep "Failed password" /var/log/auth.log
Ve vašem terminálu byste měli vidět podobný výstup:
Následující příkazy lze použít k zobrazení neúspěšných přihlášení SSH v CentOS nebo RHEL v mírně upravené verzi výše uvedeného příkazu:
grep "Failed" /var/log/secure
grep "authentication failure" /var/log/secure
Případně můžeme prohlížet protokoly pomocí démona Systemd s příkazem journalctl:
journalctl _SYSTEMD_UNIT=ssh.service | egrep "Failed|Failure"
Chcete-li zobrazit seznam všech IP adres, které jsou zodpovědné za neúspěšné pokusy o přihlášení k SSH, s počtem pokusů vedle něj můžete použít tento příkaz:
grep "Failed password" /var/log/auth.log | awk ‘{print $11}’ | uniq -c | sort -nr
Je nevyhnutelné, že čas od času dojde k neúspěšnému pokusu o přihlášení. Zůstává však zásadní identifikovat neúspěšná přihlášení k vašemu serveru. Je důležité identifikovat IP adresy, které často zasahují do vašeho serveru SSH, a provést nezbytná opatření.
Závěr
V této příručce jsme se zabývali tím, jak najít neúspěšné pokusy o přihlášení SSH na počítači se systémem Linux. Naučili jsme se také jiný přístup, který zahrnuje použití příkazu journalctl. Doufáme, že vám tento článek pomohl. Neváhejte a poskytněte svůj názor nebo jakékoli dotazy v sekci komentářů.