Menu Chiudi

Pillola #70: SSH forced command e accesso con chiave

La sicurezza di un sistema informatico coinvolge vari aspetti, uno di questi è l’accesso di un utente e anche quali comandi può lanciare.

Questa pillola mostra come limitare l’accesso solo per chiave e limitare ad un comando ciò che l’utente può fare.

Come limitare l’accesso SSH solo con chiave

A dire la verità i sistemi moderni impongono già questo metodo, quindi sarebbe da spiegare come attivare l’accesso con password, ma a beneficio di inventario, le due righe da modificare in /etc/ssh/sshd_config sono le seguenti:

# Impedisce l'accesso con chiave
PasswordAuthentication no
# Imposta l'accesso con chiave
PubkeyAuthentication yes

Riavviamo il servizio ssh col comando:

systemctl restart sshd.service

e il gioco è fatto.

Assunzioni per l’esempio

  • utente di prova wol
  • ip host di destinazione 10.1.2.3
  • bloccheremo la password all’utente wol, così non potremmo eseguire il login con password, ma solo via chiave, usando l’utente ed in più lo creeremo senza shell
  • limiteremo il comando da usare al programma /opt/wol/AccensioneWOL.sh

Forced command

Questo metodo permette di limitare l’accesso alla macchina lanciando un solo comando.

È un sistema ingegnoso adottato per legare l’uso di un utente ad una determinata funzione: salvataggi da remoto, lancio del pacchetto Wake On LAN e altro ancora.

La prima cosa da fare è generare una chiave sul proprio PC, da usarsi per accedere con un determinato utente tramite chiave.

ssh-keygen -t rsa -b 4096 -f ~/.ssh/wolkey

Creiamo l’utente sull’host di destinazione:

adduser -shell /usr/bin/false wol

dal nostro PC copiamo la chiave sull’host di destinazione 10.1.2.3

ssh-copy-id -i ~/.ssh/wolkey wol@10.1.2.3

ora modifichiamo il file /host/wol/.ssh/authorized_keys sull’host di destinazione 10.1.2.3 ed inseriamo in testa alla chiave dell’utente wol il comando da eseguire, come di seguito:

command="/opt/wol/AccensioneWOL.sh $SSH_ORIGINAL_COMMAND",no-port-forwarding,no-x11-forwarding,no-agent-forwarding ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDDjUz8raB2Q6V7D6rZ1K7xBnb4pQqNSo7MJOqJZgZ11QHmOUQmrNSz0x5hcD7HPjoNbdKznAC0GVzdN83Msn+62amTONLwzDO4tyAmnER1GwafhYK0yV/9t7/pT7ErKrWV7Eaxo1YFUskeCSOWFaI3z4EnbbaLKKlJ35AgqnC+DzF3KVhy03RnbAEFgjRGdWEL/C50Vjf3GIP6eeeohLpzk4gL3rDGV/mmo8yAWjaYgdIfCWECceIwNoEDFofA3OWeKPDBovkarQHRE7j29G9cYc/oTNOvGfoLvyzdZU0i4bhHVIfsxP1OxpmTWPNiUO48C9Gy5j46OhD4kl4xQn6iDaIW90e/fozHKzYVvIfgs556hrM1ny05o7IAg1r/ht10+YXd55cV6pIJLw4hfbJdQAacYXMU1cemjzbtucKRucAa6PjqQUztwConvERKMIUjINZrwbDoGczXNJx9vmDU+sS13vFxsYnUcefsP+75io0P5UBqUpRnP4JJXx2Mag4zWYDjFk6zTuX9by9gUScTSK9xgweMs8w+2w9RNq/vhio47z+xg0g3JB/TDHhWPzok8RwLwvS8nGLSQ4T4ldFFXwNFC/caUNJH8OTMHt85eHa52UoB4ezoQ2MPr5CW8PVnFIRcFZC6aRCCvWgO/Pqxg1Q2V/63XwgEE2zIb/cMMw== wol@acme.it

Ogni volta che verrà usato il comando ssh wol@10.1.2.3 parametri verrà richiamato il programma /opt/wol/AccensioneWOL.sh passando i parametri scritti nel comando ssh originario.

Blocchiamo la password all’utente wol col comando

passwd -l wol

Riferimenti

https://www.ssh.com/academy/ssh/keygen

WordPress Appliance - Powered by TurnKey Linux