Linux İşletim Sistemlerinde Yazıcı Sunucusu Yapılandırması (Samba Print Server)

LinuxAllBu makalemizde “Linux İşletim Sistemlerinde Yazıcı Sunucusu Yapılandırması (Samba Print Server)” konusunu inceleyeceğiz. Kurulum işlemimizi “CentOS Linux 6.4 İşletim Sistemi” üzerinde gerçekleştireceğiz. Kurulum adımları Red Hat türevi işletim sistemleri ile oldukça benzerdir.

Samba Nedir ?

Samba, Linux/Unix işletim sistemleri ile Windows işletim sistemleri arasındaki iletişim kuran bir ağ sunucusu yazılımıdır. Linux’ta arka planda çalışan bu Deamon Windows istemcilerinin samba kurulu olan sunucuda paylaşıma açılmış dosya ve dizinlere ulaşılmasına olanak tanır bunun yanında istemcilerin yazıcı isteklerinide yönetebilir. Tam olarak Samba yapılandırılmış bir Linux sunucusu, genel olarak dizinleri paylaştırabilir, aktif dizin servisi (ADS – Active Directory Services) verebilir ayrıca PDC (Birincil Alan Denetleyicisi) olarak da çalışabilir, Windows istemcileri ile kullanıcı onayı yapar, kaynakları (dizinleri ve yazıcıları) paylaştırır ve kullanıcı oturumlarını uyarlar. Samba Windows istemcileri (clients) için dosya, yazıcı servisi sağlamanın dışında istemciler için işlevsellik ve yardımcı uygulamalar içerir.

Samba Sunucusunun Yapabildikleri

1. Öncelikle “Samba” ve “Active Directory” entegrasyonu için “Linux İşletim Sistemlerinde Kerberos ile Kimlik Doğrulama”  yazımızdaki adımları uygulayarak sunucumuzu etki alanımıza üye yapıyoruz.. Yazımızda grafik arayüz (gui) veya komut istemcisinden ayarlarımızı nasıl yapacağımız anlatılmıştır. Aşağıdaki adımlar “Linux İşletim Sistemlerinde Kerberos ile Kimlik Doğrulama” yazımızdaki paketlerin kurulu olduğu ve “Kerberos” yapılandırmasının yapıldığı varsayılarak düzenlenmiştir.

2. Sunucumuza gerekli olan “Linux Cups” print server paketlerimizi kuruyoruz ve servisimizi sistemimiz başlarken otomatik açılacak şekilde yapılandırıyoruz.

-- Linux Cups paketlerimizi kuruyoruz.

# yum -y install cups*

-- Linux Cups servisimizi başlatıyoruz.

# service cups start

-- Linux Cups servisimizi sunucumuz başladığında otomatik açılacak şekilde
yapılandırıyoruz.

# chkconfig cups on

3. Sistemimize bağlayacağımız yazıcı sürücüsü sistemimizde mevcut değilse “Linux” işletim sistemi için uygun olan versiyonunu buluyoruz ve sistemimize yüklüyoruz.

# rpm -Uvh hplip-3.13.5_rhel-6.0.x86_64.rpm 

Preparing...                ########################################### [100%]
   1:hplipfull              ########################################### [100%]

4. Sunucumuz üzerinden web tarayıcımızı aracılığı ile Linux Cups yönetim konsoluna bağlanıyoruz. Konsola bağlanabilmek için sunucu üzerinden bu işlemi yapmalıyız veya ekranı “export” ederek “firefox” çalıştırılarak yapılmalıdır. Aksi takdirde erişmek mümkün olmayacaktır. Açılan konsolumuzda yeni yazıcı eklemek için “Add Printer” düğmesine tıklıyoruz.

-- Web tarayıcımızın adres çubuğuna aşağıdaki adresi yazıyoruz.

https://localhost:631/admin/

SambaPrnInstall_1

5. Konsolumuz bizden kullanıcı adı ve parolamızı istiyor. Burada sistemimizin “root” kullanıcı ve parolasını giriyoruz ardından “OK” düğmesine tıklıyoruz.

SambaPrnInstall_2

