مدونة الرووت جريس

مختصة بإدارة أنظمة لينكس\يونكس، الحوسبة السحابية والإنظمة التخيلية

ربط الجدار الناري iptables مع DynamicDNS

أعترف أنني توقفت عن التدوين لفترة طويلة بدون سبب مقنع، لكن أعتقد السبب بنظري هو تويتر!.

أغلب الكلام، الأخبار أو الأفكار التقية الموجودة في بالي أطرحها في تويتر، لكن من اليوم، إن شاءالله، أعمل المستطاع لجعلها كتدوينات.

في أحد الخوادم، أردنا، الصديق رائد الراشد وانا، حصر الدخول على خدمة SSH لبعض الأيبيات IP Address المحددة مسبقاً في الخادم لزيادة الأمان بتعطيل محاولات كسر كلمات المرور الخاصة بأحد حسابتنا، وايضاً منع الدخول للخادم حتى وإن تمت سرقة كلمة المرور الخاصة بأحد منا.

تحديد أيبيات معينة سهل في حالة كونك شركة أو قطاع لديه إتصال إنترنت يستخدم عدد من الأيبيات العامةStatic Public IPs ثابتة وليست متغيرة، بعكس الأفراد مستخدمي إتصالات الإنترنت المنزلية مثل الدي إس إل DSL أو المتنقلة مثل البرودباند، حيث تتغير الأيبيات كل فترة Dynamic-Public IP، أو مع كل إتصال جديد!.

جأت في بالنا فكرة، وهي إنشاء عناوين نطاقات ديناميكية Dynamic DNS تُربط مع الأجهزة الخاصة بنا، حيث تُحدث هذة النطاقات بعناوين الأيبيات الخاصة بنا بشكل دوري، ومن ثم نقوم بربط هذة النطاقات الديناميكية مع الجدار الناري iptables لفلترة الدخول على خدمة الـ SSH فقط لهذة النطاقات.

الحمدلله، الفكرة كانت ناجحة وأكثر من فعالة، والآن تتم العملية بالشكل التالي:-

  1. يتم تركيب برنامج محدث النطاقات الديناميكية في جهاز الأدمن.
  2. يقوم البرنامج بأخذ الأي بي العام الخاص بي وربطه بالنطاق الديناميكي.
  3. يقوم الجدار الناري iptables بأخذ الأي بي من النطاق الديناميكي وإضافته إلى جدول الفلترة لدخول لخدمة SSH.
  4. في حالة وجود الأي بي مسبقاً في جدول الفلترة، لايتم إضافته أو تعديله، ويبقى كما هو.
  5. في حالة تغير الأي بي، يتم حذف الأي بي القديم وإضافة الجديد.
  6. تتم هذة العملية دورياً كل دقيقة واحدة.

قمت بكتابة Shell Script يقوم بهذة العملية، يمكنك تحميله من هنا، وتابع للأسفل لمعرفة كيف تركيب وإستخدام السكريبت:-

  • فك الضغط عن السكريبت تحت نفس المجلد

tar xzvf iptables_dyndnsv0.1.tgz -C /usr/local/share/

  • ستجد مجموعة من الملفات، كالتالي:
    • iptables_dyndns.sh ملف السكريبت
    • iptables_ips_dyn.txt ملف نصي فارغ، سوف يحتوي على اسماء النطاقات الديناميكية كل نطاق بسطر
    • iptables_ips_static.txt ملف نصي فارغ، سوف يحتوي على عناوين أيبيات ثابتة، في حالة أردت إضافة أيبيات معينة بدلاً من اسماء نطاقات
    • iptables_listofips.txt ملف نصي فارغ، لن نقوم بالتعامل معه، سوف يحتوي على الأيبيات الخاصة بالنطاقات الدايناميكية أو الأيبيات الثابتة
  • عدل على محتويات الملف النصي iptables_ips_dyn.txt، وقم بإضافة النطاقات الديناميكية الخاصة بكل، كل نطاق بسطر جديد.
  • في حالة رغبتك بإضافة أيبيات عامة ثابتة، قم بتعدل الملف iptables_ips_static.txt وأكتب الأي بي أو الشبكات التي تريد لها السماح بدخول لخادمك، كل أي بي أو شبكة بسطر جديد.
  • الآن أضف الشرط أو القاعدة Rule التالية في الجدار الناري، والهدف من هذة الشروط إخبار الجدار الناري أنه في حالة وصول طلب دخول على خدمة SSH، قم بالقفز إلى مجموعة من القواعد تمت تسميتها SSH.

