گاهی اوقات در شبکه های خانگی یا حتی در شبکه های سازمانی از دو سیستم عامل محبوب ویندوز و لینوکس (گنو لینوکس) استفاده میشود و نیاز به اشتراک گذاری منابع بین آنها داریم. این دو سیستم در دنیایی کاملا متفاوت از هم قرار دارند و هر کدام برای خود یک پروتکل مخصوص دارند. همین تفاوت هاست که اشتراک منابع بین این دو سیستم را به چالشی برای کاربران تبدیل کرده است. خب اگر برای شما هم این سوال پیش اومده که آیا راهی هست یا خیر، در این مقاله پاسخ این سوال رو بررسی میکنیم.
ویندوز از پروتکل (Server Message Block) SMB و لینوکس از (Network File Sharing) NFS برای اشتراک گذاری منابع استفاده میکند.
در این مقاله سعی داریم تا شما را با ابزارها و روش های اشتراک منابع بین این دو سیستم عامل آشنا کنیم و به نصب و راه اندازی یکی از پراستفاده ترین آنها بپردازیم.
پیشنیازها
• مفاهیم شبکه (IP, Firewall, ACL, …)
• آشنایی با لینوکس و Command line
• آشنایی با محیط ویندوز و File Explorer
• آشنایی با مجازی سازها (در صورت استفاده)
ابزارها
• (Samba) که بهش می پردازیم.
• smbpassword
• chmod
• chown
• ufw
• File explorer
• Ping
برای اشتراک منابع روش هایی وجود دارد که تعدادی در جدول زیر آمده است.
| معایب | مزایا | روش |
| پیکربندی اولیه |
یکپارچگی با ویندوز امنیت و عملکرد |
Samba |
|
پیکربندی پیچیده مشکلات امنیتی |
سرعت بالا | NFS |
|
عملکرد پایین عدم یکپارچگی با ویندوز |
امنیت بسیار بالا | SFTP/SSH |
|
وابستگی به اینترنت محدودیت حجم |
راه اندازی آسان | Cloud |
در این آموزش همانطورکه میشد حدس زد ما از Samba به دلیل راه اندازی آسان و یکپارچگی با ویندوز استفاده می کنیم.
Samba در سال 1991 توسط اندرو ترجل کلید خورد و در سال 2007 مایکروسافت تحت فشار اتحادیه اروپا و جامعه متن باز مستندات SMB را منتشر کرد. و امروزه به استاندار طلایی اشتراک فایل بین لینوکس و ویندوز تبدیل شده است.
دانلود و راه اندازی سامبا (Samba)
خب اینجا یک ویندوز 10 و یک کالی لینوکس در wmvare workstation بالا اوردیم تا کارمون رو شروع کنیم.
قبل از نصب بهتر است تا با دستور sudo apt upadate ریپازیتوری ها را آپدیت کنیم.
برای دانلود و نصب کردن samba در لینوکس از دستور sudo apt install samba استفاده میکنیم. بعد از مشاهده اطلاعاتی مثال پیشنیاز ها و ... با وارد کردن عبارت Y فرایند دانلود و نصب انجام میشود.
دانلود و نصب samba
بعد از فرایند نصب برای اینکه مطمئن شویم samba به درستی نصب شده از دستور sudo systemctl status smbd استفاده میکنیم.
قبل از تغیر دادن فایل کانفیگ, یک دایرکتوری به نام shares با دستورmkdir /home/kali/shares
برای اشتراک گذاری میسازیم.
کانفیگ کردن samba
در سیستم عامل لینوکس معمولا فایل های کانفیگ در دایرکتوری etc/ قرار دارند. در نتیجه برای مشاهده ی فایل های کانفیگ samba به پوشه /etc/samba میرویم و با دستور ls محتویات این دایرکتوری را مشاهده میکنیم.
طبق تصویر فایل smb.conf همون چیزیه که بهش نیاز داریم.
سپس با ابزار nano به ایجاد تغییرات این فایل میپردازیم.
نکته: حتما دستور nano را با sudo به عنوان root اجرا کنید در غیراین صورت نمیتوانید تغییرات خود را ذخیره کنید.
زمانی که فایل smb.conf را بازکردید, به انتهای فایل بروید و عبارات زیر را به فایل اضافه کنید.
بیایید هرکدام از عبارت ها را بررسی کنیم.
[shared] : نام اشتراک است که شیرفولدر های ما با این نام نمایش داده میشود.
Comment : برای نوشتن توضیحات است.
Path : برای مشخص کردن دایرکتوری تا به اشتراک گذاشته بشه.
Writable : اگر بخواهیم به کاربران اجازه نوشتن بدهیم مقدارش را yes تنظیم میکنیم.
Guest ok : درصورتی که نخواهیم از احراز هویت استفاده کنم مقدارش را برابر با yes قرار می دهیم.
در اینجا تعدادی از عبارت ها را با مفهوم آنها میبینید که میتوانید بسته به نیاز خودتان استفاده کنید.
| مقدار | کاربرد | عبارت |
| user1, user2 , ... | مشخص کردن کاربران مجاز | valid users |
| user1, user2 , ... | مشخص کردن کاربران غیر مجاز | invalid users |
| yes/no | امکان دسترسی عمومی | public |
| yes/no | امکان اشتراک پرینتر | printable |
| printer name | مشخص کردن نام پرینتر | printer name |
| yes/no | مجوز فقط خواندن | read only |
| yes/no | امکان نمایش در لیست شبکه | browsable |
| تعداد کاربران. مثلا 5 | حداکثر تعداد کاربران متصل | max connection |
نکته: برای برای افزایش امنیت از عبارت valid users = username استفاده کنید تا فقط کاربران تایید شده وارد شوند.
برای ست کردن پسوورد برای یوزر از دستور<sudo smbpasswd –a <usernameاستفاده میکنیم و سپس پسوورد را تنظیم مینماییم.
در انتهای کار تغییرات را ذخیره و با دستور sudo systemctl restart smbd سرویس smbd را ریستارت کنید.
اتصال به از ویندوز به لینوکس
قبل از اتصال از طریق ویندوز میتوانیم با دستور <sudo smblient -L <hostname لیست دایرکتوری های به اشتراک گذاشته شده را ببینیم.
در تصویر بالا میتوان دید که shared دایرکتوری با موفقیت به اشتراک گذاشته شده.
حالا نوبت به اتصال از ویندوز رسیده. برای اینکار باید ای پی ماشین لینوکسیمون رو داشته باشیم که از دستور ifconfig استفاده میکنیم.
همانطور که در تصویر بالا مشخصه لینوکس ما آدرسش 192.168.213.137 هستش. همین ادرس ای پی رو در پنجره ران ویندوز وارد میکنیم و ok را میزنیم.
نکته : قبل از آدرس آی پی دو بک اسلش (\\) را قرار دهید.
و حالا به دایرکتوری شیر شده دسترسی داریم.
اتصال از لینوکس به ویندوز
برای اتصال به پوشه به اشتراک گذاشته شده از ویندوز نیز مراحل زیر را انجام میدهم.
برای اتصال به ویندوز نیز باید آدرس آی پی آن را بدانیم. برای این کار در ویندوز در cmd از دستور ipconfig استفاده میکنیم.
همانطور که در تصویر مشاهده میکنید آی پی ویندوز ما 192.168.213.132 می باشد.
در لینوکس خود برنامه فایل منیجر را باز میکنیم و در آن به دنبال گزینه ی open location یا browse network میگردیم.
در تصویر بالا میتوان دید که در بخش browse network کامپیوتر ویندوزی ما به طور خودکار شناسایی شده است.
در مرحله ی بعد روی آیکون که مشاهده میکنید کلیک میکنیم و از ما میخواهد برای دسترسی به فایل های اشتراک گذاری شده احراز هویت انجام بدهیم.
پس از وارد کردن نام کاربری و رمز عبور به محتویات آن دسترسی داریم.
مشکلات و اشتباهات
اگر به مشکلی خوردید که پالیسی اجازه برقراری ارتباط را نمیداد (همانند شکل زیر) به این دلیل است که ویندوز جلوی دسترسی به شبکه های عمومی ناشناس رو میگیره.
برای رفع این مشکل با وارد کردن gpedit.msc در پنجره run به group policy editor رفته و در مسیر
computer configuration > administrative templates > network > lanman workstation
با enable کردن enable insecure guest logons مشکل حل میشود.
درصورتی که موفق نبودید باید فایروال لینوکس را برای samba باز بگذارید.
با استفاده از دستور sudo ufw allow samba این کار را انجام دهید.
یکی دیگر از اشتباهات این است که دسترسی دایرکتوری شما به درستی تنظیم نشده باشد. برای حل این مشکل باید permission ها را با دستور chmod تغییر دهید.
مثال <sudo chmod 77 <directory . با این کار شما به تمامی کاربران دسترسی کامل میدهید.
مطلب جالبی بود و نکات خوبی داشت ، ممنون از به اشتراک گذاری