Howto setup SUSE as SAMBA PDC with OpenLDAP, DYNDNS and CLAM

Şuraya atla: kullan, ara


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:

Yastldap.png

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:

Prop-add.jpg

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:

Auth-prompt.jpg

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.