NFCGHomeBlogAcerca do BlogContactoEntrar
  • Home
  • Blog
  • Acerca do Blog
  • Contacto

Nuno F.C. Guerreiro Blog

NFCG-Blog
  • Página Inicial
  • Categorias
  • Arquivos
  • Últimos comentários
  • « Como obter o número de dias de um determinado mês em php
  • Como Verificar se uma Porta está Aberta em um Sistema Operativo Linux »

Como configurar autenticação HTTP básica no Nginx

Posted by nfcg on Dez 16, 2019 in Linux, Linux Centos, Linux Debian Ubuntu, Servidor Web, Servidor Web Nginx

Os ficheiros num servidor Web estão acessíveis ao público por padrão. Se pretende proteger ficheiros contra acesso não autorizado, pode usar a autenticação básica HTTP. Um método simples de autenticação, em que os utilizadores precisam fornecer nome de utilizador e password para aceder a ficheiros no servidor.

Neste artigo, aprenderemos a utilizar a autenticação básica no Nginx.


Pré-requisitos

Obviamente, devera ter uma cópia do nginx no sistema antes de poder configurá-lo. Deve tambem instalar o htpasswd do Apache para gerar senhas com hash.

Num sistema Debian/Ubuntu, pode instalá-lo com o seguinte comando:
sudo apt install apache2-utils

Ou no CentOS, pode instalá-lo com o seguinte comando:
sudo yum install httpd-tools

Criar o ficheiro htpasswd

O ficheiro htpasswd contém uma lista de nomes de utilizadores e passwords. O Nginx o utiliza este para verificar as credenciais de utilizadores que pretendam aceder a áreas protegidas do site.

Primeiro, crie um ficheiro vazio com o nome htpasswd com o seguinte comando:
sudo touch /etc/nginx/htpasswd

Agora, pode adicionar nomes de utilizador e passwords a este ficheiro com o comando htpasswd. Por exemplo, se pretende adicionar o utilizador nuno ao ficheiro, execute o seguinte comando:
sudo htpasswd /etc/nginx/htpasswd nuno

Será solicitado a digitar a senha duas vezes.

Posteriormente, se pretender alterar uma password existente, basta executar o comando novamente. Da mesma forma, pode adicionar outros utilizadores ao ficheiro executando o comando acima com um nome de utilizador diferente.

Se pretende apagar um utilizador do ficheiro, utilize a opção -D com o seguinte comando:
sudo htpasswd -D /etc/nginx/htpasswd nuno


Na próxima secção, configuraremos o nginx a utilizar este ficheiro para restringir acesso.


Configurar o nginx

Agora, abra o ficheiro de configuração do site com um editor como o nano. Se utlizar o Debian ou Ubuntu, a configuração do site está em /etc/nginx/sites-available/default:
sudo nano /etc/nginx/sites-available/default

Se utiliza outra distribuição Linux, a configuração estará em /etc/nginx/nginx.conf:
sudo nano /etc/nginx/nginx.conf

Nos dois casos, localize o bloco do servidor. Depois, adicione um bloco de localização para o caminho que deseja proteger. Dentro deste bloco, deve definir o nome da localização e o caminho para o ficheiro htpasswd. No exemplo abaixo, restringimos o acesso a todos os ficheiros em "arquivos".

server {
location /arquivos {
auth_basic "Restrito";
auth_basic_user_file /etc/nginx/htpasswd;
}
}

Guarde o ficheiro e feche o editor. Em seguida, para efetivar as alterações, deve recarregar a configuração do nginx com o seguinte comando:
sudo systemctl reload nginx

Ou se utilizar uma distribuição mais antiga, que não utilize o systemd, execute o seguinte comando:
sudo service nginx reload

Agora ao utilizar um navegador web para aceder qualquer ficheiro em /arquivos, o navegador solicitará um nome de utilizador e password:

Se pretender proteger outro caminho, basta adicionar outro bloco de localização com o mesmo conteúdo:

location /fotos {
# ...
}


Conclusão

Neste artigo, aprendemos sobre autenticação básica HTTP e como utilizar esse recurso do nginx. Ele fornece uma maneira simples de impedir acesso a ficheiros num servidor Nginx.

Tags: centosdebianlinuxnginxubuntu

Procurar

Categorias

  • Todas
  • Linux
    • Linux Centos
    • Linux Debian Ubuntu
  • Programação
    • php
  • Sem Categoria
  • Servidor Web
    • Servidor Web Apache
    • Servidor Web Nginx
  • Welcome

Posts Recentes

  • Como obter o número de dias de um determinado mês em php
  • Como configurar autenticação HTTP básica no Nginx
  • Como Verificar se uma Porta está Aberta em um Sistema Operativo Linux
  • Como verificar a versão do seu Sistema Operativo Linux.
  • Exemplos Simples GoAccess
  • Euro Milhões API

©2021 by Nuno F.C. Guerreiro • Contacto • Ajuda

Cookies are required to enable core site functionality.