Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
iptables-essentials — Iptables Essentials: قواعد وأوامر جدار الحماية الشائعة | Kitploit
أدوات/GitHubGitHub/trimstray/iptables-essentials
تدقيق التكوينأمن الشبكاتالتعلم والتعليمموارد منسقة
GitHubtrimstray/iptables-essentials

iptables-essentials

Iptables Essentials: قواعد وأوامر جدار الحماية الشائعة

عرض المستودع
1.6k289منذ سنة واحدةتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

أساسيات Iptables: قواعد وأوامر جدار الحماية الشائعة


Pull Requests MIT License


☑️ مهام قيد الإنجاز

  • إضافة أمثلة مفيدة لتكوين Iptables
  • إضافة تكوين مفيد لإعدادات Kernel (sysctl)
  • إضافة روابط لمصادر خارجية مفيدة
  • إضافة أمثلة تكوين متقدمة وأوامر وقواعد

جدول المحتويات

  • أدوات تساعدك في تكوين Iptables
  • أدلة/دروس تعليمية
  • تكوين إعدادات Kernel المفيدة (sysctl)
    • rp_filter
    • log_martians
    • send_redirects
    • accept_source_route
    • accept_redirects
    • tcp_syncookies
    • icmp_echo_ignore_broadcasts
    • ip_forward
  • كيف يعمل؟
  • قواعد Iptables
    • حفظ القواعد
      • قائم على Debian
      • قائم على RedHat
    • عرض جميع قواعد iptables النشطة مع التفصيل
    • عرض جميع قواعد iptables النشطة مع أرقام الأسطر والتفصيل
    • طباعة جميع قواعد iptables النشطة
    • عرض القواعد كجداول لسلسلة INPUT
    • طباعة جميع مواصفات القاعدة في سلسلة INPUT
    • إظهار عدد الحزم والحجم الإجمالي
    • عرض قواعد سلسلة INPUT أو OUTPUT مع أرقام الأسطر والتفصيل
    • حذف قاعدة حسب السلسلة والرقم
    • حذف قاعدة حسب المواصفات
    • حذف جميع القواعد وحذف جميع السلاسل وقبول الكل
    • حذف جميع السلاسل
    • حذف سلسلة واحدة
    • إدراج قواعد جدار الحماية
    • السماح باتصالات الحلقة المحلية
    • السماح بالاتصالات الواردة المُنشأة والمرتبطة
    • السماح بالاتصالات الصادرة المُنشأة
    • من الداخل إلى الخارج
    • رفض الحزم غير الصالحة
    • حظر عنوان IP
    • حظر عنوان IP ورفضه
    • حظر الاتصالات بواجهة شبكة
    • السماح بكل اتصالات SSH الواردة
    • السماح باتصالات SSH الواردة من عنوان IP محدد أو شبكة فرعية
    • السماح باتصالات SSH الصادرة
    • السماح باتصالات Rsync الواردة من عنوان IP محدد أو شبكة فرعية
    • السماح بكل اتصالات HTTP الواردة
  • أمثلة تكوين متقدمة
    • معالجة الحزم في Python باستخدام هدف NFQUEUE
      • قبول جميع الحزم من مصدر محدد على (filter:INPUT) ورفض كل شيء آخر
      • اكتب نص port knocking الخاص بك لتأمين الوصول إلى SSH

أدوات تساعدك في تكوين Iptables

  :small_orange_diamond: Shorewall - أداة متقدمة لتكوين البوابة/جدار الحماية لنظام GNU/Linux.
  :small_orange_diamond: Firewalld - توفر جدار حماية يُدار ديناميكيًا.
  :small_orange_diamond: UFW - أداة تكوين جدار الحماية الافتراضية لأوبونتو.
  :small_orange_diamond: FireHOL - تقدم تكوينًا بسيطًا وقويًا لجميع متطلبات جدار الحماية وتشكيل حركة المرور في Linux.

