Centralize a maneira de evitar logins interativos

1

Eu tenho um servidor Ubuntu que é usado para duas finalidades primárias para meus alunos:

  1. Para manter os arquivos que os alunos precisam fazer upload temporariamente para minha avaliação (ou seja: eu dou a eles uma imagem de entrada e eles enviam o trabalho de casa MATLAB .m arquivos e as imagens de saída, que é apenas minha imagem original já percorreram o código deles).
  2. Para servir como um proxy para os alunos que precisam acessar as páginas dos blocos da escola (por qualquer razão estúpida). Eu forneci instruções para estudantes usando Ubuntu e Windows (via puTTY) para criar um túnel SSH e como usar o FoxyProxy com o Firefox para fazer uso do proxy.

Todos os alunos são obrigados a gerar um par de chaves pública / privada, eles me dão a chave pública, que eu adiciono aos arquivos authorized_keys para sua conta no meu servidor Ubuntu. Eles precisam ter a chave privada criptografada com uma senha strong e não compartilhá-la com outros alunos.

Atualmente, tenho a única entrada em authorized_keys para cada conta prefixada com no-pty , para que os alunos possam fazer login no servidor como um proxy e usar o SFTP para fazer upload de arquivos para o servidor. Esta é exatamente a configuração que eu preciso.

No entanto, no futuro, posso ativar o telnet e o FTP no servidor para um número restrito de contas. Se eu quiser impedir que qualquer serviço tenha um shell interativo, basta adicionar /sbin/nologin ou /dev/null a /etc/shells e definir o shell padrão para usuários individuais como /etc/passwd , mas isso interrompe a configuração de proxy e SFTP , mas aparentemente permite que o FTP funcione sem permitir logins interativos.

Existe uma maneira de definir "não há shells interativos" em um único local, ou eu deveria abandonar a configuração de telnet e FTP, e apenas manter a configuração do SFTP? A única razão pela qual estou considerando o FTP e o telnet, que são muito menos seguros do que o SFTP, é que alguns alunos estão fazendo firewalls que impedem as conexões SSH de saída.

Obrigado.

    
por DevNull 24.09.2014 / 20:50

0 respostas