6. Konsolumuzda yazıcı türümüzü seçiyoruz. Benim ağımda olan yazıcıyı “Discovered Network Printers” seçeneğinde bulduğu için oradan seçiyorum ve “Continue” düğmesine tıklıyorum.

SambaPrnInstall_3

7.  Yazıcı ismini ve bulunduğu lokasyonuayarlıyoruz. Burada yazıcı isminde boşluk vb. olmamalıdır.

SambaPrnInstall_4

8. Yazıcımız için uygun sürücüyü seçiyoruz. Burada görülen sürücü az önce yüklediğimiz sürücüdür. Eğer Sistemimizde yazıcımıza uygun yüklü bir sürücü varsa bunuda kullanabiliriz. Gerekli seçimi yaptıkdan sonra “Add Printer” düğmesine tıklıyoruz.

SambaPrnInstall_5

9. Yazıcımızın kurulumu tamamlandı. Ayarlamamız gereken başka seçeneklerimiz varsa bu bölümde ayarlıyoruz.

SambaPrnInstall_6

10. Konsolumuzda “Printers” sekmesine geçtiğimizde kurmuş olduğumuz yazıcıların bir listesini görebiliriz.

SambaPrnInstall_7

11. Konsolumuzda “Administration” sekmesine gelerek gelişmiş ayarları aşağıdaki gibi ayarlıyoruz.

SambaPrnInstall_8

Active Directory (ADS – Active Directory Services) Entegre Yapılandırma

12. Sunucumuzda “samba” servisimizi başlatıyoruz ve sistemimiz açılırken otomatik başlaması için gerekli ayarları yapıyoruz.

-- Servisimizi Başlatmak için

# service smb start

-- Sistemimiz başlarken otomatik başlması için

# chkconfig smb on

-- Samba servisimizin "CUPS" desteğini kontrol ediyoruz. Aşağıdaki gibi bir
çıktı alıyorsak sorun yoktur. Aksi takdirde sistemimiz çalışmayacaktır.

# smbd -b | grep CUPS

   HAVE_CUPS_CUPS_H
   HAVE_CUPS_LANGUAGE_H
   HAVE_CUPS
   HAVE_LIBCUPS

-- Yazıcılarımızı yönetebilmesi için gerekli yetki atamamızı yapıyoruz.

# net rpc rights grant 'KORAYKEY\Domain Admins' SePrintOperatorPrivilege -U administrator

Enter administrator's password: **********
Successfully granted rights.

-- Varolan yetkili kullanıcıları görmek için

# net rpc rights list accounts -U administrator
Enter administrator's password: **********

BUILTIN\Print Operators
No privileges assigned

BUILTIN\Account Operators
No privileges assigned

BUILTIN\Backup Operators
No privileges assigned

BUILTIN\Server Operators
No privileges assigned

KORAYKEY\Domain Admins
SePrintOperatorPrivilege

BUILTIN\Administrators
SeMachineAccountPrivilege
SeTakeOwnershipPrivilege
SeBackupPrivilege
SeRestorePrivilege
SeRemoteShutdownPrivilege
SePrintOperatorPrivilege
SeAddUsersPrivilege
SeDiskOperatorPrivilege
SeSecurityPrivilege
SeSystemtimePrivilege
SeShutdownPrivilege
SeDebugPrivilege
SeSystemEnvironmentPrivilege
SeSystemProfilePrivilege
SeProfileSingleProcessPrivilege
SeIncreaseBasePriorityPrivilege
SeLoadDriverPrivilege
SeCreatePagefilePrivilege
SeIncreaseQuotaPrivilege
SeChangeNotifyPrivilege
SeUndockPrivilege
SeManageVolumePrivilege
SeImpersonatePrivilege
SeCreateGlobalPrivilege
SeEnableDelegationPrivilege

Everyone
No privileges assigned

13. Linux Cups ayarlarımız tamamlandı. Şimdi “samba” üzerinden yazıcımızı paylaştırmaya ve ayarlarımızı yapmaya başlıyoruz. Sunucumuzda “Kerberos” ayarlarımız bittikten sonra ”/etc/samba/smb.conf” dosyasını açarak “Samba” sunucu ayarlarımızı yapıyoruz. Aynı dosyada paylaşıma açtığımız dizinin ve yazıcı bilgilerini yapılandırıyoruz.

