Howto setup SUSE as SAMBA PDC with OpenLDAP, DYNDNS and CLAM
İçindekiler
Giriş
Bu, SUSE Linux Professional 9.3'te GNU/Linux sisteminin Samba, OpenLDAP, DHCP, DNS ve ClamAV ile kurulum ayarlarının nasıl yapılacağını gösteren, adım adım bir kılavuzdur. Ufak değişikliklerle, herhangi bir GNU/linux dağıtımında çalıştırabilmelisiniz.
SUSE Linux 10.1 hakkındaki yazı [[Howto setup SUSE 10.1 as Samba PDC]) 'tadır.
Bu Kurulumu Oluşturmak için Kullanılan Yazılıma Bakış
Dağıtım: SUSE 9.3 Professional
SUSE LINUX Profesyonel 9.3, kolay-yüklenebilir bir Linux işletim sistemi içerir. SUSE 9.3, Web evsahipliği, merkezi yazdırma ve medya iş istasyonlarını içeren sağlam ev ağlarını çalıştırmak için Samba, Apache, DNS ve DHCP gibi açık kaynak ağ özelliklerinin en son rürümlerini kullanır. Sunucu kurulumu ve yapılandırmasından yazılım güncellemeye kadar her şeyi hızlandırmak için özellikler ile, SUSE LINUX Profesyonel, bir perakende Linux paketi içine dahil edilmiş en kapsamlı araç kümesini barındırır. SUSE LINUX Profesyonel, Apache, DNS, DHCP, Samba, NFS, SLP ve NIS'in en yeni sürümleri ile birlikte gelir.
Arka Uç (Backend) Veritabanı: OpenLDAP 2.2.23-6
OpenLDAP Yazılımı, Lightweight Dizin Erişim Protokolü'nün açık kaynak uygulamasıdır.
Ad Çözümleme: Named(BIND) 9.3.1-3
Berkeley Internet Name Domain (Ad Alanı), daha önce Berkeley Internet Name Daemon (Ad Hayalet Programı), Internet'te, özellikle ön tanımlı standart olduğu Unix-gibi sistemlerde, en sık kullanılan DNS sunucusudur. BIND (BIND 9), bir bakıma daha önceki BIND kod tabanlarını denetlemede yaşanan mimari zorlukları gidermek ve aynı zamanda DNSSEC (DNS Güvenlik Uzantıları)'nı desteklemek için baştan yazılmıştır. BIND 9'un diğer önemli özellikleri: TSIG, DNS notify, nsupdate, IPv6, rndc flush, görünümler, çoklu işlemci desteği ve geliştirilmiş taşınabilirlik mimarisini içerir.
TCP/IP Ayarları Otomasyonu: DHCP-Server 3.0.2-6
DHCPD, istemci sistemlerinde TCP/IP bilgisini dinamik olarak ayarlamak için Linux'un kullandığı arka plan programıdır (daemon).
Virüs Önler Yazılım: Samba Vscan 0.3.5-37
Samba Vscan, erişim-bazında Samba virüs-önler sağlamak için Samba 2.2.x/3.0'ın VFS (sanal dosya sistemi) özelliklerini kullanan, Samba için bir kavram-kanıtı (proof-of-concept) modülüdür. Tabii, Samba'nın VFS desteği ile derlenmesi gerekmektedir.
Gerekli Yazılımı Yükleme
SUSE 9.3 Professional'ın çalışan bir kurulumuna sahip olduğunuzu varsayarak, bu eğitselin ,sizin açınızdan işe yaraması için bazı paketleri yüklemeniz gerekecektir.
Samba Paketini Yükleme
Önce, Samba hizmetinin hangi paketlerinin yüklü olduğunu öğrenmelisiniz, eğer paketlerin listesi aşağıdakinden farklıysa, paketleri, elle veya YaST ile tek tek yükleyin:
zendo:~ # rpm -qa | grep samba samba-client-3.0.12-5 samba-doc-3.0.12-5 samba-3.0.12-5 samba-pdb-3.0.12-5 samba-winbind-3.0.12-5 yast2-samba-client-2.11.5-3 yast2-samba-server-2.11.14-3 samba-vscan-0.3.5-37
Bu kurulum için gereken eksik paketleri yüklemek için YaST veya RPM komutunu kullanın:
YaST yöntemi (Paket sürümüne ihtiyacınız yok, sadece paket-ismi örn. samba-vscan):
yast -i packet-ismi
RPM yöntemi (RPM paketleriyle aynı dizinde olduğunuzu varsayarak):
rpm -Uvh paket-ismi
Şimdi, başka paketlerin yüklenip yüklenmediğini denetleyin, yüklü değilse yükleyin:
# rpm -qa | grep dhcp-server # rpm- qa | grep bind # rpm -qa | grep clamav # rpm -qa | grep perl
Önceki komutların şu paketleri listelediğinden emin olun:
dhcp-server-3.0.2-6 bind-9.3.1-3 clamav-db-0.85.1-1.1 clamav-0.85.1-1.1 perl-URI-1.35-3 perl-ldap-0.29-137 perl-Convert-ASN1-0.18-69 perl-Crypt-SmbHash-0.02-3
Sunucu Kurulumu
Samba Kurulumu
Eski smb.conf dosyanızı güvenli bir yere taşıyın:
# cd /etc/samba/ # mv smb.conf smb.conf.OLD
Şimdi, en sevdiğiniz ascii düzenleyicisini kullanarak, /etc/samba dizininde smb.conf dosyasını düzenleyin veya oluşturun ve buna, şu satırları ekleyin veya değiştirin. çalışma grubu (workgroup) ifadesi için, eğer foobar.tld 15 karakterden uzunsa, Samba'nın bunu kısaltacağını unutmayın! smb.conf dosyasını aşağıda tanımlandığı gibi sıfırdan oluşturmanızı öneriyorum:
# Alan adı, sunucu adı tanımlama #################################################### [global] workgroup = foobar.tld netbios name = bar
# ldapsam arka uç (backend) veritabanı belirleme #################################################### passdb backend = ldapsam:ldap://127.0.0.1 username map = /etc/samba/smbusers
# Yazdırma alt sistemini belirleme #################################################### printcap name = cups printing = cups
# IDEALX komut dosyalarına giden yol (bundan yakında bahsedeceğiz) #################################################### add user script = /usr/local/sbin/smbldap-useradd -m %u delete user script = /usr/local/sbin/smbldap-userdel %u add group script = /usr/local/sbin/smbldap-groupadd -p %g delete group script = /usr/local/sbin/smbldap-groupdel %g add user to group script = /usr/local/sbin/smbldap-groupmod -m %g %u delete user from group script = /usr/local/sbin/smbldap-groupmod -x %g %u set primary group script = /usr/local/sbin/smbldap-usermod -g %g %u add machine script = /usr/local/sbin/smbldap-useradd -w %u
# eğer, alana, makineleri otomatik olarak eklemek istiyorsanız, makine ekle (add machine) komut # dosyası şudur: # add machine script = /usr/local/sbin/smbldap-useradd -w -i %u # SUSE 10.0'da denenmiştir # # Diğer çeşitli bildirimler ( man smb.conf ) #################################################### obey pam restrictions = Yes logon script = scripts\logon.bat logon path = \\%L\Profiles\%U logon drive = H: logon home = \\%L\%U domain logons = Yes os level = 44 preferred master = Yes domain master = Yes dont descend = /proc,/dev,/etc,/lib,/lost+found,/initrd show add printer wizard = yes
# OpenLDAP ile ilgili şeyler burada tanımlanıyor ################################################### ldap suffix = dc=foobar,dc=tld ldap machine suffix = ou=Computers ldap user suffix = ou=Users ldap group suffix = ou=Groups ldap idmap suffix = ou=Users ldap admin dn = cn=Manager,dc=foobar,dc=tld ldap ssl = no ldap passwd sync = Yes idmap uid = 15000-20000 idmap gid = 15000-20000
# Günlük tutma (logging) merkezini tanımlama #################################################### log level = 2 log file = /var/log/samba/%m.log
# Virus Tarama Tanımı #################################################### vfs object = vscan-clamav vscan-clamav: config-file = /etc/samba/vscan-clamav.conf
# Kullanıcı giriş (home) dizinlerini tanımlama #################################################### [homes] comment = Home Directories valid users = %S read only = No browseable = No
# Defining printers #################################################### [printers] comment = All Printers path = /var/spool/samba printer admin = @"Print Operators" read only = Yes guest ok = Yes printable = Yes browseable = No
# Yazıcı tanımlama #################################################### [print$] path = /var/lib/samba/drivers/ guest ok = No browseable = Yes read only = Yes valid users = @"Print Operators" write list = @"Print Operators" create mask = 0664 directory mask = 0775
# Ağ oturum açma hizmetini tanımlama #################################################### [netlogon] comment = NLService path = /var/lib/samba/netlogon guest ok = Yes browseable = No
# Profil paylaşımı tanımlama (gezici profiller için) #################################################### [profiles] comment = Roaming Profiles path = /var/lib/samba/profiles create mask = 0600 directory mask = 0700 browseable = No guest ok = Yes force user = %U valid users = %U "Domain Admins" read only = No profile acls = Yes
# Herhangi bir paylaşılan kaynak tanımlama #################################################### [share] comment = data share path = /opt/stuff valid users = %U
En sevdiğiniz ascii düzenleyicisini kullanarak, /etc/samba dizinindeki smbusers dosyasını düzenleyin veya (ön tanımlı olarak eklenmemişse) şu satırı ekleyin veya değiştirin:
root = Administrator
smb.conf'ta IDEALX komut dosyası kısmıyla ilgili kafanız karışmış olabilir, işte açıklaması: "IDEALX komut dosyaları LDAP dizininde saklanan kullanıcı (user) ve grupları (group) yönetmek için bir user{add,del,mod} ve group{add,del,mod} sistem araçları (komut dosyaları) derlemesidir".
Bu komut dosyalarını, uygun hedef dizinine kopyalayın:
# cd /usr/share/doc/packages/samba/examples/LDAP/smbldap-tools-*/ # cp smbldap-* /usr/local/sbin
Şimdi, kurulum ayarlarımızı sözdizimsel doğruluk açısından denetleyelim, aşağıdaki gibi bir çıktı görmelisiniz:
# testparm Load smb config files from /etc/samba/smb.conf Processing section "[homes]" Processing section "[printers]" Processing section "[netlogon]" Processing section "[profiles]" Processing section "[share]" Loaded services file OK. Server role: ROLE_DOMAIN_PDC Press enter to see a dump of your service definitions
Şimdi, Samba'ya gezici profil dizinleri oluşturmak için izin verin:
# chmod 1777 /var/lib/samba/profiles
Şimdi Samba hizmet(ler)ini başlatın:
# rcsmb start # rcnmb start
ve sunucunuzdaki kaynakları listeleyin:
# smbclient -L localhost -N added interface ip=192.168.1.104 bcast=192.168.1.255 nmask=255.255.255.0 Anonymous login successful Domain=[FOOBAR.TLD] OS=[Unix] Server=[Samba 3.0.12-5-SUSE]
Sharename Type Comment --------- ---- ------- profiles Disk Roaming Profiles share Disk share IPC$ IPC IPC Service (Samba 3.0.12-5-SUSE) ADMIN$ IPC IPC Service (Samba 3.0.12-5-SUSE) Anonymous login successful Domain=[FOOBAR.TLD] OS=[Unix] Server=[Samba 3.0.12-5-SUSE]
Server Comment --------- ------- BAR Samba 3.0.12-5-SUSE
Workgroup Master --------- ------- FOOBAR.TLD BAR
OpenLDAP Kurulumu
En sevdiğiniz ascii düzenleyicisini kullanarak, /etc/openldap dizinindeki slapd.conf dosyasını düzenleyin ve buna, şu satırları ekleyin veya değiştirin (slapd.conf dosyasını sıfırdan oluşturmanızı öneriyorum):
# Şema ve şema dosyası konumu tanımlama ################################################################ include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/nis.schema include /etc/openldap/schema/samba3.schema
pidfile /var/run/slapd/slapd.pid argsfile /var/run/slapd/slapd.args
# Veritabanımızı ve yönetici kullanıcı + şifre tanımlama ################################################################ database bdb suffix "dc=foobar,dc=tld" rootdn "cn=Manager,dc=foobar,dc=tld" rootpw secret directory /var/lib/ldap
# Daha hızlı sorgular için dizinleme (kötü dizinler işleri yavaşlatabilir) ################################################################# index objectClass eq index cn pres,sub,eq index sn pres,sub,eq index uid pres,sub,eq index displayName pres,sub,eq index uidNumber eq index gidNumber eq index memberUid eq index sambaSID eq index sambaPrimaryGroupSID eq index sambaDomainName eq index default sub
# Veritabanımızın çeşitli yerlerine erişim için, Erişim Kontrol Listeleri # (ACL) tanımlama. ACLler olmadan da yaşayabiliriz ,ama biraz güvenlik de # olmalı. # kullanıcıların şifreleri, çalışan sicil numaralarını... vs. görmelerini önlemek ###################################################################### access to attr=userpassword,clearpassword,ldappassword by anonymous auth by self write by dn="cn=Manager,dc=foobar,dc=tld" write by * none
access to * by dn="cn=Manager,dc=foobar,dc=tld" write by users read by self write by * read
Dosyayı, yukarıda sunulduğu gibi görünecek şekilde değiştirdikten sonra, samba3.schema dosyasının /etc/openldap/schema dizininde olduğundan emin olun (dizinleri listeleyip bakın). Eğer yoksa, samba-client adlı paketi yükleyin.
OpenLDAP arka uç (backend) kurulum ayarlarımızdaki bir sonraki adımda OpenLDAP alanımızın bir sıradüzenini (hiyerarşi) oluşturmalıyız. LDAP ağacını doldurmak için IDEALX komut dosyaları kullanacağız, yapmanız gereken ilk şey /etc dizini altına bir smbldap-tools dizini oluşturmak ve /usr/share/doc/packages/samba/examples/LDAP/smbldap-tools-0.8.7/ dizininden buraya smbldap.conf 'u, smbldap_bind.conf 'u kopyalamaktır:
# cd /usr/share/doc/packages/samba/examples/LDAP/smbldap-tools-0.8.7/ # cp smbldap_bind.conf /etc/smbldap-tools # cp smbldap.conf /etc/smbldap-tools # cp smbldap_tools.pm /usr/local/sbin #chmod 644 /usr/local/sbin/smbldap_tools.pm # cd /etc/smbldap-tools # chmod 644 smbldap.conf # chmod 600 smbldap_bind.conf
En sevdiğiniz ascii düzenleyicisini kullanarak, /etc/smbldap-tools dizinindeki smbldap.conf dosyasını düzenleyin ve buna, şu satırları ekleyin veya değiştirin (smbldap.conf dosyasını sıfırdan oluşturmanızı öneriyorum):
# Kendi SID numaranızı öğrenmek için net getlocalsid komutunu çalıştırın # ve aşağıya yazın ############################################################### SID="S-1-5-21-2139989288-483860436-2398042574"
slaveLDAP="127.0.0.1" slavePort="389" masterLDAP="127.0.0.1" masterPort="389" ldapTLS="0" verify="require" cafile="/etc/smbldap-tools/ca.pem" clientcert="/etc/smbldap-tools/smbldap-tools.pem" clientkey="/etc/smbldap-tools/smbldap-tools.key" suffix="dc=example,dc=tld" usersdn="ou=Users,${suffix}" computersdn="ou=Computers,${suffix}" groupsdn="ou=Groups,${suffix}" idmapdn="ou=Idmap,${suffix}" sambaUnixIdPooldn="sambaDomainName=foobar.tld,${suffix}" scope="sub" hash_encrypt="SSHA" crypt_salt_format="%s" userLoginShell="/bin/bash" userHome="/home/%U" userGecos="System User" defaultUserGid="513" defaultComputerGid="515" skeletonDir="/etc/skel" defaultMaxPasswordAge="99" userSmbHome="\\BAR\homes\%U" userProfile="\\BAR\profiles\%U" userHomeDrive="H:" userScript="%U.cmd" mailDomain="foobar.tld" with_smbpasswd="0" smbpasswd="/usr/bin/smbpasswd" with_slappasswd="0" slappasswd="/usr/sbin/slappasswd"
En sevdiğiniz ascii düzenleyicisini kullanarak, /usr/local/sbin dizinindeki smbldap_tools.pm dosyasını düzenleyin ve buna, şu satırları ekleyin veya değiştirin:
my $smbldap_conf="/etc/smbldap-tools/smbldap.conf"; my $smbldap_bind_conf="/etc/smbldap-tools/smbldap_bind.conf";
Yine en sevdiğiniz ascii düzenleyicisini kullanarak, /etc/smbldap-tools dizinindeki smbldap_bind.conf dosyasını düzenleyin ve buna, şu satırları ekleyin veya değiştirin:
slaveDN="cn=Manager,dc=example,dc=tld" slavePw="secret" masterDN="cn=Manager,dc=example,dc=tld" masterPw="secret"
Ve yine en sevdiğiniz ascii düzenleyicisini kullanarak, /usr/local/sbin dizinindeki smbldap-populate dosyasını düzenleyin ve buna, şu satırları ekleyin veya değiştirin (ön tanımlı olarak Yönetici (Administrator) vardır, ama bu hesabı kullanarak iş istasyonlarını alana eklerken sorunlar yaşadım ,çünkü yukarıdaki samba kurulumunda giriş'i (root) Yönetici'ye (Administrator) eşleştiriyoruz ve alana iş istasyonu eklemek için uid=0 olan kullanıcı gerekiyor. 0 olmayan uid'e sahip kullanıcı ile bir çözümünüz varsa lütfen benimle iletişime geçmekten çekinmeyin ve eğitseli düzeltin):
my $adminName = $Options{'a'}; if (!defined($adminName)) { $adminName = "Admin"; }
smbldap-populate dosyasına değişiklik yaptıktan sonra, bunu /usr/local/sbin dizininden koşturmalısınız, ama bundan önce LDAP sunucusunu başlatın (ekranda şöyle bir çıktı görmelisiniz):
# rcldap start # /usr/local/sbin/smbldap-populate Using workgroup name from sambaUnixIdPooldn (smbldap.conf): sambaDomainName=foobar.tld Using builtin directory structure adding new entry: dc=fooobar,dc=tld adding new entry: ou=Users,dc=foobar,dc=tld adding new entry: ou=Groups,dc=foobar,dc=tld adding new entry: ou=Computers,dc=foobar,dc=tld adding new entry: ou=Idmap,dc=foobar,dc=tld adding new entry: sambaDomainName=foobar.tld,dc=foobar,dc=tld adding new entry: uid=Admin,ou=Users,dc=foobar,dc=tld adding new entry: uid=nobody,ou=Users,dc=foobar,dc=tld adding new entry: cn=Domain Admins,ou=Groups,dc=foobar,dc=tld adding new entry: cn=Domain Users,ou=Groups,dc=foobar,dc=tld adding new entry: cn=Domain Guests,ou=Groups,dc=foobar,dc=tld adding new entry: cn=Domain Computers,ou=Groups,dc=foobar,dc=tld adding new entry: cn=Administrators,ou=Groups,dc=foobar,dc=tld adding new entry: cn=Print Operators,ou=Groups,dc=foobar,dc=tld adding new entry: cn=Backup Operators,ou=Groups,dc=foobar,dc=tld
Devam etmeden önce, girişlerin yapılmasını sağlamak için ldap veritabanını cat edin, ardından şöyle bir çıktı elde etmelisiniz:
# slapcat dn: dc=foobar,dc=tld objectClass: dcObject objectClass: organization o: foobar dc: foobar structuralObjectClass: organization entryUUID: fc296908-e259-1027-9686-c73f68847b0c creatorsName: cn=Manager,dc=foobar,dc=tld createTimestamp: 20040124014007Z entryCSN: 20040124014007Z#000001#00#000000 modifiersName: cn=Manager,dc=foobar,dc=tld modifyTimestamp: 20040124014007Z
dn: ou=Users,dc=foobar,dc=tld objectClass: organizationalUnit ou: Users structuralObjectClass: organizationalUnit entryUUID: fc4bf504-e259-1027-9687-c73f68847b0c creatorsName: cn=Manager,dc=foobar,dc=tld createTimestamp: 20040124014007Z entryCSN: 20040124014007Z#000002#00#000000 modifiersName: cn=Manager,dc=foobar,dc=tld modifyTimestamp: 20040124014007Z
dn: ou=Groups,dc=foobar,dc=tld objectClass: organizationalUnit ou: Groups structuralObjectClass: organizationalUnit entryUUID: fc4e6cb2-e259-1027-9688-c73f68847b0c creatorsName: cn=Manager,dc=foobar,dc=tld createTimestamp: 20040124014007Z entryCSN: 20040124014007Z#000003#00#000000 modifiersName: cn=Manager,dc=foobar,dc=tld modifyTimestamp: 20040124014007Z
dn: ou=Computers,dc=foobar,dc=tld objectClass: organizationalUnit ou: Computers structuralObjectClass: organizationalUnit entryUUID: fc55504a-e259-1027-9689-c73f68847b0c creatorsName: cn=Manager,dc=foobar,dc=tld createTimestamp: 20040124014008Z entryCSN: 20040124014008Z#000001#00#000000 modifiersName: cn=Manager,dc=foobar,dc=tld modifyTimestamp: 20040124014008Z
dn: ou=Idmap,dc=foobar,dc=tld objectClass: organizationalUnit ou: Idmap structuralObjectClass: organizationalUnit entryUUID: fc58a128-e259-1027-968a-c73f68847b0c creatorsName: cn=Manager,dc=foobar,dc=tld createTimestamp: 20040124014008Z entryCSN: 20040124014008Z#000002#00#000000 modifiersName: cn=Manager,dc=foobar,dc=tld modifyTimestamp: 20040124014008Z
dn: sambaDomainName=efoobar.tld,dc=foobar,dc=tld objectClass: sambaDomain objectClass: sambaUnixIdPool sambaDomainName: example.tld sambaSID: S-1-5-21-2139989288-483860436-2398042574 uidNumber: 1000 gidNumber: 1000 structuralObjectClass: sambaDomain entryUUID: fc5fcfac-e259-1027-968b-c73f68847b0c creatorsName: cn=Manager,dc=foobar,dc=tld createTimestamp: 20040124014008Z entryCSN: 20040124014008Z#000003#00#000000 modifiersName: cn=Manager,dc=foobar,dc=tld modifyTimestamp: 20040124014008Z
dn: uid=Admin,ou=Users,dc=foobar,dc=tld cn: Admin sn: Admin objectClass: inetOrgPerson objectClass: sambaSamAccount objectClass: posixAccount objectClass: shadowAccount gidNumber: 512 uid: Admin uidNumber: 998 homeDirectory: /home/Admin sambaPwdLastSet: 0 sambaLogonTime: 0 sambaLogoffTime: 2147483647 sambaKickoffTime: 2147483647 sambaPwdCanChange: 0 sambaPwdMustChange: 2147483647 sambaHomePath: \\bar\homes\Admin sambaHomeDrive: H: sambaProfilePath: \\bar\profiles\Admin\ sambaPrimaryGroupSID: S-1-5-21-2139989288-483860436-2398042574-512 sambaLMPassword: XXX sambaNTPassword: XXX sambaAcctFlags: [U ] sambaSID: S-1-5-21-2139989288-483860436-2398042574-2996 loginShell: /bin/false gecos: Netbios Domain Administrator structuralObjectClass: inetOrgPerson entryUUID: fc9199a6-e259-1027-968c-c73f68847b0c creatorsName: cn=Manager,dc=foobar,dc=tld createTimestamp: 20040124014008Z entryCSN: 20040124014008Z#000004#00#000000 modifiersName: cn=Manager,dc=foobar,dc=tld modifyTimestamp: 20040124014008Z
dn: uid=nobody,ou=Users,dc=foobar,dc=tld cn: nobody sn: nobody objectClass: inetOrgPerson objectClass: sambaSamAccount objectClass: posixAccount objectClass: shadowAccount gidNumber: 514 uid: nobody uidNumber: 999 homeDirectory: /dev/null sambaPwdLastSet: 0 sambaLogonTime: 0 sambaLogoffTime: 2147483647 sambaKickoffTime: 2147483647 sambaPwdCanChange: 0 sambaPwdMustChange: 2147483647 sambaHomePath: \\bar\homes\nobody sambaHomeDrive: H: sambaProfilePath: \\bar\profiles\nobody sambaPrimaryGroupSID: S-1-5-21-2139989288-483860436-2398042574-514 sambaLMPassword: NO PASSWORDXXXXXXXXXXXXXXXXXXXXX sambaNTPassword: NO PASSWORDXXXXXXXXXXXXXXXXXXXXX sambaAcctFlags: [NU ] sambaSID: S-1-5-21-2139989288-483860436-2398042574-2998 loginShell: /bin/false structuralObjectClass: inetOrgPerson entryUUID: fcbe3362-e259-1027-968d-c73f68847b0c creatorsName: cn=Manager,dc=foobar,dc=tld createTimestamp: 20040124014008Z entryCSN: 20040124014008Z#000005#00#000000 modifiersName: cn=Manager,dc=foobar,dc=tld modifyTimestamp: 20040124014008Z
dn: cn=Domain Admins,ou=Groups,dc=foobar,dc=tld objectClass: posixGroup objectClass: sambaGroupMapping gidNumber: 512 cn: Domain Admins memberUid: Admin description: Netbios Domain Administrators sambaSID: S-1-5-21-2139989288-483860436-2398042574-512 sambaGroupType: 2 displayName: Domain Admins structuralObjectClass: posixGroup entryUUID: fcc7222e-e259-1027-968e-c73f68847b0c creatorsName: cn=Manager,dc=foobar,dc=tld createTimestamp: 20040124014008Z entryCSN: 20040124014008Z#000006#00#000000 modifiersName: cn=Manager,dc=foobar,dc=tld modifyTimestamp: 20040124014008Z
dn: cn=Domain Users,ou=Groups,dc=foobar,dc=tld objectClass: posixGroup objectClass: sambaGroupMapping gidNumber: 513 cn: Domain Users description: Netbios Domain Users sambaSID: S-1-5-21-2139989288-483860436-2398042574-513 sambaGroupType: 2 displayName: Domain Users structuralObjectClass: posixGroup entryUUID: fceb2534-e259-1027-968f-c73f68847b0c creatorsName: cn=Manager,dc=foobar,dc=tld createTimestamp: 20040124014008Z entryCSN: 20040124014008Z#000007#00#000000 modifiersName: cn=Manager,dc=foobar,dc=tld modifyTimestamp: 20040124014008Z
dn: cn=Domain Guests,ou=Groups,dc=foobar,dc=tld objectClass: posixGroup objectClass: sambaGroupMapping gidNumber: 514 cn: Domain Guests description: Netbios Domain Guests Users sambaSID: S-1-5-21-2139989288-483860436-2398042574-514 sambaGroupType: 2 displayName: Domain Guests structuralObjectClass: posixGroup entryUUID: fcf449fc-e259-1027-9690-c73f68847b0c creatorsName: cn=Manager,dc=foobar,dc=tld createTimestamp: 20040124014009Z entryCSN: 20040124014009Z#000001#00#000000 modifiersName: cn=Manager,dc=foobar,dc=tld modifyTimestamp: 20040124014009Z
dn: cn=Domain Computers,ou=Groups,dc=foobar,dc=tld objectClass: posixGroup objectClass: sambaGroupMapping gidNumber: 515 cn: Domain Computers description: Netbios Domain Computers accounts sambaSID: S-1-5-21-2139989288-483860436-2398042574-515 sambaGroupType: 2 displayName: Domain Computers structuralObjectClass: posixGroup entryUUID: fcfe6612-e259-1027-9691-c73f68847b0c creatorsName: cn=Manager,dc=foobar,dc=tld createTimestamp: 20040124014009Z entryCSN: 20040124014009Z#000002#00#000000 modifiersName: cn=Manager,dc=foobar,dc=tld modifyTimestamp: 20040124014009Z
dn: cn=Administrators,ou=Groups,dc=foobar,dc=tld objectClass: posixGroup objectClass: sambaGroupMapping gidNumber: 544 cn: Administrators description: Netbios Domain Members can fully administer the computer/sambaDomainName sambaSID: S-1-5-32-544 sambaGroupType: 5 displayName: Administrators structuralObjectClass: posixGroup entryUUID: fd077900-e259-1027-9692-c73f68847b0c creatorsName: cn=Manager,dc=foobar,dc=tld createTimestamp: 20040124014009Z entryCSN: 20040124014009Z#000003#00#000000 modifiersName: cn=Manager,dc=foobar,dc=tld modifyTimestamp: 20040124014009Z
dn: cn=Print Operators,ou=Groups,dc=foobar,dc=tld objectClass: posixGroup objectClass: sambaGroupMapping gidNumber: 550 cn: Print Operators description: Netbios Domain Print Operators sambaSID: S-1-5-32-550 sambaGroupType: 5 displayName: Print Operators structuralObjectClass: posixGroup entryUUID: fd1062c2-e259-1027-9693-c73f68847b0c creatorsName: cn=Manager,dc=foobar,dc=tld createTimestamp: 20040124014009Z entryCSN: 20040124014009Z#000004#00#000000 modifiersName: cn=Manager,dc=foobar,dc=tld modifyTimestamp: 20040124014009Z
dn: cn=Backup Operators,ou=Groups,dc=foobar,dc=tld objectClass: posixGroup objectClass: sambaGroupMapping gidNumber: 551 cn: Backup Operators description: Netbios Domain Members can bypass file security to back up files sambaSID: S-1-5-32-551 sambaGroupType: 5 displayName: Backup Operators structuralObjectClass: posixGroup entryUUID: fd181b16-e259-1027-9694-c73f68847b0c creatorsName: cn=Manager,dc=foobar,dc=tld createTimestamp: 20040124014009Z entryCSN: 20040124014009Z#000005#00#000000 modifiersName: cn=Manager,dc=foobar,dc=tld modifyTimestamp: 20040124014009Z
dn: cn=Replicators,ou=Groups,dc=foobar,dc=tld objectClass: posixGroup objectClass: sambaGroupMapping gidNumber: 552 cn: Replicators description: Netbios Domain Supports file replication in a sambaDomainName sambaSID: S-1-5-32-552 sambaGroupType: 5 displayName: Replicators structuralObjectClass: posixGroup entryUUID: fd211446-e259-1027-9695-c73f68847b0c creatorsName: cn=Manager,dc=foobar,dc=tld createTimestamp: 20040124014009Z entryCSN: 20040124014009Z#000006#00#000000 modifiersName: cn=Manager,dc=foobar,dc=tld modifyTimestamp: 20040124014009Z
Şimdi tüm arka plan proramlarını (daemon) (yeniden) başlatın:
# rcldap start # rcsmb start # rcnmb start
LDAP veritabanımıza birkaç hesap ekleyelim: önce SAMBA için giriş (root) hesabı eklemeliyiz, çünkü alana istemci makinesi eklemek yönetici (administrator) hesabının (uid 0 olan hesap) kullanımını gerektiriyor ve ikinci olarak secrets.tdb dosyasına LDAP şifresini eklememiz gerekiyor ki SAMBA, LDAP veritabanını güncelleyebilsin:
# smbpasswd -a root # smbpasswd -w secret Setting stored password for "cn=Manager,dc=foobar,dc=tld" in secrets.tdb
SAMBA'nın LDAP veritabanını güncellemek için smbpasswd -w secret 'ı kullanacağına dikkat edin, bunu rootpw bildirimi altındaki slapd.conf dosyasında tanımlandığıyla aynı yapın.
LDAP 'e, SAMBA ile kullanılacak, kullanıcı/grup ... vs. eklemek için IDEALX komut dosyalarını kullanın:
# smbldap-useradd -a USERNAME
Sistemin LDAP aracılığıyla kimlik doğrulaması yapması için ve LDAP 'de SAMBA için saklanan posix hesaplarını kullanmak için, sisteminizi yerel ve uzak bağlantılar için LDAP aracılığıyla kimlik doğrulama yapmaya ayarlamalısınız.
Sisteminizi LDAP istemcisi olarak ayarlamak için YaST kullanın:
Bunu yaptıktan sonra, en sevdiğiniz ascii düzenleyicisini kullanarak, /etc/ dizinindeki nsswitch.conf dosyasını düzenleyin ve buna, şu bildirimi ekleyin veya değiştirin:
passwd: files ldap group: files ldap
Şimdi, sisteminizin gerçekten hem yerel sistem hem de LDAP'de saklanan hesapları gördüğünden emin olmak için, yönetim veritabanındaki girişleri listeleyin (Henüz hesap eklemediyseniz en az iki hesap olmalı, Yönetici (Admin) ve kimse (nobody), komut, tüm hesapları göstereceği halde ben sadece iki tanesini kattım.):
# getent passwd +::0:0::: Admin:x:998:512:Netbios Domain Administrator:/home/Admin:/bin/false nobody:x:999:514:nobody:/dev/null:/bin/false
Eğer herşey yukarıda anlatıldığı gibi ayarlandıysa, gerçek otomatikleşme için, bir iki dosya daha düzenlemeniz gerekiyor; önce /etc/samba dizini içerisinde scripts dizinini oluşturun:
# echo session required pam_mkhomedir.so skel=/etc/skel umask=0022 >>/etc/pam.d/common-session
Oh, şimdi tüm bunlar ayarlandığına göre, eğitsele devam edebilirsiniz :D !!
Dinamik DNS Kurulumu
Önyapılandırma Ayarları
dynDNS altyapımızı oluşturabilmek için, DHCP ve DNS sunucularını dinamik güncellemeler için yapılandırmadan önce, birkaç şey yapmamız gerekiyor. Önce DHCP ve DNS sunucusu arasında güvenli iletişim için kullanılacak bir anahtar (key) oluşturmamız gerekiyor.
Anahtar'ı (key) ve anahtar tanımlamasını tutacak dosyayı oluşturmak için şu komutu yazın:
# cd /etc # genDDNSkey
Bu, ön tanımlı olarak DHCP_UPDATER anahtarıyla named.keys adında bir dosya oluşturacaktır, elbette şunu yazarak da farklı bir anahtar (key) ve dosya seçebilirsiniz (diğer seçenekler için yardım sayfalarını okuyun):
# genDDNSkey --key-file=/ur/path --key-name MY_KEY_NAME
Anahtar (key) oluşturulduktan sonra, her ikisi de chroot jail'de çalıştığı için, hem DHCP hem de DNS arka plan programlarına (daemon) bu dosyayı kullanmalarını söylemeniz gerekiyor.
En sevdiğiniz ascii düzenleyicisini kullanarak, /etc/sysconfig dizinindeki dhcpd dosyasını düzenleyin ve şu bildirimi ekleyin veya değiştirin:
DHCPD_CONF_INCLUDE_FILES="/etc/named.keys"
En sevdiğiniz ascii düzenleyicisini kullanarak, /etc/sysconfig dizinindeki named dosyasını düzenleyin ve şu bildirimi ekleyin veya değiştirin:
NAMED_CONF_INCLUDE_FILES="/etc/named.keys"
Artık DHCP ve DNS sunucularınızı yapılandırmaya başlayabilirsiniz.
DHCP Kurulumu
En sevdiğiniz ascii düzenleyicisini kullanarak, /etc dizinindeki dhcpd.conf dosyasını düzenleyin ve buna, şu satırları ekleyin veya değiştirin (dhcpd.conf dosyasını sıfırdan oluşturmanızı öneriyorum). Ayrıca IP adres şemasında, değerler rastgeledir, bunları kendi ağ şemanızı yansıtacak şekilde ayarlayacaksınız:
# Bölge dosyalarını güvenli olarak güncellemek için kullanacağımız anahtarı içeren dosya ########################################################### include "/etc/named.keys";
# Sunucumuz yetkilidir ######################################################### server-identifier bar.foobar.tld; authoritative;
# Zone specification ########################################### zone foobar.forward { primary 192.168.1.104; key DHCP_UPDATER; } zone foobar.reverse { primary 192.168.1.104; key DHCP_UPDATER; }
# Çeşitli seçenekler ######################################## default-lease-time 86400; max-lease-time 172800;
option domain-name "foobar.tld"; option domain-name-servers 192.168.1.104;
ignore client-updates; ddns-domainname "foobar.tld"; ddns-updates on; ddns-update-style interim;
# Ağ özelliklerinin tanımlanması ( range ... ) ################################################# subnet 192.168.1.0 netmask 255.255.255.0 { range dynamic-bootp 192.168.1.10 192.168.1.254; zone foobar.tld { primary 127.0.0.1; key DHCP_UPDATER; } zone 1.168.192.in-addr.arpa. { primary 127.0.0.1; key DHCP_UPDATER; } option subnet-mask 255.255.255.0; option routers 192.168.1.1; one-lease-per-client on; }
Yukarıdaki yapılandırma donanım IP adresleri için ayrılmış olan 1 - 10 aralığına izin verir ve dinamik atama için ayrılan aralık 10 - 254 olarak ayarlanır.
Ad Sunucusu Kurulumu
En sevdiğiniz ascii düzenleyicisini kullanarak, /etc dizinindeki named.conf dosyasını düzenleyin ve buna, şu satırları ekleyin veya değiştirin (named.conf dosyasını sıfırdan oluşturmanızı öneririm). Ayrıca yukarıdaki DHCP örneğinde olduğu gibi, değerler ve aralıklar rastgeledir, bunları istediğiniz değerlere göre ayarlayacaksınız.
# anahtarı içeren dosyayı dahil et ################################################# include "/etc/named.keys";
# Erişim Kontrol Listeleri (ACL) ################################################# acl mynet { 192.168.1.0/24; 127.0.0.1; };
# Çeşitli seçenekler ################################################# options { directory "/var/lib/named"; allow-query { mynet; }; forwarders { 83.139.64.3; }; };
# Çeşitli bölge tanımlamaları ################################################# zone "localhost" in { type master; file "localhost.zone"; };
zone "0.0.127.in-addr.arpa" in { type master; file "127.0.0.zone"; };
zone "." in { type hint; file "root.hint"; };
# İleri (forward) foobar.tld bölge tanımlaması ################################################# zone "foobar.tld" { type master; file "dyn/foobar.forward"; allow-update { key DHCP_UPDATER; }; allow-query { mynet; }; allow-transfer { mynet; }; };
# Geri (reverse) foobar.tld bölge tanımlaması ################################################# zone "1.168.192.in-addr.arpa" { type master; file "dyn/foobar.reverse"; allow-update { key DHCP_UPDATER; }; allow-query { mynet; }; allow-transfer { mynet; }; };
Şimdi, named.conf dosyasını oluşturduktan sonra, temel bölge dosyalarını kurmalı/ oluşturmalısınız.
En sevdiğiniz ascii düzenleyicisini kullanarak, /var/lib/named/dyn dizininde foobar.forward dosyasını oluşturun ve buna, şu satırları ekleyin veya değiştirin (foobar.forward dosyasını sıfırdan oluşturmanızı öneriyorum).
$TTL 5D @ IN SOA bar.foobar.tld. root.foobar.tld. ( 200524085 ; serial 3H ; refresh 1H ; retry 1W ; expire 5D ) ; minimum
@ NS bar.foobar.tld.
bar A 192.168.1.104
En sevdiğiniz ascii düzenleyicisini kullanarak, /var/lib/named/dyn dizininde foobar.reverse dosyasını oluşturun ve buna, şu satırları ekleyin veya değiştirin (foobar.reverse dosyasını sıfırdan oluşturmanızı öneriyorum):
$TTL 5D @ IN SOA bar.foobar.tld. root.foobar.tld. ( 200524086 ; serial 3H ; refresh 1H ; retry 1W ; expire 5H ) ; minimum
@ NS bar.foobar.tld.
104 PTR bar.foobar.tld.
'localhost (yerelsunucu) için, her iki bölge dosyası ön tanımlı olarak oluşturulduğu için, tekrar oluşturmanız gerekmez, root.hintte (giriş.ipucu) ön tanımlı olarak katılmıştır.
İçerik Denetleme
ClamAV
SAMBA'da içerik denetlemeyi ayarlamak biraz sorunludur ve bazı değişikliklerin yapılmasını gerektirmektedir. Bu nedenle, önce vscan-clamav.conf dosyasını /usr/share/doc/packages/samba-vscan/ dizininden /etc/samba dizinine kopyalayın:
# cp /usr/share/doc/packages/samba-vscan/vscan-clamav.conf /etc/samba
Şimdi, /var/run dizini altında clamd isimli bir dizin oluşturun ve sahipliğini kullanıcı ve grup vscan olarak değiştirin:
# mkdir /var/run/clamd # chown vscan:vscan /var/run/clamd
Aynı zamanda, quarantine (karantina) olarak kullanılacak dizini oluşturmamız ve vscan kullanıcısına sahiplik vermemiz gerekiyor:
# mkdir /var/lib/clamav/quarantine # chown vscan /var/lib/clamav/quarantine
En sevdiğiniz ascii düzenleyicisini kullanarak, /etc/samba dizininde vscan-clamav.conf dosyasını oluşturun ve buna, şu satırları ekleyin veya değiştirin (vscan-clamav.conf dosyasını sıfırdan oluşturmanızı öneriyorum):
[samba-vscan] max file size = 0 verbose file logging = yes scan on open = yes scan on close = yes deny access on error = yes deny access on minor error = yes send warning message = yes infected file action = quarantine quarantine directory = /var/lib/clamav/quarantine quarantine prefix = vir- max lru files entries = 100 lru file entry lifetime = 5 exclude file types = clamd socket name = /var/run/clamd/clamd libclamav max files in archive = 1000 libclamav max archived file size = 10 * 1048576 libclamav max recursion level = 5
En sevdiğiniz ascii düzenleyicisini kullanarak, /etc/ dizininde clamd.conf dosyasını oluşturun ve buna, şu satırları ekleyin veya değiştirin (clamd.conf dosyasını sıfırdan oluşturmanızı öneriyorum):
LogFile /var/log/clamd LogFileUnlock LogSyslog LogFacility LOG_MAIL LogVerbose PidFile /var/lib/clamav/clamd.pid DatabaseDirectory /var/lib/clamav LocalSocket /var/run/clamd/clamd FixStaleSocket User vscan Foreground Debug ScanRAR
Tüm arka plan programlarını (daemon) başlatın:
# rcnamed start # rcdhcpd start # rcldap start # rcsmb start # rcnmb start # rcclamd star
Tüm arka plan programlarını (daemon) ön tanımlı olarak makine başlangıcında koşturun:
# chkconfig named on # chkconfig dhcpd on # chkconfig smb on # chkconfig nmb on # chkconfig clamd on
İstemci Kurulumu
İstemciyi, alana bağlanmak için ayarlamak, o kadar da zor değil, elbette tüm hizmetlerinizin uyum içinde çalıştığını varsayarsak.
Tamam! Şimdi bir istemci iş istasyonunu, SAMBA alanına bağlama yolculuğumuza başlayalım. Makine hesabı otomatik bir şekilde öntanımlı olarak alana eklenmeli, ama eklenmezse, bunun için önce POSIX makine hesabı eklemeniz gerekecek ($'nin bir nedeni olduğunu unutmayın, bu hesabın bir makine hesabı olduğunu belirtiyor.):
# smbldap-useradd -w machine_name$
Şimdi windows iş istasyonunuzda, Bilgisayarım (My Computer) üzerine sağa tıklayın ve Özellikler (Properties)'i seçin, önünüze şöyle bir pano gelecek:
Dosya:Network-properties.jpg
Şimdi Properties (Özellikler) sekmesini seçin. Şöyle bir panoyla karşılaşacaksınız:
Alanın (Domain) radyo düğmesine tıklayın ve alan adını foobar.tld olarak yazın, şimdi Tamam (Ok) sekmesini seçin. Şöyle bir panoyla karşılaşacaksınız:
Yönetici (Administrator) kullanıcı adını ve şifresini ekleyin (unutmayın smbpasswd -a root ). Eğer herşeyi düzgün ayarladıysanız şöyle açılır bir pencereyle karşılaşacaksınız:
Dosya:Welcome.jpg
Tamam (Ok) sekmesini seçin ve iş istasyonunuzu yeniden başlatın, ardından alana smbldap-useradd komut dosyasına eklediğiniz kullanıcı hesabıyla giriş yapın.