پیکربندی سرویس Samba در لینوکس

پیکربندی سرویس Samba در لینوکس

Samba یک منبع آزاد / باز و نرم افزاری محبوب است که برای به اشتراک گذاری فایل ها و سرویس چاپگر بین سیستم های مانند یونیکس مانند سیستم های های لینوکس و ویندوز در همان شبکه استفاده می شود.

توجه داشته باشید که نسخه ۴٫۰، Samba می تواند به Active Directory (AD) استفاده شود.

samba  شامل ۳ بسته است :

  1. Samba-common که شامل پرونده هاي مورد نياز .
  2. Samba-server که نسخه ي کارساز سامباست .
  3. Samba-client که شامل برنامه هاي smbprint  و  smbmount و smbclient و مستندات مربوط با آنها است .

تنظيماتsamba  در فايل smb.conf ذخيره شده است که معمولا در مسير /etc/samba/smb.conf و يا /usr/local/lib/samba/smb.conf است. که مي توان به صورت دستي يا با ابزارهايي مانند swat  وwebmin و يا linuxconf  اين تنظيمات را انجام داد .

 

سامبا داراي ۳ Daemon است:

۱٫Nmbd : وظيفه ي Name registration وName resolution  را بر عهده دارد همچنين ميتواند به عنوان WINS Server  عمل کند و تبديل NetBIOSName به آدرس IP را انجام دهد     ۲٫Smbd : خدمات مبتني بر TCP/IP و احرازهويت و دسترسي به منابع اشتراک را مديريت و فراهم مي کند .

۳٫Winbindd : زمان که سامبا عضو ويندوز NT4 و يا (Active directory Server Domain) ADS باشد winbindd اجرا مي شود .

متغیرها

  • %h Internet hostname which samba is running .
  • %H home directory for the username %u
  • %I The IP Address of the client machine
  • %L NetBIOS name of the server
  • %m NetBIOS name of client machine
  • %M Internet hostname of client machine
  • %S The name of current service
  • %u User name of current service
  • %v Samba version number

 

            نصب Samba

براي استفاده از سامبا ابتدا بايد اين بسته را بروي سيستم خود نصب نماييد.مي توان آخرين نسخه اين بسته را از آدرس http://samba.org بدست آورد.

براي نصب ابتدا با فرمان زير بسته را از حالت فشرده خارج مي كنيم

#tar –xvf samba-*.gz.tar

اكنون براي نصب مراحل زير را دنبال كنيد:

#cd samba-*/source

در صورتي كه فايل Configure در دايركتوري Source موجود نباشد ابتدا با فرمان زير آن را ايجاد مي كنيم

#./autogen

اكنون اين فايل را بر روي سيستم اجرا مي كنيم

#./configure

#make

#make install

كليه تنظيمات مربوط به سامبا در فايل smb.conf ذخيره شده است.اين فايل معمولا در مسير/etc/samba/smb.conf ويا /usr/local/lib/samba/smb.conf قرار دارد. پيكربندي اين فايل مي تواند بصورت دستي يا از طريق ابزارهايي مانند SWAT و يا Linuxconf كه براي اين كار فراهم شده است انجام شود.

 

  • يك مثال ساده از پيكربندي فايل conf

مثال زير ناحیه myworkgroup را در اختیار تمام کاربران قرار میدهند. کاربران میتوانند فایلهای این ناحیه را تغییر یا پاک کنند .در اين مثال يك منبع به نام homes به اشتراك گذاشته شده است.

[global]
workgroup = MYWORKGROUP
[homes]
guest ok = yes
read only = no

  • فایل conf باید بخش [global] را داشته باشد. همچنین باید قسمتی برای تعریف دایرکتوریهای متداول باشتراک گذاشته شده مانند /tmp داشته باشد. قسمت [home] اختیاریست که حاوی نامهایی برای دسترسی آسانتر به دایرکتوریهاست. قسمت [global] قاعدتا باید حاوی تنظیمات امنیتی باشد ازقبیل رمزگذاری رمزهای ورود به سامبا و محل استقرار فایل حاوی رمزهای ورود و اینکه نوع دسترسی (فقط خواندنی، قابل اصلاح …) برای فایلها چگونه باشد. این فایل رابطه گروههای کاری، سرورها و حوزه ها (domain) را نیز مشخص میکند. در قسمت [home] مشخصات دایرکتوریهای باشتراک گذاشته شده تعریف میشود از قبیل اینکه نوع دسترسی و توضیحاتی که موقع دیدن آن دایرکتوری نمایش داده شود. در اینجا یک قسمت [home] نمونه آمده است:

[Home]
comment=Home directory for (sharefolder)
path=/home/(username)
valid users = (username )
force user= (username )
writeable = yes
browseable = yes

 این تنظیمات باعث میشود که موقع login کردن یک کاربر به او یک Home Folder با فابلیت دیدن فایلها و تغییر و اضافه آنها اختصاص میدهد.

پارامترهاي قابل تنظيم در فايلsmb.conf

[global]

پارامترهاي تعريف شده در اين قسمت برروي تمامي قسمتهاي به اشتراك گذاشته شده تاثير مي گذارد

workgroup = OPENNA

نام گروه workgroup كه هر دو طرف Linux و Windows در آن قرار دارند

encrypt passwords = True

براي رعايت امنيت اين گزينه بايد در حالت True باشد

 security = user

باتنظيم اين گزينه در حالت User كاربران بايد بوسيله يك Usernameو Password معتبر Log in كنند

smb passwd file = /etc/smbpasswd

مسيري كه Username و Password هاي معتبر در آن ذخيره مي شوند

 log file = /var/log/samba/log.%m

مسيري كه Log file ها در آن ذخيره شده اند

socket options = IPTOS_LOWDELAY TCP_NODELAY

با تنظيم اين گزينه مي توان Performance سرور سامبا در Transfering files را بهبود بخشيد

domain master = Yes

زماني كه اين گزينه را برروي YES تنظيم كنيد nmbd را بعنوان Domain master  در نظر مي گيرد

(زماني كه در شبكه تنها يك SambaServer داشته باشيم اين گزينه برروي Yes تنظيم مي كنيم)

 local master = Yes

زماني كه اين گزينه را برروي YES تنظيم كنيد nmbd را بعنوان Local Master در نظر مي گيرد

(زماني كه در شبكه تنها يك SambaServer داشته باشيم اين گزينه برروي Yes تنظيم مي كنيم)

 preferred master = Yes

زماني كه اين گزينه را برروي YES تنظيم كنيد nmbd را بعنوان Preferred Master در نظر مي گيرد

(زماني كه در شبكه تنها يك SambaServer داشته باشيم اين گزينه برروي Yes تنظيم مي كنيم)

os level = 65

زماني كه در شبكه يك NTServer داشته باشيم اين گزينه برروي ۶۵ تنظيم مي شود ( در صورتي كه در شبكه بيش از يك سامبا سرور داشته باشيم اين گزينه بايدDisable شود

dns proxy = No

زمانيكه SambaServerبعنوان يك Wins Server عمل كند اين گزينه را برروي Yes تنظيم مي كنيم

 name resolve order = lmhosts host bcast

 bind interfaces only = True

با تنظيم اين گزينه بررويTrue شما مي تونيد براي يك Interface محدوديت ايجاد كنيد

interfaces = eth0 192.168.1.1

 Interface IP كه در خط بالا محدود شده

hosts deny = ALL

ليست Host هايي كه اجازه دسترسي به Samba Server را ندارند كه در حالت پيش فرض اين گزينه برروي All تنظيم شده و بوسيله خط زير مي توان به يكHost  مجوز داد.

hosts allow = 192.168.1.4 127.0.0.1

debug level = 1

اگر اين عدد را بيشتر از ۱ تنظيم كنيد كارايي سيستم به سرعت كاهش مي يابد

create mask = 0644

كليه فايلهايي كه از windows به unix كپي يا ساخته مي شوند به طور پيش فرض  داراي Permission 0644 هستند

directory mask = 0755

كليه Directory كه از windows به unix كپي يا ساخته مي شوند به طور پيش فرض  داراي Permission 0755 هستند

level2 oplocks = True

در صورتي كه اين گزينه Trueباشد دسترسي به بعضي فايلهايي كه قابل نوشته شدن نيستند افزايش مي يابد

read raw = no

در صورتي كه اين گزينه Noباشد  كارايي Memory Map افزايش مي يابد

write cache size = 262144

 ميزان Cache قابل نوشتن است كه برحسب بايت در نظر گرفته مي شود

[homes]

comment = Home Directories

توضيحي كه كاربران در هنگام استفاده از منابع مشاهده مي كنند

browseable = no

اين فايل قابل Brows كردن باشد يا خير

read only = no

دسترسي به اين فايل  Read only تنظيم شده است

 invalid users = root bin daemon nobody named sys tty disk mem kmem users

اسامي كاربراني كه امكان استفاده از اين سرويس را ندارند

  [tmp]

 comment = Temporary File Space

توضيحي كه كاربران در هنگام استفاده از منابع مشاهده مي كنند

 path = /tmp

مسيري كه دسترسي كاربران در آن ذخيره شده است

 read only = No

دسترسي كاربران به tmp تنها دسترسي فقط خواندني مي باشد

 valid users = admin

اسامي كابراني كه مي توانند از اين سرويس استفاده كنند

invalid users = root bin daemon nobody named sys tty disk mem kmem users

اسامي كاربراني كه امكان استفاده از اين سرويس را ندارند

پس از تنظيم سامبا بايد سرويس آن را راه اندازي كنيم.چون Script مربوط به مديريت سامبا در /etc/rc.d/init.d/smb قرار دارد  بايد براي راه اندازي و پي بردن به وضعيت سرور سامبا دستورات زير را اجرا كنيد:

#/etc/rc.d/init.d/smb start

#/etc/rc.d/init.d/smb stop

#/etc/rc.d/init.d/smb status

تمام مسائل مربوط به راه اندازي و ايست سرور سامبا در پرونده مربوط به Log هاي سيستم ثبت مي شود.اين پرونده در مسير var/log/message قرار دارد.

          مشاهده ليست منابع مشترك روي سامبا

بعد از اينكه توانستيد SambaServer را به طور ساده تنظيم كنيد بايد بتوانيد ليست منابع مشترك روي آن را مشاهده نماييد .همانطور كه مي دانيدClient  سامبا مي تواند هم ويندوزي و هم لينوكسي باشد.براي مشاهده لسيت منابع به اشتراك گذاشته شده از روي يك Client لينوكسي بايد دستور زير را وارد نماييد:

#smbclient –L (samba server name)

با وارد نمودن اين دستوربايد ليست تمام منابع به اشتراك گذاشته شده روي سرور مشاهده شود.در Client ويندوزي نيز با دستور net share مي توان ليست منابع مشترك را ديد.

              پروتكل LDAP

یكی از سرویس‌هایی كه روی لینوكس ارائه می‌شود، امكان كار با پروتكل LDAP است. این سرویس كه تا حدودی برای بسیاری از كاربران و مدیران شبكه ناآشنا است، در كنار سرویس سامبا (Samba) بستری برای ارتباط سكوی اين‌سورس با دیگر سكوهای سیستم‌عاملی ایجاد می‌كند و موجب می‌شود بدون در نظرگیری استانداردها و پروتكل‌های سمت Server، با آن‌ها سازگاری و همسان‌سازی داشته باشد.

Lightweight Directory Access Protocol    یك پروتكل مبتنی بر شبكه و  X500 برای دسترسی به سرویس‌های دایركتوری روی شبكه است. این پروتكل دارای مستندات RFC2251 و RFC3377 است. به علت آن‌كه دایركتوری‌های موجود روی شبكه یكتا نیستند و هر یك ممكن است براساس یك سكوی سیستم‌عاملی و ساختار متفاوت باشند، پروتكل LDAP امكان برقراری ارتباط و مدیریت آن‌ها را فراهم می‌كند.

در حقیقت LDAP ابزاری برای مدیریت اطلاعات شبكه، حساب‌های كاربری، ماشین‌های میزبان شبكه و منابع درون شبكه است. با استفاده از این استاندارد می‌توان یك مدیریت متمركز و واحد را به كل پیكره شبكه اعمال نمود و با دسترسی به تمام سرویس‌های درون شبكه (سخت‌افزاری و نرم‌افزاری) امكان همسان‌سازی و پیكربندی آسان آن‌ها را فراهم كرد.

در حالت كلی پروتكل LDAP وظایف زیر را بر عهده دارد:

‌● ایجاد یك زبان مشترك دسترسی دایركتوری (Directory Access) بینClient و Server در شبكه و امكان برقراری ارتباط و تبادل اطلاعات میان آن‌ها فارغ از سكوی سیستم‌عاملی و سخت‌افزاری.

  • ایجاد قابلیت استفاده از متدهای ساده رمزنگاری در پروتكل TCP/IP برای تبادل اطلاعات كنترلی و مدیریتی مانند كنترل و مدیریت كاربران در شبكه.
  • ایجاد یك استاندارد برای استفاده از دایركتوری در شبكه.

این استاندارد قابلیت نصب و پیكربندی ساده و انعطاف‌پذیر سرویس دایركتوری و سفارشی نمودن آن برای نیازهای گوناگون را روی شبكه فراهم می‌كند.

 پروتكل LDAP در لينوكس

LDAP خود یك پروتكل و استاندارد برای برقراری ارتباط با سرویس دایركتوری‌های مختلف است، اما در لینوكس برای به كارگیری و مدیریت این پروتكل ابزار OpenLDAP ارائه شده است. OpenLDAP یكی از بنیادی‌ترین ابزارهای لینوكس است و به همین خاطر در غالب توزیع‌های لینوكس مشاهده می‌شود و امكان نصب و راه‌اندازی آن به راحتی وجود دارد. بنابراین نصب این سرویس كار چندان مشكلی نخواهد بود، اما پیكربندی LDAP برای دسترسی به دایركتوری‌های تعریف شده و تنظیمات آن‌ها براساس مستندات شبكه نيازمند دقت و تمرين است .
در حقیقت LDAP یه Protocol برای Authentication است که ActiveDirectory ویندوز هم از آن استفاده می کند. شما میتونید از همین Protocol در Samba برای شناسایی افراد استفاده کنید.
حتی می توانید یه ActiveDirectory هم برای ویندوز در لینوکس راه بندازید.

در حقیقت LDAP یه Protocol برای Authentication است که ActiveDirectory ویندوز هم از آن استفاده می کند. شما میتونید از همین Protocol در Samba برای شناسایی افراد استفاده کنید.
حتی می توانید یه ActiveDirectory هم برای ویندوز در لینوکس راه بندازید.

 اجزای SMB

  • smbd daemon

This provides the file and print services to SMB clients such as Windows NT or other Linux or Unix clients.

  • conf

this is the configuration file for smbd.

  • nmbd daemon

this daemon provides NetBIOS nameserving and browsing support.

  • smbclient

This is an smb client program that implement a simple FTP-like client on a Linux or Unix box.

  • smbmount

This mounting program enables mounting of server directories on a Linux or Unix box.

  • testparm:This utility is used to test the smb.conf configuration file.
  • smbstatus :This programs lists the current Samba connections.
  • SWAT: allows a Samba administrator to configure the smb.conf file via a web browser.
  • smbpasswd: This allows the user to change the password used for their SMB sessions

LOGS

شما می توانید به لاگ ها از طریق زیر دسترسی پیدا کنید :

 ۱-  tail –f /var/log/samba/log.smbd

 ۲-  tail –f /var/log/samba/log.nmbd

 ۳-   tail –f /var/log/samba/smbd.log

  ۴- tail –f /var/log/messages

تست Samba Server

چندین راه برای تست سمبا سرور وجود دارد :

root#  testparm /etc/samba/smb.conf

If this command performed successfully it will list the loaded services.

root# testparm

This command will read the body of the file and shows the errors if any.

root#smbclient –L server –N

This will show the files and folders which are shared by the server.

root#smbclient –L localhost –N

This will show the files and folders which your pc is shared

دستورات Samba

  • Smbclient
  • Smbmount
  • Smbsh
  • Smbtar
  • Smbstatus
  • Nmblookup
  • Smbpasswd
  • Testparm
  • Testprns
  • smbpasswd -a username
  • Net use

 

 

این مطالب رو هم پیشنهاد می‌کنیم ببینید

درباره نویسنده: mrz.rst

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *