Pergunta

Eu gostaria de definir um barato Linux como um servidor web para hospedar uma variedade de tecnologias web (PHP e Java EE vêm à mente, mas eu gostaria de experiência com Ruby ou Python no futuro).

Eu estou bastante versado na configuração do Tomcat para rodar em Linux para servir de aplicações Java EE, mas eu gostaria de ser capaz de abrir este servidor, mesmo que apenas para que eu possa criar algumas ferramentas que pode utilizar enquanto eu estou trabalhando no escritório.Toda a experiência que eu tive com a configuração do Java EE sites tem sido tudo para aplicativos de intranet, onde nos foi dito para não concentrar-se na proteção páginas para usuários externos.

Qual é o seu conselho sobre a criação de um pessoal do Linux servidor web seguro o suficiente de forma a abri-lo para o tráfego externo?

Foi útil?

Solução

Este artigo tem algumas das melhores maneiras para bloquear as coisas:

http://www.petefreitag.com/item/505.cfm

Alguns destaques:

  • Certifique-se de que ninguém pode navegar em diretórios
  • Certifique-se de que apenas o root tem privilégios de gravação para tudo, e só o root tem privilégios de leitura para determinados arquivos de configuração
  • Executar o mod_security

O artigo também tem algumas dicas deste livro:

Apache Securiy (O'Reilly Press)

Na medida distros, eu tenho que correr Debain e Ubuntu, mas isso só depende de quanto você quer fazer.Eu corri Debian sem X e apenas ssh seria para ele sempre que eu precisava de alguma coisa.Que é uma maneira simples de manter um custo baixo.Ou Ubuntu tem algum bom GUI coisas que facilitam o controle Apache/MySQL/PHP.

Outras dicas

É importante seguir as melhores práticas de segurança, sempre que possível, mas você não quer fazer as coisas indevidamente difícil para si ou para perder o sono se preocupar em manter-se atualizado com as mais recentes façanhas.Na minha experiência, existem duas coisas que podem ajudar a manter o seu servidor pessoal segura o suficiente para jogar na internet, enquanto mantém sua sanidade:

1) Segurança através da obscuridade

Escusado será dizer que, apoiando-se sobre isso no "mundo real" é uma má idéia e não de ser entretidas.Mas isso é porque no mundo real, bandidos saber o que há e o que há de saque, para ser tido.

Em um servidor pessoal, a maioria dos 'ataques' você vai sofrer vai simplesmente ser automatizado varre a partir de máquinas que já foram comprometidos, olhando para o padrão de instalações de produtos conhecidos para ser vulneráveis.Se o seu servidor não oferecer nada de atraente nas portas padrão, ou nos locais padrão, o automatizado atacante vai passar.Portanto, se você está indo para executar um servidor ssh, colocá-lo em uma porta não padrão (>1024) e é provável que ele nunca será encontrado.Se você pode ir longe com essa técnica para seu servidor web, em seguida, uma grande mudança, que para um obscuro porta também.

2) Pacote de gerenciamento

Não compilar e instalar o Apache ou o sshd da fonte em si mesmo, a menos que você absolutamente necessário.Se você fizer, você está assumindo a responsabilidade de manter atualizado com os patches de segurança mais recentes.Deixe o bom mantenedores das distribuições Linux, como Debian ou Ubuntu fazer o trabalho para você.Instalar a partir da distro pacotes pré-compilados, e ficar atual se torna uma questão de emitir o ocasionais o apt-get update && apt-get-u dist-upgrade de comando ou usando qualquer fantasia ferramenta GUI Ubuntu oferece.

Uma coisa que você deve certifique-se de considerar é que as portas estão abertas para o mundo.Eu, pessoalmente, basta abrir a porta 22 SSH e a porta 123 para o ntpd.Mas se você abrir a porta 80 (http) ou ftp, certifique-se de que você aprender a conhecer, pelo menos, o que você está servindo para o mundo e quem pode fazer o quê com isso.Eu não sei muito sobre ftp, mas existem milhões de grande Apache tutoriais basta uma pesquisa no Google de distância.

Bit-Tech.Net correu um par de artigos sobre como configurar um servidor de casa, usando linux.Aqui estão os links:

Artigo 1
Artigo 2

