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

این ماه‌ها خیلی شلوغه و من نرسیدم به وبلاگ سر بزنم و این پست قرار نیست خیلی بلند باشه. من مدت‌هاست که هرجا میرم pfsense رو به عنوان ورتر و فایروال اونجا توصیه میکنم و خب همه جا هم از استفاده ازش راضی بودن. کل این پست در مورد captive portal هست.

یکی از ویژگی‌های این محصول استفاده می‌کنیم captive portal هست. کاری که میکنه اینه که اولین چیزی که شما توی بروزر میزنی رو redirect میکنه به صفحه لاگین. حالا یکی از چیزایی که من توی محصولاتی مثل cyberoam دیدم که یه کلاینت دارن واسه لاگین کردن توی captive portal هست. من هم دچار این مشکل بودم که چون معمولا tab های زیادی توی بروزر باز دارم همه صفحات redirect میشه و خیلی مدیریتش سخت میشه. حالا من هم یه کلاینت با پایتون توسعه دادم که خیلی ساده این کار رو انجام میده. اون رو هم توی github گذاشتم که اگه کسی خواست استفاده کنه. امیدوارم این کلاینت کمک کنه که آدم‌های بیشتری از محصولات متن باز استفاده کنن.

همین!

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

خیلی وقته که از pfSense ننوشتم و حالا وقت خوبیه که یه پست کوتاه ولی کاربردی ازش بنویسم. کلا سرویس dns سعی میکنه که اسم یه سایت رو به یه آدرس ip تبدیل کنه. اما این تبدیل معمولا ایستا است یعنی با تعویض آی پی یه سایت کار سختیه و معمولا مدت قابل توجهی طول میکشه که آدرسها آپدیت بشن! حالا یه نوع خاص از dns وجود داره که میگه آدرس اولا به سهولت و دوما به سرعت تغییر میکنه پس اگه آدرس عوض بشه به سرعت این تغییرات اعمال میشه! توضیحات این قسمت فنی نیست فقط قرار به صورت کلی به شما ایده بده که این سرویس چطوری کار میکنه.

بخشای این سیستم‌ها عبارتند از

  1. ‍یک سرور dns عادی
  2. یک واسط وب برای تعریف آدرس سایت
  3. یک واسط وب برای آپدیت سریع آدرس ip

استفاده این سرویس هم برای اینه که اونهایی که آدرس ip ایستا ندارند بتونن یه دامنه به خودشون اختصاص بدن و بتونن از بیرون به روتر و شبکه داخلیشون دسترسی داشته باشن!

خب یکی از این سرویس ها https://freedns.afraid.org/ هست یه چنین سرویسی ارائه میکنه. حالا بعد از گرفتن آدرس از این سایت اگه بخوایم این سیستم رو روی pfsense تنظیم کنیم روندش خیلی ساده است!

  1. ثبت دامنه پویا در سرویس freedns.afraid.org
  2. رفتن به منوی services -> dynamic dns
    Menu_031
  3. اضافه کردن یک مورد جدید
    Selection_032
  4. وارد کردن اطلاعات دامنه
    Selection_033
  5. گرفتن اطلاعات از سایت freedns
    Selection_034

    Selection_036

همین امیدوارم به درد خورده باشه!

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

همینطور که گفته بودم میخوام در مورد ایده‌هام بنویسم. ایده اصلی اینجا اینه که چطور میشه حول یک محصول بسیار باکیفیت متن باز به نام 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. مهمترین پیش‌نیاز برای راه‌اندازی این سیستم یه کامپیوتر هست که بتونه بصورت ۲۴ ساعته روشن باشه
  2. دومین ویژگی اینه که اون کامپیوتر یا دوتا کارت شبکه داشته باشه یا اونقدر قوی باشه که بشه روش ماشین مجازی اجرا کرد
  3. حداقل هارد مورد نیاز ۱ گیگ هست
  4. حداقل رم مورد نیاز ۲۵۶ مگ هست

نصب pfSense

روند اجرای مرحله به مرحله به صورت زیره:

  1. اول تنظیمات مودمتون رو عوض کنید و dhcp اون رو خاموش کنید. فرض میکنم که آی پی مودم ۱۹۲٫۱۶۸٫۱٫۱/۲۴ هست. البته برای راحت‌تر بودن میتونید تنظیمات رو ۱۹۲٫۱۶۸٫۱٫۱/۱۶ بدید.
  2. فرض میکنم که رنج آدرس جدیدی که قرار pfsense به کاربرها بده ۱۹۲٫۱۶۸٫۲٫۰/۲۴ هست.
  3. آدرس کامپیوتری که برای پیکربندی قراره استفاده بشه رو ۱۹۲٫۱۶۸٫۲٫۵۰/۱۶ بدید که همزمان بتونید هم مودم رو ببینید هم pfsense
  4. حالا شروع به نصب pfsense روی سیستم اصلی کنید. نصب خیلی راحته در حد next زدن فقط حواستون باشه که در هنگام نصب اطلاعات هاردتون رو از دست ندید.
  5. مهمترین قسمت بعد از نصب انتخاب درست کارتهای شبکه است. یعنی اینکه کدوم کارت شبکه به عنوان LAN و کدوم کارت شبکه به عنوان WAN استفاده بشه. منظور از WAN اون کارت شبکه است که قراره ازش اینترنت بگیره و منظور از LAN هم شبکه داخلیه. اینجا فرض من اینه که هردوی اونها به یک سوئیچ وصل میشن پس فقط مهمه که درست کانفیگ بشه
  6. قدم بعد تخصیص IP به کارت شبکه wan هست. از توی منویی که نشون داده شده گزینه ۲ رو انتخاب کنید و با انتخاب wan اول گرفتن IP رو از DHCP غیر فعال کنید آدرس اون رو مثلا مقدار ۱۹۲٫۱۶۸٫۱٫۱۰ بدید. مقدار subnet mask رو هم ۲۴ بدید و آدرس gateway رو هم مقدار ۱۹۲٫۱۶۸٫۱٫۱ که همون آدرس مودم هست بدید
    منوی اصلی pfsense
    تنظیم wan
  1. قدم بعد آدرس دادن به LAN هست که در این مرحله مثل مرحله قبل عمل میکنید و آدرس رو ۱۹۲٫۱۶۸٫۲٫۱ میدید با subnet mask به مقدار ۲۴ بدون gateway

بعد از این عمل پیکربندی از طریق وب قابل انجامه و آدرس اون https://192.168.2.1 هست.

اندازه گیری ترافیک

بعد از راه‌اندازی نوبت به اندازه گیری ترافیک هست. راه‌های مختلفی وجود داره اما من ساده ترین راه رو توضیح میدم. البته اگه عمری بود راه‌های دیگه رو هم توضیح میدم.

  1. مرحله اول پیکربندی DHCP هست. برای اینکار به منوی services->dhcp server میریم
    03_pfsense_dhcp_server
  2. روی lan کلیک میکنیم
  3. اگه dhcp غیر فعاله اون رو فعال میکنیم.
    04_pfsense_dhcp_server_config
  4. رنج آی پی رو درست میکنیم
  5. و مهمتر از همه برای کسایی که توی خونه هستن توی قسمت DHCP static mapping یه entry اضافه میکنیم و به mac اونها یه آی پی اختصاص میدیم
    04_pfsense_dhcp_server_static
  6. بعد از اینکار میریم به منوی system->packages
  7. به بخش available packages میریم
  8. در این بخش پکیج bandwidthd رو نصب میکنیم
  9. بعد از نصب توی منو services->bandwidthd میریم و این پکیج رو برای LAN فعال میکنیم.
  10. دوتا گزینه output_cdf و recover_cdf رو تیک میزنیم که اطلاعات با reset شدن سیستم از دست نره
    05_pfsense_bandwidthd
  11. تغییرات رو ذخیره میکنیم
  12. بایستی بگذارید سیستم یه چند دقیقه‌ای کار کنه. بعد از قسمت access bandwidthd میتونید نمودارهای ساعتی هفتگی و ماهیانه رو ببینید.

با این کار بصورت ساده میتونید ببینید هر کسی در ساعت گذشته، هفته گذشته و ماه گذشته حتی سال گذشته چقدر مصرف داشته.

همین

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

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

  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‌به منظور افزایش کارایی استفاده از اینترنت
  • امکان بررسی ترافیک عبوری و ویروسیابی آن
  • امکان اعمال سیاستهای تضمین کیفیت

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

همین!