-- Sunucumuzda yazıcı sürücülerini koyacağımız bir dizin oluşturuyoruz.

# mkdir -p /u01/printers
# chmod -R 770 /printers

# vim /etc/samba/smb.conf

-- Dosyasını açıyoruz aşağıdaki "global "değişkenlerini kendi sistemimize göre
düzenleyerek ekliyoruz. Bazı satırlar varolabilir bunları dikkatlice düzenliyoruz.

# Samba Server Global Configuration

[global] 

   workgroup = KORAYKEY
   realm = KORAYKEY.NET
   preferred master = no
   server string = Samba Server Version %v
   security = ads
   encrypt passwords = yes
   log level = 3
   log file = /var/log/samba/%m
   max log size = 50
   printcap name = cups
   printing = cups
   winbind enum users = yes
   winbind enum groups = yes
   winbind use default domain = yes
   winbind nested groups = yes
   winbind separator = +
   idmap uid = 1000-20000
   idmap gid = 1000-20000
   template shell = /bin/bash

# Samba Server Printer & Shared Folder Configuration

[printers]
        comment = All Printers
        path = /var/spool/samba
        browseable = yes
        guest ok = no
        writable = no
        printable = yes
        printing = CUPS

[Print$]
        comment = Yazici Suruculeri
        browseable = yes
        path = /u01/printers/
        read only = yes
        public = yes
        force user = %U
        force group = "KORAYKEY+Domain Users"
        force create mode = 0660
        create mask = 0660
        force directory mode = 0770
        valid users = @"KORAYKEY+Domain Users"
        admin users = @"KORAYKEY+Domain Users"
	write list = @"KORAYKEY+Domain Users"

[IT_Printer]
        path = /var/spool/samba/
        browseable = yes
        printable = yes
        printer name = HP_Deskjet_4620_series
        public = no
        force user = %U
        force group = "KORAYKEY+Domain Admins"
        valid users = @"KORAYKEY+Domain Users"
        admin users = @"KORAYKEY+Domain Admins"

-- Yukarıda bulunan "[Print$]" paylaşımı gizli bir paylaşımdır sunucumuzda
görülsün istiyorsak "$" işaretini kaldırmalıyız.

14. Yaptığımız ayarların geçerli olması için samba yapılandırmamızı yeniden yüklüyoruz. Bunu servisimizi yeniden başlatarak veya yapılandırmamızı yeniden yükleyerek yapabiliriz.

-- Servisimizi yeniden başlatmak için

# service smb restart

-- Yapılandırmamızı yeniden yüklemek için

# smbcontrol all reload-config

Samba Servisini (Active Directory Servisi Olmadan) Yerel Hesaplarla Yapılandırma

15. Sistemimize gerekli olan “samba” ve “cups” paketlerimizi kuruyoruz.

-- Öncelikle sistemimizde bulunan eski "samba" paketlerini kaldırıyoruz.

# yum -y remove samba*

-- Sistemimize "samba4" ve "cups" paketlerini kuruyoruz.

# yum -y install samba4* cups*

-- Servisimizi Başlatmak için

# service smb start

-- Sistemimiz başlarken otomatik başlması için

# chkconfig smb on

-- İstemcimizi etki alanına üye yapmadan önce sistemimizi yeniden başlatıyoruz.

# shutdown -r now

16. Sunucumuzda “Samba” servisimiz tarafından kullanılacak kullanıcı ve grupları oluşturuyoruz.

-- Grup Oluşturmak için aşağıdaki komutu kullanıyoruz.

# groupadd it_dep_group

-- Kullanıcılarımızı oluşturup yukarıda oluşturduğumuz
"it_dep_group" grubuna üye yapıyoruz.

# useradd ituser1 -G it_dep_group

-- Kullanıcımız için parola belirliyoruz.

# passwd ituser1
Changing password for user ituser1.
New password: 
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password: 
passwd: all authentication tokens updated successfully.

-- Kullanıcımızın oluştuğunu ve grubumuz üye olduğunu kontrol ediyoruz.

