Dependendo de qual serviço você deseja que as pessoas se conectem na cadeia, você pode usar regras de firewall para encaminhar o tráfego público de entrada em portas públicas para a porta apropriada no IP privado da cadeia, ou pode configurar um proxy que faça o trabalho para você - e incidentalmente adicione alguma proteção à sua prisão.
Eu faço isso regularmente para cadeias que executam servidores web. As cadeias estão em endereços IP privados, portanto não têm acesso à web. A única maneira que eles podem ser alcançados é usando um proxy reverso HTTP que é executado no jailserver. Você pode usar o Apache ou nginx como um proxy reverso, mas eu prefiro" libra "por sua simplicidade. Você pode encontrá-lo na árvore de ports em ports / www / pound / .
Outros serviços também podem usar proxies de entrada. nginx pode ser usado como um proxy IMAP . Isso é útil se você quiser atualizar o IMAP sem desativá-lo. Basta procurá-lo para uma segunda cadeia, atualizar a primeira cadeia e, em seguida, cortar o serviço para a cadeia atualizada, enquanto você pode atualizar o modo de espera. Como a execução de uma cadeia não requer recursos extras do que executar algo nativamente no servidor, você obtém todos os benefícios da virtualização sem o impacto no desempenho.
Se você precisa que as pessoas se conectem à sua caixa via SFTP, então você precisa usar uma porta não padrão (talvez com uma regra de firewall e / ou NAT para encaminhar o tráfego) ou pode configurar as contas SFTP para que entrem nos diretórios da prisão onde deveriam estar. Isso não executa o servidor SFTP na cadeia, mas o resultado é o mesmo.
Se você precisar fornecer acesso shell à cadeia via SSH, então suspeito que você tenha apenas duas opções. Primeiro seria, como com o SFTP, usar uma porta não padrão e uma regra de firewall. A segunda opção, mais complexa, seria usar uma conta shell no seu servidor jail que tenha variáveis mágicas no arquivo .ssh/authorized_keys
da conta. Dê uma olhada em man sshd
na seção "AUTHORIZED_KEYS FILE FORMAT".
Em resumo, você provavelmente deseja configurar algo como command="command"
para as chaves que se conectarão a você. O lado ruim é que, para qualquer um que se conecte, você precisará obter a chave pública antecipadamente. E seus clientes obviamente precisarão ter as chaves configuradas. Mas o lado bom é que você pode criar contas de shell em seu host jail que ou jexec
na cadeia, ou executar outro ssh que chega lá.