Şimdi de nss'yi yapılandıralım.
#nano /etc/nsswitch.conf
passwd: compat ldap
group: compat ldap
shadow: compat ldap
Buraya "ldap" kelimelerini yazdık.
Test etmek için:
#getent passwd
...
[sistem kullanıcıları]
...
mustafa:yGBMuI4R4N8..:1001:1:mustafa:/home/mustafa:
oldu galiba:)
Son satır LDAP'dan geldi.
Hepsi bu.
Bir de ftp ile bağlanalım. Şimdilik /home/mustafa dizinini elle açıyoruz. İlerde onu da pam'a yaptırıcaz:
#mkdir /home/mustafa
#chmod 755 /home/mustafa
#ncftp -u mustafa 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 "mustafa".
Please specify the password.
Password: ******
Login successful.
Logged in to localhost.
ncftp /home/mustafa >
Mükemmel. Aslında bir haftadır buna çalışıyorum ve bu blog girdilerine başlarken bunun olacağını ummuyordum. Hatta yukarıya "şimdi de nssyi yapılandıralım" derken bile:) nss ile ilgili bir ayar da yapmadım ama pam ile nss bir şekilde anlaştı ve kullanıcının ev dizini bilgisi ldap'dan vsftpye kadar ulaştı. Bütün bunlar 5dk önce oldu :)
Bundan sonra yapılacaklar:
Güvenlik için: İletişimin ssl ile yapılması, parolaların şifreli olması
ldap kullanıcısının ilk girişinde ev dizinini oluşturulması (pam_mkhomedir.so ile).
Sistem kullanıcılarının ldap'a aktarılması (apt-get install migrationtools)
Bunlar nispeten daha kolay işler.
Salı, Temmuz 15, 2008
Debian, egroupware, ldap, vsftp, pam, nss falan fıstık - yazı dizisi - 4
Şimdi vsftp kimlik doğrulama işini pam'e yaptıralım. pam de kullanıcı kimlikleri için ldap'a da baksın ki ldap kullanıcıları ftp'ye bağlanabilsin. Sonra da sistem kullanıcılarını ldap'a nasıl aktarırız ona bakalım.
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
nın düz şifrelenmiş tutulması güvenlik için daha iyi olur. Ayrıca ssl de açılmalı.
Ş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.
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.
Debian, egroupware, ldap, vsftp, pam, nss falan fıstık - yazı dizisi - 3
Gelelim fasulyenin faydalarına:)
Şunu da yazmam lazımdır ki burada yazılanlar hatalı olabilir ve kendi sisteminizde denediğinizde sisteminizi çalışmaz hale getirebilir. Use at your own risk.
Önce kurulum:
ftp sunucu için vsftpd,
yetenekli ftp istemci için ncftp,
ssh sunucu için openssh-server
#apt-get install vsftpd
#apt-get install ncftp
#apt-get install openssh-server
vsftp2'nin anonymous dışındaki bağlantılara izin vermesi için /etc/vsftp.conf dosyasında local_enable=YES satırındaki #'i kaldırıp vsftpyi yeniden başlatıyoruz.
#nano /etc/vsftp.conf
#/etc/init.d/vsftpd restart
Kurulumları test edelim:
#ncftp -u kemal localhost
Login successful.
Logged in to localhost.
#ssh -l kemal localhost
bu da successful
Şimdi ldapla ilgili kurulumlar.
ldap sunucu için slapd - OpenLDAP server (slapd),
web'den ldap'ı yönetmek için: apache2, php5, phpldapadmin
ldap komutları ... için ldapscripts
#apt-get install apache2
#apt-get install php5
#apt-get install phpldapadmin
#apt-get install slapd
#apt-get install ldapscripts
Sorun yok. http://localhost/phpldapadmin/ adresine baktığımızda şöyle bir görüntü olmalı:
Malesef base entry eklemeden, /etc/ldap/slapd.conf ve /etc/ldap/ldap.conf dosyalarını düzenlemeden henüz login olamıyoruz. Ayrıca daha sonra ssl kullanarak güvenliği arttırmalıyız.
Daha ayrıntılı bilgi için http://www.openldap.org/doc/admin23/quickstart.html
#nano /etc/ldap/slapd.conf
suffix "dc=nodomain"
rootdn "cn=admin,dc=nodomain"
rootpw'yi de daha sonra şifreli tutmak gerekicek.
base entry eklemek için önce bir ldif dosyası oluşturuyoruz:
# nano base.ldif
dn: dc=nodomain
objectclass: dcObject
objectclass: organization
o: Ev
dc: nodomain
dn: cn=admin,dc=nodomain
objectclass: organizationalRole
cn: admin
#ldapadd -x -D "cn=admin,dc=nodomain" -W -f base.ldif
komutuyla oluşturduğumuz kök düğümü ldap'a aktardık. base.ldif dosyasında satırların başındaki boşlukları silmeden hata veriyor.
Test için
ldapsearch -x -b 'dc=example,dc=com' '(objectclass=*)'
# extended LDIF
#
# LDAPv3
# base with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# nodomain
dn: dc=nodomain
objectClass: top
objectClass: dcObject
objectClass: organization
o: nodomain
dc: nodomain
# admin, nodomain
dn: cn=admin,dc=nodomain
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2
Artık phpldapadmin ile webdeb login olabileceğimi düşünürken hata alıyorum. Daha önce de aynı problemi yaşamıştım ve birkaç saat aramayla çözmüştüm. Keşke o zaman bu blog girdisini yazsaymışım diyorum ama neyseki fazla aramadan bulabildim bu sefer.
#nano /etc/phpldapadmin/config.php
burada
$ldapservers->SetValue($i,'login','attr','dn');
yerine
$ldapservers->SetValue($i,'login','attr','cn');
yapıyoruz. Tamam artık login ekranını görelim:
Şunu da yazmam lazımdır ki burada yazılanlar hatalı olabilir ve kendi sisteminizde denediğinizde sisteminizi çalışmaz hale getirebilir. Use at your own risk.
Önce kurulum:
ftp sunucu için vsftpd,
yetenekli ftp istemci için ncftp,
ssh sunucu için openssh-server
#apt-get install vsftpd
#apt-get install ncftp
#apt-get install openssh-server
vsftp2'nin anonymous dışındaki bağlantılara izin vermesi için /etc/vsftp.conf dosyasında local_enable=YES satırındaki #'i kaldırıp vsftpyi yeniden başlatıyoruz.
#nano /etc/vsftp.conf
#/etc/init.d/vsftpd restart
Kurulumları test edelim:
#ncftp -u kemal localhost
Login successful.
Logged in to localhost.
#ssh -l kemal localhost
bu da successful
Şimdi ldapla ilgili kurulumlar.
ldap sunucu için slapd - OpenLDAP server (slapd),
web'den ldap'ı yönetmek için: apache2, php5, phpldapadmin
ldap komutları ... için ldapscripts
#apt-get install apache2
#apt-get install php5
#apt-get install phpldapadmin
#apt-get install slapd
#apt-get install ldapscripts
Sorun yok. http://localhost/phpldapadmin/ adresine baktığımızda şöyle bir görüntü olmalı:
Malesef base entry eklemeden, /etc/ldap/slapd.conf ve /etc/ldap/ldap.conf dosyalarını düzenlemeden henüz login olamıyoruz. Ayrıca daha sonra ssl kullanarak güvenliği arttırmalıyız.Daha ayrıntılı bilgi için http://www.openldap.org/doc/admin23/quickstart.html
#nano /etc/ldap/slapd.conf
- database bdb
suffix "dc=
rootdn "cn=Manager,dc=
rootpw secret
directory /usr/local/var/openldap-data
suffix "dc=nodomain"
rootdn "cn=admin,dc=nodomain"
rootpw'yi de daha sonra şifreli tutmak gerekicek.
base entry eklemek için önce bir ldif dosyası oluşturuyoruz:
# nano base.ldif
dn: dc=nodomain
objectclass: dcObject
objectclass: organization
o: Ev
dc: nodomain
dn: cn=admin,dc=nodomain
objectclass: organizationalRole
cn: admin
#ldapadd -x -D "cn=admin,dc=nodomain" -W -f base.ldif
komutuyla oluşturduğumuz kök düğümü ldap'a aktardık. base.ldif dosyasında satırların başındaki boşlukları silmeden hata veriyor.
Test için
ldapsearch -x -b 'dc=example,dc=com' '(objectclass=*)'
# extended LDIF
#
# LDAPv3
# base
# filter: (objectclass=*)
# requesting: ALL
#
# nodomain
dn: dc=nodomain
objectClass: top
objectClass: dcObject
objectClass: organization
o: nodomain
dc: nodomain
# admin, nodomain
dn: cn=admin,dc=nodomain
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2
Artık phpldapadmin ile webdeb login olabileceğimi düşünürken hata alıyorum. Daha önce de aynı problemi yaşamıştım ve birkaç saat aramayla çözmüştüm. Keşke o zaman bu blog girdisini yazsaymışım diyorum ama neyseki fazla aramadan bulabildim bu sefer.
#nano /etc/phpldapadmin/config.php
burada
$ldapservers->SetValue($i,'login','attr','dn');
yerine
$ldapservers->SetValue($i,'login','attr','cn');
yapıyoruz. Tamam artık login ekranını görelim:
Debian, egroupware, ldap, vsftp, pam, nss falan fıstık - yazı dizisi - 2
Ara vermeden yazı dizisinin bu 2. kısmında web tarayıcımız için flash ve java eklentilerini yükleyelim.
saat 01:16
Önce java:
java.sun.com'dan jdk'yı indiriyoruz.
Yaklaşık 15dk sürdü.
#mv Desktop/jdk-6u10-beta-linux-i586.bin /usr/local
#cd /usr/local
#chmod 755 jdk-6u10-beta-linux-i586.bin
#./jdk-6u10-beta-linux-i586.bin
/usr/local/jdk1.6.0_10 dizini oluştu. iceweasel eklentisini sembolik bağlayalım.
ln -s /usr/local/jdk1.6.0_10/jre/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/iceweasel/plugins
http://www.java.com/en/download/help/testvm.xml sayfasından test ediyoruz ve çalışıyor.
Benzer şekilde flash için:
http://www.adobe.com/products/flashplayer/
Bu 2 dk'da indi.
# mv ~kemal/Desktop/install_flash_player_9_linux.tar.gz /usr/local
#cd /usr/local
#tar xvfz install_flash_player_9_linux.tar.gz
#ln -s /usr/local/install_flash_player_9_linux/libflashplayer.so /usr/lib/iceweasel/plugins
Enerjimizin ve vaktimizin önemli kısmını temel kurulumlara harcadıktan sonra artık egroupware,ldap vs mevzulara geçebiliriz.
saat 01:42
saat 01:16
Önce java:
java.sun.com'dan jdk'yı indiriyoruz.
Yaklaşık 15dk sürdü.
#mv Desktop/jdk-6u10-beta-linux-i586.bin /usr/local
#cd /usr/local
#chmod 755 jdk-6u10-beta-linux-i586.bin
#./jdk-6u10-beta-linux-i586.bin
/usr/local/jdk1.6.0_10 dizini oluştu. iceweasel eklentisini sembolik bağlayalım.
ln -s /usr/local/jdk1.6.0_10/jre/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/iceweasel/plugins
http://www.java.com/en/download/help/testvm.xml sayfasından test ediyoruz ve çalışıyor.
Benzer şekilde flash için:
http://www.adobe.com/products/flashplayer/
Bu 2 dk'da indi.
# mv ~kemal/Desktop/install_flash_player_9_linux.tar.gz /usr/local
#cd /usr/local
#tar xvfz install_flash_player_9_linux.tar.gz
#ln -s /usr/local/install_flash_player_9_linux/libflashplayer.so /usr/lib/iceweasel/plugins
Enerjimizin ve vaktimizin önemli kısmını temel kurulumlara harcadıktan sonra artık egroupware,ldap vs mevzulara geçebiliriz.
saat 01:42
Kaydol:
Kayıtlar (Atom)