অ্যাপাচি 2.4 নির্দিষ্ট আইপি-তে URL সীমাবদ্ধ করে


14

আমি একটি নির্দিষ্ট ইউআরএল কেবলমাত্র নির্দিষ্ট আইপি অ্যাড্রেসের বাইরে নেটওয়ার্কের বাইরে পাওয়া সীমাবদ্ধ করার চেষ্টা করছি। যখন বাইরের কোনও ব্যবহারকারী সেই ইউআরএলটি অ্যাক্সেস করার চেষ্টা করে এবং আইপিগুলির তালিকা থেকে নয় তবে তাকে হোমপেজে পুনঃনির্দেশিত করা উচিত।

এটাই আমি চেষ্টা করেছি কোন ভাগ্য ছাড়াই। শেষ অংশটি আইপি নির্বিশেষে সবাইকে হোমপেজে পুনঃনির্দেশ করে।

<Location "/secret">
#    <If "%{REMOTE_ADDR} != -ipmatch '123.123.123.123/255.255.255.255'">
#    Redirect 303 "/secret" /
#    </If>

RewriteCond "%{REMOTE_ADDR}" "!123\.123\.123\.123"
RewriteRule .* / [R,L]

LogLevel debug rewrite:trace6
</Location>

PS: / গোপন ইউআরএল আসলে ভার্চুয়াল ইউআরএল এবং ড্রাইভে শারীরিকভাবে বিদ্যমান নেই।


যদি বিবৃতি মন্তব্য করা হয়? পুনর্লিখন সক্ষম করুন - RewriteEngine On?
ব্যবহারকারী 9517

<If> বিবৃতিটি এমন একটি সংস্করণ যা আমি চেষ্টা করেছি। রাইরাইটইঞ্জাইন অন নির্দেশটি আগেই ঘোষণা করা হয়েছিল। এ কারণেই এটি প্রত্যেককে পুনঃনির্দেশিত করে
ডেনিস রেন্ডার

1
আমি মনে করি আপনার নির্বাচিত উত্তরটি
আনচিহ্নিত করা

উত্তর:


4

ব্যবহার করুন Order, Denyএবং allowআপনার vhost দেখুন বা অবস্থান অ্যাক্সেস আছে উল্লেখ করার।

<VirtualHost *:80>
    ServerName example.net
    DocumentRoot /docroot

    <Directory "/docroot">
        Order Deny,Allow
        Deny from all
        Allow from 10.10.10.10
        Allow from 10.10.11.0/24
    </Directory>   
</VirtualHost>

যখন এটি পুনঃনির্দেশের দিকে আসে তখন একটি কাস্টম ত্রুটি পৃষ্ঠা সম্পর্কে ভাবেন । এটি আরও সাধারণ, কারণ প্রতিটি অননুমোদিত অ্যাক্সেসের 403 ত্রুটি উস্কে দেওয়া উচিত এবং তাই সহজেই মূল্যায়ন করা যায়।

আমি এপাচি দিয়ে কখনও এটি করি নি, তবে এনজিএনএক্সের সাথে এই কৌশলটি ব্যবহার করি। অ্যাপাচি এর জন্য কিছু করা উচিত:

ErrorDocument 403 http://homepage.example.com

কাস্টম ত্রুটি দলিলগুলি ত্রুটিপত্রক নির্দেশিকা ব্যবহার করে কনফিগার করা হয়েছে, যা বৈশ্বিক, ভার্চুয়ালহোস্ট বা ডিরেক্টরি প্রসঙ্গে ব্যবহৃত হতে পারে। AllowOverride ফাইলআইএনফোতে সেট করা থাকলে এটি .htaccess ফাইলগুলিতে ব্যবহৃত হতে পারে। (অ্যাপাচি ডক্স থেকে)


2
এটি অ্যাপাচি httpd 2.2 কনফিগারেশনের সেটগুলির মতো দেখাচ্ছে। এটি এখনও 2.4 দিয়ে কাজ করবে?
ব্যবহারকারী 9517

কমপক্ষে ErrorDocumentঅংশটি ২.৪ ডক্সের। আমি Apache ব্যবহার করবেন না যেহেতু nginx প্রায়, কিন্তু অধিকৃত যে Order, Denyএবং AllowApache 2.4 চারপাশে এখনও
ansi_lumen