أدلة/دروس تعليمية

  :small_orange_diamond: أفضل الممارسات: iptables - بقلم Major Hayden
  :small_orange_diamond: دليل متعمق لـ Iptables، جدار الحماية Linux
  :small_orange_diamond: الميزات المتقدمة لـ netfilter/iptables
  :small_orange_diamond: جدران الحماية Linux باستخدام iptables
  :small_orange_diamond: تصحيح أخطاء iptables والمزالق الشائعة لجدار الحماية؟
  :small_orange_diamond: دليل اختراق Netfilter HOWTO
  :small_orange_diamond: تحديد المعدل لكل عنوان IP باستخدام iptables

تكوين إعدادات Kernel المفيدة (sysctl)

rp_filter

تعطيل التثليث في التوجيه. الرد على الاستعلامات عبر نفس الواجهة، وليس أخرى. كما تحمي من انتحال IP.```bash cat << EOF >> /etc/sysctl.d/40-custom.conf net/ipv4/conf/all/rp_filter = 1 EOF

root@kitploit:~
- [rp_filter وأمان لينكس LPIC-3](https://www.theurbanpenguin.com/rp_filter-and-lpic-3-linux-security/)
- [إعدادات rp_filter لنواة لينكس (تصفية المسار العكسي)](https://www.slashroot.in/linux-kernel-rpfilter-settings-reverse-path-filtering)
- [تصفية المسار العكسي](http://tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.kernel.rpf.html)

##### log_martians

  > _تمكين تسجيل الحزم ذات عناوين IP غير صالحة._```bash
cat << EOF >> /etc/sysctl.d/40-custom.conf
net/ipv4/conf/all/log_martians = 1
EOF
  • ما فائدة تسجيل حزمة المريخ؟
send_redirects

تعطيل إرسال جميع حزم إعادة توجيه ICMP الخاصة بـ IPv4 على جميع الواجهات.```bash cat << EOF >> /etc/sysctl.d/40-custom.conf net/ipv4/conf/all/send_redirects = 0 EOF

root@kitploit:~
- [تعطيل توجيه المصدر](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/security_guide/sect-security_guide-server_security-disable-source-routing)
- [ما هي عمليات إعادة توجيه ICMP وهل يجب حظرها؟](https://askubuntu.com/questions/118273/what-are-icmp-redirects-and-should-they-be-blocked)

##### accept_source_route

  > _تعطيل الحزم الموجهة المصدر (الحزم التي تحتوي على خيار التوجيه الصارم للمصدر (SSR) أو التوجيه غير الصارم للمصدر (LSR))._```bash
cat << EOF >> /etc/sysctl.d/40-custom.conf
net/ipv4/conf/all/accept_source_route = 0
EOF
  • تعطيل توجيه المصدر
  • يجب ألا يقبل النظام حزم IPv4 الموجهة من المصدر افتراضيًا.
accept_redirects

تعطيل قبول إعادة التوجيه ICMP.```bash cat << EOF >> /etc/sysctl.d/40-custom.conf net/ipv4/conf/all/accept_redirects = 0 EOF

root@kitploit:~
- [ما هي إعادة توجيه ICMP وهل يجب حظرها؟](https://askubuntu.com/questions/118273/what-are-icmp-redirects-and-should-they-be-blocked)
- [يجب على نظام التشغيل Red Hat Enterprise Linux تجاهل رسائل إعادة توجيه بروتوكول الإنترنت الإصدار 4 (IPv4) لبروتوكول رسائل التحكم بالإنترنت (ICMP).](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2018-11-28/finding/V-73175)

##### tcp_syncookies

  > _قم بتشغيل حماية فيضان SYN (الحماية من هجمات حرمان الخدمة (DOS))._```bash
