od weinstock @ pixabay
V tomto tutoriálu ukážu, jak můžete spravovat své klíče SSH pro všechny vaše servery a různé uživatelské účty. To je důležité, pokud máte více než jeden klíč SSH a je to ještě důležitější, pokud jste odpovědní za mnoho různých uživatelů s různými klíči SSH. Stále víte, čí klíče jsou umístěny na kterých serverech? Co uděláte, když budete muset zrušit klíče uživatele?
Jako systém pro správu klíčů SSH použijeme privacyIDEA. PrivacyIDEA je původně systém pro správu tokenů One Time Password. Ale před chvílí byl vylepšen o nový koncept, takže jej lze použít ke správě mnoha různých druhů autentizačních položek – v tomto případě klíčů SSH. (Měl jsem o tom německou přednášku na německé konferenci OpenRheinRuhr).
Předpoklady
Předpokládám, že jste si nainstalovali systém privacyIDEA a připojili svou uživatelskou databázi. Můžete to snadno udělat podle tohoto návodu, který vám poskytne systém podobný zařízení založenému na Ubuntu LTS.
Co teď uděláme, je
- nahrání klíčů SSH pro uživatele,
- nakonfigurujte, který klíč SSH lze použít na kterém serveru SSH
- a nakonec přizpůsobte konfiguraci SSH na serverech SSH tak, aby se k ověřování na serveru SSH používaly klíče SSH spravované pomocí privacyIDEA.
Nahrát klíče SSH
Nejprve musíme nahrát SSH klíče uživatelů.
Poznámka: Potřebujeme pouze nahrát veřejný klíč SSH. Nikdy nenahrávejte soukromý klíč!
Při nahrávání klíče SSH nový objekt tokenu typu klíč SSH je vytvořen. V tuto chvíli může nahrát SSH klíč uživatele pouze správce. Administrátor se musí přihlásit a vybrat příslušného uživatele.
Poté klikněte na tlačítko Zaregistrovat se a vyberte typ SSH Token a zkopírujte a vložte veřejný klíč SSH.
Popis tokenu se automaticky doplní komentářem klíče SSH.
Nyní můžete přejít na Token zobrazit a můžete vidět nově vytvořený token typu sshkey
Přiřazení klíče SSH k serveru SSH
Myšlenka použití tokenů pro určité stroje je původně popsána na githubu a také v online dokumentaci.
Musíte definovat, který token se smí ověřovat v které aplikaci na kterém počítači. (Tímto způsobem je možné i offline ověřování pomocí LUKS) To lze provést v Strojích zobrazit.
V privacyIDEA 1.5 také potřebujete definovat stroj (SSH server) pomocí IP adresy. To se změní v privacyIDEA 2.x.
Tímto způsobem vytvoříme definici stroje, která říká, že ssh token SSHK00018FD9 lze použít k přihlášení přes SSH na server 172.16.200.1. Pokud ponecháte klíč volby prázdný, lze tento token SSH použít k přihlášení jako uživatel root. Můžete také zadat možnost "user" s uživatelským jménem jako hodnotou, abyste se mohli přihlásit jako jiný uživatel.
Nastavení serveru SSH
Nyní SSH server potřebuje vědět o tom, že klíč, který byl centrálně definován v privacyIDEA, lze použít k přihlášení přes SSH. Existují dva alternativní způsoby, jak toho dosáhnout.
Můžeme použít saltstack k distribuci SSH klíčů na všechny SSH servery. K tomu potřebujeme nastavit a spustit saltstack, což nám dává trochu režii. To je důvod, proč jsme v tomto tutoriálu zvolili druhou alternativu.
Druhá alternativa používá konfigurační klíč SSH AuthorizedKeysCommand . To lze použít v /etc/ssh/sshd_config k definování příkazu, který se spustí pokaždé, když se někdo pokusí přihlásit přes SSH. Takový příkaz musí mít uživatelské jméno jako parametr a musí vrátit seznam povolených klíčů SSH.
K tomu používáme příkaz privacyidea-authorizedkeys který je dodáván s administračním klientem privacyidea. Musíte tedy nainstalovat klienta pro správu privacyidea na každý ze svých serverů SSH. Můžete to udělat pomocí připraveného balíčku ubuntu z launchpadu nebo balíčku python z indexu balíčků Python.
Chcete-li nainstalovat klienta pro správu privacyidea do hlavního systému, spusťte:
pip install privacyideaadm
privacyidea-authorizedkeys není dovoleno přebírat žádné další parametry kromě uživatelského jména. To je důvod, proč musíte vytvořit konfigurační soubor /etc/privacyidea/authorizedkeyscommand který vypadá takto:
[Výchozí]url =https://your.privacyidea.serveradmin =low_rights_adminadminrealm =admin_realmpassword =tajné
Ujistěte se, že jste omezili přístupová práva k tomuto souboru. V produktivním prostředí byste se také měli ujistit, že administrátor tokenu zmíněný v tomto konfiguračním souboru nesmí provádět žádné další úkoly, jako je mazání nebo vytváření tokenů.
Pokud je vše správně nastaveno, měli byste být schopni spustit
privacyidea-authorizedkeys root
...a měli byste vidět veřejný klíč ssh, který jste nahráli do privacyIDEA.
Nakonec musíte znovu nakonfigurovat démona SSH a restartovat jej. Vaše /etc/ssh/sshd_config by měl mít sekci, která vypadá takto:
AuthorizedKeysCommand /usr/bin/privacyidea-authorizedkeys# Také byste měli spustit příkaz s nižšími oprávněními.# Low_priv_user potřebuje mít přístup pro čtení k /etc/privacyidea/authorizedkeyscommand.# AuthorizedKeysCommandUser low_priv_userOvěřit!
Po restartování démona SSH byste měli být schopni se přihlásit přes SSH pomocí nahraného klíče SSH. Jakmile token SSH smažete nebo dokonce deaktivujete token SSH v privacyIDEA, uživatel se již nebude moci přihlásit pomocí tohoto klíče SSH.
Tímto způsobem máte plnou kontrolu nad všemi klávesami všech vašich uživatelů. Můžete deaktivovat jeden klíč SSH v jednom centrálním bodě a uživatel se již nebude moci přihlásit k žádnému serveru SSH.
The Perfect Desktop – Ubuntu 14.10 (Utopic Unicorn) Startup Applications:automatické spouštění nejpoužívanějších programů při každém přihlášení uživateleUbuntu