# id ituser1
uid=54323(ituser1) gid=54325(ituser1) groups=54325(ituser1),54324(it_dep_group)

17. Oluşturmuş olduğumuz kullanıcımız için samba parolalarını oluşturuyoruz.

# smbpasswd -a ituser1

New SMB password:
Retype new SMB password:
Forcing Primary Group to 'Domain Users' for ituser1
Forcing Primary Group to 'Domain Users' for ituser1
Added user ituser1.

18. Sunucumuzdaki Samba yapılandırma dosyası “/etc/samba/smb.conf” içerisinde gerekli ayarlamaları yaparak oluşturduğumuz dizini ve yazıcımızı paylaşıma açıyoruz.

-- Sunucumuzda yazıcı sürücülerini koyacağımız bir dizin oluşturuyoruz.

# mkdir -p /u01/printers
# chmod -R 770 /printers

-- Samba yapılandırma dosyamızı açıyoruz.

# vim /etc/samba/smb.conf

-- Dosyasını açıyoruz ve dosyanın sonuna aşağıdaki değişkenleri kendi
sistemimize göre düzenleyerek ekliyoruz. Vi Editöründe sayfa sonuna
gitmek için komut modundayken "shift+g" tuşlarına basabiliriz. Bu şekilde
yapılandırdığımızda tüm kullanıcılar yazıcılarım

# Samba Server Printer & Shared Folder Configuration

[printers]
        comment = All Printers
        path = /var/spool/samba
        browseable = yes
        guest ok = no
        writable = no
        printable = yes
        printing = CUPS

[Print$]
        comment = Yazici Suruculeri
        browseable = yes
        path = /u01/printers/
        read only = yes
        public = yes

[IT_Printer]
     path = /var/spool/samba/
     browseable = yes
     printable = yes
     valid users = @it_dep_group
     force group = +it_dep_group
     printer name = HP_Deskjet_4620_series

19. Değişikliklerin uygulanabilmesi için Samba servisimizi  değişen yapılandırma dosyası ile yeniden başlatıyoruz.

# service smb restart

20. Samba sunucumuzda paylaşımları bir web arayüzü ile yönetebiliriz. Bu arayüzden Active Directory entegre veya Yerel Kimlik Doğrulama yöntemini kullanarak gerekli ayarlamalarımızı yapabiliriz.

-- Öncelikle Swat (Samba Web Administration Tool) aracımızın ayarlarını yapıyoruz.

# vim /etc/xinetd.d/swat

dosyasını açıyoruz ve aşağıdaki değişkenleri düzenliyoruz.

only_from       = 127.0.0.1 192.168.2.0/24
disable         = no

-- Servisimizi başlatıyoruz ve sunucumuz açıldığında otomatik başlaması için
ayarlıyoruz.

# service xinetd start
# chkconfig xinetd on

-- Samba Swat yönetim panelimiz hazır kullanabilmek için aşağıdaki gibi örnek
linkten bir web tarayıcısı ile bağlanabiliriz. Oturum açabilmek için "root"
kullanıcı ve parolasını kullanabiliriz.

http://192.168.2.120:901/

21. Sunucumuzda Firewall ve SELinux servisi etkin ise aşağıdaki izinleri yapılandırıyoruz. Eğer sunucumuzda Firewall ve SELinux servisi kapalıysa bu ayarları atlayabiliriz.

-- Firewall ayarları için aşağıdaki komutları çalıştırıyoruz.

# iptables -A INPUT -p tcp --dport 135 -j ACCEPT
# iptables -A INPUT -p tcp --dport 137 -j ACCEPT
# iptables -A INPUT -p tcp --dport 138 -j ACCEPT
# iptables -A INPUT -p tcp --dport 139 -j ACCEPT
# iptables -A INPUT -p tcp --dport 445 -j ACCEPT

-- Samba hizmeti ile ilişkili SELinux durumu aşağıdaki komutu
kullanılarak görüntülüyoruz.

# getsebool -a | grep samba
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
use_samba_home_dirs --> off
virt_use_samba --> off

