Základní zabezpečení git serveru

Pokud provozujete vlastní git server, možná jste se někdy sebe sami ptali, jak zvýšit jeho bezpečnost.

Jedním ze základních prvků je samozřejmě správně nastavený firewall. Tento lze realizovat například pomocí iptables.

Druhým stavebním prvkem je pak korektní nastavení přihlašovacích údajů pro uživatele. Jsou zde opět dvě možnosti – vyžadovat silné heslo, nebo vyžadovat klíč pro přihlášení.

V tuto chvíli je možné systém považovat za zabezpečený, existují zde ovšem další kroky, pomocí kterých můžeme zabezpečení systému ještě trochu zvýšit. Pokud realizujete pouze git server, je možné všem uživatelům omezit přístup k shellu. Díky tomuto dodatečnému omezení můžeme potenciálnímu útočníku zabránit v páchání dalších škod.

Níže popsaný postup se skládá ze dvou kroků. Prvním krokem je změna výchozího shellu pro uživatele. Tuto změnu je nutné provést jako superuživatel editací souboru /etc/passwd. Každý řádek v tomto souboru reprezentuje jednoho uživatele v systému. Každý řádek pak obsahuje řadu hodnot oddělených dvojtečkami. Výchozí shell pro uživatele je uveden na poslední pozici tohoto seznamu.

Výše zobrazený řádek je již upravený pro potřeby tohoto návodu.  V případě, že jste ještě žádné úpravy v tomto souboru nedělali, budete zde mít s největší pravděpodobností hodnotu /bin/bash, případně podobnou.

Po uložení této změny se již můžete pokusit o přihlášení ke git serveru pomocí výše nastaveného uživatelského jména.

Vaše přihlášení nicméně selže stejně jako v příkladu výše. Pozornému čtenáři jistě neunikne řádek, na kterém se píše, že pro daného uživatele neexistuje adresář ~/git-shell-commands.

Druhým krokem nastavení je právě vytvoření adresáře git-shell-commands v domovské složce uživatele. Jedná se o adresář, který git-shell vyžaduje ke svému korektnímu fungování. Pokud existuje, git-shell povolí uživateli vykonávat příkazy, které jsou zde přítomny. Pokud je  adresář prázdný, je přihlášenému uživateli povoleno vykonat pouze příkaz exit, který slouží k ukončení aktuálního sezení.

Jak je možné vidět, po přihlášení uživatelem je spuštěn pouze omezený git-shell. Tento nedovolí vykonávat ani základní příkazy, jako ls, cd, neboť nejsou povoleny.

Pro povolení některých příkazů je vhodné vytvořit například symbolický link na binární soubory v systému. Množství povolených příkazů by nicméně mělo zůstat co nejmenší.

Zdroje:

https://git-scm.com/docs/git-shell

 

Mohlo by se vám líbit...

Napsat komentář

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