FreeBSD Jail com implementação web múltipla Ruby

1

Estou procurando oferecer um sistema de implantação gratuito para aplicativos web ruby (baseado em rack e não em rails), então, essencialmente, permitirei que os usuários façam upload de um arquivo com o aplicativo e o aplicativo seja exibido em link

Enquanto eu estou tentando analisar o que é carregado como um aplicativo, a única maneira de ter certeza de que isso não criará nenhum dano é o isolamento. Eu pretendo conseguir isso com uma cadeia do FreeBSD.

O primeiro problema é que teremos um único IP. Não tenho certeza se esses dois métodos são apropriados para vários aplicativos que precisam ser executados na porta 80:

link link

O modelo com uma instalação rubi padrão pode ser feito com link

A questão é se essa configuração seria apropriada OU eu precisaria de uma configuração de proxy reverso nginx?

O aplicativo Ruby em execução em uma cadeia terá a garantia de não causar danos a outros usuários / servidor?

Qual seria a configuração recomendada para alcançar esse ambiente de hospedagem múltipla com o FreeBSD +?

    
por devnull 14.04.2012 / 14:31

1 resposta

1

Você precisaria do nginx agindo como um proxy reverso se você tivesse apenas o único IP público, e você quer ter os aplicativos presos. No entanto, o efeito disso é que todo o acesso a partir da perspectiva dos jails será do host, de modo que os aplicativos do usuário possam ter informações imprecisas se dependerem disso de alguma forma. Você pode usar proxy_set_header no Nginx para definir um cabeçalho proxy padrão como o X-Forwarded-For e garantir que seus usuários saibam que as informações corretas estão localizadas lá.

O Linux tem suporte para algo conhecido como proxy transparente, que permite que um aplicativo falsifique o IP de origem em um pacote quando ele passa por um host. Há suporte básico para isso no FreeBSD, mas está disponível apenas para root, já que nenhum controle de acesso foi adicionado para permitir que um usuário controle isso. O kernel pode ser corrigido para permitir que qualquer usuário falsifique pacotes, mas isso é um risco de segurança, então você precisa considerar o que funciona melhor para o seu ambiente.

Will the ruby app running in a jail be guaranteed not to create any damage for other users/the server ?

Os jails são uma maneira bastante segura de reduzir o risco para o servidor host dos serviços executados nele. Houve "quebras de prisão" no passado, mas não acredito que tenha havido recentemente. Há também erros de configuração que podem ser cometidos que poderiam fazer uma quebra de cadeia possível. No entanto, o ezjail é maduro e deve configurá-lo com um ambiente seguro.

Considere, porém, que há potencial para que danos sejam feitos dentro da cadeia, e você precisa pensar em como exatamente você pode detectar que algo contra seus termos de uso está sendo feito.

    
por 15.05.2012 / 16:13

Tags