كيفية ضبط “الطرق على المنافذ” Port Knocking على أوبنتو باستخدام IPTables: دليل شامل
الكلمات المفتاحية: الطرق على المنافذ, Port Knocking, أوبنتو, IPTables, جدار ناري, أمن الشبكات, الحماية من الاختراق, خوادم لينكس, التشفير, أمان الشبكات
مقدمة
في عالم تتزايد فيه التهديدات الإلكترونية يوماً بعد يوم، أصبح من الضروري تعزيز وسائل الأمان على الخوادم التي تعمل بأنظمة التشغيل المبنية على لينكس مثل أوبنتو. من بين التقنيات الأمنية المتقدمة التي تتيح التحكم في الوصول إلى الخوادم بطريقة غير تقليدية هي تقنية “الطرق على المنافذ” أو Port Knocking. تعتمد هذه التقنية على مبدأ إخفاء الخدمات الحساسة خلف جدار ناري مغلق، بحيث لا تظهر هذه الخدمات أو تستجيب إلا بعد إرسال سلسلة محددة من الحزم إلى منافذ معينة، تُعرف بـ”طرق الباب”.
هذه المقالة تقدم شرحاً مفصلاً ومتعمقاً لكيفية إعداد تقنية Port Knocking على نظام Ubuntu باستخدام أداة IPTables، والتي تُعد واحدة من أقوى أدوات إدارة الجدران النارية في أنظمة لينكس.
المفهوم الأساسي لتقنية Port Knocking
Port Knocking هي آلية أمنية تُستخدم للتحكم في الوصول إلى الخدمات الحساسة على الخوادم، كـ SSH مثلاً، بحيث تظل هذه الخدمات غير مرئية للمستخدمين حتى يقوموا بإرسال تسلسل معين من الحزم إلى منافذ محددة. بمجرد إرسال الحزم بالتسلسل الصحيح، يفتح الجدار الناري منفذ الخدمة لفترة قصيرة تتيح للمستخدم الاتصال.
تعتمد هذه التقنية على الطبقة الثالثة والرابعة من نموذج الشبكة OSI (IP و TCP/UDP)، وهي لا تتطلب تعديلات على التطبيقات نفسها بل فقط على إعدادات الجدار الناري.
فوائد تقنية Port Knocking
-
إخفاء الخدمات الحساسة: تبقى المنافذ مغلقة وغير مكشوفة لأي عمليات مسح خارجي.
-
تقليل مخاطر الهجمات الآلية: لا يمكن اكتشاف المنفذ المفتوح إلا بعد الطرق الصحيح.
-
دعم إضافي للأمان: لا تعتبر هذه التقنية بديلاً للمصادقة، بل طبقة إضافية للأمان.
-
مرونة في التحكم: يمكن تخصيص تسلسلات الطرق، تحديد الوقت المسموح به، وربطها بعناوين IP محددة.
المتطلبات الأساسية
قبل الشروع في ضبط Port Knocking، يجب التأكد من الأمور التالية:
-
وجود صلاحيات root على النظام.
-
تثبيت حزمة IPTables.
-
خدمة SSH قيد التشغيل.
-
تثبيت حزمة
knockd، وهي أداة مخصصة لمراقبة تسلسل الطرق.
تثبيت الأدوات المطلوبة
تحديث النظام
bashsudo apt update && sudo apt upgrade -y
تثبيت IPTables و knockd
bashsudo apt install iptables knockd -y
ضبط IPTables لإغلاق منفذ SSH
أول خطوة لتطبيق تقنية Port Knocking هي إغلاق منفذ الخدمة المراد حمايتها، وغالباً ما تكون خدمة SSH على المنفذ 22.
bashsudo iptables -A INPUT -p tcp --dport 22 -j DROP
يمكن حفظ الإعدادات باستخدام:
bashsudo iptables-save > /etc/iptables/rules.v4
ملاحظة: تأكد من حفظ إعدادات IPTables باستخدام أدوات مثل
iptables-persistentلتجنب فقدانها بعد إعادة التشغيل.
تكوين knockd لمراقبة تسلسل الطرق
تعديل ملف الإعدادات
الملف الرئيسي لإعداد knockd هو /etc/knockd.conf. إليك مثال على إعداد بسيط:
ini[options]
logfile = /var/log/knockd.log
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 10
command = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 9000,8000,7000
seq_timeout = 10
command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
شرح الإعدادات
| المفتاح | الوظيفة |
|---|---|
sequence |
تسلسل المنافذ المطلوب الطرق عليها |
seq_timeout |
الزمن المسموح بين الطرقات (بالثواني) |
command |
الأمر الذي يُنفذ بعد الطرق الصحيح |
tcpflags |
نوع الحزم المراقبة، وغالباً syn للطلبات الأولية للاتصال بـ TCP |
%IP% |
يُستبدل تلقائياً بعنوان IP الذي قام بالطرق |
تفعيل خدمة knockd
تعديل ملف النظام لتفعيل الخدمة
في Ubuntu، خدمة knockd لا تُفعل تلقائياً. لذلك يجب تعديل ملف الإعدادات /etc/default/knockd وتغيير السطر:
bashSTART_KNOCKD=0
إلى:
bashSTART_KNOCKD=1
ثم تشغيل الخدمة:
bashsudo systemctl enable knockd
sudo systemctl start knockd
اختبار الطريقة
تنفيذ الطرق على المنافذ
من جهاز آخر، يمكن استخدام أداة knock لتنفيذ تسلسل الطرق:
bashknock your.server.ip 7000 8000 9000
بعدها، يتم فتح منفذ SSH مؤقتاً.
الدخول إلى الخادم
إغلاق المنفذ
بعد الانتهاء من الجلسة، يمكن تنفيذ تسلسل الإغلاق:
bashknock your.server.ip 9000 8000 7000
نصائح أمنية متقدمة
-
استخدام تسلسل طرق معقد: تجنب استخدام تسلسلات واضحة كـ 1234، 2345.
-
تغيير المنافذ الدورية: يمكن تغيير تسلسل الطرق بشكل دوري عبر سكربتات أو سياسات زمنية.
-
تحديد عناوين IP المسموح بها: يمكن تعزيز الأمان بقصر الوصول على عناوين IP محددة.
-
إدراج قيود زمنية: بإمكانك تحديد مهلة زمنية قصيرة لبقاء المنفذ مفتوحاً باستخدام أدوات جدولة.
جدول مقارنة بين الحماية التقليدية وPort Knocking
| الخاصية | الحماية التقليدية (فتح دائم للمنفذ) | الطرق على المنافذ (Port Knocking) |
|---|---|---|
| رؤية المنفذ عبر أدوات المسح | نعم | لا |
| التعرض للهجمات الآلية (Brute Force) | مرتفع | منخفض |
| التعقيد في الإعداد | بسيط | متوسط إلى معقد |
| المرونة في التحكم بالدخول | محدود | عالٍ |
| الدعم عبر أنظمة التشغيل | واسع الانتشار | محدود نسبياً |
استخدام أدوات بديلة
بالإضافة إلى knockd، توجد أدوات أخرى تدعم وظائف مشابهة مثل:
-
fwknop (FireWall KNock OPerator): يدعم الطرق المشفر (Single Packet Authorization).
-
Portspoof: أداة لإخفاء الخدمات وتضليل الماسحات.
-
Fail2ban: ليس للطرق على المنافذ، لكنه يُستخدم مع SSH لمنع الهجمات المتكررة.
ملاحظات حول الأداء والاستخدام الفعلي
-
Port Knocking يُعتبر خياراً ممتازاً للخوادم التي لا تستقبل الكثير من المستخدمين، حيث يقلل من خطر تعرضها لهجمات خارجية.
-
مع ذلك، في بيئات العمل المعقدة أو الشبكات الكبيرة، يُنصح باستخدام حلول أكثر تطوراً مثل VPN أو Single Packet Authorization.
-
يجب الحذر من تسرب تسلسل الطرق، لأنه يُعد بمثابة كلمة مرور غير مشفرة، ويفضل إرسالها عبر شبكات مؤمنة أو من خلال tunneling.
الخاتمة
تقنية Port Knocking تمثل إحدى أهم وسائل الدفاع في عمق استراتيجية الأمن السيبراني، وتوفر مستوى إضافياً من الحماية ضد عمليات المسح والاختراق. عند تنفيذها بشكل صحيح على أنظمة أوبنتو باستخدام IPTables و knockd، فإنها تشكل حاجزاً متيناً يصعب تجاوزه. ومع أنها ليست حلاً سحرياً، إلا أنها أداة قوية تُضاف إلى ترسانة الأمان لأي مسؤول نظام يحرص على حماية بنيته التحتية الرقمية.
المراجع:

