Vzdálený přístup k Raspberry PI

Kategorie: Úvod
Vzdálený přístup k Raspberry PI

Přistupujeme k Raspberry PI vzdáleně přes SSH bez obav. Zabezpečení pomocí privátního klíče a blokovače neúspěšných pokusů.

K mému Raspberry PI přistupuji většinou vzdáleně pomocí SSH a ve většině případu v rámci LAN sítě. Přihlašování standardně pomocí jména a hesla. Ne vždy jsem ale doma a občas bych potřeboval k Raspberry PI přistoupit i z venčí (z internetu). Nechat ovšem otevřený port 22 na routeru vedoucí rovnou k RPI a přihlašování pomocí jména+hesla by nebyl zrovna dobrý nápad.

Abych si troufl přesměrovat ten port a nechat RPI dosažitelné i z internetu bylo potřeba prvně zabezpečit přihlášení. Budu předpokládat, že RPI máte zprovozněné a dokážete se k němu pomocí SSH připojit.

Připojení pomocí klíče

  • Vygenerujeme si klíč pomocí programu PuTTYgen. Program po stažení spustíme (není třeba nic nastavovat) a klikneme na tlačítko Generate. Při generování hýbeme myší přes okno programu - budeme nám nabíhat progressbar. Po vygenerování klíče se nám zobrazí okno - více na následujícím obrázku.

PuttyGen

  • Zkopírujeme text z prvního velkého políčka označeného jako Public key for pasting into OpenSSH authorized_keys file. Do pole Key passphrase vepíšeme něco, co si zapamatujeme (heslo), do pole Confirm passphrase to heslo vepíšeme znovu. Nyní si uložíme veřejný a privátní klíč (pomocí tlačítek save public key a save private key).
  • Připojíme se přes SSH k Raspberry PI a vytvoříme si v domovském adresáři adresář s názvem .ssh (příkaz mkdir ~/.ssh), nastavíme vytvořenému adresáři práva 700 (chmod 700 ~/.ssh).
  • Spustíme si libovolný textový editor a budeme editovat soubor authorized_keys v adresáři .ssh (nano ~/.ssh/authorized_keys). Do tohoto souboru vložíme zkopírovaný text z programu PuttyGen. Soubor následně uložíme a zavřeme.
  • Aby SSH fungovalo na základě klíče a ne hesla (jako doposud) bude nutné upravit konfigurační soubor SSH daemona. Budeme editovat soubor /etc/ssh/sshd_config (sudo nano /etc/ssh/sshd_config). Asi v polovině tohoto souboru se nachází řádek #PasswordAuthentication yes. Tento řádek změníme na PasswordAuthentication no. Konfigurační soubor uložíme a zavřeme. Nyní můžeme restartovat SSH daemona (sudo /etc/init.d/ssh restart).
  • Nyní musíme nastavit SSH klienta tak, aby se identifikoval privátním klíčem, který jsme si uložili. V Putty se to provádí v nastavení relace Connection-SSH-Auth (viz následující obrázek).

Putty nastavení relace

  • Po tomto nastavení se můžeme opět připojit, nyní stačí vyplnit jen jméno a jsme připojeni. Tímto máme vše nastavené a nemusíme se bát nechat přístupné Raspberry PI z internetu pomocí SSH.

Zabezpečení proti útokům

Po povolení vzdáleného připojení z internetu jsem si po nějakém čase v logu auth.log všimnul pokusů o přístup. Jelikož mi toto vadilo tak jsem hledal další možnost zabezpečení. Tou je například program fail2ban, který slouží jako blokovač IP adresy při několika špatných pokusech o připojení. Toto částečně znemožňuje prolomení pomocí bruteforce útoku.

Instalace je velice jednoduchá, protože se tento program nachází v oficiálních balíčcích, nainstalujeme jej pomocí příkazu sudo apt-get install fail2ban. Po nainstalování můžeme editovat konfiguraci v souboru /etc/fail2ban/jail.conf. Tam doporučím upravit především položky maxretry (maximální počet pokusů) a bantime (doba zablokování v sekundách). Řekl bych, že každému stačí tak 3 pokusy, bantime nechávám na uvážení, osobně jsem ho nastavil na pár dní.

 

Po tomto nastavení by mělo být vzdálené připojení k SSH v relativním bezpečí. Funguji takhle již pár měsíců, nějaké útoky jsou na SSH vedené, ovšem zatím žádný neprošel.

Sdílet

Komentáře

postPřidat komentář
odpovědět
super, diky za navod