Protegendo e monitorando um servidor privado virtual

2

Após quase uma década (sim) de hospedar meus sites e aplicativos pessoais com um provedor de hospedagem compartilhada decente (o de Pittsburgh), decidi que é hora de me aventurar por conta própria e tentar um servidor virtual privado.

A uma coisa que está me impedindo é que sei que meu host compartilhado tem vários sistemas de configuração de segurança / instrução personalizados para lidar com problemas comuns a clientes que desejam executar Aplicações PHP. Eu estou relutante em desistir dessa paz de espírito, mas a extensão de minhas habilidades administrativas está fazendo exploração de estilo de causa / efeito com configurações, e analisando através de logs para ver "oh, é assim que eles nos fenderam". / p>

Esse contexto definido, se eu fosse configurar uma conta com um VPS baseado em linux para hospedagem na web Apache

  1. Quais etapas eu daria para proteger a máquina?

  2. Quais pacotes de monitoramento adicionais podem / devo instalar?

por Alan Storm 30.09.2009 / 22:20

3 respostas

2

Isso é o que eu geralmente faço:

  • Instale um bom firewall. A filtragem de saída é tão importante quanto o ingresso. Se alguém conseguir colocar um segurança do IRC no seu VPS, seria bom se não pudesse falar com o mundo exterior. O APF é bastante decente para isso e é fácil de configurar.
  • Instale mod_security rapidamente. Você pode obter algumas regras realmente abrangentes que são atualizadas com bastante frequência dos caras em Gotroot . Disclaimer, um deles é um amigo meu.
  • Configure o PHP com o suexec, certifique-se de que seus scripts PHP sejam executados como o usuário que os possui. Além disso, configure o PHP apenas com o que você precisa.
  • Não enfraqueça a configuração do PHP apenas para executar algum script que você encontrar. Em outras palavras, não ative o register_globals apenas para que um carrinho de compras antiquado funcione.
  • Servidores syslog remotos sempre são bons. Talvez obtenha dois servidores VPS, use um para armazenar backups e manipular o registro.
  • Execute verificações diárias de rootkits . Execute o primeiro imediatamente depois de configurar seu servidor, antes de colocá-lo em produção. Estes funcionam armazenando hashes de executáveis do sistema e detectando quando as coisas mudam, bem como procurando assinaturas de explorações comuns.
  • Se em um VPS, onde o host controla o seu kernel, insista que eles o mantenham atualizado. Por exemplo, uma fraqueza no vmsplice linux permitia que usuários comuns facilmente se tornassem root. Certifique-se de que o seu prestador se empenhe em assuntos fora do seu controle.
  • Faça alguns amigos em vários fóruns relacionados a hospedagem, pesquise-os assim como SF para respostas e dicas. Esse tipo de pergunta é bastante comum nesses fóruns.

Estes são adicionais aos itens que outros sugeriram. Existem muitas ferramentas mais avançadas, como snort - eu recomendo que você olhe para elas. No entanto, esta lista de verificação deve ser boa para você entrar em um VPS.

    
por 01.10.2009 / 03:22
2

Passo 1: Atualize seu software enquanto os patches são lançados. Se os patches não saírem regularmente para os projetos que você usa, é hora de encontrar alternativas para isso.

Passo 2: Log externo. Os invasores podem comprometer uma máquina com PHP, mas se você exportar os logs pela rede para um servidor mais strong, será muito mais difícil cobrir as trilhas.

Etapa 3: Login seguro do SSH. Execute o SSH em uma porta não padrão. Exigir senhas strongs ou até mesmo restringir logins para chaves SSH. Instale o fail2ban ou alguma outra ferramenta de detecção de força bruta para evitar ficar sobrecarregado. Desabilite o acesso root se a sua distro for parva o suficiente para permitir isso.

Passo 4: Atualize seu software. Vale a pena repetir. PHP é notoriamente ruim, e hospedagem compartilhada pode torná-lo uma pita maciça para atualizar, enraizando mau comportamento. Projetos como coisas do pacote Debian que você pode encontrar no PEAR e atualizar. Inscrever-se para listas de discussão e agendar o tempo diariamente ou semanalmente para corrigir o patch.

Etapa 5: Backups . Quando você é hackeado, é mais seguro restaurar de um bom sistema conhecido. Os backups incrementais podem ajudá-lo com isso.

Existem vários pacotes de Detecção de Intrusão, como snort, aide e acidbase. Há também ferramentas pentesting como nessus / openvas.

Também gosto de direcionar uma ferramenta de tempo de atividade simples em VPSs para documentar interrupções no caso de um reembolso ser necessário.

    
por 30.09.2009 / 23:00
0

O jldugger oferece muitas ótimas idéias - eu adicionaria a isso que você provavelmente vai querer olhar no mod_security do apache assim como no suexec. Mod_security vem com um monte de filtros pré-fabricados que inspecionam chamadas http para o seu servidor e os rejeitam se ele vir algo suspeito. O Suexec permite que você execute scripts php / perl / etc como o usuário que os possui, ao contrário de todos serem executados sob o usuário www-data.

    
por 01.10.2009 / 03:02