É mais seguro usar cadeias de chroot, um shell de prisão ou uma combinação?

9

Uma amiga minha tem um netbook Acer baseado em xandros e está procurando obter alguma administração remota e ajuda de mim enquanto viaja pelo mundo.
Eu configurei uma conta no netbook dela para que eu faça uma ssh e configurei um script para reverter o túnel ssh do netbook para o meu servidor - isso me permite contornar os problemas com firewalls etc. em vários albergues e hotéis. Depois que ela entra no meu servidor, eu posso entrar no seu netbook.

Eu tenho um script bash que é executado como seu shell quando ela entra no meu servidor, o que apenas lhe dá uma tela de 'por favor aguarde', e a única opção é sair do script e, portanto, inicializar do servidor.

O usuário que eu criei para ela no meu servidor tem poucos direitos, mas é provável que exista alguma exploração, o que significaria que ela teria acesso ssh ao meu servidor.

Estou pensando em usar também uma prisão chroot, então, se ela escapar, ela só terá acesso ao seu diretório pessoal.
É uma boa idéia e existem outras dicas de segurança que talvez eu tenha esquecido para manter meu servidor seguro, enquanto ainda me permite acessar seu netbook remotamente?

Para esclarecer, não acho que ela tentará escapar da prisão, ou do chroot, mas gostaria de saber como poderia evitar isso por precaução.

Atualização:
E você tem outras sugestões de como eu posso acessar o netbook ou outras camadas que eu poderia colocar entre o usuário e meu hardware?

Andy
fonte

Respostas:

3

Você já pensou em configurar o VNC ou outro aplicativo de controle remoto em uma porta que normalmente não é filtrada por um firewall por regras?

Um exemplo de configuração disso teria o VNC (ou outro aplicativo semelhante) carregado no notebook. Depois, execute o script do lado do notebook para chegar ao servidor em uma porta específica que não será filtrada pelo firewall para estabelecer seu caminho de retorno ao sistema. 443 é provavelmente a melhor porta a ser usada para isso, mas outras também são adequadas. Em seguida, no seu sistema, você apenas se conecta ao VNC diretamente ou replica uma porta no servidor para outro número de porta e apenas se conecta à interface na porta local e o redirecionamento da porta irá levá-lo ao outro sistema na extremidade remota.

Espero que isto ajude.

Axxmasterr
fonte
Obrigado pela sugestão. Eu não tinha considerado isso porque realmente não vi muitos clientes vnc no linux que tornam a conexão reversa óbvia no Linux. Você conhece algum?
Andy
Uma maneira de fazer isso é usar um programa TCP / IP capaz de estabelecer a porta de uma maneira. Automatizar isso com um estilo de telnet conectar-se a partir de um shell script seria bom. A maioria das implementações de telnet permite especificar a porta à qual você está tentando se conectar.
Axxmasterr
2

A prisão chroot ajudará, mas com uma exploração que deixa alguém entrar em um shell, eles ainda poderão ver a tabela de processos e outras coisas e executar programas, possivelmente mais explorações. Se você realmente quer ser agressivo ao isolar o usuário externo, é como usar um obus em uma formiga, mas você pode configurar um servidor virtual privado para todo o mecanismo do túnel ssh. Então, o pior que eles podem fazer é destruir o VPS, exceto a capacidade de sair de um, que é uma barra bastante alta.

caos
fonte
Gosto da idéia, mas sim, o rolo a vapor para quebrar uma noz :) Então, novamente, se eu executar algo realmente pequeno como um filhote de cachorro-linux apenas como terminal, como servidor, não seria um rolo a vapor tão grande.
Andy
2

Sou fã de uma boa estratégia de defesa em profundidade quando se trata de proteger um sistema de computador; portanto, recomendo que você use uma conta de baixo privilégio em um sistema de arquivos com chroot e, mesmo assim, não há garantia, basta olhar para o iPhone, faz as duas coisas e ainda não ajuda.

Bruce McLeod
fonte
2

Outra maneira de esfolar esse animal agora que estou pensando é encapsular o tráfego de sessões x dentro de um túnel SSH como uma alternativa ao uso do VNC. Você já está no meio do caminho agora com sua configuração atual.

Configure a capacidade X em uma porta específica localmente para essa máquina, encaminhe essa porta para você mesmo através do túnel e replique-a em uma porta do seu lado para que você possa se conectar à sessão na porta local do seu servidor.

Outra coisa que descobri que é totalmente útil para esse tipo de coisa é o DNS dinâmico. Isso permitirá que você defina um FQDN resolvível que você pode consultar sempre que necessário. O DyDns é executado como um serviço leve no sistema em que você está instalado e atualiza o registro sempre que as informações do endereço IP são alteradas.

Axxmasterr
fonte