Por isso, tenho usado túneis SSH para restringir o acesso a sites internos ou partes de sites públicos por um tempo agora, e como somente os administradores tinham acesso SSH, usei contas de usuário padrão não-root / sudo.
Bem, agora que estou expandindo e tentando fazer com que os alunos das universidades locais envolvidas expandam seus projetos, eles precisarão começar a acessar algumas dessas páginas internas.
O servidor Proxy é uma caixa do CentOS 6.4, com o SELinux habilitado, e não estará executando nenhum outro serviço além do proxy. Eu estou olhando para, eventualmente, configurar uma VPN completa, mas, neste caso, é simplesmente permitir o acesso a determinadas máquinas com uma lista de permissões IP, em vez de acesso total à rede interna.
Eu observei todos os métodos para configurar um proxy SOCKS com contas de usuário com coisas como / bin / false etc, mas
A) eles assumem que apenas uma única porta ou host está sendo encaminhado (enquanto neste caso eu tenho um conjunto de instâncias de VPS que serão alteradas sob demanda nas configurações de rede), ou
B) que um cliente SSH regular está em uso ao invés de algo como PuTTY (por mais que eu gostaria de forçar todos os alunos a usar uma VM ou instalar o linux diretamente, isso não é uma opção, já que a escola usa o PuTTY em seu hardware de engenharia para uso dos alunos).
Aqui está o que eu encontrei até agora:
Se um cliente ssh regular é usado, eu posso configurar o shell do usuário para / bin / false e o usuário pode especificar o comando -N ao configurar o proxy SOCKS, mas infelizmente para usuários do PuTTY isso não parece funcionar (pelo menos Eu não consegui fazer funcionar).
Quando o PuTTY abre um túnel através das opções de tunelamento padrão, ele tem que abrir um shell que imediatamente se desconecta no login, já que o usuário tem um shell / bin / false .. Se eu especificar o argumento "no shell or command" no Configurações de SSH, as opções de proxy não parecem ter configuração. Se eu tentar configurar o proxy nas opções de SSH para comandos remotos, ele ainda não será executado, a menos que eu permita um shell ou outros comandos nas opções.
Questões relacionadas Encontrei, mas não me encaixo bem:
Crie túneis SOCKS com PuTTY e nologin
(este tecnicamente funcionaria, mas o shell é simplesmente um comando sleep que é executado por um tempo muito longo, e eu estou preocupado com o fato de ele ter escapado. Eu prefiro ter um verdadeiro noshell e um shell que simplesmente trava por razões de segurança )
link
(Isso não funciona porque exigiria que o usuário usasse uma instalação real do ssh e programas como o PuTTY não funcionariam). Também preciso que eles acessem páginas da Web, embora eu possa simplesmente especificar PermitTunnel para a conta, em vez de permitir apenas uma porta específica.
"noshell" para usuários de proxy ssh
(Este não funciona para o PuTTY pelas razões que afirmei acima sobre a necessidade de o PuTTY ter comandos habilitados para configurar o Proxy SOCKS)
Alguma sugestão? Eu poderia facilmente estar perdendo alguma coisa, mas não tenho certeza.
-Jim