List

در این آموزش قصد داریم نحوه نصب و پیکر بندی Samba Server را بر روی سیستم عامل Ubuntu 16.04 آموزش دهیم.

Samba نرم افزار رایگان و متن باز پروتکل SMB/CIFS است که برای سیستم های UNIX/LINUX توسعه داده شده و امکان اشتراک گذاری فایل و پرینتر ها را بین سیستم های UNIX/LINUX و همچنین Windows را در یک شبکه local فراهم میکند.

Samba شامل برنامه های متععدی است که خدمات متفاوتی را عرضه میکنند، اما مهم ترین های آنها عبارتند از :

smbd : سرویس SMB/CIFS را فراهم میکند (File Sharing – Printing ) همچنین میتواند به عنوان windows domain controler عمل کند.

nmbd : سرویس NetBIOS name را فراهم میکند.همچنین این امکان را به Samba Server میدهد که توسط سایر کامپیوتر ها در شبکه دیده شود.

نصب Samba Server روی Ubuntu

بسته Samba در اکثر توزیع های لینوکسی وجود دارد لذا برای نصب تنها کافی است دستور زیر را در ترمینال وارد نمایید :

nix@samba-server:~$ sudo apt install samba samba-common-bin

با استفاده از دستور زیر میتوانید ورژن Samba را چک کنید :

nix@samba-server:~$ sudo smbstatus
OR
nix@samba-server:~$ smbd –version

برای بررسی وضعیت سرویس Samba دستور زیر در ترمینال وارد کنید :

nix@samba-server:~$ systemctl status 
smbdnix@samba-server:~$ systemctl status nmbd

برای شروع به کار کردن این دو سرویس دستورات زیر را وارد نمایید :

nix@samba-server:~$ sudo systemctl start smbd
nix@samba-server:~$ sudo systemctl start nmbd

Smbd برروی پورت TCP 135 و TCP 445 و همچنین سرویس nmbd بر روی پورت UDP 137 و UDP 138 کار میکنند.

TCP 139: file and printer sharing
TCP 445: NetBIOS-less CIFS port
UDP 137: NetBIOS network browsing
UDP 138: NetBIOS name service

ساخت Samba Share اختصاصی

در این قسمت با ساخت Samba share اختصاصی آشنا میشویم که کاربران برای دسترسی به محتویات آن میبایست از نام کاربری و رمز عبور استفاده کنند.

فایل اصلی حاوی تنظیمات samba درetc/samba/smb.conf قرار دارد که میتوانید با ادیتور مورد علاقه خود آن را ویرایش کنید.

nix@samba-server:~$ sudo vim /etc/samba/smb.conf

در قسمت [global] مطمئن شوید که مقدار workgroup با تنظیمات کامپیوتر های ویندوزی یکسان میباشد.

برای پیدا کردن تنظیمات در کامپیوتر های ویندوزی میتوانید به آدرس زیر بروید :

Control Panel > System and Security > System

به آخر فایل بروید و قسمت جدید [Private] را ایجاد کنید.(اگر از vim استفاده میکنید با میانبر G و اگر از nano استفاده میکنید با میانبر CTRL+W سپس CTRL+V به آخر متن بروید)

[Private]
comment = needs username and password to access
path = /srv/private/
browseable = yes
guest ok = no
writable = yes
valid users = @samba

توضیحات :

Private : اسم دایرکتوری خواهد بود که کاربران به آن دسترسی خواهند داشت.

comment : یک توضیح برای دایرکتوری به اشتراک گذاشته شده میباشد.

Path : آدرس دایرکتوری است که قصد به اشتراک گذاری آن را داریم، srv/private تنها یک مثال است.شما میتوانید یک دایرکتوری در home خود ایجاد نمایید.

browseable = yes: این گزینه به کاربران این امکان را میدهد کامپیوتر ها درون شبکه بتوانند Samba Server و Share Directory را پیدا کنند، اگر این گزینه برابر با no باشد کاربران میبایست اسم Samba Server را بدانند.

guest ok = no: دسترسی مهمان را غیر فعال کنید، در واقع کاربر میبایست نام کاربری و پسورد را وارد کند تا بتواند به محتویات دسترسی داشته باشد.

writable = yes:به کاربران امکان خواندن و نوشتن را میدهیم.

valid users = @samba: فقط کاربران عضو گروه samba قابلت دسترسی به Samba Server رو دارند.

فایل را ذخیره و خارج شوید.

حالا باید کاربر samba بسازیم.ابتدا باید یه کاربر استاندارد لینوکس ایجاد کنیم.در دستور زیر username را با نام کاربری مورد نظر خود جایگزین نمایید.