cat << EOF >> /etc/sysctl.d/40-custom.conf
net/ipv4/tcp_syncookies = 1
EOF
  • تعزيز مكدس TCP/IP الخاص بك ضد هجمات SYN Flood
  • لينكس: تشغيل حماية ملفات تعريف الارتباط TCP SYN
  • بديل أفضل لـ tcp_syncookies في لينكس
icmp_echo_ignore_broadcasts

تعطيل الاستجابة لطلبات ping الموجهة للبث.```bash cat << EOF >> /etc/sysctl.d/40-custom.conf net/ipv4/icmp_echo_ignore_broadcasts = 1 EOF

root@kitploit:~
- [ما فائدة البث ICMP؟](https://superuser.com/questions/306065/what-is-icmp-broadcast-good-for)
- [يجب ألا يستجيب النظام لـ ICMPv4 المرسلة إلى عنوان بث.](https://www.stigviewer.com/stig/red_hat_enterprise_linux_6/2018-11-28/finding/V-38535)

##### ip_forward

> _تمكين توجيه IP. مطلوب إذا كان جدار الحماية الخاص بك يحمي شبكة، بما في ذلك NAT._```bash
cat << EOF >> /etc/sysctl.d/40-custom.conf
net/ipv4/ip_forward = 1
EOF
  • مقدمة عن أجهزة التوجيه (راوترات)
  • كيفية تمكين إعادة توجيه IP في لينكس
  • ما هو إعادة توجيه IP في النواة؟

كيف يعمل؟

Master

قواعد Iptables

حفظ القواعد

قائم على دبيان```bash

netfilter-persistent save

root@kitploit:~
###### قائم على RedHat```bash
service iptables save

قائمة بجميع قواعد iptables النشطة مع وضع الإسهاب```bash

iptables -n -L -v

root@kitploit:~
#### قائمة بجميع قواعد iptables النشطة مع الأسطر المرقمة والمفصّلة```bash
iptables -n -L -v --line-numbers

اطبع جميع قواعد iptables النشطة```bash

iptables -S

root@kitploit:~
#### قائمة القواعد كجداول لسلسلة INPUT```bash
iptables -L INPUT

اطبع جميع مواصفات القاعدة في سلسلة INPUT```bash

iptables -S INPUT

root@kitploit:~
#### عرض عدد الحزم والحجم الإجمالي```bash
iptables -L INPUT -v

لعرض INPUT أو OUTPUT chain rules مع numeric lines و verbose```bash

iptables -L INPUT -n -v iptables -L OUTPUT -n -v --line-numbers

root@kitploit:~
#### حذف القاعدة حسب السلسلة والرقم```bash
iptables -D INPUT 10

حذف القاعدة حسب المواصفات```bash

iptables -D INPUT -m conntrack --ctstate INVALID -j DROP

root@kitploit:~
#### مسح جميع القواعد، وحذف جميع السلاسل، وقبول الكل```bash
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X

تفريغ جميع السلاسل```bash

iptables -F

root@kitploit:~
#### مسح سلسلة واحدة```bash
iptables -F INPUT

إدراج قواعد جدار الحماية```bash

iptables -I INPUT 2 -s 202.54.1.2 -j DROP

root@kitploit:~
#### السماح باتصالات الحلقة المحلية```bash
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

السماح بالاتصالات الواردة المنشأة والمرتبطة```bash

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

root@kitploit:~
#### السماح بالاتصالات الصادرة المُنشأة```bash
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT

من الداخل إلى الخارج```bash

iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

root@kitploit:~
#### إسقاط الحزم غير الصالحة```bash
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP

حظر عنوان IP```bash

iptables -A INPUT -s 192.168.252.10 -j DROP

root@kitploit:~
#### الحظر وعنوان IP والرفض```bash
iptables -A INPUT -s 192.168.252.10 -j REJECT

حظر الاتصالات على واجهة الشبكة```bash

iptables -A INPUT -i eth0 -s 192.168.252.10 -j DROP

root@kitploit:~
#### السماح بجميع اتصالات SSH الواردة```bash
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT

