Protegendo um servidor LAMP + Virtualmin recém-instalado

2

Acabei de instalar o LAMP e o Virtualmin na minha instância do Amazon EC2. Meu nome de domínio é mapeado para o IP externo e agora tudo está funcionando bem. Mas sinto que não é muito seguro. Quando visito meu IP externo, ele mostra apenas a mesma página do meu domínio. Eu deveria esconder isso? E quando eu vou para mydomain.com/phpmyadmin, a página do php não roda e é baixada para o meu computador.

    
por webnat0 25.01.2011 / 01:44

3 respostas

4

When I visit my external IP, it just shows the same page as my domain. Am I supposed to hide it?

Por que você quer esconder? O IP e seu site são informações públicas. Não há segurança a ser obtida ao tentar esconder qualquer um deles.

And when I go to mydomain.com/phpmyadmin, the php page doesn't run and it's downloaded to my computer.

Como você instalou o phpmyadmin?

Esse problema indica que os scripts php não estão configurados para serem executados nesse servidor virtual.

Se você instalou usando o apt-get, não seria esperado que ele trabalhasse em uma configuração padrão Virtualmin (apesar de você receber um erro 501 ao invés de baixar o arquivo), porque o Virtualmin configura o suexec para todos os servidores virtuais. O Suexec é um recurso de segurança que faz com que os scripts sejam executados como o proprietário da conta do servidor virtual, em vez do usuário do Apache. O pacote phpmyadmin do Debian / Ubuntu apt repositories é executado dentro da raiz do documento padrão, e precisaria ser executado como o usuário do apache. Então, você precisará desativar o suexec para o servidor virtual no qual deseja executá-lo, configurar um servidor virtual especificamente para essa instalação do phpmyadmin que tenha o suexec desativado ou instalar o phpmyadmin no diretório public_html do servidor virtual que você deseja que ele seja executado e pertencente a esse usuário. O Suexec irá não executar aplicativos que não são de propriedade do dono do domínio ou fora do suexec docroot (e seu phpmyadmin é supostamente de propriedade do usuário do apache e fora do suexec docroot).

Mas, o seu problema específico é que os scripts php não estão sendo executados no local onde o phpmyadmin está instalado.

Quanto à segurança, há três coisas que são as fontes mais comuns de servidores explorados no mundo, e não estão relacionadas a nenhuma das suas perguntas:

  1. Sempre atualize o software. Virtualmin mostrará pacotes que estão desatualizados, assumindo que você usou nosso script de instalação para configurar, e você usa pacotes para tudo. Se você não usou o script de instalação, deverá instalar o módulo webmin-security-updates. A maioria dos sistemas explorados acontece porque ele possui um velho software explorável. Aplicativos da Web podem ser um pouco mais difíceis de manter atualizados, já que eles geralmente não vêm de pacotes do sistema, então você provavelmente precisará ficar de olho neles manualmente.
  2. Use senhas strongs. Uma senha strong é aquela com números, letras e possivelmente caracteres especiais. Tem 8 ou mais caracteres de comprimento. É alterado pelo menos uma ou duas vezes por ano.
  3. Não execute serviços desnecessários. Examine sua lista de processos e seus aplicativos de inicialização e verifique se você sabe o que todos eles fazem e, se não precisar, desligue-os. Se você não sabe o que faz, o Google faz.

Essas três coisas sozinhas impediriam 99% dos sistemas explorados que eu vi em meus 15 anos de administração do sistema. Não se distraia com o teatro de segurança até que você tenha conseguido essas três coisas e as tenha feito parte de sua rotina diária de administrador de sistemas. Depois disso, você pode se preocupar com o que quiser sobre outras coisas (mas provavelmente não fará muita diferença na segurança do seu servidor se preocupar com um monte de outras coisas).

    
por 25.01.2011 / 21:44
2

Edite o php.ini master para proteger alguns valores (por exemplo, no meu virtualmin disable_functions estava vazio por padrão), você pode até mesmo negar as edições do php.ini se você realmente quer segurança e seus usuários poderiam viver isso.

Se você não tiver nenhuma necessidade especial de e-mails, desative completamente os e-mails e use o google apps. Antes de fazer essa alteração, considere a limitação (por exemplo, link )

Como citado aqui - Como posso evitar que o Virtualmin armazene senhas em texto não criptografado? - agora é possível usar senhas hash, considere isso.

Por favor, dê uma olhada na pergunta Segurança do Servidor Dedicado Centos

Basta usar o google para obter boas abordagens de segurança normais (por exemplo, negar acesso ssh à raiz remota)

    
por 22.11.2011 / 03:00
2

Para o problema do phpmyadmin, ele pode não estar instalado corretamente. O servidor solicita que você faça o download do código, se ele não estiver configurado para executá-lo. Você precisa verificar sua configuração, ou pode tentar reinstalar o phpmyadmin.

Para proteger seu servidor da Web como o apache, você pode fazer o seguinte:

  1. Impede a listagem de diretórios e exibe uma mensagem de erro quando não há página de índice.
  2. Impedir o acesso a alguns tipos de arquivos. Você pode permitir o acesso apenas a arquivos PHP e impedir o acesso a modelos HTML.
  3. Limite o tamanho dos dados de upload usando algo como mod segurança do apache.
  4. Limite o acesso a alguns recursos para alguns IPs.
  5. Limite o acesso a alguns recursos com base na autenticação de nome de usuário / senha.
  6. Ative o SSL para alguns recursos, se você tiver um certificado válido.

Deveria haver mais coisas para verificar / fazer.

    
por 25.01.2011 / 07:21