nix@samba-server:~$ sudo adduser smbus

سپس نیاز داریم که پسورد مجزای samba را برای این کاربر در نظر بگیریم.

nix@samba-server:~$ sudo smbpasswd -a smbus

با استفاده از دستور زیر گروه samba را ایجاد میکنیم :

nix@samba-server:~$ sudo groupadd samba

کاربر را به گروه samba اضافه میکنیم

nix@samba-server:~$ sudo gpasswd -a smbus samba

 با استفاده از دستور زیر دایرکتوری share را ایجاد میکنیم :

nix@samba-server:~$ sudo mkdir /srv/private/

گروه samba باید مجوز read, write ,execute را به دایرکتوری به اشتراک گذاشته شده را داشته باشه، برای انجام این کار دستور زیر را در ترمینال وارد نمایید

nix@samba-server:~$ sudo setfacl -R -m “g:samba:rwx” /srv/private/

با اجرای دستور زیر میتوانید چک خطای syntax را چک نمایید :

nix@samba-server:~$ Testparmnix

در نهایت سرویس samba را با استفاده از دستور زیر restart نمایید :

nix@samba-server:/root$ sudo systemctl restart smbd nmbd

ساخت Samba Public Share بدون احراز هویت

برای ساخت samba public share بدون نیاز به نام کاربری و رمز عبور شرایط زیر را در قسمت [global] باید در نظر گرفت.

  • security = user : البته میتوانید security = share قرار دهید ولی این روش منسوخ شده است و توصیه میکنم از حالت share جداً اجتناب کنید.
  • map to guest = bad user : این باعث میشود smbd از guest account برای احراز هویت کاربرانی که در سرور حساب کاربری ندارند استفاده نماید.از آنجایی که کاربر guest میباشد نیاز به وارد کردن پسورد ندارد.
  • guest ok = yes
  • اعطای دسترسی read, write ,execute به گروه nobody که در واقع حساب پیش فرض guest میباشد.

نکته : بصورت پیش فرض samba دو شرط اول را استفاده میکند.

ابتدا فایل تنظیمات Samba را با ویرایشگر مورد نظر خود باز نمایید :

nix@samba-server:/root$ sudo vim /etc/samba/smb.conf

در قسمت [global] مطمئن شوید که مقدار workgroup با تنظیمات کامپیوتر های ویندوزی یکسان میباشد.

برای پیدا کردن تنظیمات در کامپیوتر های ویندوزی میتوانید به آدرس زیر بروید :

Control Panel > System and Security > System

به آخر فایل بروید و قسمت جدید [public] را ایجاد کنید.(اگر از vim استفاده میکنید با میانبر G و اگر از nano استفاده میکنید با میانبر CTRL+W سپس CTRL+V به آخر متن بروید)

[public]
comment = public share, no need to enter username and password
path = /srv/public/
browseable = yes
writable = yes
guest ok = yes

فایل را ذخیره و خارج شوید.سپس دایرکتوری srv/public را ایجاد نمایید :

nix@samba-server:/root$ sudo mkdir /srv/public

سپس مطمئن شوید که گروه nobody دسترسی read, write and execute را این دایرکتوری دارد، با استفاده از دستور زیر میتوانید دسترسی های لازم را ایجاد نمایید :

nix@samba-server:/root$ sudo setfacl -R -m “u:nobody:rwx” /srv/public/

حالا میبایست سرویس smbd و  nmbd را restart نمایید :

nix@samba-server:/root$ sudo systemctl restart smbd nmbd

دسترسی به Samba Server از طریق ویندوز :

این کار را میتوانید از طریق تب Network در File Explorer انجام دهید یا اینکه در RUN آدرس/اسم samba server را وارد نمایید.

زمانی که بر روی Private کلیک نمایید از شما نام کاربری و رمز عبور تعیریف شده در samba server را میخواهد.برای دسترسی به Public به نام کاربری و رمز عبور نیاز نخواهید داشت.

نکته : اگر بطور همزمان دایرکتوری Private و Public را باز داشته باشید ممکن است امکان ساخت فایل یا دایرکتوری جدید را نداشته باشید.

خطا های احتمالی :

اگر با خطای زیر برخورد کردید سعی کنید که از طریق CMD به samba متصل شوید.

Error : You do not have permission to access \\hostname\share-name. Contact your network administrator to request access.

دستور زیر را در CMD وارد نمایید تا کانکشن بازی که هم اکنون وجود دارد را ببندد :

net use \\hostname\share-name /delete