السماح باتصالات SSH الواردة من عنوان IP محدد أو شبكة فرعية```bash

iptables -A INPUT -p tcp -s 192.168.240.0/24 --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT

root@kitploit:~
#### السماح بخروج SSH```bash
iptables -A OUTPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT

السماح بـ Rsync الوارد من عنوان IP أو شبكة فرعية محددة```bash

iptables -A INPUT -p tcp -s 192.168.240.0/24 --dport 873 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 873 -m conntrack --ctstate ESTABLISHED -j ACCEPT

root@kitploit:~
#### السماح بجميع طلبات HTTP الواردة```bash
iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT

السماح بجميع HTTPS الواردة```bash

iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT

root@kitploit:~
#### السماح بكل HTTP و HTTPS الواردة```bash
iptables -A INPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate ESTABLISHED -j ACCEPT

السماح لـ MySQL من عنوان IP محدد أو شبكة فرعية```bash

iptables -A INPUT -p tcp -s 192.168.240.0/24 --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 3306 -m conntrack --ctstate ESTABLISHED -j ACCEPT

root@kitploit:~
#### السماح لـ MySQL بالوصول إلى واجهة شبكة محددة```bash
iptables -A INPUT -i eth1 -p tcp --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --sport 3306 -m conntrack --ctstate ESTABLISHED -j ACCEPT

PostgreSQL من عنوان IP محدد أو شبكة فرعية```bash

iptables -A INPUT -p tcp -s 192.168.240.0/24 --dport 5432 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 5432 -m conntrack --ctstate ESTABLISHED -j ACCEPT

root@kitploit:~
#### السماح لـ PostgreSQL بواجهة شبكة محددة```bash
iptables -A INPUT -i eth1 -p tcp --dport 5432 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --sport 5432 -m conntrack --ctstate ESTABLISHED -j ACCEPT

حظر البريد الصادر عبر SMTP```bash

iptables -A OUTPUT -p tcp --dport 25 -j REJECT

root@kitploit:~
#### السماح بكل SMTP الوارد```bash
iptables -A INPUT -p tcp --dport 25 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 25 -m conntrack --ctstate ESTABLISHED -j ACCEPT

السماح بكل IMAP الواردة```bash

iptables -A INPUT -p tcp --dport 143 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 143 -m conntrack --ctstate ESTABLISHED -j ACCEPT

root@kitploit:~
#### السماح بكل IMAPS الواردة```bash
iptables -A INPUT -p tcp --dport 993 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 993 -m conntrack --ctstate ESTABLISHED -j ACCEPT

السماح بكل الوارد POP3```bash

iptables -A INPUT -p tcp --dport 110 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 110 -m conntrack --ctstate ESTABLISHED -j ACCEPT

root@kitploit:~
#### السماح بجميع اتصالات POP3S الواردة```bash
iptables -A INPUT -p tcp --dport 995 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 995 -m conntrack --ctstate ESTABLISHED -j ACCEPT

إسقاط عنوان الشبكة الخاصة على الواجهة العامة```bash

iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j DROP iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

root@kitploit:~
#### إسقاط كل الاتصالات الصادرة إلى شبكات فيسبوك

الحصول على AS فيسبوك:```bash
whois -h v4.whois.cymru.com " -v $(host facebook.com | grep "has address" | cut -d " " -f4)" | tail -n1 | awk '{print $1}'

إسقاط:```bash for i in $(whois -h whois.radb.net -- '-i origin AS32934' | grep "^route:" | cut -d ":" -f2 | sed -e 's/^[ \t]*//' | sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 | cut -d ":" -f2 | sed 's/$/;/') ; do

iptables -A OUTPUT -s "$i" -j REJECT

done

root@kitploit:~
#### تسجيل وإسقاط الحزم```bash
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j LOG --log-prefix "IP_SPOOF A: "
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

بشكل افتراضي، يتم تسجيل كل شيء في ملف /var/log/messages:```bash tail -f /var/log/messages grep --color 'IP SPOOF' /var/log/messages

root@kitploit:~
#### تسجيل وإسقاط الحزم بعدد محدود من إدخالات السجل```bash
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -m limit --limit 5/m --limit-burst 7 -j LOG --log-prefix "IP_SPOOF A: "
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

إسقاط أو قبول حركة المرور من Mac Address```bash

iptables -A INPUT -m mac --mac-source 00:0F:EA:91:04:08 -j DROP iptables -A INPUT -p tcp --destination-port 22 -m mac --mac-source 00:0F:EA:91:04:07 -j ACCEPT

root@kitploit:~
#### حظر أو السماح ICMP Ping Request```bash
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP

تحديد منافذ متعددة باستخدام `multiport````bash

iptables -A INPUT -i eth0 -p tcp -m state --state NEW -m multiport --dports ssh,smtp,http,https -j ACCEPT

root@kitploit:~
#### موازنة التحميل باستخدام `random*` أو `nth*````bash
_ips=("172.31.250.10" "172.31.250.11" "172.31.250.12" "172.31.250.13")

for ip in "${_ips[@]}" ; do
  iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 4 --packet 0 \
    -j DNAT --to-destination ${ip}:80
done

أو```bash _ips=("172.31.250.10" "172.31.250.11" "172.31.250.12" "172.31.250.13")

for ip in "${_ips[@]}" ; do iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m random --average 25
-j DNAT --to-destination ${ip}:80 done

root@kitploit:~
#### تقييد عدد الاتصالات باستخدام `limit` و `iplimit*````bash
iptables -A FORWARD -m state --state NEW -p tcp -m multiport --dport http,https -o eth0 -i eth1 \
    -m limit --limit 20/hour --limit-burst 5 -j ACCEPT

أو```bash iptables -A INPUT -p tcp -m state --state NEW --dport http -m iplimit --iplimit-above 5 -j DROP

root@kitploit:~
#### صيانة قائمة بالاتصالات الحديثة للمطابقة ضدها```bash
iptables -A FORWARD -m recent --name portscan --rcheck --seconds 100 -j DROP
iptables -A FORWARD -p tcp -i eth0 --dport 443 -m recent --name portscan --set -j DROP

المطابقة ضد string* في حمولة بيانات الحزمة```bash

iptables -A FORWARD -m string --string '.com' -j DROP iptables -A FORWARD -m string --string '.exe' -j DROP

root@kitploit:~
#### قواعد زمنية مع `time*````bash
iptables -A FORWARD -p tcp -m multiport --dport http,https -o eth0 -i eth1 \
    -m time --timestart 21:30 --timestop 22:30 --days Mon,Tue,Wed,Thu,Fri -j ACCEPT

مطابقة الحزم بناءً على قيم TTL```bash

iptables -A INPUT -s 1.2.3.4 -m ttl --ttl-lt 40 -j REJECT

root@kitploit:~
#### الحماية من فحص المنافذ```bash
iptables -N port-scanning
iptables -A port-scanning -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s --limit-burst 2 -j RETURN
iptables -A port-scanning -j DROP

حماية من هجمات القوة الغاشمة على SSH```bash

iptables -A INPUT -p tcp --dport ssh -m conntrack --ctstate NEW -m recent --set iptables -A INPUT -p tcp --dport ssh -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 10 -j DROP

root@kitploit:~
#### حماية من Syn-flood```bash
iptables -N syn_flood

iptables -A INPUT -p tcp --syn -j syn_flood
iptables -A syn_flood -m limit --limit 1/s --limit-burst 3 -j RETURN
iptables -A syn_flood -j DROP

iptables -A INPUT -p icmp -m limit --limit  1/s --limit-burst 1 -j ACCEPT

iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 1 -j LOG --log-prefix PING-DROP:
iptables -A INPUT -p icmp -j DROP

