No momento, estou tentando configurar um grupo de usuários que possa se conectar a um servidor por meio de SSH, mas somente por meio de proxy. Eles não podem ver nenhum arquivo ou executar nenhum comando. Os usuários do grupo também poderiam usar a autenticação de senha em vez de chaves. O servidor SSH é o OpenSSH.
Isto é outra questão que aborda algo semelhante com uma resposta muito boa. Eu estou tendo um problema totalmente entender o que ele significa e especificamente afirma que os usuários não têm permissão para usar o servidor como um proxy, então eu não posso seguir instruções sem pensar. Também é escrito para um único usuário comparado a um grupo. Para tentar resolver isso, fiz as seguintes alterações em sua configuração em sshd_config
.
Match Group limited-users
AllowTcpForwarding yes
#X11Forwarding no
#PermitTunnel no
#GatewayPorts no
AllowAgentForwarding no
PermitOpen localhost:1080
ForceCommand echo 'This account can only be used for [reason]'
Eu suspeito que eu possa precisar criar um tipo específico de grupo de sistemas, mas não tenho certeza.
Existe uma maneira preferida de criar uma conta bloqueada como essa e estou perdendo isso?
Editar: eu encontrei um segundo pergunta que também se assemelha a esta no StackOverflow , mas eles novamente usam as teclas onde eu gostaria de usar senhas em vez de chaves.
Editar 2: Acontece que isso é uma coisa muito popular. Este ajudou mais . Parece que eu preciso simplesmente configurar o shell do usuário para pressionar qualquer tecla para sair e eles não poderão fazer nada.
Editar 3: Ao acompanhar de perto este artigo provido por uma das outras perguntas que eu fiz o seguinte que é quase a mesma coisa mas sem dois grupos separados:
Eu atualizarei se estiver correto.
Eu criei o que parece ser um shell completamente inútil, criando o arquivo /usr/bin/tunnel_shell
e colocando isso
#!/bin/bash
trap '' 2 20 24
clear
echo -e "rn33[32mSSH tunnel started, shell disabled by the system administrator"
while [ true ] ; do
sleep 1000
done
exit 0
Eu criei um grupo chamado tunnel_group usando
groupadd tunnel_group
Eu adicionei um usuário chamado tunnel_user usando isso. O -M não lhe dá nenhum diretório inicial. O -G tunnel_group adiciona-o ao tunnel_group (um grupo que criei anteriormente). -s definiu seu shell para o arquivo tunnel_shell que criei anteriormente.
useradd -M -G tunnel_group -s /usr/bin/tunnel_shell tunnel_user
Eu, então, defino a senha dos usuários usando
passwd tunnel_user
Em /etc/ssh/sshd_config/
, adicionei isso ao final do arquivo.
Match Group tunnel_group
AllowTcpForwarding yes
#X11Forwarding no
PermitTunnel yes
GatewayPorts yes
AllowAgentForwarding yes
PermitOpen localhost: 1080
ForceCommand echo 'This account can only be used for SOCKS and has be restricted accordingly.'
Tags ssh socks account-restrictions