Hardening Linux Server Hardening je jedním z důležitých úkolů systémových administrátorů, pokud jde o produkční servery. Doporučuje se povolit zásady přihlášení nebo pokusů o ssh, což znamená, že uživatelský účet by měl být automaticky uzamčen po n počtu neúspěšných (nebo nesprávných) pokusů o přihlášení nebo ssh.
V distribucích Linuxu, jako jsou CentOS, RHEL a Fedora, je toho dosaženo pomocí modulu pam „pam_faillock “ a pro distribuce podobné Debianu toho lze dosáhnout pomocí „pam_tally2 modul pam.
V tomto tutoriálu se naučíme, jak zamknout uživatelské účty po n neúspěšných pokusech o přihlášení v CentOS , RHEL, Fedora, Debian &Ubuntu
Pro CentOS / RHEL / Fedora
Přidejte následující řádky do dvou souborů /etc/pam.d/password-auth &/etc/pam.d/system-auth,
auth povinné pam_faillock.so preauth silent audit deny=3 unlock_time=600auth [default=die] pam_faillock.so authfail audit deny=3 unlock_time=600account povinné pam_faillock.so
Kde,
- Audit –> povolí protokoly auditu pro pokus o přihlášení uživatele v zabezpečeném souboru protokolu
- Odmítnout=3 –> po 3 neúspěšných pokusech o přihlášení uživatele uzamkne, toto číslo můžete změnit podle svých požadavků
- unlock_time=600 –> to znamená, že uživatelský účet zůstane uzamčen po dobu 10 minut (600 sekund), pokud chcete, aby byl uživatelský účet uzamčen navždy, nastavte tento parametr na „unlock_time=never“
Poznámka :Chcete-li po n nesprávných přihlášeních uzamknout i účet root, přidejte „even_deny_root ” v řádcích sekce auth, příklad je uveden níže
auth vyžadováno pam_faillock.so preauth tichý audit even_deny_root deny=3 unlock_time=600auth [default=die] pam_faillock.so authfail audit even_deny_root deny=3 unlock_time=600
Jak vidíme výše, máme dva řádky pro sekci auth a jeden řádek pro sekci účtu, pořadí je velmi důležité při přidávání těchto řádků do souborů. Níže je ukázán příklad, kde je třeba tyto řádky přidat,
[[email protected] ~]# vi /etc/pam.d/password-auth
[[email protected] ~]# vi /etc/pam.d/system-auth
Po provedení změn v obou souborech restartujte službu ssh pomocí níže uvedeného příkazu systemctl,
[[email protected] ~]# systemctl restart sshd
Pojďme otestovat, zda bude uživatelský účet po třech neúspěšných pokusech o přihlášení uzamčen nebo ne.
Předpokládejme, že máme místní účet s názvem „pkumar“, pokusíme se ssh náš systém Linux s tímto účtem s nesprávnými hesly,
$ ssh [e-mailem chráněno][e-mailem chráněno] heslo:[e-mailem chráněno] heslo:[e-mailem chráněno] heslo:Povolení odepřeno (publickey,gssapi-keyex,gssapi-with-mic,password) .
Nyní zobrazte zabezpečené protokoly pomocí příkazu tail,
[[email protected] ~]# tail /var/log/secure
Výše uvedené protokoly potvrzují, že účet byl uzamčen po třech nesprávných pokusech o přihlášení, ověřte také pomocí příkazu faillock,
Chcete-li tyto neúspěšné pokusy o přihlášení vyprázdnit nebo vymazat, proveďte následující příkaz faillock
[[email protected] ~]# faillock --user pkumar --reset[[email protected] ~]# faillock --user pkumarpkumar:When Typ Zdroj Platný[[email protected] ~]#
Pojďme k distribuci podobné Debianu (Ubuntu, Linux Mint a Debian)
Pro Debian, Ubuntu a Linux Mint
Přidejte následující řádek do souboru „/etc/pam.d/common-auth“,
požadováno auth pam_tally2.so onerr=fail deny=3 unlock_time=600 audit
pokud si přejete zamknout i root účet po třech nesprávných přihlášeních, přidejte následující řádek ,
požadováno auth pam_tally2.so onerr=fail deny=3 unlock_time=600 audit even_deny_root root_unlock_time=600
Kde:
- Onerr=fail –> V případě chyby selhání
- deny=3 –> Po třech neúspěšných pokusech o přihlášení bude účet uzamčen
- unlock_time=600 –> Znamená to, že účet zůstane uzamčen po dobu 10 minut nebo 600 sekund
- audit –> Znamená auditovat protokoly v souboru audit.log
- even_deny_root –> Uzamknout účet root po třech nesprávných přihlášeních
- root_unlock_time=600 –> Rootový účet zůstane po 3 neúspěšných pokusech o přihlášení uzamčen po dobu 10 minut nebo 600 sekund
Přidejme výše uvedený diskusní řádek v souboru „/etc/pam.d/common-auth ” pomocí editoru vi,
[e-mail chráněný]:~$ sudo vi /etc/pam.d/common-auth
Po provedení výše uvedených změn uložte a ukončete soubor a restartujte službu ssh pomocí následujícího příkazu
[e-mail chráněn]:~$ sudo systemctl restart sshd
Pojďme otestovat, zda jsou účty uzamčeny po 3 nesprávných přihlášeních ssh,
Předpokládejme, že máme místního uživatele „devops“, pokusíme se ssh systému Ubuntu s nesprávnými hesly
$ ssh [chráněno e-mailem] Heslo uživatele [chráněno e-mailem]:Heslo uživatele [chráněno e-mailem]:Heslo uživatele d[chráněno e-mailem:Povolení odepřeno (veřejný, heslo).
Nyní si prohlédněte soubor protokolu ověření a zjistěte, zda byly zaznamenány nesprávné pokusy o přihlášení,
[e-mail chráněný]:~$ tail /var/log/auth.log
Výše uvedené protokoly potvrzují, že účet byl uzamčen, ověřte pomocí příkazu pam_tally2,
[email protected]:~$ sudo pam_tally2 -u devopsLogin Selhání Poslední selhání Fromdevops 6 12/15/19 07:45:02 192.168.29.157]~>[e-mail preprotected]K vymazání těchto neúspěšných pokusů o přihlášení použijte následující příkaz pam_tally2,
[chráněno e-mailem]:~$ sudo pam_tally2 -u devops --resetLogin Selhání Poslední selhání Fromdevops 6 12/15/19 07:45:02 192,168,29,157 192,168,29,157 e-mailu:~$email protected] sudo pam_tally2 -u devopsLogin Selhání Poslední selhání Fromdevops 0[e-mail chráněn]:~$Tím je článek uzavřen, neváhejte se podělit o zpětnou vazbu a komentáře.
Jak shromažďovat systémové a aplikační metriky pomocí Metricbeat Jak vytvořit a přidat svazek EBS v instanci AWS (EC2)Linux