iptables -A OUTPUT -p icmp -j ACCEPT
تخفيف هجمات SYN Floods باستخدام SYNPROXY```bash

iptables -t raw -A PREROUTING -p tcp -m tcp --syn -j CT --notrack iptables -A INPUT -p tcp -m tcp -m conntrack --ctstate INVALID,UNTRACKED -j SYNPROXY --sack-perm --timestamp --wscale 7 --mss 1460 iptables -A INPUT -m conntrack --ctstate INVALID -j DROP

root@kitploit:~
#### حظر الحزم الجديدة التي ليست SYN```bash
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

أو```bash iptables -t mangle -A PREROUTING -p tcp ! --syn -m conntrack --ctstate NEW -j DROP

root@kitploit:~
#### التحقق من حزم التجزئة القسرية```bash
iptables -A INPUT -f -j DROP

حزم XMAS```bash

iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

root@kitploit:~
#### تجاهل جميع الحزم الخالية```bash
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

حظر قيم MSS غير المألوفة```bash

iptables -t mangle -A PREROUTING -p tcp -m conntrack --ctstate NEW -m tcpmss ! --mss 536:65535 -j DROP

root@kitploit:~
#### حظر الحزم ذات أعلام TCP المزيفة```bash
iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,ACK FIN -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,URG URG -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,FIN FIN -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,PSH PSH -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL ALL -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL NONE -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN,FIN,PSH,URG -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP

حظر الحزم من الشبكات الفرعية الخاصة (انتحال)```bash

_subnets=("224.0.0.0/3" "169.254.0.0/16" "172.16.0.0/12" "192.0.2.0/24" "192.168.0.0/16" "10.0.0.0/8" "0.0.0.0/8" "240.0.0.0/5")

for _sub in "${_subnets[@]}" ; do iptables -t mangle -A PREROUTING -s "$_sub" -j DROP done iptables -t mangle -A PREROUTING -s 127.0.0.0/8 ! -i lo -j DROP

root@kitploit:~
## أمثلة متقدمة للتكوين

### معالجة الحزم في بايثون باستخدام هدف NFQUEUE

  > _يقوم هذا الهدف بتمرير الحزمة إلى مساحة المستخدم باستخدام معالج nfnetlink_queue. توضع الحزمة في قائمة الانتظار المحددة برقم القائمة ذي 16 بت. يمكن لمساحة المستخدم فحص الحزمة وتعديلها إذا رغبت. يجب على مساحة المستخدم بعد ذلك إسقاط الحزمة أو إعادة حقنها في النواة._

#### ACCEPT جميع الحزم من مصدر محدد على (filter:INPUT) و DROP كل شيء آخر

  > _تقوم هذه القاعدة بتوجيه جميع حزم filter:INPUT إلى قائمة الانتظار 1 باستخدام هدف NFQUEUE._```bash
iptables -A INPUT -j NFQUEUE --queue-num 1

نص برمجي للارتباط بـ netfilter queue 1 ومعالجة الحزم.```python #!/usr/bin/python3

from netfilterqueue import NetfilterQueue from scapy.all import *

def packetanalyzer(pkt): ip=IP(pkt.get_payload()) if(ip.src=="192.168.122.1"): print(f"New packet from {ip.src}") pkt.accept() else: pkt.drop()

nfqueue=NetfilterQueue() nfqueue.bind(1, packetanalyzer) nfqueue.run()

root@kitploit:~
#### اكتب نص برمجي خاص بالطرق على المنافذ لتأمين الوصول عبر SSH

  > _قم بإسقاط جميع طلبات SSH وأرسل طلبات المنافذ السرية إلى مساحة المستخدم باستخدام هدف NFQUEUE._```bash
iptables -t filter -I INPUT -p tcp --dport 22 -j DROP
iptables -t raw -I PREROUTING -p tcp --sport 65534 --dport 65535 -j NFQUEUE --queue-num 1

