← Cloudflare One / cloudflare-one / access-controls / applications / non-http
Krátkodobé certifikáty (starší verze)
Cloudflare Access dokáže nahradit tradiční SSH klíče krátkodobými certifikáty, které se uživatelům vydávají na základě tokenu z jejich přihlášení do Access. V tradičním modelu si uživatelé vygenerují pár SSH klíčů a administrátoři udělují přístup k jednotlivým SSH serverům nahráním veřejných klíčů uživatelů na tyto servery. Tyto SSH klíče pak na serverech zůstávají beze změny klidně měsíce nebo roky. Cloudflare Access tuto správu SSH klíčů odbourává a zároveň zvyšuje zabezpečení tím, že dlouhodobé SSH klíče nahrazuje krátkodobými SSH certifikáty.
1. Zabezpečte server za Cloudflare Access
Krátkodobé certifikáty Cloudflare Access fungují s jakýmkoli moderním SSH serverem, ať už je za Access, nebo ne. Server za Access ale doporučujeme umístit kvůli vyššímu zabezpečení a dalším funkcím, jako je auditovatelnost a terminály přímo v prohlížeči.
Chcete-li zabezpečit svůj server za Cloudflare Access:
- Připojení serveru ke Cloudflare jako publikovanou aplikaci.
- Vytvořte self-hosted aplikace Access pro server.
2. Zajistěte, aby se uživatelská jména Unix shodovala s identitami uživatele SSO
Cloudflare Access převezme identitu z tokenu a pomocí krátkodobých certifikátů autorizuje uživatele v cílové infrastruktuře.
Nejjednodušší nastavení je takové, kde uživatelské jméno Unix odpovídá prefixu e-mailové adresy uživatele. Vydané krátkodobé certifikáty budou platné pro prefix e-mailové adresy uživatele. Pokud je například uživatel ve vaší organizaci Okta nebo GSuite zaregistrován jako [email protected], přihlásili by se k serveru SSH jako jdoe.
Pro účely testování můžete spustit následující příkaz a vytvořit uživatele Unix na daném počítači:
sudo adduser jdoePokročilé nastavení: Odlišná uživatelská jména
Certifikáty SSH obsahují jeden nebo více principals v podpisu, které určují uživatelská jména v Unixu, pod nimiž se certifikát smí přihlásit. Cloudflare Access vždy nastaví principála na předponu e-mailové adresy uživatele. Například když [email protected] pokusí připojit, Access vydá krátkodobě platný certifikát autorizovaný pro daný principal jdoe.
SSH servery ve výchozím nastavení ověřují uživatelské jméno Unixu oproti principálům uvedeným v certifikátu uživatele. SSH server můžete nakonfigurovat tak, aby přijímal i principály, které se s uživatelským jménem Unixu neshodují.
Uživatelské jméno odpovídá jinému e-mailu
Chcete-li povolit [email protected] a přihlásit se jako uživatel johndoe, přidejte následující do serveru /etc/ssh/sshd_config:
Match user johndoe
AuthorizedPrincipalsCommand /bin/echo 'jdoe'
AuthorizedPrincipalsCommandUser nobodyTím se serveru SSH sdělí, že když se někdo pokusí ověřit jako uživatel johndoe, zkontrolujte jejich certifikát pro principal jdoe. Tím by se uživateli umožnilo [email protected] k přihlášení na server pomocí příkazu, například:
ssh johndoe@serverUživatelské jméno odpovídá více e-mailům
Chcete-li více e-mailovým adresám povolit přihlášení jako vmuser, přidejte následující do serveru /etc/ssh/sshd_config:
Match user vmuser
AuthorizedPrincipalsFile /etc/ssh/vmusers-list.txtTím se serveru SSH sdělí, aby ze souboru načetl seznam principals. Poté v /etc/ssh/vmusers-list.txt, uveďte předpony e-mailů, které se mohou přihlásit jako vmuser, jeden na řádek:
jdoe
bwayne
robinUživatelské jméno odpovídá všem uživatelům
Chcete-li libovolnému uživateli Access povolit přihlášení jako vmuser, přidejte následující příkaz do serveru /etc/ssh/sshd_config:
Match user vmuser
AuthorizedPrincipalsCommand /bin/bash -c "echo '%t %k' | ssh-keygen -L -f - | grep -A1 Principals"
AuthorizedPrincipalsCommandUser nobodyTento příkaz vezme certifikát předložený uživatelem a autorizuje jakéhokoli principala, který je na něm uveden.
Povolit všechny uživatele
Chcete-li libovolnému uživateli Access povolit přihlášení s libovolným uživatelským jménem, přidejte následující do /etc/ssh/sshd_config:
AuthorizedPrincipalsCommand /bin/bash -c "echo '%t %k' | ssh-keygen -L -f - | grep -A1 Principals"
AuthorizedPrincipalsCommandUser nobodyZabezpečení vašeho serveru tak bude zcela záviset na konfiguraci Access, proto se ujistěte, že vaše Zásady Access jsou správně nakonfigurovány.
3. Vygenerujte veřejný klíč krátkodobého certifikátu
-
V Cloudflare dashboard ↗, přejděte na Zero Trust > Řízení přístupu > Přihlašovací údaje služby > SSH.
-
Vyberte Přidejte certifikát.
-
V Aplikace rozbalovací nabídce vyberte aplikaci Access, která představuje váš SSH server.
-
Vyberte Vygenerujte certifikát. V tabulce krátkodobých certifikátů se zobrazí nový řádek s názvem vaší aplikace Access.
-
Vyberte krátkodobý certifikát pro vaši aplikaci.
-
Zkopírujte jeho veřejný klíč CA. K tomuto veřejnému klíči a jeho zkopírování se můžete kdykoli vrátit.
4. Uložte svůj veřejný klíč
- Zkopírujte veřejný klíč vygenerovaný v dashboardu v kroku 3.
-
Pomocí následujícího příkazu přejděte do adresáře konfigurace SSH na vzdáleném cílovém počítači:
cd /etc/ssh -
Jakmile se tam dostanete, můžete pomocí následujícího příkazu vygenerovat soubor a zároveň otevřít textový editor pro zadání nebo vložení veřejného klíče.
vim ca.pub -
V
ca.pubsoubor a vložte veřejný klíč bez jakýchkoli úprav.ca.pubecdsa-sha2-nistp256 <redacted> [email protected]ca.pubsoubor může obsahovat více klíčů, každý na samostatném řádku. Prázdné řádky a komentáře začínající#jsou také povoleny. -
Uložte
ca.pubsoubor. V některých systémech může být podle vašich oprávnění nutné použít následující příkaz k vynucení uložení souboru::w !sudo tee % :q!
5. Upravte svůj sshd_config soubor
Nakonfigurujte svůj server SSH tak, aby důvěřoval Cloudflare SSH CA, a to úpravou sshd_config soubor na vzdáleném cílovém počítači.
-
Když se nacházíte v
/etc/sshadresář na vzdáleném počítači otevřetesshd_config.sudo vim /etc/ssh/sshd_config -
Stiskněte
ipřejít do režimu vkládání a poté přidat následující řádky na začátek souboru, nad všechny ostatní direktivy:PubkeyAuthentication yes TrustedUserCAKeys /etc/ssh/ca.pub -
Stiskněte
esca poté zadejte:xa stiskněteEntera uložit a ukončit.
6. Restartujte server SSH
Jakmile upravíte svůj sshd konfiguraci restartujte službu SSH na vzdáleném počítači, aby se změny projevily.
Pro Debian/Ubuntu:
sudo systemctl reload sshPro CentOS/RHEL 7 a novější:
sudo systemctl reload sshd7. Připojte se jako uživatel
Konfigurace SSH klienta
Na straně klienta nakonfigurovat vaše zařízení k použití Cloudflare Access pro přístup k chráněnému počítači. Chcete-li použít krátkodobé certifikáty, musíte do konfiguračního souboru SSH zahrnout následující nastavení (~/.ssh/config).
Chcete-li ušetřit čas, můžete pomocí následujícího příkazu cloudflared vypsat požadovaný konfigurační příkaz:
cloudflared access ssh-config --hostname vm.example.com --short-lived-certPokud dáváte přednost ruční konfiguraci, zde je příklad vygenerované konfigurace SSH:
Match host vm.example.com exec "/usr/local/bin/cloudflared access ssh-gen --hostname %h"
HostName vm.example.com
ProxyCommand /usr/local/bin/cloudflared access ssh --hostname %h
IdentityFile ~/.cloudflared/vm.example.com-cf_key
CertificateFile ~/.cloudflared/vm.example.com-cf_key-cert.pubPřipojení prostřednictvím terminálu v prohlížeči
Koncoví uživatelé se mohou k relaci SSH připojit bez jakékoli konfigurace pomocí terminálu Cloudflare v prohlížeči. Přečtěte si, jak to povolit, v Terminál vykreslovaný v prohlížeči.
Terminál v prohlížeči ve výchozím nastavení vyzve uživatele k přihlášení jménem a heslem. Pokud chcete použít ověřování založené na certifikátu, ujistěte se, že máte vytvořil krátkodobý certifikát pro konkrétní aplikaci Access nakonfigurovanou pro SSH vykreslované v prohlížeči.
Váš server SSH je nyní chráněný za Cloudflare Access: než se uživatelé budou moci připojit, budou vyzváni k ověření u vašeho poskytovatele identity.