سؤال

حتى وقت قريب ، كان لدي مجموعة من المواقع الافتراضية التي تم إعدادها مثل:

<VirtualHost 127.0.0.1:1234>
    ...

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

<VirtualHost *:1234>
    ...

الذي يعمل أيضًا بشكل جيد ، ودعا الموقع من http: // [mylinuxserverName]: 1234 على جهاز الكمبيوتر المحمول الخاص بي. ومع ذلك ، أريد تقييد تلك البطاقة البرية على الشبكة المحلية. قم بتوصيل أي IP ، مثل 192.nnn.nnn.nnn أو 192.*.*.*حيث ينتج عن البطاقة البرية في 403 ممنوعًا على جهاز Windows. لا يزال الخادم المحلي يعمل بشكل جيد في مربع Linux الخاص بي:

<VirtualHost 127.0.0.1:1234 192.*.*.*:1234>
    ...

أو

<VirtualHost 127.0.0.1:1234 192.nnn.nnn.nnn:1234> #exact IP of laptop
    ...

على أي حال ، أنا لا أحب هذا البدل في مثال التكوين الثاني أعلاه. تلميحات أي شخص؟

هل كانت مفيدة؟

المحلول

المعلمة (ق) VirtualHost هي العناوين المحلية التي تستمع إليها ، وليس العناوين عن بُعد.

في Apache 2.4 وأحدث ، استخدم Require التوجيه:

Require ip 127.0.0.0/8
Require ip 192.0.0.0/8

إذا كنت تستخدم Apache 2.2 أو قبل ذلك ، استخدم Authz_host ترتيب:

Order Allow,Deny
Allow from 127.0.0.0/8
Allow from 192.168.0.0/16

قد يعمل هذا أيضًا على Apache 2.4 ، ولكن Order و Allow تم إهمالها.

نصائح أخرى

مجرد ملاحظة في حال جاء بعض noobs مثلي إلى هنا :)

يتم تكوين خادم Apache HTTP عن طريق وضع التوجيهات في ملفات تكوين النص العادي. عادة ما يسمى ملف التكوين الرئيسي httpd.conf. ملفات التكوين الرئيسية

للإصدار 2.4

يتم إهمال توجيهات السماح ، الرفض ، والأمر ، التي توفرها Mod_Access_compat ، وستذهب في إصدار مستقبلي. يجب عليك تجنب استخدامها ، وتجنب البرامج التعليمية التي عفا عليها الزمن التوصية باستخدامها. صلاحية التحكم صلاحية الدخول

Require ip 127.0.0.0/8
Require ip 192.0.0.0/8

أو (ليس بالضبط نفس الشيء)

Require ip 127.0
Require ip 192.168

استخدم IPTABLES لتقييد الوصول إلى الجهاز نفسه. سيتيح الأمر الأول حركة مرور HTTP من أي شبكة في نطاق 192 (لاحظ أنني أعتقد أنك بحاجة إلى 192.168 لتكون محليًا حقًا ولكن قد أخطأ). الأمر الثاني يسقط ببساطة الحزم من مصادر أخرى للمنفذ 80

iptables -I 1 INPUT -s 192.0.0.0/8 -p tcp --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT


iptables -I 2 INPUT -p tcp --dport 80 -m state --state NEW -j DROP 

ثم في مضيفك الافتراضي يمكنك القيام به <VirtualHost *:80>

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top