اینم یه تجربه پراکنده دیگه!

همینطور که گفته بودم میخوام در مورد ایده‌هام بنویسم. ایده اصلی اینجا اینه که چطور میشه حول یک محصول بسیار باکیفیت متن باز به نام pfSense کسب و کار درست کرد. من سعی میکنم اول یه مقدمه کوچک در مورد این سیستم بدم و بعدش کسب و کارها رو نام ببرم و اونها رو بصورت مختصر بررسی کنم.

با توجه به تجربه سه ساله کار با pfSense میدونم که بسیار خوش ساخت طراحی شده و با ثبات وکیفیت بسیار خوبی به کار  خودش ادامه میده. نیازمندی‌های سخت افزاری قابل قبولی داره و اون کاری که باید انجام بده رو به درستی انجام میده . باید اضافه کنم که شرکت‌های فعال در زمینه امنیت شبکه از این محصول به عنوان پایه محصولات بومیشون که اکثرا ورتر، فایروال و utm هست استفاده کردن. اما به نظر من این rebranding و توسعه، نیاز بازاری هست که شامل بخش دولتی و دستگاه‌های حساس میشه. این بازار معمولا بسیار پر رقابت هست و پول‌های بسیاری خوبی توش جابجا میشه پس جزابه اما این بازار دوتا ایراد داره اولا بسیار کوچک هست و دوما بزرگ نمیشه پس از نظر من واسه راه انداختن کسب و کار که بشه startup به درد نمیخوره. پس این ایده‌هایی که اینجا مطرح میشه هدفش بازار هرچه نزدیکتر به خونه مردم هست که تعدادش بزرگ باشه و بشه بصورت انبوه فروختش. ایده‌ها اینجا لیست شده:

  1. فروش سرویس نصب و راه‌اندازی pfSense: یعنی شما برای مشتری نهایی سیستم و پیکربندی کنی و راه‌اندازی کنی. این کار خوبه اما به دلیل محدود بودن نیروی متخصص pfSense این ایده که معمولا ساده‌ترین ایده استفاده از سیستم‌های متن باز هست خیلی جذاب نیست.
  2. فروش appliance که بصورت پیشفرض pfSense روی اونها نصب شده: نمونه این سخت افزارها اینجا و اینجا پیدا میشه. این کار بسیار خوب میتونه باشه چون نیاز نیروی انسانی کمی داره و شما خدماتی ارائه نمیدی و عملا یه سخت افزار میفروشی. ایراد این ایده اینه که در دنیای appliance ها معمولا از روترها و فایروال‌های cisco و یا mikrotik استفاده میشه. مهمترین دلیل این استفاده هم وجود آموزشهای تخصصی برای این روترها و آشنایی مدیران شبکه با این روترها هست. دومین مشکل این سیستم هم وارداته که خب اگه کسی از این کارها نکرده باشه بسیار میتونه به مشکل بر بخوره. همچنین قیمت تمام شده این محصول تقریبا هم سطح رقبا است و عملا رقبا به علت سابقه بیشتر برنده میشن. اما اگه کسی بتونه این مشکلات رو حل کنه که حل ناشدنی نیست بسیار میتونه موفق باشه.
  3. راه‌اندازی hotspot مبتنی بر pfsense و فروش اینترنت در سطح شهر: برای بسیاری از ما اتفاق افتاده که وسط خیابون باشیم و واقعا نیاز به اینترنت با کیفیت داشته باشیم. اخیرا با اومدا نسل سوم و چهارم موبایل این نیاز تا حدی مرتفع شده اما هنوز قیمت گران اینترنت نسل سه و  چهار جا رو برای این کار باز میگذاره. حالا شما به راحتی با config کردن pfsense اون رو به یه hotspot بسیار قوی تبدیل میکنی و با فروش اکانت اینترنت سود میبری. این کار تقریبا عملی ترین کار به حساب میاد. ممکله از نظر قانونی مشکلاتی وجود داشته باشه اما چیز خاصی به نظر نمیرسه. نیازمند یه سیستم اکانت ساختن و فروش اکانت هست که من برای حل این مشکل فاز اول رو نصب و راه‌اندازی این ایده در کنار کافی نت ها میدونم. یعنی کافی نت‌ها عامل فروش هستند و شما سیستم پورسانت اونها رو میدی. ایراد این ایده نیاز هماهنگی و همکاری با بخش‌های زیادی هست. همچنین سرمایه گذاری اولیه زیادی رو هم میطلبه. همچنین بازارش یکم نا آشناست یعنی اینکه معمولم نیست که واقعا این نیاز وجود داره یا نه.
  4. خاص منظوره کردن این سیستم مخصوص کافی شاپ‌ها، رستوران‌ها و هتل‌ها: الان وضعیت سرویس اینرنت مجانی کافی‌شاپ ها و رستوران‌ها خیلی داغونه در این حد که من تا بحال نتونستم از اینترنتشون به درستی استفاده کنم. واسه اونها ممکنه ارائه خدمات قابل اعتماد ارزشمند باشه. این کار هم بسیار به عملیاتی بودن نزدیکه اما مشکلش نیاز به سرمایه گذاری بالا و پشتیبانی زیاد هست
  5. راه اندازی سیستم accounting ساده روی این سیستم و استفاده از اشتراکی از اینترنت در ساختمان‌های بزرگ یا شرکت‌ها. در این ساختمان‌ها معمولا آدم‌هایی هستن که نمیخوان اینترنت داشته باشن و دوست دارن به اندازه مصرفشون پول بدن که میشه با استفاده از pfSense پیاده‌سازی شه. همچنین در شرکت‌ها معمولا حجم افراد محدود بوده و نباید بیشتر از یک حد در روز از اینترنت استفاده کنن. که با این سیستم قابل پیاده‌سازی هست.

