Proteja diretórios do Apache 2.4 com Senha & Restrinja o acesso por IP

Vamos aprender como adicionando senha à um diretório com Apache 2.4, e também restringi-lo à um endereço IP.

apachelogin

Primeiramente vamos gerar nosso arquivo de senha.
htpasswd -c arquivo usuário (-c criar arquivo)
Vamos supor que queira proteger o diretório /var/www/html, e restringir ainda o acesso apenas ao IPs 192.168.0.0/24 e 2001:db8::/32

# htpasswd -c /var/www/html/.htpasswd admin

Digite sua senha para o usuário admin

Agora existe duas maneiras, uma é criando um .htaccess ou editando seu /etc/apache2/sites-enabled/xxxxxxx.conf

Com .htaccess

# vim /var/www/html/.htaccess

Adicione

<RequireAll>
    <RequireAny>
        Require ip 192.168.0.0/24
        Require ip 2001:db8::/32
    </RequireAny>
    <RequireAll>
        Require valid-user
        AuthBasicProvider file
        AuthType Basic
        AuthName "Login"
        AuthUserFile /var/www/html/.htpasswd
    </RequireAll>
</RequireAll>

Ou no arquivo de configuração do seu apache

# vim /etc/apache2/sites-enabled/minha-conf-manual.conf 
<VirtualHost *:80>
   ServerAdmin webmaster@remontti.com.br
   DocumentRoot /var/www/html

   # Caso a pessoa que tiver acessando não tiver
   # permissões será redirecionada para uma pagina
   ErrorDocument 403 http://www.remontti.com.br

   <Directory /var/www/html/>
      Options FollowSymLinks
      AllowOverride All

      Require all denied
      <RequireAll>
         <RequireAny>
            Require ip 192.168.0.0/24
            Require ip 2001:db8::/32
         </RequireAny>
         <RequireAll>
            Require valid-user
            AuthBasicProvider file
            AuthType Basic
            AuthName "Login"
            AuthUserFile /var/www/html/.htpasswd
         </RequireAll>
      </RequireAll>

   </Directory>


ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Por segurança recomendo remover a assinatura do servidor, evitando os “espertinhos”

 # sed -i 's/ServerTokens OS/ServerTokens Prod/' /etc/apache2/conf-available/security.conf
 # sed -i 's/ServerSignature On/ServerSignature Off/' /etc/apache2/conf-available/security.conf
# /etc/init.d/apache2 restart

Agora ao acessar http://ip-server/ deverá aparecer uma tela de login, se você não estiver também com os usando os IPs permitidos, você vai receber uma pagina de Proibido ou se você configurou ErrorDocument 403 será redirecionado para página que “remontti.com.br” como no exemplo.

Gostou?

Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!

Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato clique aqui.

Abraço!

FONTE: https://httpd.apache.org/docs/2.4/howto/auth.html

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

9 Resultados

  1. Elcio disse:

    Valu pela dica, muito boa

  2. Guilherme disse:

    Oi Rudimar,

    Muito obrigado pela dica. Utilizei-a para bloquear acesso, ao MSN-Proxy.

  3. Mc Ralph disse:

    Boa tarde deu tudo certo agora com o apache2 esta editando o arquivo errado httpd.conf não tem nos meus diretorios so http.conf mais msm assim ainda nao pede a senha

  4. Mc Ralph disse:

    Boa tarde deu tudo certo agora com o apache2 esta editando o arquivo errado httpd.conf não tem nos meus diretorios so http.conf mais msm assim ainda nao pede

  5. Mc Ralph disse:

    Bom dia, eu schipt esta top d+

    fiz e refiz tudo nos conformes mais esta dando a seguinte erro na hora de restarta

    * Restarting web server apache2
    apache2: Syntax error on line 207of /etc/apache2/apache2.conf: Syntax error on line 13 of /etc/apache2/httpd.conf: Expected but saw

  1. 30 de abril de 2009

    […] Se você não possui o diretório /var/www/mrtg irá dar erro, então crie o mesmo, e por segurança proteja o seu diretório mrtg […]

  2. 6 de setembro de 2016

    […] Se você não possui o diretório /var/www/mrtg irá dar erro! Se está pensando em proteger o acesso com senha esse tuto por ser útil para você Protegendo diretórios com Apache. […]

  3. 13 de dezembro de 2021

    […] Por fim nosso host sistema, nesse vou ensinar como colocar uma senha do apache. No passado já tem um tutorial como proteger diretórios do apache de duas maneira, pelo arquivo de… […]

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *