Ubuntu’da Apache htpasswd Kimlik Doğrulaması nasıl kurulur
Apache’nin htpasswd kimlik doğrulamasını kullanmak, web dizinlerinize temel erişim denetimi eklemenin basit bir yoludur ve kullanıcıların web sitenizin belirli bölümlerine erişmeden önce bir kullanıcı adı ve parola sağlamasını gerektirir. Bu tür kimlik doğrulama genellikle yönetici panelleri veya geliştirme siteleri gibi hassas alanlara erişimi kısıtlamak için kullanılır ve Apache çalıştıran bir Ubuntu sunucusunda kolayca kurulabilir.
Ön Koşullar
- Apache2 yüklü Ubuntu çalıştıran bir sunucu.
- Sunucuya root veya sudo erişimi.
- Komut satırını kullanma konusunda temel bir anlayış.
Adım 1: Apache’yi Kurun (Henüz Kurulu Değilse)
Eğer Ubuntu sunucunuzda Apache kurulu değilse aşağıdaki komut ile kurabilirsiniz:
sudo apt apache2’yi yükle
Adım 2: htpasswd Yardımcı Programını Etkinleştirin
Htpasswd yardımcı programı, genellikle Apache ile birlikte yüklenen apache2-utils paketi tarafından sağlanır. Eğer yüklü değilse, çalıştırarak yükleyebilirsiniz:
Bu komut, htpasswd kimlik doğrulaması için parola dosyalarını yönetmek üzere gerekli araçları yükler.
Adım 3: .htpasswd Dosyasını Oluşturun
.htpasswd dosyası, kimlik doğrulama için kullanıcı adlarını ve şifrelenmiş parolaları saklamak için kullanılır.
- Yeni bir .htpasswd Dosyası Oluşturun: Yeni bir .htpasswd dosyası oluşturmak ve bir kullanıcı eklemek için aşağıdaki komutu çalıştırın:sudo htpasswd -c /etc/apache2/.htpasswd your_username
Your_username yerine oluşturmak istediğiniz kullanıcı adını yazın.
- C seçeneği yeni bir .htpasswd dosyası oluşturur. Dosya zaten mevcutsa ve -c kullanırsanız, üzerine yazılacaktır, bu nedenle yalnızca dosyayı ilk kez oluştururken kullanın.
- Parolayı Girin ve Onaylayın:Komutu çalıştırdıktan sonra, kullanıcı için bir parola girmeniz ve onaylamanız istenecektir./etc/apache2/.htpasswd dosyası_kullanıcıadınız için şifrelenmiş parola ile oluşturulacaktır.
- Ek Kullanıcı Ekleme (İsteğe Bağlı):Mevcut .htpasswd dosyasının üzerine yazmadan daha fazla kullanıcı eklemek için çalıştırın:sudo htpasswd /etc/apache2/.htpasswd başka_kullanıcıadı
Another_username yerine yeni kullanıcı adını yazın. Bu komut yeni kullanıcıyı mevcut .htpasswd dosyasına ekler.
Adım 4: Apache’yi Parola Koruması için Yapılandırma
Hangi dizini veya konumu parola ile korumak istediğinizi belirtmeniz gerekir. Bu, bir .htaccess dosyası kullanılarak veya doğrudan Apache yapılandırma dosyası düzenlenerek yapılır.
Seçenek 1: .htaccess Dosyasını Kullanma
- .htaccess Dosyalarını Etkinleştirin: Parola korumasını ayarlamak için .htaccess dosyalarını kullanmak istiyorsanız, korumak istediğiniz dizin için AllowOverride yönergesinin All olarak ayarlandığından emin olun. Uygun Apache yapılandırma dosyasını düzenleyin (örneğin, /etc/apache2/sites-available/000-default.conf):sudo nano /etc/apache2/sites-available/000-default.conf
Web kökünüz için bölümünü bulun (örneğin, /var/www/html) ve AllowOverride öğesini All olarak ayarlayın:
AllowOverride Tümü - Apache’yi Yeniden Başlatın:Yapılandırmayı düzenledikten sonra, değişiklikleri uygulamak için Apache’yi yeniden başlatın:sudo systemctl apache2’yi yeniden başlat
- Bir .htaccess Dosyası Oluşturun:Korumak istediğiniz dizinin içinde (örneğin, /var/www/html), bir .htaccess dosyası oluşturun veya düzenleyin:sudo nano /var/www/html/.htaccess
- Aşağıdaki Yönergeleri Ekleyin:Aşağıdaki satırları .htaccess dosyasına ekleyin:AuthType Temel
AuthName “Kısıtlı İçerik”
AuthUserFile /etc/apache2/.htpasswd
Geçerli kullanıcı gerektir- AuthType Basic: Temel kimlik doğrulamayı belirtir.
- AuthName: Kimlik doğrulama isteminde gösterilecek bir mesaj.
- AuthUserFile: .htpasswd dosyanızın yolu.
- Require valid-user: .htpasswd dosyasında listelenen kullanıcılara erişimi kısıtlar.
- Dosyayı kaydedin ve kapatın.
Seçenek 2: Apache Yapılandırma Dosyasını Doğrudan Kullanma
Kimlik doğrulamayı .htaccess kullanmak yerine doğrudan Apache yapılandırma dosyalarından yönetmeyi tercih ediyorsanız aşağıdaki adımları izleyin:
- Sanal Ana Bilgisayar Yapılandırmasını Düzenleyin:Korumak istediğiniz sitenin Apache yapılandırma dosyasını açın (örneğin, /etc/apache2/sites-available/000-default.conf):sudo nano /etc/apache2/sites-available/000-default.conf
- Kimlik Doğrulama Yönergelerini Ekleyin: Korumak istediğiniz dizine karşılık gelen bloğunun veya bloğunun içine aşağıdakileri ekleyin:<Directory “/var/www/html”>
AuthType Temel
AuthName “Kısıtlı İçerik”
AuthUserFile /etc/apache2/.htpasswd
Geçerli kullanıcı gerektir - Yapılandırma dosyasını kaydedin ve kapatın.
- Apache’yi Yeniden Başlatın:Değişiklikleri yaptıktan sonra Apache’yi yeniden başlatın:sudo systemctl apache2’yi yeniden başlat
Adım 5: Kimlik Doğrulamayı Test Edin
Şimdi, web tarayıcınızı kullanarak korumalı dizinin URL’sine gidin (örneğin, http://your_server_ip_or_domain). Kullanıcı adı ve parola soran bir oturum açma istemi görmelisiniz.
- Htpasswd komutuyla oluşturduğunuz kullanıcı adı ve parolayı girin.
- Kimlik bilgileri doğruysa dizine erişim kazanırsınız; aksi takdirde erişiminiz reddedilir.
Adım 6: .htpasswd Dosyasının Güvenliğini Sağlama
Güvenlik nedeniyle, .htpasswd dosyasının web kökünün dışında saklandığından emin olun (örneğin, /etc/apache2/.htpasswd), böylece bir web tarayıcısı aracılığıyla doğrudan erişilemez.
.htpasswd dosyasının doğru izinlere sahip olduğundan emin olun:
sudo chown www-data:www-data /etc/apache2/.htpasswd
Bu, yalnızca Apache kullanıcısının (www-data) ve root’un .htpasswd dosyasını okuma erişimine sahip olmasını sağlar.
Sonuç
Apache’de htpasswd kimlik doğrulamasını kurmak, web sitenizdeki belirli dizinlere temel erişim denetimi eklemenin basit bir yoludur. Özellikle geliştirme veya dahili ortamlarda düşük seviyeli koruma için uygundur. Ancak, son derece hassas alanlar için OAuth gibi daha sağlam kimlik doğrulama yöntemleri kullanmayı veya bir kimlik yönetim sistemiyle entegre olmayı düşünün.