ধন্যবাদ, তবে আমি সাহায্য করি না। আমি উল্লেখ করতে ভুলে গিয়েছিলাম, তবে আমি প্রশ্নটি আপডেট করেছি, / গোপনীয় URL আসলে একটি ভার্চুয়াল URL এবং ড্রাইভে শারীরিকভাবে বিদ্যমান নেই। এটি নিজেই ইউআরএল হ'ল সূচিপত্রের পুনর্লিখন that's এজন্য আমি <লোকেশন> নির্দেশনাটি ব্যবহার করেছি।
ডেনিস রেন্ডেলার

4
এই বাক্য
গঠনটি অ্যাপাচি

1
কেন এটি গৃহীত উত্তর? এটি অ্যাপাচি ২.২ নয় ২.৪-এর প্রশ্নের হিসাবে প্রশ্নটি ইঙ্গিত করে ... এটি কাজ করবে না।
জেরেমি

23

অর্ডার, অস্বীকার, এবং অনুমতি বিকল্পগুলি অ্যাপাচি ২.৪ এর সাথে প্রতিস্থাপন করা হয়েছে

<Directory /var/www/mysite.com/htdocs/public>
    Require all granted
</Directory>

আপনি নিম্নলিখিত ব্যবহারের মাধ্যমে স্পষ্টভাবে ঠিকানাগুলি সীমাবদ্ধ করতে পারেন:

<Directory /var/www/mysite.com/htdocs/public>
    Require all granted
    Require not ip 192.168.0.1
</Directory>

ঠিক বিপরীতটিও সত্য, সমস্ত সীমাবদ্ধ করতে এবং কেবলমাত্র একটি উপ-সেটকে নিম্নলিখিতটি ব্যবহারের অনুমতি দেওয়ার জন্য:

<Directory /var/www/mysite.com/htdocs/public>
    Require host example.com
    Require ip 192.168.0.1
</Directory>

আরও তথ্য অ্যাপাচি ২.৪ অ্যাক্সেস নিয়ন্ত্রণ ডকুমেন্টেশনে উপলব্ধ।

আপনার প্রশ্নের সাথে সম্পর্কিত (কোনও মন্তব্য যুক্ত করার জন্য পয়েন্টের অভাবে আমার নিজের সম্পাদনা করা) আপনাকে ইউআরএল-পাথ হিসাবে সূচক সেট সহ একটি ত্রুটিপত্রক সেট করতে সক্ষম হতে হবে:

<Directory /var/www/mysite.com/htdocs/public>
    Require host example.com
    Require ip 192.168.0.1
    ErrorDocument 401 /index.html
</Directory>

আশাকরি এটা সাহায্য করবে!


ধন্যবাদ, @ লিনজটম! তবে এটি আমার সমস্যাটিকে কেবল আংশিকভাবে সমাধান করে। আমি কেবল ব্যবহারকারীকে ব্লক করতে চাই না তবে তাকে হোমপেজে পুনর্নির্দেশ করতে চাই।
ডেনিস রেন্ডেলার

মনে হয় কেবলমাত্র আমি যদি ডোমেন এবং প্রোটোকল সহ পুরো URL টি সরবরাহ করি তবে এটি ত্রুটিযুক্ত ডকুমেন্টের নির্দেশের সাথে কাজ করছে। আমি আরও গবেষণা করব। ধন্যবাদ।
ডেনিস রেন্ডেলার

আমি কমপক্ষে একটি ক্ষেত্রে খুঁজে পেয়েছি যখন আপনাকে allowঅবহেলিত হিসাবে ব্যবহার করার প্রয়োজন আছে , Require 127.0.0.1 এখনও স্থানীয় মেশিন থেকে বাহ্যিক ঠিকানা দিয়ে অ্যাক্সেসের অনুমতি দিন, যেখানে বাক্য বিন্যাসটি কেবল 127 ঠিকানা থেকে অনুমতি দেয়।
আলেক্সি মার্টিয়ানভ

2

অ্যাপাচি ২.৪ এর জন্য, আপনি <প্রয়োজনীয়তা> ব্যবহার করতে পারেন। আপনি এটি কোনও ভোস্ট বা একটি .htaccess ফাইলে করতে পারেন ....

SetEnvIF IP xxx.xxx.xxx.xxx AllowThisIP  # Or X-Real-IP
SetEnvIF IP yyy.yyy.yyy.yyy AllowThisIP
<RequireAny>
  Require env AllowThisIP
  Require host example.com
</RequireAny>

অ্যাপাচি ডক্স https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#requireany

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.