فهم لينكس nftables أمر #
استخدم nftables الأمر هو أداة جدار حماية قوية لنظام Linux تعمل على استبدال iptables, ip6tables, arptablesو ebtables. مع بناء جملة موحد، nftables يُبسّط تصفية حزم الشبكة، وترجمة عناوين الشبكة (NAT)، وتكوينات الشبكة المتقدمة الأخرى. يعمل الأمر مع nft أداة مساعدة تتواصل مع نظام netfilter الفرعي الخاص بنواة النظام لإدارة قواعد الشبكة.
البنية الأساسية والتركيب النحوي لـ nft أمر #
استخدم nft يتبع الأمر عمومًا هذا الهيكل:
nft [OPTIONS] COMMAND
- OPTIONS:أعلام مثل
-a(إظهار مقابض القواعد) أو-j(الإخراج بتنسيق JSON). - COMMAND:الإجراء المحدد، مثل
add,delete,listأوflush، تستخدم لإدارة الجداول أو السلاسل أو القواعد.
nft جدول الغش في الأوامر #
| أمر | الوصف |
nft list tables |
قائمة جميع الجداول |
nft add table inet filter |
إنشاء جدول جديد باسم filter في inet للعائلات |
nft delete table inet filter |
حذف filter الجدول في inet للعائلات |
nft list ruleset |
قم بإدراج جميع الجداول والسلاسل والقواعد بتنسيق يمكن قراءته من قبل البشر |
nft flush ruleset |
حذف جميع الجداول والسلاسل والقواعد (مسح مجموعة القواعد بأكملها) |
nft add chain inet filter input { type filter hook input priority 0; } |
إضافة input سلسلة إلى filter الجدول مع input صنارة صيد |
nft add rule inet filter input tcp dport 22 accept |
قبول حركة مرور SSH الواردة على المنفذ 22 |
nft delete rule inet filter input handle <handle_number> |
حذف قاعدة في input سلسلة من خلال تحديد مقبض القاعدة |
nft add rule inet filter forward counter |
أضف قاعدة مضادة إلى forward سلسلة لمراقبة حركة المرور |
إضافة الجداول وإدارتها #
In nftablesالجداول هي حاويات للسلاسل والقواعد. إليك كيفية إنشائها وإدارتها:
أنشئ جدولاً #
nft add table inet my_table
يقوم هذا الأمر بإنشاء جدول جديد باسم my_table في حدود inet العائلة، التي تدعم كل من IPv4 و IPv6.
حذف جدول #
nft delete table inet my_table
احذف ملف my_table من inet أسرة.
سلاسل في nftables #
السلاسل هي تسلسلات من القواعد التي تحدد كيفية التعامل مع الحزم. لكل سلسلة قواعد محددة. hook، والتي تحدد مرحلة تصفية الحزمة (على سبيل المثال، input, output أو forward).
إنشاء سلسلة #
nft add chain inet my_table my_chain { type filter hook input priority 0; }
هذا يخلق input سلسلة في my_table لتصفية الحزم ذات الأولوية 0.
حذف سلسلة #
nft delete chain inet my_table my_chain
يزيل my_chain من my_table.
القواعد في nftables #
تحدد القواعد إجراءات للحزم التي تتوافق مع شروط معينة. فيما يلي أمثلة على إضافة القواعد وإدراجها وحذفها.
إضافة القواعد #
nft add rule inet my_table my_chain tcp dport 80 accept
تسمح هذه القاعدة بحركة المرور على منفذ TCP 80 (HTTP).
قواعد الإدراج #
nft list chain inet my_table my_chain
يعرض جميع القواعد في my_chain.
حذف القواعد #
nft delete rule inet my_table my_chain handle <handle_number>
إزالة القاعدة عن طريق تحديد رقم المقبض الخاص بها، والذي يمكن إظهاره بواسطة nft list chain inet my_table my_chain -a.
مثال nftables التكوين: إعداد جدار الحماية الأساسي #
فيما يلي تكوين جدار حماية أساسي يسمح بدخول SSH و HTTP/HTTPS، مع حظر جميع حركة المرور الأخرى:
nft إضافة جدول inet filter nft إضافة سلسلة inet filter إدخال { نوع مرشح خطاف إدخال الأولوية 0\; إسقاط السياسة\; } nft إضافة قاعدة inet filter إدخال tcp dport 22 قبول # السماح بـ SSH nft إضافة قاعدة inet filter إدخال tcp dport 80 قبول # السماح بـ HTTP nft إضافة قاعدة inet filter إدخال tcp dport 443 قبول # السماح بـ HTTPS nft إضافة قاعدة inet filter إدخال ct الحالة أنشئت، ذات صلة قبول # السماح بالاتصالات المنشأة
متقدم: قواعد الحالة مع تتبع الاتصال #
nftables يحتوي على دعم مدمج لتتبع الاتصال، مما يسمح لك بإدارة القواعد المتعلقة بالحالة.
مثال: السماح بالاتصالات ذات الصلة والمثبتة #
nft add rule inet filter input ct state established,related accept
يتيح ذلك الحصول على حزم من الاتصالات التي تم إنشاؤها بالفعل أو المرتبطة باتصالات موجودة، مما يساعد على تقليل إعادة المعالجة غير الضرورية للاتصالات المسموح بها مسبقًا.
ملخص #
استخدم nftables الأمر أداة حديثة ومتعددة الاستخدامات لتصفية حزم الشبكة، حيث توفر بنية لغوية موحدة وخيارات مرنة لإدارة قواعد جدار الحماية. مع nftablesيمكنك إنشاء تكوينات جدار حماية فعالة وقابلة للصيانة ومناسبة للإعدادات البسيطة وبيئات المؤسسات المعقدة.