S rostoucím počtem narušení a prolomení hesla potřebujeme co nejvíce vrstev zabezpečení.
Jedním ze způsobů, jak dosáhnout vyšší bezpečnosti, je přidání další vrstvy ověřování. Vícefaktorové ověřování (MFA) je metoda vyžadující více než jedno pověření k prokázání vaší identity.
Co je to MFA?
Obvykle, když se přihlásíte k účtu nebo zařízení, budete požádáni o uživatelské jméno a heslo. Když připojíte SSH do počítače se systémem Linux, můžete být požádáni o pár klíčů SSH. Vícefaktorová autentizace vyžaduje, aby uživatelé poskytli více než jednu informaci pro úspěšné ověření k účtu nebo hostiteli Linuxu. Další informace mohou být jednorázové heslo (OTP) zaslané na váš mobilní telefon prostřednictvím SMS nebo přihlašovacích údajů z aplikace, jako je Google Authenticator, Twilio Authy nebo FreeOTP.
Pluggable Authentication Modules (PAM) jsou mechanismy ověřování používané v Linuxu. V tomto článku používáme modul Google PAM k povolení MFA, aby se uživatelé mohli přihlásit pomocí kódů TOTP (time-based one-time password).
Implementujte modul Google Authentication
Nejprve nainstalujte modul Google Authentication na počítač se systémem Linux. Chcete-li tak učinit, otevřete okno Terminálu a spusťte následující příkaz:
# sudo dnf install google-authenticator -y
Dále nakonfigurujte google-authenticator
pro generování OTP kódů. Spusťte následující příkaz pro zahájení procesu konfigurace:
# google-authenticator
Tento nástroj klade řadu otázek. Na většinu těchto otázek odpovězte ano (y ), pokud nepotřebujete něco jiného než výchozí.
Do you want authentication tokens to be time-based (y/n) y
Tím se na obrazovce vygeneruje QR kód, tajný klíč a obnovovací kódy. Pomocí ověřovací aplikace, jako je Google Authenticator na chytrém telefonu, naskenujte QR kód vygenerovaný z výše uvedeného příkazu. Pro dokončení procesu odpovězte na zbývající otázky.
Do you want me to update your "/home/user/.google_authenticator" file? (y/n) y
Do you want to disallow multiple uses of the same authentication token? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) y
By default, a new token is generated every 30 seconds by the mobile app. In order to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. This allows for a time skew of up to 30 seconds between authentication server and client. If you experience problems with poor time synchronization, you can increase the window from its default size of 3 permitted codes (one previous code, the current code, the next code) to 17 permitted codes (the 8 previous codes, the current code, and the 8 next codes). This will permit for a time skew of up to 4 minutes between client and server.
Do you want to do so? (y/n) y
If the computer that you are logging into isn't hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than three login attempts every 30s.
Do you want to enable rate-limiting? (y/n) y
Nakonfigurujte SSH tak, aby vyžadoval zadání kódu OTP
Upravte několik konfiguračních souborů SSH a vyžádejte si kód OTP jako ověření druhého faktoru.
Pomocí svého oblíbeného textového editoru otevřete /etc/pam.d/sshd
pro úpravy:
# sudo vi /etc/pam.d/sshd
Přidejte následující řádky konfigurace:
auth required pam_google_authenticator.so nullok
Tato řada konfigurace umožňuje PAM používat modul Google Authenticator PAM, který jsme nainstalovali v předchozím kroku.
Pomocí nullok
záznam na lince, SSH nebude vyžadovat OTP kód pro uživatele na stroji, kteří nejsou nakonfigurováni pro MFA. Zcela odeberte tuto možnost, aby všichni uživatelé v tomto systému používali MFA.
Dále zakomentujte následující řádek, abyste zakázali ověřování heslem pro přihlášení:
#auth substack password-auth
Uložte a zavřete soubor.
V dalším kroku upravte konfiguraci SSH tak, aby se po úspěšném ověření páru klíčů SSH zobrazila výzva k zadání kódu OTP.
Pomocí svého oblíbeného textového editoru otevřete /etc/ssh/sshd_config
pro úpravy:
# sudo vi /etc/ssh/sshd_config
Najděte a zakomentujte řádek ChallengeResponseAuthentication no a přidejte nový konfigurační řádek ChallengeResponseAuthentication ano . Tento řádek umožňuje SSH požádat o Odpověď na výzvu . V našem případě je odpovědí OTP kód po úspěšné autentizaci pomocí SSH klíče. Zde je řádek:
#ChallengeResponseAuthentication no
ChallengeResponseAuthentication yes
Nakonec dejte vědět SSH, aby požádal o obojí klíč SSH a ověřovací kód k ověření. SSH kontroluje pár klíčů SSH (publickey ) a poté kód OTP (interaktivní klávesnice ). Na konec souboru přidejte:
AuthenticationMethods publickey,keyboard-interactive
Chcete-li povolit pár klíčů SSH a ověřování OTP pouze pro konkrétního uživatele, přidejte místo toho něco takového:
Match user <username>
AuthenticationMethods publickey,keyboard-interactive
Uložte soubor a ukončete. Restartujte službu SSH, aby se změny projevily:
# sudo systemctl restart sshd
Otestujte konfiguraci
Pojďme otestovat naši sestavu. Otevřete okno terminálu a SSH do hostitele Linuxu. Budete požádáni o kód OTP z aplikace pro ověřování.
Chcete-li být požádáni o heslo spolu s párem klíčů SSH a kódem OTP, otevřete /etc/pam.d/ssd
soubor pro úpravu a odkomentujte tento řádek:
auth substack password-auth
Dále otevřete /etc/ssh/sshd_config
soubor pro úpravy a přidejte další metodu ověřování:
AuthenticationMethods publickey,password publickay,keyboard-interactive
Po provedení těchto změn nezapomeňte restartovat SSH.
Sbalit
S MFA přidáváme další vrstvu ověřování, díky čemuž jsou naše systémy bezpečnější. Kromě tradičního ověřování na základě uživatelského jména a hesla používáme k přihlášení do systému bezpečnější metody, jako je pár klíčů SSH a TOTP (Google Authenticator). Implementací těchto opatření zlepšujeme zabezpečení systému a ztěžujeme prolomení zařízení Linux.
[ Chcete se dozvědět více o zabezpečení? Podívejte se na kontrolní seznam zabezpečení IT a dodržování předpisů. ]