هل من الممكن جعل جزء من موقع على IIS قابلاً للعرض فقط من المضيف المحلي؟

StackOverflow https://stackoverflow.com/questions/270284

  •  06-07-2019
  •  | 
  •  

سؤال

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

لذا، لتكرار سؤالي، هل يمكن جعل جزء من موقع الويب قابلاً للعرض من المضيف المحلي فقط؟

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

المحلول

في IIS6 يمكنك إظهار خصائص الويب والنقر فوق علامة تبويب أمان الدليل.انقر فوق الزر الموجود في منتصف علامة التبويب لتحرير قيود IP والمجال.في علامة التبويب هذه، قم بتعيين جميع أجهزة الكمبيوتر على أنها مرفوضة، ثم قم بإضافة استثناء لعناوين IP التي تريد السماح لها بالوصول إلى هذا الموقع.

لست متأكدًا من كيفية تكوين هذا على IIS7.لقد بحثت ولكن لم أجده، إذا وجدته سأقوم بتعديل هذه الإجابة.

يحرر: تكوين IIS7

  • جوش

نصائح أخرى

لشخص ما يفعل ذلك في IIS 8 / Windows 2012

1 في Server Manager, ، اذهب إلى Manage, Add Roles and Features, ، التالي، التالي (الوصول إلى Server Roles)، قم بالتمرير لأسفل إلى Web Server (IIS), ، قم بتوسيع هذا الصف، ثم قم بتوسيعه Web Server, ، وأخيرا التوسع Security.تأكد من أن قيود IP والمجال تم تثبيتها.

2 بوصة IIS Manager, ، انتقل لأسفل إلى المجلد الذي تريد حمايته وانقر بزر الماوس الأيسر على تحديده.في ال Features View من هذا المجلد حدد قيود IP والمجال في Actions يختار Edit Feature Settings.يتغير 'Access for unspecified clients:' ل 'Deny' اذا حسنا.

3) أخيرًا اذهب إلى 'Add Allow Entry' في ال Actionالقائمة.اكتب عنوان IP المحدد لخادمك.

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

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

وإذا حاول أحد يرغب في القيام بذلك على سطر الأوامر، وهذا يبدو للعمل على IIS 7 +

%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site" -section:system.webServer/security/ipSecurity /+"[ipAddress='0',allowed='False']" /commit:apphost
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site" -section:system.webServer/security/ipSecurity /+"[ipAddress='127.0.0.1',allowed='True']" /commit:apphost

المرجعي

وكنت أريد في البداية أن تفعل هذا في الملف web.config لتخفيف التوزيع، وبدا الأمر كما يلي قد عمل:

<security>
    <ipSecurity allowUnlisted="false">    <!-- this line blocks everybody, except those listed below -->                
        <clear/> <!-- removes all upstream restrictions -->
        <add ipAddress="127.0.0.1" allowed="true"/>    <!-- allow requests from the local machine -->
    </ipSecurity>
</security>

ولكن ما تحتاج إليه لفتح وظيفة في التكوين IIS المركزي على أي حال لم يكن هناك أي ميزة على إجراء التغيير مباشرة باستخدام الأوامر الأولى.

ويمكنك أيضا استخدام الارتباطات بدلا من قيود IP. إذا قمت بتحرير الارتباطات لموقع الويب التي ترغب في تقييد الوصول إلى ذلك، يمكنك تحديد أي IP عنوان الموقع متاح في. إذا قمت بتعيين عنوان IP إلى 127.0.0.1، ثم الموقع يستجيب فقط على هذا العنوان IP، وهذا عنوان IP بالطبع تعمل فقط محليا على الجهاز.

ولقد اختبرت ذلك باستخدام IIS 8.5.

واعتمادا على بالضبط ما تريد أن يحدث إذا حاول أحد المستخدمين غير المصرح به إلى زيارته.

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

وانطلاقا من الخيارات الموجودة في MMC IIS، هل يمكن أن يكون أيضا دليل ظاهري يمكن الوصول إليها من قبل بعض نطاقات-IP فقط. هل يمكن منع الجميع ولكن 127.0.0.1. لم أحاول ذلك، ولكن.

ويمكنك منح أو رفض الوصول إلى موقع أو مجلد من عناوين IP معينة إلى موقع أو مجلد. في IIS، انتقل إلى خصائص الموقع أو المجلد المطلوب.

و(1) اضغط على "Diectory أمان"

و(2) انقر فوق تحرير تحت "عنوان IP واسم المجال تقييد" الإطار.

و(3) اضغط على "رفض الوصول" (وهذا يقول IIS لمنع كل IP باستثناء تلك التي تدرج)

و(4) انقر على "أضف ..."

و(5) اضغط على "كمبيوتر واحد"

و(6) أدخل 127.0.0.1 (وIP من المضيف المحلي)

ملحوظة أنه من الأفضل استخدام IP هنا (كما وصفته) بدلا من اسم المجال بسبب المجالات يمكن تزويرها بسهولة باستخدام ملف المضيفين.

أوافق على التوصيات باستخدام IIS "Directory Security" لحظر جميع عناوين IP باستثناء 127.0.0.1 (المضيف المحلي).

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

هل يمكن ببساطة إضافة هذا .NET لأعلى الصفحة.

string MyWebServerName = currentContext.Request.ServerVariables["SERVER_NAME"];

if ( MyWebServerName == "127.0.0.1" || MyWebServerName == "localhost" )
{
  // the user is local 
}
else
{
  // the user is NOT local
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top