8 votes

Bloquer Nginx pour tout le monde sauf l'IP du bureau

Est-il possible de configurer nginx de manière à ce que TOUS les sites web ne soient accessibles que depuis l'adresse IP du bureau ?

Il s'agit d'un serveur de développement qui, sur certains sites (trop nombreux pour être bloqués un par un), présente accidentellement des vues et des activités. Je veux bloquer l'accès de tout le monde, à l'exception des personnes du bureau, qui proviennent de l'IP du bureau.

Y a-t-il un moyen de le faire ?

14voto

cadmi Points 6598

Pourquoi faut-il un pare-feu ? allow/deny peuvent être utilisées non seulement dans location mais dans http également.

http {
  allow 192.168.1.10; # office ip
  deny all;

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

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

}

1voto

Ludo Points 119

Ça ressemble plus à un travail pour un pare-feu. En supposant que vous utilisez Linux, vous pourriez utiliser iptables.

iptables -A INPUT -p tcp --src source_address --dport destination_port -j ACCEPT
iptables -A INPUT -p tcp --dport destination_port -j DROP

0voto

Ubertone Points 1

J'utiliserais iptables pour bloquer le port 80 pour toutes les IP sauf celles de votre bureau.

0voto

krisFR Points 12580

Comme mentionné, iptables est une option.

Comme alternative, vous pouvez utiliser l'outil Nginx ngx_http_access_module pour restreindre l'accès.

Par exemple, si le réseau de votre bureau est 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;
    ...
    ...
}

Note : en utilisant cette approche, les utilisateurs dont l'IP n'est pas autorisée recevront un message d'erreur. 403 et non un "site inaccessible".

http://nginx.org/en/docs/http/ngx_http_access_module.html

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X