Ce qui suit présente l'avantage que les redirections de socket d'agent X11 et SSH sont également interdites, ce qui pourrait toujours être autorisé à la manière de Calebs. Un autre avantage est que si l'utilisateur est capable de changer son shell par défaut de toute autre manière, cela limitera toujours son accès SSH aux transferts TCP uniquement.
Mettez ce qui suit dans votre /etc/ssh/sshd_config
:
Match User that-restricted-guy
AllowTcpForwarding yes
X11Forwarding no
AllowAgentForwarding no
ForceCommand /bin/false
pour permettre à l'utilisateur that-restricted-guy
de transférer toutes les connexions TCP via votre machine compatible SSH (connexion à cette machine, également localhost
et même connexion de cette machine à d'autres machines).
Si vous le souhaitez encore plus restrictif (ce qui est une bonne idée), vous pouvez également effectuer les opérations suivantes:
Match User even-more-restricted-guy
PermitOpen 127.0.0.1:12345
X11Forwarding no
AllowAgentForwarding no
ForceCommand /bin/false
Cela permettra à l'utilisateur even-more-restricted-guy
de ne jamais transférer que les connexions vers le port TCP 127.0.0.1 12345 (comme cela est visible sur votre machine compatible SSH).
Lorsque l'utilisateur se connecte normalement, il sera désormais instantanément déconnecté car la /bin/false
commande sera déclenchée, ce qui ne fera que sortir instantanément avec un code de 1. Si vous voulez éviter cela et garder votre connexion de transfert ouverte, ajoutez le -N
drapeau à la ssh
commande. Cela n'essaiera pas d'exécuter aucune commande, mais permet tout de même de configurer les transferts TCP.
Un exemple de commande directe qui devrait fonctionner dans cette dernière configuration:
ssh -L 12345:127.0.0.1:12345 -N even-more-restricted-guy@insert-your-machine