GNU/Linux >> Znalost Linux >  >> Linux

Jak omezit přístup k adresáři a podadresářům na Nginx

Dobrý den, přátelé. V tomto příspěvku budeme pokračovat s některými triky pro Nginx. Dnes se tedy dozvíte, jak omezit přístup k adresáři a podadresáři v Nginx. Jdeme na to.

Za prvé, měli bychom to udělat?

Krátká odpověď je ANO. Rozhodně. Protože v aplikaci nebo na webu existuje mnoho složek, které obsahují citlivé soubory, aby mohla fungovat.

Vzhledem k výše uvedenému je vhodné stanovit pravidla pro zákaz přístupu do těchto složek a zlepšit tak zabezpečení webu.

Tato omezení lze použít podle IP adresy, což nám umožňuje flexibilně použít konfigurace, které potřebujeme.

Je to bez námahy. Jdeme na to.

Předpoklady

Než budeme pokračovat, musíme se ujistit, že splňujeme požadavky na bezproblémové dokončení příspěvku

  • Musíte mít nainstalovaný a nakonfigurovaný Nginx. Ujistěte se tedy, že jej máte pomocí oficiálních repozitářů vaší distribuce Linuxu.
  • Verze Nginx musí být vyšší než 1.9.5. Neměli byste mít problém ji mít, protože většina distribucí obsahuje nejnovější verze.
  • Mějte základní znalosti o používání terminálu.
  • Uživatel s přístupem sudo nebo root.

Jdeme na to.

Jak omezit přístup k adresáři a podadresářům v Nginx

Je normální, že na serveru je několik bloků serveru. Pokud však chcete konfiguraci použít globálně nebo nemáte žádnou vytvořenou, musíte upravit /etc/nginx/nginx.conf – Jinak musíte upravit konfigurační soubor každého bloku serveru. Například,

sudo nano /etc/nginx/sites-enabled/domain.conf

Pro tento příspěvek budu pracovat se složkou nazvanou data v kořenovém adresáři webu. Relativní cesta by tedy byla /data .

Direktiva Nginx, která provádí odepření přístupu, je Deny ale musíme to specifikovat ve skriptu odkazujícím na adresář.

Pokud chcete omezit přístup k tomuto adresáři, musíte jej zahrnout do konfiguračního souboru

location /data {
   ...
      deny all;
         ...
}

Můžete také omezit přístup na konkrétní IP adresu. Například:

location /data {
   ...
   deny 192.168.2.5;
   ...
}

Pokud existuje více IP adres, můžete je zadat takto

location /data {
   ...
   deny 192.168.2.5;
   deny 192.168.2.9;
   ...
}

Můžete také použít rozsahy IP adres

location /data {
   ...
   Deny 192.168.1.0/24;
   ...
}

Uložte změny a zavřete editor. Chcete-li použít změny, restartujte Nginx.

sudo systemctl restart nginx

A máte hotovo.

Adresář chráněný heslem v Nginx

Další užitečnou možností je přidání hesla. Tato metoda je velmi bezpečná a také vám dává větší kontrolu nad tím, kdo k ní může přistupovat.

Chcete-li to provést, nainstalujte apache2-utils balíček na Debianu, Ubuntu a derivátech; a httpd-tools na RHEL, Rocky Linux a deriváty.

Poté vytvořte soubor, ve kterém bude umístěno heslo, následovaný uživatelem. Například:

sudo htpasswd -c /home/username/.htpasswd user

Když jej spustíte, budete vyzváni k zadání nového hesla pro uživatele.

Upravujeme konfigurační soubor Nginx nebo ServerBlocks

sudo nano /etc/nginx/sites-enabled/domain.conf

A přidejte něco takového

location /data {
auth_basic "Restricted";
auth_basic_user_file /home/username/.htpasswd;
}

Uložte změny, zavřete editor a restartujte Nginx.

sudo systemctl restart nginx

Nyní, když budete chtít přistupovat ke složce, budete vyzváni k zadání hesla.

Závěr

V tomto krátkém a jednoduchém příspěvku jsme vysvětlili něco tak důležitého, jako je omezení přístupu ke složkám na našem webovém serveru.

Dokumentace Nginx


Linux
  1. Jak spočítat počet souborů a podadresářů v daném adresáři

  2. Jak grepovat řetězec v adresáři a všech jeho podadresářích?

  3. Jak stáhnout celý adresář a podadresáře pomocí wget?

  1. Jak zjistit počet souborů v adresáři a podadresářích

  2. Jak získat přístup k phpMyAdmin a phpPgAdmin v cPanel

  3. Jak získat přístup k souborovým systémům Linux ve Windows 10 a WSL 2

  1. Jak nainstalovat a nakonfigurovat Nginx na CentOS 7

  2. Jak odstranit adresář a složku v Linuxu?

  3. Jak nakonfigurovat Kibana 4 a elasticsearch za nginx?