Cuma, Ağustos 18, 2006

Active Directory Linux Entegrasyonu

AD Ayarlanması
Öncelikle bir Windows 2000/2003 sunucu üzerinde AD kurulması gerekir. AD kurulum aşamaları bağlantıda anlatılmıştır.

Linux Sunucu Ayarlaması

# yum install samba samba-common samba-client pam_smb krb5-libs krb5-workstation pam_krb5 krb5-server ntp

Alan Adı(DNS) Ayarları
/etc/resolv.conf dosyasında
nameserver AD_SUNUCU_IP

/etc/hosts dosyasında
IP_ADRESI LINUX_SUNUCU_ADI
IP_ADRESI AD_SUNUCU_ADI

Saat Ayarlanması
/etc/ntp.conf dosyasında;
server AD_IP_ADRESI

ayarı yapılır.

Kerberos Ayarlanması
[libdefaults]
default_realm = TEST.COM.TR
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes

[realms]

TEST.COM.TR = {
kdc = SUNUCU_ADI.test.com.tr:88
admin_server = SUNUCU_ADI.test.com.tr:749
default_domain = test.com.tr kdc = IP_ADRESI }

[domain_realm]

.kamusm.gov.tr = TEST.COM.TR
kamusm.gov.tr = TEST.COM.TR

Kerberos ayarları yapıldıktan sonra test etmek amacı ile;
# kinit administrator
Password for administrator@TEST.COM.TR

Samba Ayarlanması
[global]
workgroup = ADGROUP
security = ADS
realm = TEST.COM.TR
winbind separator = +
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
auth methods = winbind ...
# the share we will use to test it, make sure path is
# valid and writeable

[testpaylasimi]

comment = Test Share using Active Directory
read only = no
path = /tmp/test
valid users = @"ADGROUP+domain users"

Linux Sunucunun AD'ye Eklemek

# kinit administrator
Password for administrator@TEST.COM.TR
#net ads join
Using short domain name -- ADGROUP
Joined 'LINUX_SUNUCU_ADI' to realm 'TEST.COM.TR'

Winbind Ayarlanması
/etc/nsswitch.conf dosyasında
passwd: winbind files
shadow: winbind files
group: winbind files

# wbinfo -u

# wbinfo -g

# getent passwd
guest:*:10003:10008:Guest:/home/TEST/guest:/bin/bash
administrator:*:10004:10006:Administrator:/home/TEST/administrator:/bin/bash
...

# getent group
Domain Computers:*:10002:
Domain Controllers:*:10003:
Schema Admins:*:10004:yerelyon
Enterprise Admins:*:10005:yerelyon
Domain Admins:*:10006:yerelyon
Domain Users:*:10007:
Domain Guests:*:10008:
Group Policy Creator Owners:*:10009:yerelyon
DnsUpdateProxy:*:10010:
BUILTIN+administrators:*:10000:yerelyon
BUILTIN+users:*:10001:
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
...

Authconfig Fonksiyonu
Authconfig fonksiyonu ile kullanıcı bilgilerin nereden alınacağını ve yetkilendirmenin nereden yapılacağını belirler.

# authconfig-tui
User Information
[ ] Cache Information
[ ] Use Hesiod
[ ] Use LDAP
[ ] Use NIS
[*] Use

Winbind Authentication
[*] Use MD5 Passwords
[*] Use Shadow Passwords
[ ] Use LDAP Authentication
[ ] Use Kerberos
[ ] Use SMB Authentication
[*] Use Winbind Authentication
[ ] Local authorization is sufficient

Test
# kinit AD_KULLANICISI
Password for AD_KULLANICISI@TEST.COM.TR
# smbclient //LINUX_SUNUCU_ADI/testpaylasimi -k
smb: \> quit

yada
# ssh -l AD_KULLANICISI LINUX_SUNUCU_ADI
$

Linux Üzerinde Güvenlik Tanımlama

Domain üzerinde yer alan tüm kullanıcıların linux sunucuya SSH erişimini engellemek istersek /etc/ssh/sshd_config dosyasında

DenyGroups YASAKLI_GRUP1 YASAKLI_GRUP2 ...
DenyUsers YASAKLI_KULLANICI1 YASAKLI_KULLANICI2 ...

tanımlarını yapabiliriz. Aynı şekilde bu kullanıcıların konsol üzerinden erişimini kısıtlamak için /etc/security/access.conf dosyasında;

-:ALL EXCEPT root KULLANICI1 KULLANICI2:tty1

satırı ekleyebiliriz. Ayrıca bu değişikliğin etkin olabilmesi için de, /etc/pam.d/login dosyasına ;

account required pam_access.so

satırı eklenmeli.