-- Sunucumuzda "setsembol" komutu kullanılarak gerekli ayarlamaları
yapıyoruz.

-- Aktif etmek için

# setsebool use_samba_home_dirs on

-- Pasif hale getirmek için
# setsebool use_samba_home_dirs off

-- Sunucumuzda "semanage" ve "restorecon" komutlarını kullanarak
paylaşım dizinimize izinleri veriyoruz.

-- İzin vermek için

# semanage fcontext -a -t samba_share_t "/u01(/.*)?"

-- İzinleri geri almak için

# restorecon -F -R -v /u01

22. Sunucumuzda “samba print server” yapılandırması tamamlandı. Şimdi istemci bilgisayarlarımızdan yazıcılarımızı yükleme işlemini inceleyelim. Öncelikle “Active Directory” ortamımız varsa yazıcılarımız için “Group Policy” ilkemizi yapılandırıyoruz. Burada yazıcılarımızın yükleneceği yazıcı sunucumuzu ve yüklerken uyarı vermemesi için gerekli ayarları yapıyoruz.

SambaPrnInstall_9

23. Yazıcı sunucumuza bağlanmak için Windows Logo+R tuşuna basıyoruz ve açılan pencereye “\\koraykey-fs” yazıyoruz. Sunucumuzda kullanabilir yazıcıları görüyoruz.

SambaPrnInstall_10

24. Yazıcı sürücülerimizi görebilmek için Windows Logo+R tuşuna basıyoruz ve açılan pencereye “\\koraykey-fs\print$” yazıp “enter” tuşuna basıyoruz. Açılan pencerede yüklemiş olduğumuz yazıcı sürücülerimizi görüyoruz. Bu sürücü paylaşımını daha önceki adımlarımızda yapılandırmıştık.

SambaPrnInstall_11

25. Yazıcı sunucumuzda paylaştırmış olduğumuz “IT_Printer” yazıcımızın üzerinde sağ tıklıyoruz ve “Connect” seçeneğini seçiyoruz.

SambaPrnInstall_12

26. Yazıcı sunucumuz “Linux” olduğu için Windows işletim sistemi ile uyumlu sürücümüzü bulamadığını söylüyor. Burada “OK” düğmesine tıklıyoruz.

SambaPrnInstall_13

27. İşletim sistemimizde mevcut olan yazıcı sürücülerimizi bize listeliyor. Burada mevcut bir yazıcı ise seçebiliriz. Ancak bizim paylaşıma açtığımız yazıcı gibi mevcut olmayan bir sürücü yüklememiz gerekiyorsa “Have Disk” düğmesine tıklıyoruz.

SambaPrnInstall_14

28. Yazıcımızın sürücüsünün bulunduğu paylaşımın ismini yazıyoruz. Biz sunucumuzda “\\koraykey-fs\print$\hp4620″ paylaşımını ayarlamıştık. Bunu yazıyoruz ve “OK” düğmesine tıklıyoruz.

SambaPrnInstall_15

29. Paylaşımda olan yazıcımızın modelini seçiyoruz ve “OK” düğmesine tıklıyoruz.

SambaPrnInstall_16

30. Yazıcımızın yüklmesi tamamlandı. Başlat menüsünden yazıcılarımızı açtığımızda yüklemiş olduğumuz yazıcımızın kullanıma hazır olduğunu görebiliriz.

SambaPrnInstall_17

Bu makalemizde “Linux İşletim Sistemlerinde Yazıcı Sunucusu Yapılandırması (Samba Print Server)” yapılandırmasını inceledik. Bu yazımız ile tamamen Linux tabanlı bir işletim sisteminden Samba Yazıcı Sunucusu (Samba Print Server) yapılandırma kurulumunu Active Directory hizmetiyle bütünleşik ve yerel hesaplarla yapılandırma işleminide gerçekleştirdik. Yukarıdaki kurulum işlemleri Centos Linux 6.4, Red Hat Enterprise Linux 6.4 ve Oracle Enterprise Linux 6.4 işletim sistemlerinde denenmiştir.

Başka bir makalede görüşmek üzere…

Bu yazı Unix / Linux kategorisine gönderilmiş ve , , , , , , , , , , , , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.