Web-hakemistojen suojaaminen salasanalla Apachessa .htaccess-tiedoston avulla


Kun hallitset online-projekteja, sinun on usein rajoitettava pääsyä kyseiseen projektiin suojataksesi sitä ulkomaailmalta. Tähän voi olla useita syitä – esimerkiksi haluat estää hakukoneiden indeksointirobotteja pääsemästä sivustollesi, kun se on vielä kehitysvaiheessa.

Tässä opetusohjelmassa näytän sinulle, kuinka eri Web-sivustojen hakemistoja voidaan suojata salasanalla Apache-verkkopalvelimessa. Voit saavuttaa tämän monilla tavoilla, mutta tarkastelemme niistä kahta yleisimmin käytettyä.

Ensimmäinen tapa määrittää salasanasuojauksen suoraan Apachen määritystiedostoon, kun taas toinen tapa käyttää .htaccess-tiedostoa.

Vaatimukset

Jotta voit määrittää salasanasuojauksen verkkohakemistoillesi, sinulla on oltava:

  • Toimiva Apache-verkkopalvelin
  • AllowOverride AuthConfig-komento on otettava käyttöön Apache-määritystiedostossa.

Asenna Apachen salasanasuojattu hakemisto

1. Tätä opetusohjelmaa varten suojaamme verkkojuurihakemiston /var/www/html. Suojaa hakemisto avaamalla Apachen asetukset:

---------------- On RedHat/CentOS based systems ----------------
vi /etc/httpd/conf/httpd.conf

---------------- On Debian/Ubuntu based systems ----------------
nano /etc/apache2/sites-available/000-default.conf

2. Etsi Apache Document -hakemiston juurihakemisto /var/www/html ja lisää seuraavat asiat ehdotetulla tavalla:

Apache 2.2 -versiossa

<Directory /var/www/html> 
Options Indexes Includes FollowSymLinks MultiViews 
AllowOverride All
Order allow,deny
Allow from all 
</Directory>

Apache 2.4 -versiossa

<Directory /var/www/html> 
Options Indexes Includes FollowSymLinks MultiViews 
AllowOverride All 
Require all granted 
</Directory>

3. Tallenna tiedosto ja käynnistä Apache uudelleen käyttämällä seuraavaa komentoa:

--------------- On Systemd -------------------
systemctl restart httpd         [On RedHat based systems]
systemctl restart apache2       [On Debian based systems]


--------------- On SysV init -----------------
service httpd restart           [On RedHat based systems]
service apache2 restart         [On Debian based systems]

4. Nyt käytämme htpasswd-komentoa käyttäjänimen ja salasanan luomiseen suojattuun hakemistoomme. Tätä komentoa käytetään käyttäjien tiedostojen hallintaan perustodennusta varten.

Komennon yleinen syntaksi on:

htpasswd -c filename username

Vaihtoehto -c määrittää tiedoston, joka säilyttää salatun salasanan, ja käyttäjänimi määrittää todennuksen käyttäjän.

5. Salasanatiedostomme on sijaittava Apachen verkkohakemiston ulkopuolella, jotta se on hyvin suojattu. Tätä tarkoitusta varten luomme uuden hakemiston:

mkdir /home/tecmint

6. Tämän jälkeen luomme käyttäjätunnuksemme ja salasanamme, jotka tallennetaan kyseiseen hakemistoon:

htpasswd -c /home/tecmint/webpass tecmint

Kun suoritat tämän komennon, sinun on annettava salasana uudelle käyttäjällemme "tecmint" kahdesti:

Tämän jälkeen meidän on varmistettava, että Apache pystyy lukemaan webpass-tiedoston. Tätä tarkoitusta varten sinun on vaihdettava tiedoston omistajuus seuraavalla komennolla:

---------------- On RedHat/CentOS based systems ----------------
chown apache: /home/tecmint/webpass
chmod 640 /home/tecmint/webpass
---------------- On Debian/Ubuntu based systems ----------------
chown www-data /home/tecmint/webpass
chmod 640 /home/tecmint/webpass

7. Tässä vaiheessa uusi käyttäjämme ja salasanamme ovat valmiina. Nyt meidän on kehotettava Apachea pyytämään salasanaa, kun käytät kohdennettua hakemistoamme. Luo tätä tarkoitusta varten tiedosto nimeltä .htaccess hakemistoon /var/www/html:

vi /var/www/html/.htaccess

Lisää siihen seuraava koodi:

AuthType Basic
AuthName "Restricted Access"
AuthUserFile /home/tecmint/webpass
Require user tecmint

8. Tallenna nyt tiedosto ja testaa asetukset. Avaa selaimesi ja kirjoita IP-osoitteesi tai verkkotunnuksesi verkkoselaimeen, esimerkiksi:

http://ip-address

Sinulta tulee kysyä käyttäjätunnusta ja salasanaa:

Anna käyttäjätunnus ja salasana, jotka määritit jatkaaksesi sivullesi.

Lisämerkinnät

Jos käytät jaettua isännöintiä, sinulla ei todennäköisesti ole pääsyä Apache-määritystiedostoon. Useimmat hosting-yritykset ovat kuitenkin ottaneet käyttöön "AllowOverride All" -vaihtoehdon oletuksena. Tämä tarkoittaa, että sinun tarvitsee vain luoda käyttäjätunnus ja salasana ja valita sitten hakemisto, jonka haluat suojata. Tämä helpottaa huomattavasti tehtävääsi.

Johtopäätös

Toivon, että tämä opetusohjelma oli sinulle hyödyllinen ja auttoi sinua saavuttamaan tavoitteesi. Jos sinulla on kysyttävää tai kommentteja, älä epäröi lähettää ne alla olevaan osioon.