iptables -N SSH
iptables -A INPUT -p tcp --dport ssh -j SSH

إنتهينا!.

الآن متبقي خطوتين:-

  • التأكد من عمل هذة القواعد بشكل دوري كل دقيقة، كالتالي من خلال Cron:

crontab -e
* * * * * sh /usr/local/share/iptables_dyndns/iptables_dyndns.sh > /dev/null 2>&1

  • حفظ هذة القواعد حتى يتم إسترجعها بعد إعادة تشغيل الخادم

Fedora / CentOS / RedHat
/etc/init.d/iptables save
chkconfig iptables on

Ubuntu / Debian
iptables-save > /etc/iptables.rules
echo 'post-up iptables-restore < /etc/iptables.rules' >> /etc/network/interfaces

جميع الخطوات بعاليه تطبق مرة واحدة فقط، وقت تركيب السكريبت، وكلما أردت أن تضيف نطاق ديناميكي جديد، فقط قم بتعدل الملف iptables_ips_dyn.txt أو الملف iptables_ips_static.txt  في حالة أردت أن تضيف أي بي ثابتة أو نطاق شبكة.

Posted in خوادم وشبكات, سكريبتات | 13 Comments

13 Responses to ربط الجدار الناري iptables مع DynamicDNS

  1. Mohamed Eltayeb says:

    thats awesome , well the idea corssed my mind , but i implemented pptpd VPN and keep my connection through one of static ips from the server itself and just allowed it , its a lil complicated idea but works like a sharp

  2. root3ksa says:

    يعطيك العافية أخوي جريس
    root3ksa

  3. root3ksa says:

    اخوي جريس جربت السكربت على سيرفر vps ما ضبط
    هل يشتغل على سيرفر كامل ؟

  4. جريس says:

    تقريباً نفس الفكرة، اللهم هنا تخلينا عن الـ VPN بإستخدامنا الـ DynDNS

  5. جريس says:

    إذا كان الـ VPS مبني بإستخدام OpenVZ لن يعمل.

  6. ابعاد الحياة says:

    السلام عليكم …

    كنا بانتظاااار عودتك للمدونه من وقت طوييييل …

    كنت ادخل المدونه بين فتره و فتره لكن تصيبني خيبة امل اذا ما لقيت تدوينااات جديده …

    صراحه انا اشوف المدونه افضل من التويتر ..

    و اتمنى اشوف المدونه مثل اول … فيها تدوينات مستمره …

    مشكور على التدوينه اللي كانت بعد طول غيااااااب …

  7. Pingback: ربط الجدار الناري iptables مع DynamicDNS | عالم التقنية

  8. Pingback: ربط الجدار الناري iptables مع DynamicDNS ~ التقنية | بلاك لينك

  9. Pingback: ربط الجدار الناري iptables مع DynamicDNS | إلكتروني

  10. Pingback: ربط الجدار الناري iptables مع DynamicDNS

  11. جريس says:

    وعليكم السلام والرحمة.
    في البداية، أشكرك أختي أبعاد الحياة على دعمك المتواصل، جزاك الله خير.
    إنقطاعي عن التدوين بسبب إهتمامي بأمور أهم، بالإضافة إلى أن خدمة تويتر ساعدتني على طول الإنقطاع هذا بذكر الأفكار والأخبار التقنية التي لدي بشكل سريع بدل التدوينة.
    لكن مع مرور الأيام إكتشتف أنه لايوجد خيار أفضل من التدوين للتوثيق، بينما الشبكات الإجتماعية مثل الفيس بوك وتويتر لاتساعد بالتوثيق.
    إن شاءالله راح أستمر بالتدوين، والآن موجود لدي كذا موضوع للتدوين، وسترى النور بوقتها إن شاءالله.
    شكراً لك مرة ثانية.

  12. شكرا على ما صنعت يمينك

  13. DooM55 says:

    مشكور موضوع ممتاز جداً ونرجو المزيد مع خالص حبي