অ্যাপাচি httpd: আমি কীভাবে সব থেকে অস্বীকার করব, সাবনেট থেকে অনুমতি দেব, কিন্তু সেই সাবনেটের মধ্যে আইপি থেকে অস্বীকার করব?


26

আমি স্টক অ্যাপাচি httpd-2.2.3 দিয়ে CentOS 5.5 চালাচ্ছি।

আমি অবস্থান / সার্ভার-স্থিতিতে mod_status সক্ষম করেছি । আমি নিম্নলিখিত পদ্ধতিতে এই একক অবস্থানটিতে অ্যাক্সেসের অনুমতি দিতে চাই:

  1. সর্ব প্রত্যাখান
  2. 192.168.16.0/24 সাবনেট থেকে অনুমতি দিন
  3. আইপি 192.168.16.100 থেকে অস্বীকার করুন, যা 192.168.16.0/24 সাবনেটের মধ্যে রয়েছে।

1 এবং 2 সহজ। তবে, যেহেতু আমি "192.168.16.0/24 থেকে অনুমতি দিই", তাই 192.168.16.100 থেকে অস্বীকার করা সম্ভব?

আমি 192.168.16.100 এর জন্য একটি অস্বীকৃতি বিবৃতি যুক্ত করার চেষ্টা করেছি তবে এটি কার্যকর হয় না। এখানে সম্পর্কিত কনফিগারেশন:

<Location /server-status>
    SetHandler server-status
    Order Allow,Deny
    Deny from  all
    Deny from  192.168.16.100 # This does not deny access from 192.168.16.100
    Allow from 192.168.16.0/24
</Location>

বা:

<Location /server-status>
    SetHandler server-status
    Order Allow,Deny
    Deny from  all
    Deny from  192.168.16.100 # This does not deny access from 192.168.16.100
    Allow from 192.168.16.0/24
</Location>

যাইহোক, এটি অ্যাক্সেস লগগুলিতে প্রদর্শিত হিসাবে এই নির্দিষ্ট পৃষ্ঠায় অ্যাক্সেস প্রতিরোধ করে না:

www.example.org 192.168.16.100 - - [11/Mar/2011:16:01:14 -0800] "GET /server-status HTTP/1.1" 200 9966 "-" "

মোড_আউথজ_হোস্টের ম্যানুয়াল অনুসারে :

অস্বীকার অনুমতি

প্রথমে সমস্ত অনুমতি নির্দেশাবলী মূল্যায়ন করা হয়; কমপক্ষে একটি অবশ্যই মেলতে হবে, বা অনুরোধটি প্রত্যাখ্যান করা হবে। এরপরে, সমস্ত অস্বীকারের নির্দেশাবলী মূল্যায়ন করা হয়। কোনও মিল থাকলে অনুরোধটি বাতিল হয়ে যায়

আইপি ঠিকানাটি অস্বীকারের নির্দেশনার সাথে মেলে, তাই অনুরোধটি প্রত্যাখ্যান করা উচিত নয়?

মোড_আউথজ_হোস্ট পৃষ্ঠায় থাকা সারণী অনুসারে, এই আইপি ঠিকানাটির "মিল ও মঞ্জুরি উভয়কেই মিল" করা উচিত এবং সুতরাং "ফাইনাল ম্যাচ নিয়ন্ত্রণ: অস্বীকৃত" বিধি প্রয়োগ করা উচিত apply

    মিল মেলান, ফলাফল অস্বীকার করুন, ফলাফলকে মঞ্জুর করুন
    ম্যাচটিকে মঞ্জুর করুন কেবলমাত্র অনুরোধের অনুরোধ অনুরোধের অনুরোধ জানানো হয়েছে
    মিল অস্বীকার করুন কেবলমাত্র অনুরোধ অস্বীকার করা অনুরোধ অস্বীকার করেছে
    দ্বিতীয় নির্দেশকের ডিফল্টের সাথে কোনও মিল নেই: ডিফল্টকে দ্বিতীয় নির্দেশিকায় অস্বীকৃত: অনুমোদিত
    উভয়টিকে মঞ্জুর করুন এবং চূড়ান্ত ম্যাচ নিয়ন্ত্রণগুলি অস্বীকার করুন: চূড়ান্ত ম্যাচ নিয়ন্ত্রণ অস্বীকৃত: অনুমোদিত

