sshfs: chroot tutti gli utenti non root nella directory specifica


8

Su un server ho bisogno dell'accesso ssh illimitato per root e limitato per tutti gli altri utenti.

Vorrei limitare tutti gli utenti non root a:

  • nessun accesso ssh
  • consenti solo il montaggio /mnt/data/usandosshfs

Vedo sshd_configpermette di usare Match User, cioè:

Match User john
  ChrootDirectory /mnt/data/
  ForceCommand internal-sftp
  AllowTCPForwarding no
  X11Forwarding no

ma come posso abbinare tutti gli utenti tranne root?


Ho pubblicato una risposta, ma non mi è completamente chiaro se la parte "fonti attendibili e / o ufficiali" si riferisce alla fattibilità / sicurezza generale della tua soluzione o alla specifica domanda "come abbinare solo alla radice".
fra-san,

@ fra-san - Non sono sicuro di cosa intendi. Implichi che, sebbene questa soluzione funzioni tecnicamente, non è sicura?
Martin Vegter,

No, mi stavo solo chiedendo se stavi cercando l'appoggio di una configurazione specifica da parte degli autori originali o di altre persone autorevoli. In realtà, ciò che stai facendo è consigliato da molte fonti informate (il Wiki di Arch è un esempio).
fra-san,

Risposte:


12

La direttiva Match nei sshfile di configurazione supporta la negazione. Ma sembra che negare le condizioni sshd_configsia un po 'complicato: devi scrivere

Match User="!root,*"

per applicare le direttive successive a tutti gli utenti tranne root.

Ecco la documentazione pertinente: da man sshd_config:

Abbina Introduce un blocco condizionale.
...
I modelli di corrispondenza possono essere costituiti da voci singole o elenchi separati da virgola e possono utilizzare gli operatori jolly e di negazione descritti nella sezione PATTERN di ssh_config (5).

E da man ssh_config:

MOTIVI
Un modello è composto da zero o più caratteri non bianchi, '*' (un carattere jolly che corrisponde a zero o più caratteri) o '?' (un carattere jolly che corrisponde esattamente a un carattere).
...
Nota che una partita negata non produrrà mai un risultato positivo da sola.
Ad esempio, il tentativo di far corrispondere "host3" al seguente elenco di schemi non riuscirà:

from="!host1,!host2"

La soluzione qui è di includere un termine che produrrà una corrispondenza positiva, come un carattere jolly:

from="!host1,!host2,*"

Suggerimento trovato in questo articolo sul Portale clienti di Red Hat.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.