Perl ile CGI Programlama

 

 

WEB SAYFALARINA ŞİFRELİ ERİŞİM


Apache web sunucularında şifreli web erişimi için, Apache'nin /etc/httpd/conf klasörü altında yer alan httpd.conf dosyasında (Apache 1.3.x'ten önceki sürümlerde access.conf) bazı değişiklikler yapmak gerekir. 

Şimdi bunları adım adım açıklayalım.

1. Adım:

İlk önce httpd.conf dosyası içinde,

<Directory />
...
</Dirctory>

yazan satırlar arasında AllowOverride diye başlayan bir satır olmalı. Muhtemelen o satır, None değerini almıştır. None yerine AuthConfig yazıyoruz.

NOT: AllowOverride seçeneği, normal httpd.conf ile belirtilen kuralların nerede ve hangi tipte lokal olanı ile çiğnenebileceğini göstermek amacıyla verilen bir anahtar ayar kelimedir.

2. Adım: 

Şifre koymak istediğimiz klasöre gidip, .htaccess isimli bir dosya oluşturalım. Örneğin;

cd /home/adem/dergi
joe .htaccess

3. Adım:

Aşağıdaki satırları .htaccess'in içine yazalım:

deny form all
AuthType Basic
AuthUserFile /home/adem/webusers
AuthName "Aboneler"
require valid-user
satisfy any

Buradakileri de kısaca açıklayacak olursak,

  • deny from all : İlk kural olarak herkesi "geri çevir". Burada dikkat edilmesi gereken şey, kuralların hiyerarşik bir düzen izliyor olması. Yani bir alttaki kural, üsttekinde bir istisnai durum oluşturuyor...
  • AuthType Basic: Bu, Apache’nin standart kullanıcı adı/şifre sorması ve bunlara, text bir dosya içerisinden ulaşması için gereken doğrulama (onaylama) tipi ....
  • AuthUserFile ...... : Kullanıcı adları ve encrypt edilmiş parolaların bulunduğu dosya ...
  • AuthName: Şifreli alanin ismi, "kullanıcı adı/parola" ekranında çıkacak mesaj ...
  • require valid-user : Yukarıdaki deny from all kuralında bu satır ile bir gedik açıyoruz. Eğer kullanıcı doğrulanabilirse, içeri alınacak, demektir.
  • satisfy any : Asıl içeri kabul etme işlemi ise burada yapılıyor, eğer birden fazla içeri almak için kriterimiz varsa, bunlar burada sıralanabilir... Örneğin : satisfy valid-user gibi....

4. Adım:

Şimdi şifre dosyasını oluşturalım: Bunun için, Apache ile birlikte gelen htpasswd programını kullanarak, yukarıdaki .htaccess dosyasında belirttiğimiz yer ile aynı yerde bulunan bir şifre dosyası oluşturuyoruz. 

Örneğin : Ekleyeceğimiz kullanıcının ismi emre olsun...

htpasswd -c /home/adem/webusers emre

Bu komuttan sonra, size emre kullanıcısı için şifre sorulacaktır. Şifreyi girince dosyanız tamamdır.

UYARI 1 : "-c " parametresi, dosyayı ilk kez oluştururken kullanılır. Eğer sonradan bir kullanıcı eklemek isteseniz, komutu "-c" olmadan vermelisiniz.

UYARI 2 : Parola dosyanız web'den erişilemeyecek ve sistemdeki diğer yetkisiz kullanıcıların erişemeyecekleri bir yerde bulunmalıdır. Tersi bir durumda, dosyalarınızın ele geçirilip, şifrelerin çözülmesi ihtimali vardır.

5. Adım:

Buraya kadar access.conf dosyasını düzenledik. Son olarak, yeni ayarların etkin olması için Apache'yi yeniden başlatmak gerekir (root yetkisi ile). Web sunucunuzu, komut satırından aşağıdaki komutu girerek kolayca yeniden başlatabilirsiniz:

./etc/rc.d/init.d/httpd restart

Artık şifreli web alanımız hazır... 


Konu 00