Howto setup SUSE 10.1 as Samba PDC

Şuraya atla: kullan, ara


Bu yazının ilgiye ihtiyacı var!

Bu yazı şu anda OpenSUSE Wiki'de beklenilen standarda uygun değildir.
Bu yazıyı geliştirmeye yardımcı olmaktan çekinmeyin. Daha fazla bilgi için Wiki Team'e bakın.

Bu yazının SUSE 9.3'e gönderilmelerden arınması gerekmektedir.
Uygulanabilir YaST/GUI araçları için kontrol edin.

Howto setup SUSE as SAMBA PDC with OpenLDAP, DYNDNS and CLAM yazısı SUSE Linux 9.3 için yazılmıştır. Julien Ithurbide tarafından belirtildiği gibi kullanılmış paketler için kurulum işlemi 10.0'da ve 10.1'de değiştirilmiştir:

"Bazı yorum ve değişiklikler ekledim. Artık bu rehber, SUSE Linux 10.1 için çalışıyor ve 10.0 için de çalışmalı (denenmedi)."

Giriş

Bu, GNU/Linux sisteminin, Samba, OpenLDAP, DHCP, DNS ve ClamAV ile kurulum ayarlarının nasıl yapılacağıyla ilgili adım adım bir kılavuzdur. Bu kurulum, openSUSE 10.1 ortamına odaklanmış olsa da, küçük ayar değişiklikleriyle herhangi bir GNU/Linux dağıtımını çalıştırabilmelisiniz.

Ben, YaST DNS sunucusunda, DNS sunucu ayarlayıcısı (server configurate) ile Samba, OpenLDAP'i denedim. Dhcp dns ilişkisini kullanmadım. Ama bu kurulum ayarlarını, OpenSUSE 10'da denedim ve çalışıyor. Biri bunu deneyebilir mi?

clamAV bölümünü kullanmadım, nasıl çalıştığını bilmiyorum.

Bazı görüşler, tüm paketleri YaST ile yükledim. Sonraki bölümde, benim kurulumumu nasıl yapabileceğinizi açıklıyorum. Nasıl-yapılır artık bitti, çalışıyor ve sistemi kurabiliyor. Sorun bulursanız, lütfen bu belgelendirme üzerinde değişiklik yapın. Belki, yıl sonundan önce smbldap yast araçları için ekle/sil kullanıcı ve grup oluşturabilirim. DNS/DHCP ve clamAV bölümünü denemek için biraz yardıma gereksinimim var.

Julien Ithurbide

Bu Kurulumu Oluşturmak için Kullanılan Yazılıma Bakış

Dağıtım: OpenSUSE 10.1

SUSE Linux 10.1, kolay-yüklenebilir bir Linux işletim sistemi içerir. SUSE Linux 10.1, Web evsahipliği (hosting), merkezi yazdırma ve ortam (media) iş istasyonları 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 yeni biçimlerini kullanır. Sunucu kurulumu ve ayarlarından yazılım güncellemeye herşeyi hızlandırmak için özellikler ile SUSE Linux, bir perakende Linux paketine dahil olmuş en geniş kapsamlı araç kümesini içerir. SUSE Linux, Apache, DNS, DHCP, Samba, NFS, SLP ve NIS'in en yeni sürümleriyle birlikte gelmektedir.

Ön Uç (Backend) Veritabanı: OpenLDAP 2.3.19-18

OpenLDAP Yazılımı, Lightweight Dizin Erişim Protokolü'nün açık kaynak uygulamasıdır.

Ad Çözümleme: Adlandırılmış (BIND) 9.3.2-17

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.

Otomasyon için TCP/IP Ayarları: DHCP-Sunucusu 3.0.3-21

DHCPD, Linux tarafından istemci sistemleri için TCP/IP bilgisini dinamik olarak ayarlamak için kullanılan 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

openSUSE 10.1'in çalışan bir kurulumuna sahip olduğunuzu varsayarak, bu eğitselin sizin işinize yaraması için birkaç paket yüklemeniz gerekmektedir.

Paketi Yüklemek

En pratiği YaST kullanmak (eğer X window launch yast2 kullanırsanız, X launch yast kullanmayın)

Şunları yükleyin:


samba-client
samba-doc
samba
samba-pdb
samba-winbind
yast2-samba-client
yast2-samba-server
samba-vscan
bind
bind-chroot
openldap2
openldap2-client
nss_ldpa
perl-ldap
smbldap-tools

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üzenleyicisi'ni kullanarak, smb.conf dosyasını düzenleyin veya /etc/samba dizininde oluşturun ve düzeltin veya bu satırları, içine ekleyin. workgroup ifadesi için, eğer foobar.tld 15 karakterden daha uzunsa, Samba'nın bunu kısaltacağına dikkat edin! smb.conf dosyasını aşağıda tanımlandığı şekilde sıfırdan oluşturmanızı öneriyorum:

# Alan adı, sunucu adı tanımlama
####################################################
[global]
workgroup = foobar.tld
netbios name = bar
# ldapsam arka uç veritabanı belirleme #################################################### passdb backend = ldapsam:ldap://127.0.0.1 username map = /etc/samba/smbusers
# Yazdırma altsistemini belirleme #################################################### printcap name = cups printing = cups
# IDEALX komut dosyaları yolu (buraya yakında geleceğiz) # # OpenSUSE 10.1 ile smbldap-tools (araçlarını) yüklediğinizde # Tümü /usr/sbin'de halihazırda kuruluysa yalnızca # /usr/sbin/smbldap-* yolunu kullanmanız gerekir #################################################### add user script = /usr/sbin/smbldap-useradd -m %u delete user script = /usr/sbin/smbldap-userdel %u add group script = /usr/sbin/smbldap-groupadd -p %g delete group script = /usr/sbin/smbldap-groupdel %g add user to group script = /usr/sbin/smbldap-groupmod -m %g %u delete user from group script = /usr/sbin/smbldap-groupmod -x %g %u set primary group script = /usr/sbin/smbldap-usermod -g %g %u add machine script = /usr/sbin/smbldap-useradd -w %u
# Eğer alana, makineleri otomatik olarak yüklemek istiyorsanız, makine ekle komut dosyası şöyledir: # add machine script = /usr/local/sbin/smbldap-useradd -w -i %u # SUSE 10.0'de denemiş # # 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) işlevi tanımlama #################################################### log level = 256 log file = /var/log/samba/%m.log
# Virüs Tarama Tanımlaması #################################################### vfs object = vscan-clamav vscan-clamav: config-file = /etc/samba/vscan-clamav.conf
# Kullanıcı giriş (home) dizini tanımlama #################################################### [homes] comment = Home Directories valid users = %S read only = No browseable = No
# Yazıcı tanımlama # #Bu ayarlara sahip yazıcılarda bazı sorunlar çıkıyor #ve OpenSUSE 10.1'deki yazıcılar lütfen bunu kullanın : # #[printers] # comment = All Printers # path = /var/tmp # printable = Yes # create mask = 0600 # browseable = No #[print$] # comment = Printer Drivers # path = /var/lib/samba/drivers # write list = @ntadmin root # force group = ntadmin # create mask = 0664 # directory mask = 0775 # # #################################################### [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 hizmeti 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 ortak kaynak tanımlama #################################################### [share] comment = data share path = /opt/stuff valid users = %U

En sevdiğiniz ascii düzenleyicisi'ni kullanarak, /etc/samba dizinindeki smbusers dosyasını düzenleyin ve (öntanımlı olarak eklenmediğinde) şu satırı değiştirin veya ekleyin (normalde bu dosyayı değiştirmeniz gerekmiyor):

root = administrator

