Apache HTTP Sunucusu Sürüm 2.4
htpasswd - Temel kimlik doğrulama dosyalarını yönetir
htpasswd
, HTTP kullanıcılarının temel
kimlik doğrulaması için kullanıcı isimlerinin ve parolalarının
saklanmasında kullanılacak düz metin dosyalarını oluşturmak ve güncellemek
için kullanılır. htpasswd
, güncelleme
sırasında yazmak veya okumak için bir dosyaya erişemezse beklenen hiçbir
işlemi yapmaz ve hata vererek çıkar.
Apache HTTP sunucusunun mevcut özkaynaklarının kullanımı
sadece htpasswd
tarafından oluşturulan
dosyalarda listelenmiş kullanıcılara tahsis edilebilir.
htpasswd
sadece düz metin dosyalarda
saklanmış kullanıcı isimlerini ve parolalarını yönetirse de, diğer veri
saklama türleri için parolayı şifreleyip gösterebilir. Bir DBM veritabanı
kullanmak isterseniz dbmmanage
ve
htdbm
sayfasına bakınız.
htpasswd
, parolaları şifrelemek için
bcrypt, Apache'nin kendine özgü MD5 algoritması, SHA1 ya da sistemin
crypt()
yordamını kullanır. Bu bakımdan
htpasswd
tarafından yönetilen dosyalar farklı
algoritmalarla şifrelenmiş parolalar içerebilir.
Bu kılavuz sayfası sadece komut satırı değiştirgelerini listeler.
Kullanıcı kimlik doğrulamasını
httpd
'de yapılandırmak için gerekli
yönergelerle ilgili ayrıntılar için Apache dağıtımının bir parçası olan
ve http://httpd.apache.org/
adresinde de bulunan Apache HTTP Sunucusu Belgelerine bakınız.
Kullanım
htpasswd
[ -c ]
[ -i ]
[ -m |
-B |
-d |
-s |
-p ]
[ -C bedel ]
[ -D ]
[ -v ] parola-dosyası kullanıcı
htpasswd -b
[ -c ]
[ -m |
-B |
-d |
-s |
-p ]
[ -C bedel ]
[ -D ]
[ -v ] parola-dosyası kullanıcı
parola
htpasswd -n
[ -i ]
[ -m |
-B |
-d |
-s |
-p ]
[ -C bedel ] kullanıcı
htpasswd -nb
[ -m |
-B |
-d |
-s |
-p ]
[ -C bedel ] kullanıcı
parola
Seçenekler
-b
- Betik kipi; parola için istek yapmak yerine parola komut satırından
verilir. Parola komut satırında görünür olacağından çok
dikkatli kullanmak gerekir. Betik kullanımı için
-i
seçeneğine bakınız. 2.4.4 ve sonraki sürümler içindir. -i
- Parolayı doğrulamaksızın standart girdiden okur (betik kullanımı için).
-c
parola-dosyası
oluşturur. Dosya mevcutsa, dosya silinip yeniden yazılır. Bu seçenek-n
seçeneği ile birlikte kullanılamaz.-n
- Sonuçları veritabanında güncellemek yerine standart çıktıya gönderir.
Bu seçenek, Apache'nin metin veriler içermeyen veri depolarına dahil
edilebilecek parolaları üretmekte yararlıdır.
parola-dosyası
belirtilmediğinden, bu seçenek komut satırı sözdizimini değiştirir. Bu seçenek-c
seçeneği ile birlikte kullanılamaz. -m
- Parolalar için MD5 şifrelemesi kullanılır. Bu 2.2.18 sürümünden beri öntanımlıdır.
-B
- Parolalar için bcrypt şifrelemesi kullanılır. Şu an için çok güvenli kabul edilmektedir.
-C bedel
- Bu seçenek sadece
-B
(bcrypt şifrelemesi) seçeneği ile birlikte kullanılabilir. Bcrypt algoritmasına hesaplama süresini belirtir (daha yüksek değerler daha güvenlidir, öntanımlı 5, geçerli değerler: 4 - 31). -d
- Parolaları şifrelemek için
crypt()
kullanılır.htpasswd
tarafından tüm platformlarda destekleniyor olsa da Windows, Netware ve TPF üzerindehttpd
sunucusu tarafından desteklenmez. Bu algoritma günümüz standartlarında güvenilmez kabul edilmektedir. 2.2.17 sürümüne kadar öntanımlı algoritma olarak kullanılmıştı. -s
- Parolalar için SHA şifrelemesi kullanılır. LDAP Dizin değişim biçemini (ldif) kullanarak Netscape sunucularına/sunucularından göçü kolaylaştırır.Bu algoritma günümüz standartlarında güvenilmez kabul edilmektedir.
-p
- Düz metin parolalar kullanılır.
htpasswd
tarafından tüm platformlarda destekleniyor olsa da Windows, Netware ve TPF üzerindehttpd
sunucusu tarafından sadece düz metin parolalar kabul edilir. -D
- Kullanıcıyı siler. Kullanıcı belirtilen dosyada mevcutsa silinir.
-v
- Parolayı doğrular. Verilen parolayı belitilen htpasswd dosyasında saklanan kullanıcı parolası ile karşılaştırarak doğrulama yapar. 2.4.5 ve sonraki sürümler içindir.
parola-dosyası
- Kullanıcı ismini ve parolasını içeren dosyanın ismi.
-c
seçeneği verilmişse ve dosya mevcut değilse oluşturulur, dosya mevcutsa silinip yeniden oluşturulur. kullanıcı
parola-dosyası
'nda oluşturulacak veya güncellenecek kullanıcı ismi.kullanıcı
bu dosyada mevcut değilse yeni bir girdi eklenir. Girdi mevcutsa parolası değiştirilir.parola
- Şifrelenip dosyada saklanacak düz metin parola. Sadece
-b
seçeneği ile kullanılır.
Çıkış Durumu
htpasswd
, kullanıcı ismi ve parolasını DBM
dosyasına başarıyla eklemiş veya güncellemişse 0
, dosyalara
erişirken bir sorun çıkmışsa 1
, komut satırında bir
sözdizimi hatası varsa 2
, parola etkileşimli alınmış fakat
girdi ile eşleşme sağlanamamışsa 3
, işlem kesintiye
uğramışsa 4
, bir değer çok uzunsa 5
(kullanıcı,
parola, dosya ismi veya açıklama), kullanıcı ismi kuraldışı karakter
içeriyorsa (Kısıtlamalar bölümüne bakınız)
6
ve dosya geçerli bir DBM parola dosyası değilse
7
değeriyle döner.
Örnekler
htpasswd /usr/local/etc/apache/.htpasswd-users jsmith
jsmith
kullanıcısı için parolayı ekler veya değiştirir.
Parolayı vermesi için kullanıcıya parola isteği yapılır.
Parola takviyeli Apache MD5 algoritması ile şifrelenir. Dosya mevcut
değilse htpasswd
beklenen hiçbir işlemi
yapmadan bir hata vererek çıkar.
htpasswd -c /home/doe/public_html/.htpasswd jane
Yeni bir dosya oluşturur ve kullanıcı jane
için kaydı bir
girdi olarak bu dosyaya yazar. Dosya mevcutsa fakat okunamıyor veya
yazılamıyorsa dosyada bir değişiklik yapılmaz ve
htpasswd
bir ileti gösterip bir hata durumu
ile çıkar.
htpasswd -db /usr/web/.htpasswd-all jones Pwd4Steve
Komut satırından verilen parolayı (Pwd4Steve
) crypt()
algoritmasıyla şifreler ve bunu belirtilen dosyada saklar.
Güvenlik Değerlendirmeleri
htpasswd
tarafından yönetilen parola
dosyalarına sunucunun URI uzayından erişilememelidir; yani dosya bir
tarayıcı ile okunabilecek bir yerde bulunmamalıdır.
Bu program bir setuid çalıştırılabiliri olarak güvenilir olmadığından setuid yapılmamalıdır.
Komut satırında parolanın şifrelenmemiş olarak görünmesi sebebiyle
-b
seçeneğinin kullanımından kaçınılmasını
öneriyoruz.
crypt()
algoritması kullanılırken, parolayı
şekillendirmek için parolanın ilk 8 baytının kullanılacağına dikkat
ediniz. Eğer parola 8 bayttan uzunsa kalanlar bir uyarı verilmeksizin
iptal edilir.
SHA şifreleme biçeminde tuz kullanılmaz; yani, bir parolanın
sadece bir şifreli gösterimi olabilir. crypt()
ve
MD5 biçemleri parolanın önüne rasgele üretilmiş bir tuz dizgesi
eklediklerinden sözlük saldırılarına karşı daha dayanıklıdırlar.
SHA ve crypt()
biçimleri günümüz standartlarında
güvenilmez kabul edilmektedir.
Kısıtlamalar
Windows platformuda, htpasswd
ile şifrelenen parolalar 255
karakterden daha uzun olamaz.
255 karakterden sonrası kırpılır.
htpasswd
tarafından kullanılan MD5
algoritması Apache yazılımına özeldir; bu algoritma ile şifrelenen
parolalar başka HTTP sunucularında kullanılamayabilir.
Kullanıcı isimleri 255
bayttan uzun olamaz ve iki nokta
imi (:
) içeremez.