_يقوم هذا البرنامج النصي بالتقاط الحزم من netfilter queue 1 والتحقق من SOURCEPORT و SECRETPORT من أجل port knocking ويسمح للمصدر بالاتصال بـ ssh لمدة EXPIRETIME، الافتراضي هو 30 دقيقة.```python #!/usr/bin/python3

from os import system from netfilterqueue import NetfilterQueue from scapy.layers.inet import IP from time import time

SOURCEPORT=65534 SECRETPORT=65535 EXPIRETIME=30 ALLOWED={}

def portknocking(pkt): packet=IP(pkt.get_payload()) currtime=time() for item in list(ALLOWED): if(currtime-ALLOWED[item] >= EXPIRETIME*60): del ALLOWED[item] if(packet.sport==SOURCEPORT and packet.dport==SECRETPORT and packet.src not in ALLOWED): print(f"Port {packet.dport} knocked by {packet.src}:{packet.sport}") system(f"iptables -I INPUT -p tcp --dport 22 -s {packet.src} -j ACCEPT") system(f"echo 'iptables -D INPUT -p tcp --dport 22 -s {packet.src} -j ACCEPT' | at now + {EXPIRETIME} minutes") ALLOWED[packet.src]=time() pkt.drop()

nfqueue=NetfilterQueue() nfqueue.bind(1, portknocking)

try: nfqueue.run() except KeyboardInterrupt: print("\nExit with Keyboard Interrupt")

root@kitploit:~
> _لطرق المنفذ والسماح باتصالات ssh من جهاز الكمبيوتر الخاص بك، ما عليك سوى تنفيذ هذا الأمر:_```bash
nc -p 65534 SERVER 65535
تنزيل الأداة
  • السماح بكل اتصالات HTTPS الواردة
  • السماح بكل اتصالات HTTP و HTTPS الواردة
  • السماح بـ MySQL من عنوان IP محدد أو شبكة فرعية
  • السماح بـ MySQL لواجهة شبكة محددة
  • PostgreSQL من عنوان IP محدد أو شبكة فرعية
  • السماح بـ PostgreSQL لواجهة شبكة محددة
  • حظر البريد SMTP الصادر
  • السماح بكل اتصالات SMTP الواردة
  • السماح بكل اتصالات IMAP الواردة
  • السماح بكل اتصالات IMAPS الواردة
  • السماح بكل اتصالات POP3 الواردة
  • السماح بكل اتصالات POP3S الواردة
  • رفض عناوين الشبكة الخاصة على الواجهة العامة
  • رفض كل الاتصالات الصادرة لشبكات Facebook
  • تسجيل ورفض الحزم
  • تسجيل ورفض الحزم بعدد محدود من الإدخالات
  • رفض أو قبول حركة المرور من عنوان MAC
  • حظر أو السماح بطلب ping ICMP
  • تحديد منافذ متعددة باستخدام multiport
  • موازنة التحميل باستخدام random* أو nth*
  • تقييد عدد الاتصالات باستخدام limit و iplimit*
  • الحفاظ على قائمة بالاتصالات الحديثة للمطابقة
  • المطابقة ضد string* في بيانات حمولة الحزمة
  • قواعد زمنية باستخدام time*
  • مطابقة الحزم بناءً على قيم TTL
  • الحماية من مسح المنافذ
  • الحماية من هجمات القوة العمياء SSH
  • الحماية من هجمات Syn-flood
    • التخفيف من هجمات SYN Floods باستخدام SYNPROXY
  • حظر الحزم الجديدة التي ليست SYN
  • فرض فحص حزم التجزئة
  • حزم XMAS
  • رفض جميع الحزم الفارغة
  • حظر قيم MSS غير الشائعة
  • حظر الحزم ذات علامات TCP المزيفة
  • حظر الحزم من الشبكات الفرعية الخاصة (التزوير)