smb.conf'ta IDEALX komut dosyası bölümüyle ilgili kafanız karışmış olabileceği için, işte açıklama: "IDEALX komut dosyaları, LDAP dizini"ndeki kullanıcı ve grupları değiştirmek için user{add,del,mod} ve group{add,del,mod} sistem araçları (komut dosyaları) koleksiyonudur. Lütfen, SUSE Linux 10.1 ile herhangi bir dosyayı kopyalamanız gerekmediğini, hepsinin /usr/sbin dizininde yüklü olduğunu unutmayın.

Şimdi kurulum ayarlarımızı sözdizimsel (syntactical) doğruluk açısından kontrol edersek, aşağıdaki gibi bir çıktı elde etmelisiniz:

# 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


Şöyle bir ileti alabilirsiniz: NT_error ... please reboot your server and retest the "smbclient -L localhost -N" command.

OpenLDAP Kurulumu

En sevdiğiniz ascii düzenleyicisi'ni 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 veya şema dosyası yeri 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 + ş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 (indexing)(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 da güvenlik olmalı. # # ###################################################################### access to attrs=userpassword, sambaLMPassword,sambaNTPassword 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ıdaki gibi olacak şekilde değiştirdikten sonra, samba3.schema dosyasının /etc/openldap/schema dizininde olduğundan emin olun (dizini listeleyin ve görün). Eğer yoksa, samba-client adlı paketi yükleyin.

OpenLDAP arka uç kurulum ayarlarındaki bir sonraki adım OpenLDAP etki alanımızın bir sıradüzenini (hiyerarşi) oluşturmaktır. LDAP ağacını doldurmak için IDEALX komut dosyaları kullanacağız. OpenLDAP sunucusunun tabanını oluşturmak için bazı dosyalar üzerinde değişiklikler yapmamız gerekiyor.

En sevdiğiniz ascii düzenleyicisi'ni 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ıza sahip olmak için net getlocalsid komutunu çalıştırın
# Ve aşağıya koyun
###############################################################
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"

Yine en sevdiğiniz ascii düzenleyicisi'ni 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"

LDAP sunucusunu çalıştırın:

# rcldap start

/usr/sbin dizininden smbldap-populate'yi çalıştırmanın sırası geldi:

# /usr/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

Yönetici girişi şifresini girmenizi isteyen bir ileti görünür, şifrenizi yazın ve onaylayın.


Devam etmeden önce, kayıtların yapıldığından emin olmak için ldap veritabanını cat edin, şöyle bir çıktı almalısınız:

# 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 geri planda çalışan programları (daemon) tekrar başlatın:

# rcldap start
# rcsmb start
# rcnmb start

Öncelikle, SAMBAnın LDAP veritabanını güncelleyebilmesi için LDAP şifresini secrets.tdb dosyasına eklemeliyiz. Sonra LDAP veritabanımıza birkaç hesap eklemeliyiz: SAMBA için yönetici girişi (root) hesabı eklemeliyiz, çünkü, etki alanına istemci makinesi eklemek, yönetici (administrator) hesabı (uid 0 olan hesap) kullanımını gerektiriyor ve ikinci olarak:

# smbpasswd -w secret
Setting stored password for "cn=Manager,dc=foobar,dc=tld" in secrets.tdb

# smbpasswd -a root


SAMBAnın LDAP veritabanını güncellemek için kullanacağı şeyin smbpasswd -w secret olduğuna dikkat edin, bunu rootpw bildirimindeki slapd.conf dosyasında tanımlı olanla aynı yapın.

IDEALX komut dosyalarını SAMBA ile kullanılacak olan LDAPa kullanıcı/grup ... vs hesapları eklemek için kullanın:

# smbldap-useradd -a USERNAME

Sistemin LDAP aracılığıyla kimlik doğrulaması yapması ve SAMBA için LDAPta saklanan bu posix hesaplarını kullanmak için, sisteminizi yerel ve uzak bağlantılar için LDAP aracılığıyla kimlik doğrulaması yapması amacıyla ayarlamalısınız.

Sisteminizi LDAP istemcisi olarak ayarlamak için YaST kullanın:

Yastldap.png

