Apache'de .htaccess Dosyasını Kullanarak Web Dizinlerini Parolayla Koruma


Çevrimiçi projeleri yönetirken, genellikle o projeyi dış dünyaya karşı korumak için projeye erişimi sınırlamanız gerekir. Bunun farklı nedenleri olabilir; örneğin, siteniz henüz geliştirme aşamasındayken arama motoru tarayıcılarının sitenize erişmesini engellemek istiyorsunuz.

Bu eğitimde, Apache web sunucusundaki farklı web sitesi dizinlerini nasıl şifre korumalı hale getireceğinizi göstereceğim. Bunu başarmanın birçok yolu vardır ancak bunlardan en sık kullanılan ikisini inceleyeceğiz.

İlk yöntem, şifre korumasını doğrudan Apache'nin yapılandırma dosyasında yapılandırırken, ikincisi .htaccess dosyasını kullanır.

Gereksinimler

Web dizinleriniz için şifre koruması ayarlamak için aşağıdakilere sahip olmanız gerekir:

  • Çalışan bir Apache web sunucusu
  • Apache yapılandırma dosyasında AllowOverride AuthConfig yönergesinin etkinleştirilmesi gerekir.

Apache Parola Korumalı Dizinin Kurulumu

1. Bu eğitim için ana web kök dizinini /var/www/html koruyacağız. Bu dizini korumak için Apache'nizin yapılandırmasını açın:

---------------- 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. /var/www/html için Apache Belgesi dizini kökünü bulun ve önerildiği şekilde aşağıdakileri ekleyin:

Apache 2.2 Sürümünde

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

Apache 2.4 Sürümünde

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

3. Dosyayı kaydedin ve aşağıdaki komutu kullanarak Apache'yi yeniden başlatın:

--------------- 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. Şimdi korumalı dizinimiz için kullanıcı adı ve şifre oluşturmak amacıyla htpasswd komutunu kullanacağız. Bu komut, temel kimlik doğrulama amacıyla kullanıcı dosyalarını yönetmek için kullanılır.

Komutun genel sözdizimi şöyledir:

htpasswd -c filename username

-c seçeneği, şifrelenmiş parolayı saklayacak dosyayı belirtir ve kullanıcı adı, kimlik doğrulama için kullanıcıyı belirtir.

5. İyi bir şekilde korunabilmesi için şifre dosyamızın Apache'nin web'den erişilebilir dizininin dışında bulunması gerekir. Bu amaçla yeni bir dizin oluşturacağız:

mkdir /home/tecmint

6. Bundan sonra bu dizinde saklanacak kullanıcı adımızı ve şifremizi oluşturacağız:

htpasswd -c /home/tecmint/webpass tecmint

Bu komutu çalıştırdığınızda, yeni kullanıcımız "tecmint" için şifreyi iki kez girmeniz gerekecektir:

Bundan sonra Apache'nin “webpass” dosyasını okuyabildiğinden emin olmamız gerekecek. Bu amaçla, o dosyanın sahipliğini aşağıdaki komutla değiştirmeniz gerekecektir:

---------------- 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. Bu noktada yeni kullanıcı adımız ve şifremiz hazır. Şimdi Apache'ye hedef dizine erişirken şifre istemesini söylememiz gerekiyor. Bu amaçla /var/www/html'de .htaccess adında bir dosya oluşturun:

vi /var/www/html/.htaccess

İçine aşağıdaki kodu ekleyin:

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

8. Şimdi dosyayı kaydedin ve kurulumunuzu test edin. Tarayıcınızı açın ve web tarayıcısına IP adresinizi veya alan adınızı girin, örneğin:

http://ip-address

Kullanıcı adınızı ve şifrenizi girmeniz istenecektir:

Sayfanıza ilerlemek için belirlediğiniz kullanıcı adını ve şifreyi girin.

ek Notlar

Paylaşımlı barındırma kullanıyorsanız büyük olasılıkla Apache yapılandırma dosyasına erişiminiz olmayacaktır. Ancak çoğu barındırma şirketi varsayılan olarak "Tümünü Geçersiz Kıl'a İzin Ver" seçeneğini etkinleştirmiştir. Bu, yalnızca kullanıcı adını ve şifreyi oluşturmanız ve ardından korumak istediğiniz dizini seçmeniz gerekeceği anlamına gelir. Bu, görevinizi önemli ölçüde kolaylaştırır.

Çözüm

Umarım bu öğreticiyi faydalı bulmuşsunuzdur ve hedefinize ulaşmanıza yardımcı olmuştur. Herhangi bir sorunuz veya yorumunuz varsa, lütfen bunları aşağıdaki bölüme göndermekten çekinmeyin.