FreeBSD aprisiona acesso

1

Eu quero executar um aplicativo dentro de jail , de modo que os usos permitidos só possam se conectar ao env preso (aplicativo) e nada mais na minha caixa.

Mas eles precisam ser capazes de se conectar à cadeia através da rede e ter apenas 1 ip público que está sendo usado pela minha caixa.

Como posso tornar a cadeia acessível a outras pessoas?

    
por hari 26.05.2012 / 02:05

2 respostas

4

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á.

    
por 26.05.2012 / 06:16
0

Você pode usar uma porta diferente para acessar ou um IP interno permitindo que as pessoas usem túneis ssh / vpn.

    
por 26.05.2012 / 02:30

Tags