অ্যাপাচি 2: "আইপি রেঞ্জ" সেটইনভিআইএফ


10

আমার অ্যাপাচি কনফিগারেশনে আমি পরিবেশের পরিবর্তনশীল সেট করতে চাই যদি আমি দেখি যে কোনও নির্দিষ্ট আইপি পরিসীমা থেকে দর্শক আগত comes বর্তমানে আমি এটি এইভাবে করি:

SetEnvIfNoCase Remote_Addr "^194\.8\.7[45]\." banned=spammer-ip
SetEnvIfNoCase Remote_Addr "^212\.156\.170\." banned=spammer-ip

আমি যা পছন্দ করব তা হ'ল এরকম কিছু:

SetEnvIfIpRange 194.8.74.0/23 banned=spammer-ip
SetEnvIfIpRange 212.156.170.0/24 banned=spammer-ip

... কারণ আমি মনে করি যে কোনও আইপি ঠিকানাকে স্ট্রিংয়ে রূপান্তর করা এবং তারপরে নিয়মিত এক্সপ্রেশন করা মোট রিসোর্সগুলির অপচয়।

আমি একটি করতে পারে

Deny From 194.8.74.0/23

... তবে তারপরে আমি কোনও পরিবর্তনশীল পাই না যা আমি আমার 403 ত্রুটি পৃষ্ঠায় যাচাই করতে পারি - অ্যাক্সেস অস্বীকার করার কারণ অনুসন্ধান করার জন্য।

কোন পরামর্শ আমি কি মিস করতে পারে? এমন কোনও অ্যাপাচি 2 এমওডি আছে যা "আইপি অ্যাড্রেস রেঞ্জ" এর উপর ভিত্তি করে পরিবেশের ভেরিয়েবল সেট করতে পারে?

উত্তর:


4

আপনি যা পেয়েছেন (সেটএএনভিআইফনোকেস রিমোট_এড্ডার "^ অ্যাবসি" এনভ_কি = এনভি_ভ্যালু) আপনি সহজেই করতে পারেন সেরা। আমি এই কনফিগারেশন শৈলীটি ভারী বোঝা ক্লাস্টারের মেশিনে প্রয়োগ করা দেখেছি, কোনও উল্লেখযোগ্য কর্মক্ষমতা হ্রাস ছাড়াই। আমি নিয়মিত অভিব্যক্তিগুলি ব্যবহার করে সম্মত হন, যখন সিআইডিআর রেঞ্জগুলি বেশি উপযুক্ত হয় বিরক্তিকর। আপনি সিআইডিআর রেঞ্জের একটি তালিকা থেকে স্বয়ংক্রিয়ভাবে কনফিগার তৈরি করতে একটি ছোট প্রোগ্রাম লিখতে পারেন।

আপনি যদি পার্লের সাথে পরিচিত হন তবে আপনি একটি মড্পারেল হ্যান্ডলার তৈরি করতে পারেন, যা আপনি যে কোনও উপায়েই অনুরোধগুলিকে মঞ্জুরি / অস্বীকার করতে পারবেন। modperl আপনার কোডটিকে এইচটিটিপি অনুরোধ জুড়ে বিভিন্ন পয়েন্টে চালানোর অনুমতি দেয় - Mod_perl 2.0 HTTP রিকোয়েস্ট সাইকেল পর্যায়ক্রমে । পার্লআউথহ্যান্ডলার হ'ল হ্যান্ডলারটি উপযুক্ত।

Lockie


8

সচেতন হন যে সেটইনভের মাধ্যমে সেট করা ভেরিয়েবলগুলি কিছু ক্রিয়াকলাপে দৃশ্যমান নয় (ম্যাট্রিক্স দেখুন):

http://www.onlinesmartketer.com/2010/05/27/apache-environment-variables-visibility-with-setenv-setenvif-and-rewriterule-directives/

আপনার সমাধান হয়

SetEnvIfExpr "-R '10.0.0.0/8' || -R '172.16.0.0/12' || -R '192.168.0.0/16'" rfc1918

দেখতে https://httpd.apache.org/docs/trunk/mod/mod_setenvif.html#SetEnvIfExpr


এটি গ্রহণযোগ্য উত্তর হওয়া উচিত! এটা ভাল. এটি .htaccess
জেরোইন ভার্মিউলেন - ম্যাগহোস্ট

8

আপনি অ্যাপাচি ২.৪ এর সাহায্যে সিআইডিআর ফর্ম্যাটিং ব্যবহার করতে পারেন যা অনুমতি দেয় <If>:

<If "%{REMOTE_ADDR} -ipmatch 194.8.74.0/23">
    SetEnv banned = spammer-ip
</If>

আপনার উত্তর ধন্যবাদ! মনে রাখবেন যে আমার অ্যাপাচি সংস্করণে একটি ত্রুটি ছিল, যাতে আমি একক উদ্ধৃতিতে আইপি পরিসীমাটি বন্ধ করে দিতে পারি: মেইল -আরচিভস.এপাচি.আর.অ্যাচ.এক্স.এইচএক্সপি
লুকাস সিমন

0

এটি রেজিএক্সপ থেকে আইপি রেঞ্জগুলিতে যাওয়ার কোনও সমাধান নয় তবে আমি একটি আইপি রেঞ্জকে একটি ম্যাচিং রেজেপেক্সে রূপান্তর করতে গুগলের দ্বারা হোস্ট করা একটি দুর্দান্ত স্ক্রিপ্ট পেয়েছি। আপনার কারও কারও পক্ষে কাজে লাগতে পারে ...

আমি কীভাবে আইপি অ্যাড্রেসগুলির ব্যাপ্তি থেকে ট্র্যাফিককে বাদ দেব?

[হালনাগাদ]

দেখে মনে হচ্ছে যেন গুগল আইপি অ্যাড্রেস টুলটি সরিয়ে ফেলেছে (বা তাদের সাইটে অন্তত লিঙ্কটি নষ্ট হয়ে গেছে) তবে এখানে একটি অনুরূপ সরঞ্জাম রয়েছে: http://www.analyticsmarket.com/freetools/ipregex

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