Bunu yaptıktan sonra, en sevdiğiniz ascii düzenleyicisi'ni kullanın, /etc/ dizinindeki nsswitch.conf dosyasını düzenleyin ve şu bildirimi ekleyin veya değiştirin:

passwd: files ldap
group: files ldap

Şimdi sisteminizin hem yerel sistem hem de LDAPde saklanan hesapları görebildiğini anlamak için, yönetici veritabanındaki kayıtları listeleyin (eğer henüz hesap eklemediyseniz en az iki Yönetici (Admin) ve kimse (nobody) hesap olmalı, komut tüm hesapları gösterecektir, ancak ben, sadece iki tane içine 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 açıklandığı gibi ayarlandıysa, en iyi otomasyon için, bir iki dosyayı daha düzenlemeniz gerekiyor, önce /etc/samba dizini altında scripts dizinini oluşturun:

# echo session required pam_mkhomedir.so skel=/etc/skel umask=0022 >>/etc/pam.d/common-session

Önemli Not: Eğer OpenSUSE 10 veya 10.1'de "mycorp.net" gibi bir alan adı kullanıyorsanız /etc/ldap.conf dosyasını şöyle değiştirmelisiniz:

En sevdiğiniz ascii düzenleyicisi'ni kullanarak, /etc/ dizinindeki ldap.conf dosyasını düzenleyin ve şu bildirimi ekleyin veya değiştirin:

Tüm nss_base seçeneği halihazırda bulunur ; ama eğer windows'ta alana katılmak istiyorsanız, dosyayı şöyle değiştirin: Tüm diğer nss_base seçeneğini açıklama (commentary) olarak "#" ile işaretleyin.

host 127.0.0.1
base dc=foobar,dc=ltd #very important 
nss_base_passwd ou=Users,dc=foobar,dc=ltd?sub
nss_base_passwd ou=Computers,dc=foobar,dc=ltd?sub
nss_base_shadow ou=Users,dc=foobar,dc=ltd?sub
nss_base_group ou=Groups,dc=foobar,dc=ltd?one

Eğer sunucuya ne olduğunu bilmek istiyorsanız, bir günlük (log) dosyası oluşturun

debug 256
logdir /var/log/ldap


ssl ve pam şifrelerini şöyle değiştirmelisiniz: Normal kurulumda pam_password (pam şifresi) karma (hash) olarak ayarlanmıştır; ama md5 olarak değil.

ssl no
pam_password md5


Klasörü şununla oluşturmayı unutmayın:

mkdir -p /var/log/ldap


Oh, şimdi herşey ayarlandığına göre, eğitselle devam edebilirsiniz :D !!

Dinamik DNS Kurulumu

Ön Yapılandırma Ayarları

dynDNS altyapımızı oluşturmak amacıyla, dinamik güncellemeler için DHCP ve DNS sunucu ayarlarını yapmadan ö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ımını içeren dosyayı oluşturmak için, şu komutu uygulayın:

# cd /etc
# genDDNSkey

Bu, ön tanımlı olarak DHCP_UPDATER anahtarıyla named.keys adıyla bir dosya oluşturacaktır, elbette şunu uygulayarak başka bir anahtar 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 oluşturulduktan sonra, her ikisi de chroot jail'de çalıştığı için, hem DHCP hem de DNS arka plan programlarına bu dosyayı kullanmalarını söylemelisiniz.

En sevdiğiniz ascii düzenleyicisi'ni 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üzenleyicisi'ni 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ın kurulum ayarlarını yapmaya başlayabilirsiniz.

DHCP Kurulumu

En sevdiğiniz ascii düzenleyicisi'ni 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). Aynı zamanda IP adres şeması, değerler rastgeledir, ağ şemanızı yansıtması için bu şekilde ayarlayacaksınız:

# Bölge dosyalarını güvenle güncellemek için kullanacağımız anahtarlı dosya   
##########################################################
include "/etc/named.keys";
# Sunucumuz yetkilidir ######################################################### server-identifier bar.foobar.tld; authoritative;
# Bölge tanımlaması ########################################### 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ı ( aralık ... ) ################################################# 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üzenleyicisi'ni kullanarak, /etc dizinindeki named.conf dosyasını düzenleyin ve burada, şu satırları ekleyin veya değiştirin (named.conf dosyasını sıfırdan oluşturmanızı öneriyorum). Ayrıca yukarıdaki DHCP örneğindeki gibi, değerler ve aralıklar rastgeledir ve siz, bunları istediğiniz değerlere ayarlayacaksınız.

# Anahtar içeren dosyayı dahil et
#################################################
include "/etc/named.keys";
# Erişim Kontrol Listeleri ################################################# 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öle 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"; };
# Düz (forward) foobar.tld bölgesi tanımlaması ################################################# zone "foobar.tld" { type master; file "dyn/foobar.forward"; allow-update { key DHCP_UPDATER; }; allow-query { mynet; }; allow-transfer { mynet; }; };
# Ters (reverse) foobar.tld bölgesi 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, gerçek bölge dosyalarını kurmalı/oluşturmalısınız.

En sevdiğiniz ascii düzenleyicisi'ni 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üzenleyicisi'ni 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.

'yerelsunucu (localhost) için, her iki bölge dosyası da ön tanımlı olarak oluşturulduğundan, tekrar oluşturmanız gerekmez, root.hintte ön tanımlı olarak içine katılmıştır.

İçerik Denetimi

ClamAV

SAMBAda içerik denetimi ayarlamak, biraz sıkıntılıdır ve bazı değişikliklerin yapılmasını gerektirir. 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 adlı bir dizin oluşturun ve sahipliğini vscan kullanıcısı ve grubu olarak değiştirin:

# mkdir /var/run/clamd
# chown vscan:vscan /var/run/clamd

Aynı zamanda karantina (quarantine) olarak kullanılacak bir dizin de oluşturmalıyız ve vscan kullanıcısına sahiplik vermeliyiz:

# mkdir /var/lib/clamav/quarantine
# chown vscan /var/lib/clamav/quarantine 

En sevdiğiniz ascii düzenleyicisi'ni 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üzenleyicisi'ni 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 olutş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) öntanımlı olarak makine başlatıldığında koşmaya ayarlayın:

# chkconfig named on
# chkconfig dhcpd on
# chkconfig smb on
# chkconfig nmb on
# chkconfig clamd on

İstemci Kurulumu

Peki, bir istemci iş istasyonunu SAMBA alanına bağlama yolculuğumuza başlayalım. Makine hesabı ön tanımlı olarak alana otomatik eklenmeli, ama olmazsa, önce bunun için POSIX makine hesabı eklemeniz gerekecek ( $nın olmasının bir sebebi olduğuna dikkat edin, bu işaret, hesabın bir makina hesabı olduğunu belirtir):

# smbldap-useradd -w machine_name$

Şimdi, windows iş istasyonunuzda, Bilgisayarım (My Computer) üzerine sağa tıklayın ve Özellikleri (Properties) seçin, şöyle bir pano ile karşılaşmalısınız:

Dosya:Network-properties.jpg

Şimdi Özellikler (Properties) sekmesine tıklayın, karşınıza şöyle bir pano çıkacak:

Prop-add.jpg

Alan (Domain) seçenek sekmesini tıklayın ve alan adını foobar.tld olarak yazın, şimdi Tamam (Ok) sekmesine tıklatın , karşınıza şöyle bir pano çıkacak:

Auth-prompt.jpg

Yönetici (Administrator) kullanıcı adını ve bunun için şifreyi ekleyin (unutmayın smbpasswd -a root ). Eğer, herşeyi doğru ayarladıysanız şöyle bir pencere açılmalı:

Dosya:Welcome.jpg

Tamam'a (Ok) tıklatın ve iş istasyonunuzu yeniden başlatın, yeniden başladıktan sonra smbldap-useradd komut dosyasıyla eklediğiniz kullanıcı hesabıyla alana giriş yapın.