Bloqueia o Nginx para todos, exceto o IP do escritório

1

É possível configurar o nginx para que TODOS os sites sejam acessíveis somente a partir do endereço IP do escritório?

Este é um servidor de desenvolvimento que, em alguns sites (muitos para bloquear um por um) acidentalmente tem algumas visualizações e atividades ativas e eu quero bloquear o acesso de todos exceto as pessoas no escritório que vêm do IP do escritório.

Existe alguma maneira para isso?

    
por ddrjm 05.06.2015 / 20:17

4 respostas

2

Por que precisa de firewall? As diretivas allow/deny podem ser usadas não apenas em location seções, mas também na seção http .

http {
  allow 192.168.1.10; # office ip
  deny all;

  server {
    server_name acme1.com;
    # ...
  }

  server {
    server_name acme2.com;
    # ...
  }

}
    
por 08.06.2015 / 12:19
1

Soa mais como um trabalho para um firewall. Supondo que você esteja executando o Linux, você pode usar o iptables.

iptables -A INPUT -p tcp --src source_address --dport destination_port -j ACCEPT
iptables -A INPUT -p tcp --dport destination_port -j DROP
    
por 05.06.2015 / 20:47
0

Eu usaria o iptables para bloquear a porta 80 para todos os IPs, exceto seu escritório.

    
por 05.06.2015 / 20:36
0

Como mencionado, iptables é uma opção.

Como alternativa, você pode usar o Nginx ngx_http_access_module para restringir o acesso.

Por exemplo, supondo que a rede do seu escritório seja 192.168.1.0/24 :

location / {
    allow 192.168.1.0/24; # Office network
    deny  all;
    ...
    ...
}

Ou

location / {
    allow 192.168.1.10; # James
    allow 192.168.1.11; # John
    deny  all;
    ...
    ...
}

Observação: usando essa abordagem, os usuários com IPs não permitidos receberão um 403 , não um "site inacessível".

link

    
por 06.06.2015 / 01:58

Tags