Weboldal keresés

Hogyan lehet jelszóval védeni a webes könyvtárakat az Nginxben


A webprojektek vezetőinek gyakran meg kell védeniük munkájukat így vagy úgy. Az emberek gyakran kérdezik, hogyan védhetik jelszóval webhelyüket, amíg az még fejlesztés alatt áll.

Ebben az oktatóanyagban egy egyszerű, de hatékony technikát mutatunk be, hogyan lehet jelszóval védett webcímtárat használni az Nginx webszerverként való futtatásakor.

Abban az esetben, ha Apache webszervert használ, tekintse meg útmutatónkat a webcímtárak jelszavas védelméről:

  1. Jelszóvédett webkönyvtárak az Apache-ban

Követelmények

Az oktatóanyag lépéseinek végrehajtásához a következőkre lesz szüksége:

  • Nginx webszerver telepítve
  • Root hozzáférés a szerverhez

1. lépés: Felhasználó és jelszó létrehozása

1. Webkönyvtárunk jelszavas védelme érdekében létre kell hoznunk azt a fájlt, amely tartalmazza a titkosított felhasználónevünket és jelszavunkat.

Az Apache használatakor használhatja a „htpasswd” segédprogramot. Ha ez a segédprogram telepítve van a rendszerén, akkor ezzel a paranccsal hozhatja létre a jelszófájlt:

htpasswd -c /path/to/file/.htpasswd username

A parancs futtatásakor a rendszer felkéri, hogy állítson be egy jelszót a fenti felhasználóhoz, és ezután létrejön a .htpasswd fájl a megadott könyvtárban.

2. Ha nincs telepítve az eszköz, manuálisan is létrehozhatja a .htpasswd fájlt. A fájlnak a következő szintaxissal kell rendelkeznie:

username:encrypted-password:comment

A használni kívánt felhasználónév Öntől függ, válassza ki, amit szeretne.

A fontosabb rész az, hogy hogyan generálja a jelszót az adott felhasználó számára.

2. lépés: Hozzon létre titkosított jelszót

3. A jelszó generálásához használja a Perl integrált „crypt” funkcióját.

Íme egy példa erre a parancsra:

perl -le 'print crypt("your-password", "salt-hash")'

Egy valós példa:

perl -le 'print crypt("#12Dfsaa$fa", "1xzcq")'

Most nyisson meg egy fájlt, és írja be a felhasználónevét és a generált szöveget pontosvesszővel elválasztva.

Íme, hogyan:

vi /home/tecmint/.htpasswd

Adja meg felhasználónevét és jelszavát. Az én esetemben így néz ki:

tecmint:1xV2Rdw7Q6MK.

Mentse a fájlt az „Esc”, majd a „:wq” lenyomásával.

3. lépés: Frissítse az Nginx konfigurációját

4. Most nyissa meg és szerkessze az Nginx konfigurációs fájlt, amely ahhoz a webhelyhez van társítva, amelyen dolgozik. A mi esetünkben az alapértelmezett fájlt fogjuk használni:

vi /etc/nginx/conf.d/default.conf       [For CentOS based systems]
OR
vi /etc/nginx/nginx.conf                [For CentOS based systems]


vi /etc/nginx/sites-enabled/default     [For Debian based systems]

Példánkban jelszóval védjük az nginx könyvtár gyökerét, amely a következő: /usr/share/nginx/html.

5. Most adja hozzá a következő két soros részt a védeni kívánt útvonalhoz.

auth_basic "Administrator Login";
auth_basic_user_file /home/tecmint/.htpasswd;

Most mentse a fájlt, és indítsa újra az Nginx-et a következővel:

systemctl restart nginx
OR
service nginx restart

6. Most másolja/illessze be ezt az IP-címet a böngészőbe, és jelszót kell kérnie:

Ez az! A fő webcímtár most védett. Ha el szeretné távolítani a jelszavas védelmet a webhelyről, egyszerűen távolítsa el a két sort, amelyet most hozzáadott a .htpasswd fájlhoz, vagy használja a következő parancsot a hozzáadott felhasználó eltávolításához a jelszófájlból.

htpasswd -D /path/to/file/.htpasswd username