راه اندازی  برنامه PF در FreeBSD

بعد از پروژه OpenBSD که برنامه  pf از آنجا متولد شده، در FreeBSD هم این برنامه به صورت خوبی طراحی و ایجاد شده است. برنامه pf از ورژن ۵٫۲ در این سیستم عامل قرار گرفته است. اگر بخش قبلی را مطالعه کرده باشید در سیستم عامل OpenBSD برنامه pf به صورت پیش فرض فعال است در صورتی که در این سیستم عامل این برنامه یکی از ابزارهای فایروال است به همین دلیل برای راه اندازی آن نیاز به دانش بیشتری دارید و باید فایل راه اندازی کننده سرویس ها در FreeBSD به نام rc.conf را مقدار بیشتری مورد ویرایش قرار دهید. در زیر شما کلیه متغیرهای موجود در فایل rc.conf که در شاخه /etc/default قرار دارد را مشاهده می کنید. این فایل شامل متغیرهای همه سرویس های پیش فرض موجود در FreeBSD است که به راحتی با استفاده ازفرمان cat و برنامه grep می توانید بخش های مورد نظر خود را از این فایل استخراج کنید:

(pf_enable=”NO”                              # Set to YES to enable packet filter (PF

 

pf_rules=”/etc/pf.conf”                   # rules definition file for PF

 

pf_program=”/sbin/pfctl”               # where pfctl lives

 

pf_flags=””                                       # additional flags for pfctl

 

pflog_enable=”NO”                       # set to YES to enable packet filter logging

 

pflog_logfile=”/var/log/pflog”       # where pflogd should store the logfile

 

pflog_program=”/sbin/pflogd”     # where pflogd lives

 

pflog_flags=””                                # additional flags for pflogd

 

pfsync_enable=”NO”                   # expose pf state to other hosts for syncing

 

pfsync_syncdev=””                      # interface for pfsync to work through

 

pfsync_ifconfig=””                        # additional options to ifconfig(8) for pfsync

شاید همه این متغیرها برای شروع به کار شما نیاید. برای شروع کافی است که این دو خط زیر را به فایل اصلی rc.conf اضافه کنید:

(pf_enable=”YES”                 # Enable PF (load module if required

 

(pflog_enable=”YES”              # start pflogd(8

 

در سیستم عامل FreeBSD  برنامه pf به صورت ماژول در هسته این سیستم عامل بارگذاری می شود و شما نیاز به کامپايل کردن هسته این سیستم عامل ندارید. اگر شما برنامه pf را در هسته کامپایل نکرده باشید و از هسته اصلی و پیش فرض این سیستم عامل استفاده می کنید از فرمان زیر برای بارگذاری برنامه pf در هسته استفاده کنید:

 

sudo kldload pf $

 

 sudo pfctl -e $

با فرمان اول ماژول مورد نظر رو بارگذاری می کنید و با فرمان دوم با استفاده از pfctl برنامه pf راه اندازی می شود. در بعضی از موارد به دلیل وجود نداشتن فایل pf.conf ابتدا باید ان را  در شاخه etc ایجاد کنید و به با استفاده از اسکریپت های rc به صورت زیر برنامه pf را راه اندازی کنید:

 

sudo /etc/rc.d/pf start$

به این نکته در ساختار FreeBSD دقت کنید که برای راه اندازی pf به صورت خودکار، در زمان راه اندازی سیستم هم به فایل pf.conf و هم خط متناسب راه اندازی در فایل rc.conf دارید که نبود هر کدام باعث عدم راه اندازی pf  می شود. برای راحتی کاربران در FreeBSD فایل پیش فرض pf.conf  در شاخه usr/share/examples/pf/pf.conf وجود دارد که به راحتی می توانید آن را در شاخه etc کپی کنید.