Omezení přístupu přes SSH klíče

V unixovém prostředí s více počítači je často potřeba vyvolat z jednoho počítače akci na jiném – např. synchronizace přes rsync z cronu. Oblíbeným způsobem je užití SSH spolu s klíčem, ale nejde o řešení bezpečné: aby přihlášení mohlo proběhnout v automatickém módu, vygenerované certifikáty nemají hesla. Riziko je zřejmé: při kompromitaci prvního serveru je automaticky kompromitován i druhý server.

Rád bych vám nabídl návod na bezpečné řešení, které vám umožní omezit dostupné akce na druhém serveru:

Vygenerujete certifikát jen pro danou akci – např. rsync a do souboru ~/.ssh/authorized_keys na cílovém počítači ke klíči přidáte i pár magických slov, která musí být na stejném řádku:

command="rsync --server --daemon .",from="zdrojovy-server",no-port-forwarding,no-X11-forwarding,no-pty ssh-rsa KOD-SSH-KLIČE root@localhost

Po uložení souboru je pravidlo okamžitě aplikováno a je tedy povolen jen konkrétní příkaz z konkrétního stroje, naopak je zakázáno forwardování portu, forwardování X11 a alokování PTY.

Pokud potřebujete pro jeden počítač povolit více příkazů, stačí napsat více řádků.

Upozornění: při testování funkčnosti si nezapomeňte vypnout SSH-Agenta, aby nepoužil váš vlastní klíč jako alternativu při selhání ověření.

Více nabízí články Automated Backups With rdiff-backup na serveru HowtoForge a SSH Bouncing – How to get through firewalls easily na Hacking Linux Exposed.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *