نصب و راه اندازی فایرول PF در FreeBSD (شماره اول)

دراین قسمت ابتدا به مقدمات نصب در FreeBSD می‌پردازیم. FreeBSD همانند گنو/لینوکس نمی‌باشد که یکسری pf-iconپیش‌فرض‌ها در کرنلش وجود داشته باشد. نه تنها کرنلش بلکه خود سیستم‌عامل آن نیز یک سیستم‌عامل لخت محسوب می‌شود. بدین جهت برای هر کاری باید مقدماتی را در خود سیستم‌عامل آماده سازی نمود.البته ناگفته نماند در این شماره کمی از مقدمات PF نیز گفته خواهد شد.pf-icon
سؤالی که ممکن است پیش بیاید این است که چرا در خود OpenBSD نصب نکردیم. جواب این سؤال را بهتر است با تعریف خود community آن ارایه کنم: OpenBSD یک community حمایت کننده از پروژه‌هایی همانند OpenSSH، LibreSSL، OpenSMTPD ، OpenBGPD، OpenIKED و mandoc می‌باشد. در‌واقع مکانی برای رشد و کمک به نرم‌افزار آزاد در مقیاس بزرگ می‌باشد.

نکته: مرحله اول یعنی به روز رسانی سیستم یک مسئله شخصی است وبنده به شخصه ترجیح می‌دهم که یک FreeBSD-Box را در درجه اول به روز کنم.

۱. به روزرسانی سیستم

برای آنکه در ابتدا به ساکن به سراغ FreeBSD رفتیم پس الزاماً به یک سری update ها نیز نیازمندیم. اولین گام به روز شدن /usr/port/ با سرور می‌باشد بدین منظور دستور زیر را وارد می‌کنیم:

نکته: هر گاه port tree را update می‌کنیم دوباره باید برای آن index بسازیم که با دستور زیر میسر است.

در گام دوم با دستور زیر یکسری update ها را گرفته و نصب می‌نماییم.

در گام بعدی باید kernel را از لیست Component های آن حذف کنیم،‌زیرا قرار است تا خودمان کرنل کامپایل نماییم و قرار نیست به جای آن update شود. فایل etc/freebsd-update.conf/ را ویرایش می‌نمایم و در قسمت Component کلمه kernel را حذف می‌نماییم.
نکته: البته اگر قرار است این دستور را در cron استفاده شود.
سپس با یکی از دستوراتی که منجر به reboot سیستم می‌شود آن را reboot نمایید.
باید حال سراغ update کردن /usr/src/ برویم. برای این منظور دستور svn که جزو بسته subversion می‌باشد را باید نصب نماییم.

نکته:از اینجا به بعد تحت عنوان buildworld در FreeBSD شناخته می‌شود و اگر تا بحال این کار را انجام نداده‌اید به هیچ عنوان بدون خواندن مستندات خود FreeBSD این کار را انجام ندهید!

حال که buildworld تمام شد به سراغ کامپایل کرنل می‌رویم.

۲. کامپایل کرنل:

برای کامپایل کرنل به دایرکتوری زیر بروید:

نکته: دایرکتوری sys در مسیر بالا مسیر کرنل‌های شما می‌باشد و دستور uname -m نوع ماشنینتان را برمی‌گرداند.
در دایرکتوری conf کرنل شما config فایل کرنل شما وجود دارد که با نام GENERIC ذخیره شده است. اول از آن یک backup می‌گیریم.

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

از پیکربندی آن backup گرفته و آن را تغییر نام به PF داده و یک لینک در home دایرکتوری خود ساختیم.
در فایل پیکربندی یک خط به نام ident وجود دارد که نام کرنل شماست، در حقیقت الان به نام GENERIC است آن را به PF تغییر دهید تا به تغییرات فایروال PF برسیم.
به انتهای فایل پیکربندی خود خطوط زیر را اضافه کنید تا کرنل FreeBSD بتواند PF را بشناسد.

در غیر اینصوررت فایل dev/pf/ هم حتی وجود نخواهد داشت.
نکته: اینجا گنو/لینوکس نیست! به هیچ عنوان تحت هیچ شرایطی در درون کرنل بدون هیچ مستندی چیزی را جایگذاری و یا حذف ننمایید.
سپس به دایرکتوری /usr/src/ رفته و با ۲ فرمان زیر کرنل را کامپایل و نصب می‌نماییم:

سپس ماشین را rebeoot می‌کنیم.
بعد از reboot ماشین اسم کرنل جدید با فرمان زیر مشخص خواهد شد:

در‌واقع indent کرنل را نمایش می‌دهد.
قبل از reboot کردن خروجی فرمان ifconfig بدین صورت بود:

حال که با PF کامپایل شده بدین صورت درآمده:

۳. فایل rc.conf*

دست نگه دارید!!!! همه چیز تمام نشده است. درست که شما کرنل را با PF همخوان کردید، ولی هنوز FreeBSD با PF مشکل دارد. در‌واقع FreeBSD با PF مشکل ندارد این شما هستید که با آن مشکل دارید. هنوز rc.conf را خالی گذاشته‌اید.
باید خطوط زیر را به rc.conf توزیع خود اضافه کنید:

نکته: اینجا گنو/لینوکس نیست، برای دوباره لود شدن این فایل نیاز است تا با init 1 به single mode رفته و با CTRL+D به حالت اولیه برگردید.
تبریک می‌گوییم یک سیستم‌عامل آماده کار با فایروال قدرتمند PF دارید.

پاسخ دهید

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