سپس با استفاده از دستور زیر به Samba Server تصل شوید:

net use \\hostname\share-name /user:samba-username password

بعد از اجرای این دستو قادر خواهید بود در تب Network در File Explorer به دایرکتوری های به اشتراک گذاشته شده ی samba دسترسی داشته باشید.

دسترسی به Samba Server از طریق Ubuntu :

در File Manager خود بر روی تب Network در پنل سمت چپ کلیک نمایید سپس Windows Network را انتخاب نمایید.

سپس Workgroup ، آدرس سرور، نام کاربری و پسورد را در پنجره باز شده وارد نمایید.

  Posts

November 20th, 2018

بهترین شبیه ساز اندروید برای لینوکس

چرا به شبیه‌ساز نیاز دارید ؟
بعضی وقت ها به برنامه ای نیاز دارید که نسخه مخصوص دسکتاپ لینوکس ندارد، بعضی وقت ها می خواهید بازی کنید یا محیط یک نرم‌افزار رو بررسی کنید و بعضی وقت ها میخواهید برنامه‌ی خودتان رو توسعه دهید.

September 19th, 2018

پشتیبان گیری از لینوکس سرور با BitTorrent Sync

.BitTorrent Sync با استفاده از پروتکل BitTorrent به شما این امکان را میدهد که محتوا را بین سرورها همگام سازی کنید.همچنین بصورت مستقیم میتوانید بین کامپیوتر و گوشی هوشمند خود این همگام سازی را انجام دهید بدون اینکه نیاز باشد محتوا را به سرور third-party ارسال کنید.

September 13th, 2018

نصب Let’s Encrypt روی Nginx

گواهینامه های SSL ارتباطات امن و رمزگذاری شده بین یک وب سایت و یک مرورگر اینترنتی را فراهم می کند. SSL مخفف Secure Sockets Layer است و پروتکلی است که رمزگذاری را فراهم می کند. گواهینامه های SSL به طور معمول در صفحاتی که کاربران نهایی نیاز به ارسال اطلاعات حساس در اینترنت مانند جزئیات کارت اعتباری یا کلمه عبور دارند استفاده میشود.

September 3rd, 2018

بازیابی رمز عبور ESXi

در شرایط مختلفی این امکان وجود دارد که نیاز داشته باشید پسورد ESXi را بازیابی کنید که برای انجام این کار روش های متفاوتی وجود دارد اما نکته ی مهمی که در بازیابی رمز عبور وجود دارد حفظ اطلاعاتی است که روی سرور وجود دارد!

August 28th, 2018

HTTPS چگونه کار میکند ؟

HTTPS بطور ساده همان پروتکل استاندارد HTTP میباشد که از لایه ی رمزنگاری /SSLTLS استفاده میکند.

August 19th, 2018

نصب و پیکر بندی Samba Server روی Ubuntu 16.04

Samba نرم افزار رایگان و متن باز پروتکل SMB/CIFS است که برای سیستم های UNIX/LINUX توسعه داده شده و امکان اشتراک گذاری فایل و پرینتر ها را بین سیستم های UNIX/LINUX و همچنین Windows را در یک شبکه local فراهم میکند.

August 4th, 2018

نحوه‌ی عضویت ESXi در Active Directory

ESXi از روش های مختلف احراز هویت پشتیبانی میکند که یکی از آنها Active Directory است. در واقع شما میتوانید AD را به عنوان مکانیزم احراز هویت به vSphere اضافه کنید.

July 25th, 2018

نصب و کانفیگ Bind9 در Ubuntu/Debian

سرویس DNS یا Domain Name System همانظور که میدانیم سرویس اینترنتی است که ترجمه دامنه را به IP انجام میدهد.با استفاده از DNS نه تنها میتوانیم دامنه را به IP ترجمه کنیم بلکه میتوانیم IP را نیز به دامنه ترجمه کنیم.

July 18th, 2018

راه اندازی NFS Share در Ubuntu 16.04

عبارت NFS کوتاه شده Network File System میباشد و در اینجا قصد داریم نحوه نصب و پیگربندی NFS Share در Ubuntu 16.04 را آموزش دهیم که با استفاده از آن سایر کامپیوتر هایی که در شبکه local شما قرار دارند میتوانند به فایل ها و دایرکتوری های شما دسترسی داشته باشند.

November 19th, 2017

نصب نرم افزار مانیتورینگ Cacti در Ubuntu 16.04

یکی از نرم‌افزارهای متن‌باز(Open Source) و رایگان مانیتورینگ شبکه نرم‌افزار Cacti است.