Bu 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
- File server ( Windows’tan Linux’e, Linux’tan Windows’a )
- Print server ( Windows’tan Linux’e, Linux’tan Windows’a )
- PDC (Windows ve Linux için Birincil Etki Alanı Denetleyicisi) vb.
- Wins Server
- Master Browser
- Domain Browser
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/
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.
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.
7. Yazıcı ismini ve bulunduğu lokasyonuayarlıyoruz. Burada yazıcı isminde boşluk vb. olmamalıdır.
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.
9. Yazıcımızın kurulumu tamamlandı. Ayarlamamız gereken başka seçeneklerimiz varsa bu bölümde ayarlıyoruz.
10. Konsolumuzda “Printers” sekmesine geçtiğimizde kurmuş olduğumuz yazıcıların bir listesini görebiliriz.
11. Konsolumuzda “Administration” sekmesine gelerek gelişmiş ayarları aşağıdaki gibi ayarlıyoruz.
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.
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.
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.
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.
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.
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.
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.
29. Paylaşımda olan yazıcımızın modelini seçiyoruz ve “OK” düğmesine tıklıyoruz.
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.
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…