این‌های به نظرم عملیاتی‌ترین ایده‌ها بود اما به علت تعدد پکیجهای این سیستم عملامیشه کارهای بسیار دیگه‌ای ازش استفاده کرد. مثلا استفاده به عنوان loadbalancer بین چند اینترنت، استفاده به عنوان cache سرور با استفاده از squid. اما این ایده‌ها خیلی خام هستن ونیاز به پختن زیادی دارن.

همین

اینم یه تجربه پراکنده دیگه!

یکی از مشکلاتی که همیشه در محل‌هایی که من فعالیت داشتن وجود داشته اینه که چطور پهنای باند رو بین تمام استفاده کنندگان تقسیم کرد بصورتی که اگه ۱۰ کاربر داریم که در حال حاضر ۲ تاشون فعالن، پهنای باند بین دو نفر تقسیم بشه و اگه به عنوان مثال ۳ نفر فعال باشن پهنای باند بین اون ۵ نفر تقسیم بشه. مزایای این اتفاق بسیاره که اگه عمری بود در موردش مینویسم. سعی میکنم مراحل کار رو اینجا با مثال رو شکل توضیح بدم:

  1. ابتدا باید به منوی firewall -> traffic shaper -> limiter رفته و یه limiter جدید میسازیم
    1.0
  2. سپس اسم limiter رو برای راحتی کار آینده download میگذاریم و اون رو فعال میکنیم
    1.1
  3. سپس تو قسمت bandwidth یک گزینه جدید اضافه می‌کنیم
    1.2
  4. بعد توی قسمت bandwidth حد دانلود رو وارد می‌کنیم. و ذخیره می‌کنیم
    1.3
  5. توی صفحه بعد گزینه اضافه کردن یک صف جدید رو انتخاب می‌کنیم
    2.0
  6. توی این قسمت هم تنها یه اسم وارد کنید که بعدا بتونید به یاد بیاردش و مثلا download_lan باشه و نحوه انتخاب رو براساس آدرس مقصد انتخاب کنید و تنظیمات رو ذخیره کنید
    2.1
  7. حالا بایستی همین کار برای آپلود هم انجام بشه پس یه limiter جدید ساخته میشه
    3.0
  8. یه اسم برای آپلود انتخاب کنید و تنظیمات رو ذخیره کنید
    3.1
  9. حال دوباره توی قسمت bandwidth یک گزینه جدید اضافه کنید
    3.2
  10. پهنای باند آپلود رو اینجا وارد کنید و تغییرات رو ذخیره کنید
    3.3
  11. دوباره برای این قسمت هم یک صف اضافه می‌کنیم
    4.0
  12. توی این قسمت هم تنها یه اسم وارد کنید که بعدا بتونید به یاد بیاردش و مثلا upload_lan باشه و نحوه انتخاب رو براساس آدرس مبدا انتخاب کنید و تنظیمات رو ذخیره کنید
    4.1
  13. حالا به بخش قوانین مسیریابی برید و قانون اصلی رو که اجازه میده ترافیک رد بشه ویرایش کنید
    5.0
  14. به بخش In/Out برید و روی گزینه advance کلیک کنید
    5.1
  15. و برای خروجی از صف upload_lan و برای ورودی از صف download_lan استفاده کنید.
    5.2

با این مراحل شما یه اینترنت خواهید داشت که پهنای باندش به نسبت کاربرهای فعال تقسیم میشه.

منبع: اینجا

اینم یه تجربه پراکنده دیگه

من تقریبا دو سال میشه که در محل کار و خونه از pfSense به عنوان روتر و فایروال استفاده کردم. حالا میخواستم یکم در مورد درستی یا غلطی استفاده از یه روتر متن باز تو محیط عملیاتی بگم. شاید به درد کسی بخوره و توی تصمیم گیری کمکش کنه.

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

اما برای شرکت‌های بزرگ با نیازهای پیچیده جرات نمیکنم که این سیستم رو پیشنهاد بدم چون نیاز به علم زیاد در مورد این فایروال هست که خب معمولا این علم وجود نداره و خب کار یکم سخت میشه. اما سناریوهایی رو هم دیدم که در دنیا شرکت‌های بزرگ اون رو پیاده سازی کردن و موفق هم بودن.

از نظر ویژگی‌ها هم کارهای بسیار خوب زیادی میشه باهاش انجام داد. که من لیست کارهایی که باهاش کردم رو مینویسم:

  • سر هم کردن دوتا اینترنت برای افزایش پهنای باند و افزایش ثبات
  • راه اندازی یک captive portal برای احراز هویت کاربران برای دسترسی به اینترنت
  • استفاده از ویژگی NAT برای تخصیص پورتهایی به یکی از سیستم‌های داخلی
  • پشتیبانی از سیستم تلفنی مبتنی بر IP به نام Asterisk
  • پشتیبانی از محدود کردن پهنای باند و ترافیک کاربران
  • محدود کردن دسترسی عده‌ای یا گروهی از کاربران به اینترنت
  • پشتیبانی از squid‌به منظور افزایش کارایی استفاده از اینترنت
  • امکان بررسی ترافیک عبوری و ویروسیابی آن
  • امکان اعمال سیاستهای تضمین کیفیت

این کارهایی که من انجام دادم اکثرا توسط پکیج‌های جانبی این سیستم انجام شده و اگه عمری بود سناریوی اجرای تک تک این قسمت‌ها رو میگم

همین!

خب اینم که تجربه پراکنده دیگه.

همونطور که گفته بودم من توی خونه از pfSense به عنوان روتر خونم استفاده میکنم. بعد از بیش از یک سال نسخه جدید این سیستم عامل متن باز منتشر شده و من از تغییرات ایجاد شده خوشحالم. تغییرات زیادی توی این نسخه ایجاد شده که لیست کاملش اینجا هست. اما به نظر من مهمترین تغییرات از این قرارن:

  • بروزرسانی نسخه freebsd به نسخه ۸.۳
  • پشتیبانی از نسخه ۶ پروتکل IP
  • بهبود واسط کاربری وب

اینم یه تجربه پراکنده دیگه.

ایندفعه قراره از یکی از کارهایی که توی خونه برای اثبات خودم به خودم انجام داده بگم. این تجربه تو زمینه شبکه و این حرفاست. من در یکی از جاهایی که کار میکردم با یه سیستم مسیریاب/دیواره آتش متن باز به نام pfSense کار کردم که بسیار به علم شبکه و نرم افزار من اضافه کرد. این یک سیستم عامل freeBSD خاص منظوره برای کارهای شبکه است. یعنی دوستانی در دنیا پیدا شدن که freeBSD رو با برخی ویژگی‌های openBSD که اولی به بهینه بودن معروفه و دومی به امنیت مریض گونه اش ترکیب کردند و یه سیستم عامل سبک برای مدیریت شبکه راه انداختن. البته سیستم های متن باز مشابه این سیستم وجود داره که لیستش اینجاست.

این پروژه از دل یه پروژه دیگه به نام m0n0wall در اومده و با تغییر هدف گزاریش سعی کرده راه متفاوتی از پروژه اصلی بره. هدف پروژه اصلی کار این سیستم عامل رو دستگاه‌های embedded بوده که خب بخاطر محدودیت سخت افزار بسیاری از ویژگی‌ها روی m0n0wall امکان پذیر نیست اما pfSense هدفش رو روی کاربردها گذاشته به همین خاطر با دستگاه‌های embedded زیادی تطبیق نداره. فکر کنم همین مختصر کافی باشه برای رفتن سراغ اصل مطلب. اگه عمری بود شاید بصورت دقیق این سیستم ها رو معرفی کردم.

