Segurança: Alterando a página padrão exibida pelo NginX no IP do servidor

Visualizando 1 post (de 1 do total)
  • Autor
    Posts
  • #11284
    Luis FatorBinario
    Administrador

    Em nosso tutorial de instalação do ISPConfig configuramos o NginX como Servidor Web para servir as páginas dos vários domínios que podemos adicionar no VPS.

    A página exibida quando acessamos o servidor pelo número IP mostrará uma mensagem de boas vindas do NginX, sendo que, se deixarmos essa página padrão ativa, ela servirá somente para sabermos que o servidor web está online.

    Podemos desativá-la, fazendo isso evitamos ataques DDoS ao IP do VPS. Vejam um caso recente: Num dos servidores que configurei a empresa estava sofrendo ataques DDoS no servidor de páginas, aquilo parecia improvável pois eles só tinham um único website que usa a CloudFlare configurada contra ataques DDoS. Após fazer algumas leituras de log descobri que o problema era o endereço IP do servidor, que por padrão, responde às requisições de navegação.

    Veja como desativar o endereço:

    * Os arquivos e configurações abaixo referem-se à instalação com ISPConfig 3 usando vHosts no Debian 7 conforme nosso tutorial.

    Edite o arquivo: /etc/nginx/sites-available/default

    Comente as linhas: 24, 25 e 33 (comentar é colocar um sinal de # na frente das linhas)

    Na linha 28 altere o valor de server_name de “localhost” para “_” (underline). E adicione ainda uma linha com return 444 logo abaixo, desta maneira:

    server_name _;
    return  444;

     

    O bloco todo deve ficar assim (negritei onde alterar):

    server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;
    
        # root /usr/share/nginx/html;
        # index index.html index.htm;
    
        # Make site accessible from http://localhost/
        server_name _;
        return 444;
    
        location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            # try_files $uri $uri/ =404;
            # Uncomment to enable naxsi on this location
            # include /etc/nginx/naxsi.rules;
        }
    
        #error_page 404 /404.html;
    
        # redirect server error pages to the static page /50x.html
        #
        #error_page 500 502 503 504 /50x.html;
        #location = /50x.html {
            # root /usr/share/nginx/html;
        #}
    
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
            # fastcgi_split_path_info ^(.+\.php)(/.+)$;
            # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
            #
            # # With php5-cgi alone:
            # fastcgi_pass 127.0.0.1:9000;
            # # With php5-fpm:
            # fastcgi_pass unix:/var/run/php5-fpm.sock;
            # fastcgi_index index.php;
            # include fastcgi_params;
        #}
    
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
            # deny all;
        #}
    }

    O que fizemos acima foi desligar as tentativas de leitura de páginas pelo endereço IP e adicionamos uma linha “return 444” que é um código especial usado pelo NginX. O status 444 diz ao servidor NginX para não retornar informação alguma além de fechar a conexão com o computador cliente imediatamente. É muito útil contra qualquer tipo de ataque.

    Para as alterações terem efeito execute os seguintes comandos no terminal SSH:

    > /etc/init.d/php5-fpm restart

    > /etc/init.d/nginx restart

    Após fazer isso, ao tentar acessar o IP pelo navegador novamente, veremos o erro:

    Nenhum dado foi recebido
    ERR_EMPTY_RESPONSE
    
    Não é possível carregar a página da web porque o servidor não enviou os dados.

     

    Acessando o site por IP (para usuários experientes). *Faça backup dos arquivos antes de tentar isso:

    Note que a dica acima foi para bloquear acessos de navegação direta ao IP desativando completamente a página. Mas poderíamos usar a mesma dica para acessar nosso website quando digitarmos o número IP, para isso adicione o site normalmente pelo painel do ISPConfig colocando as diretivas para o WordPress na caixa do NginX em “Opções” do site. Então copie o conteúdo do arquivo vHost do site para dentro do arquivo “default” mantendo as linhas “listen” com “default server”. Reinicie os serviços e o seu site poderá ser acessado via IP. Mas lembre-se que se você tiver mais de um website no VPS teria que mudar o conteúdo do arquivo default conforme o site a acessar.

    * Alterando o arquivo default para responder a um site específico pelo número IP, ou desativando-o completamente, não influencia no acesso ao painel do ISPConfig que usa a porta 8080 para acesso e nem a do phpMyAdmin ou Squirrelmail que acessam pelo IP na porta 8081.

     

Visualizando 1 post (de 1 do total)
  • Você deve fazer login para responder a este tópico.

©2014-2024 Fator Binário - Todos os direitos reservados

Fazer login com suas credenciais

Esqueceu sua senha?