libpam-ldap kurulu değilse:
#apt-get install libpam-ldap
ldapscripts paketi kurulurken libpam-ldap paketi de kurulduğu için aslında buna gerek yok.
/etc/vsftpd.conf dosyasında
pam_service_name=vsftpd
olduğundan emin oluyoruz.
/etc/pam_ldap.conf dosyasını yapılandırıyoruz:
Burada değiştirdiğim satırlar:
host 127.0.0.1 //commenti kaldırdık
#uri ldap://127.0.0.1/ //comment koyduk
bindpw
pam_login_attribute uid
scope sub
Şimdi vsftp'nin kimlik doğrulama işini pam'e aktaralım:
#nano /etc/pam.d/vsftpd
Burada;
auth sufficient /lib/security/pam_ldap.so
account sufficient /lib/security/pam_ldap.so
password sufficient /lib/security/pam_ldap.so
auth required pam_warn.so
account required pam_warn.so
session required pam_warn.so
satırlarını ekliyoruz. Son üç satır hataları takip edebilmek için.
phpldapadmin ile "people" ismini verdiğimiz (başka isim de olur) bir OrganizationalUnit oluşturuyoruz. Tüm kullanıcılar bu düğümün altında bulunacak. Sonra denemek için mustafa isimli bir kullanıcı ekliyoruz. Kullanıcıyı "Custom" template'inden "account" ve "possixaccount" objectclass'larını seçerek ekliyoruz.
Test edelim:
#ncftp -u mustafa
NcFTP 3.2.0 (Aug 05, 2006) by Mike Gleason (http://www.NcFTP.com/contact/).
Connecting to 127.0.0.1...
(vsFTPd 2.0.5)
Logging in...
Password requested by 127.0.0.1 for user "mustafa".
Please specify the password.
Password: ******
Unexpected response: OOPS: cannot locate user entry:mustafa
OOPS: cannot locate user entry:mustafa
Evet hata verdi. Kullanıcının ev dizini bilgisini alamadığı için bir klasöre bağlayamadı. Fakat kimlik kanıtlamadan geçti. parolayı yanlış girdiğimizde veya ldap'da (veya sistemde) olmayan bir kullanıcı ile ftp yaptığımızda hata şöyle oluyor:
ncftp -u mehmet localhost
NcFTP 3.2.0 (Aug 05, 2006) by Mike Gleason (http://www.NcFTP.com/contact/).
Connecting to 127.0.0.1...
(vsFTPd 2.0.5)
Logging in...
Password requested by 127.0.0.1 for user "mehmet".
Please specify the password.
Password: ******
Login incorrect.
Could not open host localhost: username and/or password was not accepted for login.
Bunu vsftp kayıt dosyalarından da doğrulayabiliriz:
#tail /var/log/vsftpd.log
Tue Jul 15 03:53:57 2008 [pid 4943] CONNECT: Client "127.0.0.1"
Tue Jul 15 03:53:57 2008 [pid 4942] [mustafa] OK LOGIN: Client "127.0.0.1"
Tue Jul 15 03:54:06 2008 [pid 4947] CONNECT: Client "127.0.0.1"
Tue Jul 15 03:54:12 2008 [pid 4946] [mehmet] FAIL LOGIN: Client "127.0.0.1
Malesef pam servislere kimlik doğrulama dışında bilgi vermiyor. Ev dizini gibi bilgileri servislere sağlayabilmek için nss (Name Service Switch) kullanmak gerekecek.
Hiç yorum yok:
Yorum Gönder