Insta·lar i configurar SSH amb Raspbian i Home Assistant

Per començar, ja hem vist en una entrada anterior com instal·lar una raspberry pi i com instal·lar Home Assistant, en primer lloc, mostrarem com instal·lar i configurar el servei SSH per accedir al nostre sistema Raspbian i realitzar configuracions tant al sistema com al Home Assistant.

Hi ha infinitat de maneres de fer-ho, però jo explicaré la meva manera i la que crec que és més segura; ja que aquest servei estarà publicat a Internet.

Que és SSH?

SSH o Secure Shell, és un protocol d’administració remota que permet als usuaris controlar els seus servidors remots a través d’Internet. El servei es va crear com un reemplaçament segur per al Telnet sense xifrar i utilitza tècniques criptogràfiques per garantir que totes les comunicacions entre servidor i client succeeixin de manera encriptada.  un cop fet això obtindrem com a resultat un servidor de Home Assistant més segur.

Instal·lar i configurar SSH

Instal·lació del SSH

Primer de tot instal·larem SSH, pero si ja el tenim instal·lat, ens podem estalviar aquest pas.

sudo apt install openssh-server

 

Instal·lar i configurar SSH en Raspbian

Si ja tinguesim instal·lat SSH, ens apareixerà un missatge com aquest:

Instal·lar i configurar SSH en Raspbian

Configuració del SSH

Per començar, farem una còpia de l’arxiu de configuració, per si s’ha de tornar enrere.

cp /etc/ssh/ssh_config /etc/ssh/ssh_config_ORIGINAL

A continuació, ja podem editar l’arxiu de configurarció amb el nostre editor preferit; en el meu cas utilitzaré el vi.

vi /etc/ssh/ssh_config

Per defecte el port del servei SSH és el 22, per tant per evitar que hi hagin intents d’accés no autoritzats, modificarem aquest port, per tal de fer la vida una mica més complicada a aquells que intenten complicar-nos-la a nosaltres.

Per començar, busquem la línea que posa “Port 22” i la comentem amb una # i posem el nou port, per exemple 12522.

Per tant aquest port també haura d’esstar obert en el nostre firewall del encaminador.

#Port 22
Port 12522

Per altre banda, es molt important forçar el protocol de comunicació del nostre servei SSH a la versió 2. Per tant comentarem la seguent línea #Protocol 2,1 i afegirem la línea “Protocol 2”

Per mes seguerat, evitarem que l’usauri root pugui validar-se. 

#PermitRootLogion yes

PermitRootLogion no

Reiniciem el servei del SSH perque agafi les noves configuracions

systemctl restart sshd

Fins aquí tindríem una configuració bàsica del nostre servidor SSH, però a mi m’agrada donar-li unes voltes més perquè sigui més complicat, que persones no autoritzades entrin al nostre servidor. Especialment quan aquest controlarà la nostra domòtica de casa.

Fem més segur el nostre SSH

Per tal de poder fer això jo utilitzo el puttygen, que el podem descarregar des de la següent direcció web:
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

Utilitzarem una clau encriptada pública i privada per fer aquesta connexió, així, aquella persona que no tingui la clau privada ja no podrà connectar.

Executem el puttygen.exe que hem descarregat i seleccionem RSA i introduïm el nombre de bits a 4096

Instal·lar i configurar SSH en Raspbian

Polsem sombre el botó “Generate” i anem movent el cursos del ratolí sobre l’aplicació per tal de generar la clau.

Generar la clau SSH per a instal·lar a Raspbian

Un cop finalitzat, en l’apartat “Key passphrase i Confirm passphrase” col·locarem un password per fer-lo més segur.

Configurar de la clau privada de SSH amb el PuTTY Key Generator

Polsem sobre la icona “Save public key” i guardem l’arxiu amb el nom que vulguem. En el meu cas pub_key.

Polsem sobre la icona “Save private key” i guardem l’arxiu amb el nom que vulguem. En el meu cas priv_key.ppk.

Un cop fet això i tenim els arxius guardats al nostre equip client. Ens connectem a la nostra raspberry per SSH i creem unes carpetes on guardarem l’arxiu de la clau privada.

mkdir ~/.ssh chmod 0700 ~/.ssh touch ~/.ssh/authorized_keys chmod 0644 ~/.ssh/authorized_keys

Un cop fet això, editem l’arxiu authorized_keys

vi ~/.ssh/authorized_keys

Enganxem el contingut de l’arxiu “pub_key”, pero no hem de copiar la part que us poso a continuació:

—- BEGIN SSH2 PUBLIC KEY —- <<<<—— NO COPIAR Comment: “rsa-key-20190403” <<<<—— NO COPIAR AAAAB3NzaC1yc2EAAAABJQAAAgEAyivmA2eS94j02SiTExUDlSl4+Hzumc+XaIJK i2O7hHdpK0Fine8uyyl7ZinGO+y5mmRxhF1Rf1T9qtOvS3tjkni0RVg7V3A8Qd58 4NJUWYI8Wh/QQbwfbW2rEVdNG90ZIFNsMHEHt+fRAsOIlKwr/BGUFPEm1GmAvNYE JmfkuVWqlQeCYkBDmbI+1YXpY8f3oxuTPWgfSWTq7srXoeCZ16CZrmrO3AS6CFeW wNMw4l++3zDDMI3lkt21sEVGMs2uFVWZhS7LNADxPvooNviNCh0zVIe1f7MQ7xA9 rYmRuNjZVmTn/JlJ1NnsmGID+5ARdXwU7EQ2dWysOaLRRlTL+TwPjqNyYAzl00UY 0xEqlCY1DmYWt5UzXzOn6OIOI3bnkNsQbhLEAxhDfdyck0/IMlWbCUcmKu60d+/E Rn+Wsfb4BdKuvfPY+Y9kwNnOSoz5v+bTDj7sacSVz3uQErfNX0dReSBk+iOm8FO+ DxZwXee6ANdGmyKfTLjb2cEOs5off2yDBYsSeVrhvDtdHBFeHUKwv9rlpG7XU904 AZ/ffGq5Lt6dBYGSec4Kpg+6I6PJ+UQ8/oLANbfSb93LnTLg6AKi5aWRKAOv9jsa m5vHIIZN4HxCzaGDlkJVhSM0t2gDl8OYSKqNTzaFpmW/BjeStjWek0T6pxygXvCe YU+psmc= —- END SSH2 PUBLIC KEY —- <<<<—— NO COPIAR

