السماح بالوصول إلى خادم الويب فقط من خلال CloudFlare (iptables)


Cloudflare هو شيء رائع لحماية المواقع من المحتالين الكمبيوتر - المتسللين. ومع ذلك ، إذا كانوا لا يزالون قد تعلموا بطريقة ما عنوان IP الأصلي لخادم الويب الذي يوجد عليه الموقع ، فسيحاولون على الأقل مهاجمته بواسطة IP ، متجاوزين الوكيل. يمكنك حظر عمليات إعادة التوجيه ، وإرسال 444 من عمليات إعادة تعيين NGINX عند محاولة الوصول إلى نطاقات غير موجودة ، ولكن أكثر ما هو خارج الموقف هو: فتح حركة مرور http / https إلى الخادم فقط لعناوين IP الخاصة بوكيل الأمان الخاص بنا.

بالمناسبة ، يمكن لهذه الطريقة أيضًا أن تجعل جميع أنواع المواقع غير مفيدة جزئيًا مثل crimeflare.org . حسنًا ، اكتشف "المخبر" أن النطاق كان يمكن الوصول إليه من قبل بواسطة عنوان IP هذا - للتحقق مما إذا كان لا يزال موجودًا ، فإن محاولة تسجيل الدخول إلى IP: 443 أو IP: 80 ستكون غير مجدية.
وإذا قمت بإغلاق جميع المنافذ على الخادم ، قم بتعطيل ICMP واسمح بالوصول فقط من خلال IPMI / VNC ، فلن يعرف أحد أن هناك أي شيء على الإطلاق على IP الخاص بنا.

دعونا نفعل ذلك في iptables.

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

لحسن الحظ ، يتم أتمتة المشكلة. لذا:

1. نحن نحظر كل حركة مرور HTTP / HTTPS في iptables:

iptables -I INPUT 1 -p tcp -m multiport --dports http,https -j DROP 

2. ضع في مكان ما ، على سبيل المثال ، عبر /root/cloudflare-update.sh البرنامج النصي cloudflare-update.sh مع المحتويات التالية:

 #!/bin/bash while read ip ; do iptables -D INPUT -p tcp -m multiport --dports http,https -s "$ip" -j ACCEPT ; done <<< "$(curl https://www.cloudflare.com/ips-v4)" while read ip ; do iptables -I INPUT -p tcp -m multiport --dports http,https -s "$ip" -j ACCEPT ; done <<< "$(curl https://www.cloudflare.com/ips-v4)" iptables-save > /etc/iptables/rules.v4 

أي أننا نحذف جميع الإدخالات الموجودة التي تمت إضافتها سابقًا ، ونعيد إضافة كل ما هو موجود في قائمة عناوين CloudFlare. بهذه الطريقة نتجنب القواعد المكررة. في النهاية - حفظ.

3. نجعل البرنامج النصي قابل للتنفيذ:

 chmod +x /root/cloudflare-update.sh 

4. في التيجان (على سبيل المثال ، في نهاية ملف / etc / crontab) نضيف المهمة لتحديث العناوين كل 12 ساعة:

 0 */12 * * * root /root/cloudflare-update.sh &> /dev/null 

هذا كل شيء! الآن يمكنك الوصول إلى المنفذين 80 و 443 على الخادم الخاص بك فقط من خلال وكيل ، لأن في أي وقت ، يُسمح فقط بالعناوين التي تنتمي إلى الوكيل على الخادم.

Source: https://habr.com/ru/post/ar414837/


All Articles