Community Tutorials FreeBSD / OpenBSD كيفية تكوين جدار حماية pf على FreeBSD و OpenBSD
كيفية تكوين جدار حماية pf على FreeBSD و OpenBSD
FREEBSD / OPENBSD

كيفية تكوين جدار حماية pf على FreeBSD و OpenBSD

SKYLINE Knowledge Base
Photo by Gabriel Heinzer on Unsplash

دليل عملي خطوة بخطوة لـ كيفية تكوين جدار حماية pf على FreeBSD و OpenBSD. أوامر مختبرة في الإنتاج، متطلبات مسبقة، تحقق نهائي وروابط لمواضيع ذات صلة.

pf هو محرّك تصفية الحزم في عائلة BSD — نفس الاسم على FreeBSD و OpenBSD، نفس الصياغة (تقريبًا)، وأنظف لغة جدار حماية على أي نظام تشغيل.

المتطلبات المسبقة

  • FreeBSD 13/14 أو OpenBSD 7.x مع وصول root.
  • جلسة SSH ثانية مفتوحة.

الخطوة 1: تمكين pf

FreeBSD — أضف إلى /etc/rc.conf:

pf_enable="YES"
pflog_enable="YES"
pf_rules="/etc/pf.conf"

الخطوة 2: اكتب /etc/pf.conf

ext_if = "vtnet0"

table <admin>      const { 203.0.113.0/24 }
table <bruteforce> persist

set skip on lo
set block-policy drop
set loginterface $ext_if

antispoof quick for $ext_if
scrub in all

block in  log all
pass  out all keep state

pass in inet proto icmp icmp-type echoreq

pass in on $ext_if proto tcp from <admin> to ($ext_if) port 22 \
  flags S/SA keep state \
  (max-src-conn 5, max-src-conn-rate 5/30, overload <bruteforce> flush global)

pass in on $ext_if proto tcp to ($ext_if) port { 80 443 } \
  flags S/SA keep state

block quick from <bruteforce>

الخطوة 3: اختبر الصياغة وحمّل

sudo pfctl -nf /etc/pf.conf
sudo pfctl -f  /etc/pf.conf
sudo service pf reload

الخطوة 4: الفحص

sudo pfctl -s rules
sudo pfctl -s states
sudo pfctl -s info
sudo pfctl -t bruteforce -T show
sudo tcpdump -n -i pflog0

الخطوة 5: NAT و port forward

int_if = "vtnet1"
nat on $ext_if inet from ($int_if:network) to any -> ($ext_if)
rdr pass on $ext_if proto tcp from any to ($ext_if) port 8443 \
  -> 10.0.10.50 port 443

الخطوة 6: تنظيف الحظر والمراقبة

sudo pfctl -t bruteforce -T expire 3600
sudo pfctl -t bruteforce -T flush
watch -n 2 'sudo pfctl -s info | head -20'

التحقق

nmap -Pn -p 22,80,443 your.host.sa

الخاتمة

صياغة pf هي الأكثر قابلية للقراءة بين أي جدران حماية. ضعها في git، انشرها عبر Ansible، ولا تعدل أبدًا دون pfctl -nf أولاً.

الخطوات التالية

SKYLINE Engineering

@skyline

The engineering team at SKYLINE Industrial Solutions. We publish field-tested guides drawn from real KSA and GCC deployments.

See author profile
SKYLINE engineering services

Need this implemented for you?

Reading is free — building it right takes a team. SKYLINE engineers ship FreeBSD / OpenBSD for Aramco vendors, banks, hospitals and government agencies across Saudi Arabia. Talk to us before you start.

Aramco Approved Contractor ISO 9001 · ISO 27001 SAMA CSF aligned NCA ECC ready 247+ KSA clients

Comments

0 total · 0 threads
Be the first to leave a comment.