সমস্ত 192.168.16.100 থেকে অস্বীকার করুন - যেহেতু আপনি এখানে "সমস্ত" ব্যবহার করছেন তাই আমি আশা করব যে কোনও আইপি ঠিকানা থেকে সমস্ত অনুরোধ প্রত্যাখ্যান করা হবে। ভাবুন এখানে আরও কিছু চলছে।
মিকাঃ

@ মিছঃ আমিও করছি Allow from 192.168.16.0/24। আমি যেমন ডকুমেন্টেশনটি বুঝতে পারি, 192.168.16.0/24 নেটওয়ার্কের কোনও অনুরোধকারী আইপি এই মঞ্জুরি বিবৃতিটির সাথে মিলবে, অনুরোধ অনুমোদিত is
স্টিফান লাসিউইস্কি

ডকুমেন্টেশন অনুসরণ উপরে আটকানো। "প্রথমে, সমস্ত অনুমতি নির্দেশাবলী মূল্যায়ন করা হয়; কমপক্ষে একটি অবশ্যই মেলতে হবে, বা অনুরোধটি প্রত্যাখ্যান করা হয়েছে" ==> এটি আপনার "192.168.16.0/24 থেকে অনুমতি দিন" এর সাথে মিলবে, তবে "পরবর্তী, সমস্ত নির্দেশ নির্দেশ অস্বীকার করুন যদি কোনও ম্যাচ হয়, তবে অনুরোধটি "সকলের সাথে অস্বীকার করুন" দিয়ে প্রত্যাখ্যান করা হলে, প্রতিটি অনুরোধ সেই দ্বিতীয় অংশের সাথে মেলে না এবং তাই অস্বীকার করা হবে না?
মিকাহ

আপনি যদি সেই আইপি ঠিকানাটি আপনার সিস্টেমে সম্পূর্ণরূপে অ্যাক্সেস করতে চান বা কেবল httpd থেকে অস্বীকার করতে চান তবে আপনার সত্যই বিবেচনা করা উচিত। যদি প্রাক্তন অ্যাপাচি নির্দেশিকা ব্যবহারে আপনার পদ্ধতির সাথে চালিয়ে যান। পরে যদি এটি ফায়ারওয়ালে করা উচিত।
অ্যান্ড্রু কেস

ধন্যবাদ ACase। আমি কেবলমাত্র এই নির্দিষ্ট পৃষ্ঠায় 192.168.16.100 থেকে অ্যাক্সেস অস্বীকার করতে চাই। আমি চাই 192.168.16.100 এই ওয়েব সার্ভারে অন্য সমস্ত পৃষ্ঠা অ্যাক্সেস করতে সক্ষম হোন।
স্টিফান লাসিউইস্কি

উত্তর:


35

আমি পরীক্ষা করিনি, তবে আমি মনে করি আপনি প্রায় আছেন।

<Location /server-status>
    SetHandler server-status
    Order Allow,Deny
    Deny from  192.168.16.100
    Allow from 192.168.16.0/24
</Location>

Deny from allপ্রয়োজন হয় না। আসলে এটি স্ক্রু হবে কারণ সবকিছু মিলবে allএবং এইভাবে অস্বীকার করা হয়েছে (এবং আমি মনে করি অ্যাপাচি স্মার্ট হতে চেষ্টা করে এবং বোকামি করার চেষ্টা করছে)। আমি সবসময় পাওয়া যায় এ্যাপাচি এর Order, Allowএবং Denyনির্দেশনা, বিভ্রান্তিকর তাই সবসময় একটা টেবিল (থেকে নেওয়া কিছু ঠাহর ডক্স ):