Espero que aqueles que são de alguma ajuda.

@svrist mencionado EC2.EC2 fornece uma API para a abertura e o fechamento de portas remotamente.Desta forma, você pode manter a sua caixa de executar.Se você precisa dar uma demonstração de um café ou o escritório de um cliente, você pode pegar seu IP e adicioná-lo para o ACL.

O seu seguro se você manter sua voz para baixo sobre ele (por exemplo, raramente alguém vir após o seu home server se você está hospedando um glorificado webroot em uma casa de ligação) e o seu juízo sobre a sua configuração (por exemplo, evitar o uso de raiz de tudo, certifique-se de que você manter o seu software atualizado).

Na mesma nota, ainda que este segmento irá, potencialmente, diminuir para apenas flamejante, a minha sugestão para o seu servidor pessoal é manter tudo Ubuntu (obter o Ubuntu Server aqui);na minha experiência, a forma mais rápida de obter respostas de onde fazer perguntas em fóruns (não sei o que dizer sobre a absorção embora).

Meu servidor de casa de segurança BTW meio benefícios (eu acho, ou o que eu gostaria de pensar) de não ter um IP estático (executado no DynDNS).

Boa sorte!

/mp

Tenha cuidado ao abrir a porta SSH para o selvagem.Se o fizer, certifique-se de desativar o login do root (você sempre pode su ou sudo uma vez que você chegar em) e considerar mais agressivo métodos de autenticação dentro da razão.Eu vi um enorme dicionário de ataque em meus logs de servidor de um fim-de-semana vai depois do meu servidor SSH a partir de um DynDNS casa IP do servidor.

O que está sendo dito, é realmente impressionante para ser capaz de chegar a sua casa shell de trabalho ou fora...e adicionando o fato de que você pode usar SFTP sobre a mesma porta, eu não podia imaginar a vida sem ele.=)

Você poderia considerar uma Instância do EC2 da Amazon.De que maneira você pode facilmente testar as "coisas" sem mexer com a produção.E só paga o espaço,o tempo e a largura de banda que você usar.

Se você executar um servidor Linux a partir de casa, instalar ossec para um bom leve IDENTIFICAÇÕES que funciona muito bem.

[EDITAR]

Como uma nota lateral, certifique-se de que você não entrariam em conflito com o seu ISP Política de Uso Aceitável e permitir conexões de entrada em portas padrão.O ISP eu costumava trabalhar para o tinha escrito em seus termos que você pode ser desconectado para a execução de servidores através da porta 80/25, a menos que você estivesse em uma classe empresarial conta.Enquanto nós não ativamente bloquear essas portas (nós não importa, a menos que isso estava causando um problema) alguns Provedores não permitem qualquer tipo de tráfego através da porta 80 ou 25 então você terá que usar portas alternativas.

Se você estiver indo para fazer isso, gastar um pouco de dinheiro e ao menos comprar um dedicado roteador/firewall com uma porta DMZ separada.Você vai querer firewall fora de sua rede interna a partir de seu servidor para que, quando (não se!) o seu servidor web está comprometida, a sua rede interna não é imediatamente vulnerável bem.

Existem muitas formas de fazer isso, que vai funcionar muito bem.Eu normalmente jsut usar um .htaccess.Configuração rápida e segura o suficiente .Provavelmente não é a melhor opção, mas funciona para mim.Eu não colocaria minha números de cartão de crédito para trás, mas outros, que eu realmente não importo.

Wow, você está abrindo uma lata de vermes assim que você iniciar a abertura de qualquer coisa, até para o tráfego externo.Tenha em mente que o que você considera um experimentais server, quase como um cordeiro sacrificial, é também um alvo fácil para pessoas que querem fazer coisas ruins com a sua rede e recursos.

Toda a sua abordagem para um disponíveis externamente servidor deve ser muito conservadora e cuidadosa.Ele começa com coisas simples, como as políticas de firewall, inclui o sistema operacional subjacente (mantendo-o atualizado, configurando-o para a segurança, etc.) e envolve cada camada de cada pilha que você vai usar.Não há uma resposta simples ou receita, que eu tenho medo.

Se você quiser experimentar, você vai fazer muito melhor para manter o servidor privado e que usa uma VPN se você precisa trabalhar remotamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top