Hauria de quedar així:

AAAAB3NzaC1yc2EAAAABJQAAAgEAyivmA2eS94j02SiTExUDlSl4+Hzumc+XaIJK i2O7hHdpK0Fine8uyyl7ZinGO+y5mmRxhF1Rf1T9qtOvS3tjkni0RVg7V3A8Qd58 4NJUWYI8Wh/QQbwfbW2rEVdNG90ZIFNsMHEHt+fRAsOIlKwr/BGUFPEm1GmAvNYE JmfkuVWqlQeCYkBDmbI+1YXpY8f3oxuTPWgfSWTq7srXoeCZ16CZrmrO3AS6CFeW wNMw4l++3zDDMI3lkt21sEVGMs2uFVWZhS7LNADxPvooNviNCh0zVIe1f7MQ7xA9 rYmRuNjZVmTn/JlJ1NnsmGID+5ARdXwU7EQ2dWysOaLRRlTL+TwPjqNyYAzl00UY 0xEqlCY1DmYWt5UzXzOn6OIOI3bnkNsQbhLEAxhDfdyck0/IMlWbCUcmKu60d+/E Rn+Wsfb4BdKuvfPY+Y9kwNnOSoz5v+bTDj7sacSVz3uQErfNX0dReSBk+iOm8FO+ DxZwXee6ANdGmyKfTLjb2cEOs5off2yDBYsSeVrhvDtdHBFeHUKwv9rlpG7XU904 AZ/ffGq5Lt6dBYGSec4Kpg+6I6PJ+UQ8/oLANbfSb93LnTLg6AKi5aWRKAOv9jsa m5vHIIZN4HxCzaGDlkJVhSM0t2gDl8OYSKqNTzaFpmW/BjeStjWek0T6pxygXvCe YU+psmc=

Guardem l’axiu “~/.ssh/authorized_keys”

Editem l’arxiu de configuració de SSH

vi /etc/ssh/sshd_config

Modifiquem alguns parametres i altres els afegim. Per tant si ja els teniu, heu de modificar el seu valor si no coicideix i si no es teniu els heu d’afegir.

HostKey /etc/ssh/ssh_host_rsa_key #HostKey /etc/ssh/ssh_host_ecdsa_key #HostKey /etc/ssh/ssh_host_ed25519_key # Ciphers and keying #RekeyLimit default none #SyslogFacility AUTH #LogLevel INFO # VALIDACIÓ: LoginGraceTime 2m #PermitRootLogin prohibit-password #StrictModes yes PermitRootLogin no MaxAuthTries 3 MaxSessions 3 #PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys #AuthorizedPrincipalsFile none #AuthorizedKeysCommand none #AuthorizedKeysCommandUser nobody #HostbasedAuthentication no # HostbasedAuthentication #IgnoreUserKnownHosts no #IgnoreRhosts yes PasswordAuthentication no PermitEmptyPasswords no ChallengeResponseAuthentication no # Kerberos options #KerberosAuthentication no #KerberosOrLocalPasswd yes #KerberosTicketCleanup yes #KerberosGetAFSToken no # GSSAPI options #GSSAPIAuthentication no #GSSAPICleanupCredentials yes #GSSAPIStrictAcceptorCheck yes #GSSAPIKeyExchange no UsePAM yes

systemctl restart sshd

Configurar PuTTY per accedir al servidor amb clau

Configurarem el cliente PuTTY per tal de fer la conexió amb la clau privada. Podem descarregar el cliente des de la web oficial ( https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html )

Salvaguardar la sessió SSH de Raspbian al PuTTY
  • 1: DNS o IP PÚBLIA DEL HOST
  • 2: PORT SSH
  • 3: SSH ( PROTOCOL )
  • 4: NOM DE LA SESSIÓ QUE ES GUARDARÀ

En el menú Category fem el següent:

Instal·lar i configurar l'usuari d'accés SSH al PuTTY
  • 1: Despleguem ” Connection”
  • 2: Seleccionem “Data”
  • 3: Introduïm l’usuari de login ( per defecte pi )

 

 

Despleguem SSH

Instal·lar i configurar la clau privada de SSH al PuTTY

  • 1: Despleguem SSH
  • 2: Sel·leccionem Auth
  • 3: Busquem la clau privada que te com extensió .ppk

Tornem a “Session” i li donem a guardar.

Obrim la sessió seleccionan el nom i polsan “Open”

Configurar SSH al PuTTY

I ens hauria d’apareixer algo semblant a aixo:

Configurar la clau SSH en Raspbian

Acceptem la clau, i un cop fet aixó ens demanara el password que hem posat a la clau plivada.

Login SSH en Raspbian

Finalment, ja tenim un SSH en la nostre Raspbian més segur a les amenaçes que tenim a Internet.

En conclusió; més segur i més tranquils.