ম্যাচ | অনুমতি দিন, ফলাফল অস্বীকার করুন | অস্বীকার করুন, ফলাফলের অনুমতি দিন
-------------------------------------------------- -----
শুধুমাত্র অনুমতি দিন | অনুমোদিত | মঞ্জুরিপ্রাপ্ত
কেবল অস্বীকার করুন | অস্বীকার | অস্বীকৃত
কোন মিল নেই | ডিফল্ট: অস্বীকৃত | ডিফল্ট: অনুমোদিত
উভয় মিল | ফাইনাল ম্যাচ: অস্বীকৃত | ফাইনাল ম্যাচ: অনুমোদিত

উপরের সেটিংস সহ:

  • 192.168.16.100 থেকে অনুরোধগুলি "উভয় ম্যাচ" পান এবং এইভাবে প্রত্যাখ্যান করা হয়।
  • 192.168.16.12 থেকে অনুরোধগুলি "কেবলমাত্র অনুমতি দিন" পান এবং এইভাবে অনুমোদিত।
  • 123.123.123.123 থেকে অনুরোধগুলি "কোনও মিল নেই" পেয়েছে এবং এভাবে অস্বীকৃত।

1

আমি পোর্ট ৮০-এ একক হোস্টকে অস্বীকার করতে, সকলের থেকে অস্বীকৃতি জানাতে এবং সাবনেটের অনুমতি দেওয়ার জন্য আইপিটবেবল বিধিগুলি যুক্ত করার বিষয়টি সম্ভবত দেখব।

আপনি সাবনেটকে অনুমতি দেওয়ার পরে কোনও নির্দিষ্ট ঠিকানা থেকে অস্বীকার করার নিয়ম স্থাপনে আপনার কোনও সমস্যা হবে না। ঠিক এই ক্রমে এটি করুন।


আমি আমার উত্তর আপডেট করেছি। আমি একটি "192.168.16.100 থেকে অস্বীকার করুন"
বিধিটিকে

আমি এই হোস্ট থেকে অন্য সমস্ত স্থানে অ্যাক্সেসের অনুমতি দিতে চাই। তবে, আমি নির্দিষ্ট অবস্থানগুলি অস্বীকার করতে চাই want আইপিটাবলস এখানে আমাকে সাহায্য করে না।
স্টিফান লাসিউইস্কি

আপনি যদি না বলে থাকেন তবে আইপিটিবেলগুলি নির্দিষ্টভাবে আউটবাউন্ড ট্র্যাফিক অস্বীকার করবে না। তবে আপনি বিশ্ব থেকে অন্তর্মুখী ট্র্যাফিক এবং একটি নির্দিষ্ট ঠিকানা অস্বীকার করতে পারেন তবে সমস্তই একটি সাবনেটের অনুমতি দেয়।
মাইক

আমি মনে করি আপনি আমার অনুরোধ ভুল বুঝে। আমি এই অ্যাক্সেস নিয়ন্ত্রণটি কেবলমাত্র / হোস্ট সার্ভারের স্থিতিতে প্রয়োগ করতে চাই, পুরো হোস্টকে নয়। আইপিটিবলগুলি আমার জ্ঞানের সাথে এটি সহজেই করতে পারে না।
স্টেফান লাসিউইস্কি

-4

আপনি পিএইচপি ব্যবহার করতে পারেন? যদি তাই হয় তবে একটি নির্দিষ্ট আইপি ঠিকানার জন্য প্রস্থান / পুনর্নির্দেশের জন্য পিএইচপি বিবৃতি যুক্ত করুন

উদাহরণ:

$ অস্বীকার = অ্যারে ("111.111.111", "222.222.222", "333.333.333");

যদি (ইন_আরে ($ _SERVER ['REMOTE_ADDR'], $ অস্বীকার))

; শিরোনাম ("অবস্থান: http://www.google.com/ ");

থেকে প্রস্থান ();

তথ্যসূত্র: http://perishablepress.com/press/2007/07/03/how-to- block-ip-addresses-with-php/


2
এটি ওয়েব সার্ভার দ্বারা হোস্ট করা প্রতিটি একক পৃষ্ঠায় থাকতে হবে। এই সমাধানটি অযৌক্তিক এবং এটি নয় যেখানে আপনি কোনও ওয়েব সার্ভারে অ্যাক্সেস ফিল্টার করতে চান।
অ্যান্ড্রু কেস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.