خب اول بگم که در مجموع میخواستم چه کاری انجام بدم. فکر کنم برای دید بهتر باید بگم که مثل هرجای دیگه خونه من هم دو سمت داره. یه سمت اینترنت که یه ای دی اس ال و یه وایمکس مسئول آوردن اینترنت به خونن و فقط وایمکس در مواردی که ای دی اس ال درست کار نمیکنه مورد استفاده قرار میگیره و توی خونه هم یه لپ تاپ یه پی سی قدیمی و چند تا موبایل وجود داره. همین. وظیفه هر کدوم از دستگاه‌ها هم اینه. پی سی مسئول فایل شرینگ و دانلود شبانه از اینترنت هست. مابقی دستگاه‌ها هم تنها به اینترنت وصل میشن. پس یعنی سرویس خاصی مورد نیاز نیست.

اما بگم چرا رفتم سراغ این سیستم. اول اینکه دوست داشتم! دوم اینکه چند مشکل بود که باید حل میشد. یکی از مشکلاتی که من برخود میکردم اینه که وقتی تورنت در حال اجرا بود مودم دیگه به مابقی درخواست‌ها جواب نمیداد چون بخاطر پردازنده محدودش حداکثر یه تعداد محدودی کانکشن باز میتونست داشته باشه چون وقتی از  NAT استفاده میشه بایستی مودم یا روتر وضعیت کانکشن ها رو نگه داره که وقتی دستگاه محدود باشه این تعداد محدود میشد. دومین مشکل کیفیت بد DNS توی کل خونه بود. چون بعضی وقتا یه درخواست DNS روی سرورهای آی اس پی نبود و باید میرفتم سراغ DNSهای معروف مثل ۴٫۲٫۲٫۴ یا ۸٫۸٫۸٫۸ که خب ایراداتی داشت و یکی از مهمتریناش زمان به نسبت زیاد جواب به این DNS هاست.

خب اگه بخوام بگم چیکار کردم. بصورت مرحله به مرحله این کارها رو انجام دادم. ا

  1. بهینه سازی سیستم فایل سرور موجود: من برای فایل سرورم توی خونه از یه کامپیوتر قدیمی با یه گیگ رم و یه سی پی یوی سمپرون تک هسته ای سه هزار استفاده میکنم. که بنا به صلاح دیدم که بشه از اون کامپیوتر استفاده دیگه ای هم کرد روش یه ubuntu desktop 12.04 نصب کردم و samba سرور رو هم راه اندازی کردم. اما بخاطر استفاده از unity حجم زیادی از رمم مورد استفاده بود. بعد از جستجوهای بسیار یه desktop manager خوب پیدا کردم به نام enlightenment که رم استفاده شده توی سیستم رو از حدود ۷۰۰ مگ به ۱۲۰ مگ کاهش داد که این خودش بسیار کار بزرگی بود.
  2. نصب و راه اندازی virtual box: بعد روی این سرور با دردسر زیاد virtual box رو نصب کردم و یه ماشین مجازی که خود pfSense آماده کرده رو نصب کردم و دو سمت شبکه رو با استفاده subnet mask از هم جدا کردم.
  3. پیکربندی pfSense: حالا نوبت به پیکربندی pfSense میرسه که برای اینکار یه کانکشن pppoe ساختم توی سمت اینترنت و توی سمت شبکه داخلی یه DHCP سرور تنظیم کردم. برای رفع مشکل DNS از DNS masqe استفاده کردم و گفتم که در وهله اول از DNSهای آی اس پی استفاده کنه و در اولویت بعد بره سراغ سرورهای معروف. یه ویژگی دیگه هم اینه که این سیستم به مدت محدود رکوردهای DNS رو Cache میکنه و سرعت DNS بالا میره. برای دانلود تورنت هم یه Inbound NAT استفاده کردم و گفتم یه سری پورت برای تورنت به دانلودر تورنتم وصل بشه. مشکل تعداد کانکشن هم بخاطر قدرت بیشتر این سیستم و رم بالاترش بصورت خودکار رفع شده بود.
  4. تنظیم نهایی Virtual Box: در نهایت باید Virtual Box رو بگونه ای تنظیم کرد که در ابتدا شروع سیستم ماشین مجازی روتر رو روشن کنه و در خاموش شدن سیستم این ماشین مجاز رو خاموش کنه. خود Virtual Box این کار رو انجام میده و فقط نیاز به یه سری تنظیمات داره که اگه عمری بود در موردشون بعدا یه پست کامل مینوسم.

همین! امیدوارم به درد کسی بخوره. مرحله بعدی این سیستم اینه که بتونم از ای دی اس ال و وایمکسم بصورت همزمان و بصورت مدیریت شده استفاده کنم که فعلا وقت نکردم روش وقت بگذارم. باید ببینم کی دوباره وقت خوب پیدا میکنم یکم این اثبات رو پیش ببرم.