Como posso restringir um usuário no servidor SSH para conceder-lhe apenas os privilégios para SSH TUNNELING ? ou seja, eles não podem executar comandos, mesmo que se conectem via SSH.
Meus servidores Linux são Ubuntu 11.04 e OpenWrt.
fonte
Como posso restringir um usuário no servidor SSH para conceder-lhe apenas os privilégios para SSH TUNNELING ? ou seja, eles não podem executar comandos, mesmo que se conectem via SSH.
Meus servidores Linux são Ubuntu 11.04 e OpenWrt.
No lado do servidor, você pode restringir isso configurando o shell do usuário para /bin/true
. Isso permitirá que eles se autentiquem, mas na verdade não executam nada, pois não recebem um shell para executá-lo. Isso significa que eles serão limitados a qualquer subconjunto de coisas que o SSH possa oferecer a eles. Se oferecer encaminhamento de porta, eles ainda poderão fazer isso.
No lado do cliente, você provavelmente desejará se conectar ao -N
. Isso impede que o cliente solicite um comando remoto, como um shell, apenas para após a conclusão da parte de autenticação. Obrigado aos comentaristas por esclarecer isso.
useradd sshtunnel -m -d /home/sshtunnel -s /bin/true
.A seguir, temos a vantagem de que os encaminhamentos de soquete do agente X11 e SSH também não são permitidos, o que ainda pode ser permitido no modo Calebs. Outra vantagem é que, se o usuário puder alterar seu shell padrão de qualquer outra maneira, isso ainda restringirá seu acesso SSH apenas aos encaminhamentos TCP.
Coloque o seguinte em seu
/etc/ssh/sshd_config
:para permitir que o usuário
that-restricted-guy
encaminhe todas as conexões TCP através de sua máquina habilitada para SSH (conexão com esta máquina, tambémlocalhost
e até mesmo conexão desta máquina com outras máquinas).Se você quiser ainda mais restritivo (o que é uma boa ideia), você também pode fazer o seguinte:
Isso permitirá que o usuário
even-more-restricted-guy
encaminhe apenas conexões para a porta 12345.0.0.1 TCP 12345 (como é visível na sua máquina habilitada para SSH).Quando o usuário normalmente se conecta, ele será desconectado instantaneamente porque o
/bin/false
comando será acionado, o que não fará nada além de sair instantaneamente com o código 1. Se você quiser evitar isso e manter a conexão de encaminhamento aberta, adicione o-N
sinalizador aossh
comando Isso não tentará executar nenhum comando, mas ainda permitirá configurar os encaminhamentos de TCP.Um exemplo de comando de encaminhamento que deve funcionar na última configuração:
fonte
Você pode controlar o que as pessoas podem fazer no ssh combinando grupos, assumindo que sua versão do ssh é nova o suficiente para suportá-lo (openssh 5.x +).
Basicamente, nós os tratamos como se fossem usuários de sftp, mas permitimos o encaminhamento de tcp e, opcionalmente, especificamos os destinos para os quais eles podem encaminhar. Se você atribuir a eles um diretório pessoal, mas não criar diretórios nele, eles não poderão transferir nenhum arquivo porque não terão permissão para fazê-lo.
Você pode repetir esses blocos do Grupo de correspondências para cada grupo que deseja fornecer comportamentos ou restrições diferentes.
Você pode controlar ainda mais onde essa pessoa pode ir na rede usando iptables
Isso pressupõe que o GID do grupo "pessoas legais" seja 500.
Algumas das opções ssh acima estão disponíveis nas versões mais antigas do openssh, mas não na seção Match Group. O Match Group é muito limitado no OpenSSH 4.xe versões anteriores.
fonte