ওয়েবসাইটে সরাসরি আইপি অ্যাক্সেস সীমাবদ্ধ


13

আমি আমার ওয়েবসাইটে সরাসরি আইপি অ্যাক্সেস সীমাবদ্ধ করতে চাই। আমি .htaccess জড়িত বেশ কয়েকটি সমাধান পেয়েছি তবে কোনও কাজই হয়নি। আমি সিপিএনেলের মাধ্যমে কোনও এসএসএল শংসাপত্র ইনস্টল না করা পর্যন্ত অ্যাপাচি ভার্চুয়াল হোস্ট কনফিগারেশনের মাধ্যমে একটি সমাধান পেয়েছি which আমার httpd.conf ফাইলে কী পরিবর্তন হয়েছিল তা সম্পর্কে আমার একেবারেই ধারণা নেই তবে এখন আমি এসএসএল শংসাপত্র আনইনস্টল করলেও পুনঃনির্দেশ সেটিংটি কাজ করে না।

এখানে আমার বর্তমান ভার্চুয়াল হোস্ট সেটআপ করা হয়েছে:

নেম ভার্চুয়ালহোস্ট 192.168.1.1:80 নাম ভার্চুয়ালহোস্ট *

<VirtualHost 192.168.1.1:80>
    ServerName mysite.com
    ServerAlias www.mysite.com
    DocumentRoot /home/rotate/public_html
    ServerAdmin me@mysite.com
    UseCanonicalName Off

    ## User rotate # Needed for Cpanel::ApacheConf
    UserDir disabled
    UserDir enabled rotate
    ScriptAlias /cgi-bin/ /home/rotate/public_html/cgi-bin/
</VirtualHost>

<VirtualHost 192.168.1.1:80>
    ServerName 192.168.1.1
    Redirect 403 /
    ErrorDocument 403 "Sorry, direct IP access not allowed."
    DocumentRoot /usr/local/apache/htdocs
    ServerAdmin me@mysite.com
    UseCanonicalName Off
    UserDir disabled
</VirtualHost>

<VirtualHost *>
    ServerName server.mysite.com
    DocumentRoot /usr/local/apache/htdocs
    ServerAdmin me@mysite.com
    UserDir disabled
</VirtualHost>

NameVirtualHost 192.168.1.1:443
<VirtualHost 192.168.1.1:443>
    ServerName mysite.com
    ServerAlias www.mysite.com
    DocumentRoot /home/rotate/public_html
    ServerAdmin me@mysite.com
    UseCanonicalName Off

    UserDir disabled
    UserDir enabled rotate

    ScriptAlias /cgi-bin/ /home/rotate/public_html/cgi-bin/
    SSLEngine on
    #SSL stuff here
</VirtualHost>

আইপি এবং নামগুলি জেনেরিকগুলির সাথে প্রতিস্থাপিত হয়েছিল। "পুনঃনির্দেশ 403 /" অংশটি SSL শংসাপত্র ইনস্টল করার পরে থেকে কাজ করছে না। আমি যদি এখানে ভুল করছি সে সম্পর্কে কেউ যদি কিছু আলোকপাত করতে পারে তবে আমি কৃতজ্ঞ হব। ধন্যবাদ।


আমার ধারণা আপনি = সার্ভারনাম 192.168.1.1
এডিএম

সে চেষ্টা করেও এর কোনও প্রভাব নেই।
ইভান

ভার্চুয়ালহস্টগুলি কি পুনরায় সাজানো হয়েছিল? 403 ত্রুটিযুক্ত একটি কি প্রথম (ডিফল্ট) ভোস্টের আগে ছিল?
হকান লিন্ডকভিস্ট

কোন আদেশ পরিবর্তন হয়নি। এসএসএল শংসাপত্র যুক্ত করার পরে সমস্যা শুরু হয়েছে, যার অর্থ সর্বশেষটি সহজভাবে যুক্ত করা হয়েছিল। এখন আমি যদি এটি সম্পূর্ণরূপে অপসারণ করি তবে এটি আর কাজ করবে না তাই অন্য কিছু স্পষ্টভাবে পরিবর্তিত হয়েছিল তবে কী তা বের করতে পারে বলে মনে হয় না।
ইভান

উত্তর:


12

এবং voila, ফিক্স:

<VirtualHost mysite.com:80>
    ServerName mysite.com
    ServerAlias www.mysite.com
    DocumentRoot /home/rotate/public_html
    ServerAdmin me@mysite.com
    UseCanonicalName Off
</VirtualHost>

NameVirtualHost mysite.com:80
<VirtualHost 192.168.1.1:80>
    ServerName 192.168.1.1
    Redirect 403 /
    ErrorDocument 403 "Sorry, direct IP access not allowed."
    DocumentRoot /usr/local/apache/htdocs
    ServerAdmin me@mysite.com
    UseCanonicalName Off
    UserDir disabled
</VirtualHost>

<VirtualHost *>
    ServerName server.mysite.com
    DocumentRoot /usr/local/apache/htdocs
    ServerAdmin me@mysite.com
    UserDir disabled
</VirtualHost>

NameVirtualHost mysite.com:443
<VirtualHost mysite.com:443>
    ServerName mysite.com
    ServerAlias www.mysite.com
    DocumentRoot /home/rotate/public_html
    ServerAdmin me@mysite.com
    UseCanonicalName Off
</VirtualHost>

সমাধানটি হ'ল সরাসরি আইপি অ্যাক্সেসকে পুনঃনির্দেশ / সীমাবদ্ধ করতে হবে এমন এক ব্যতীত সমস্ত ভার্চুয়ালহোস্ট সেটিংসের জন্য কেবলমাত্র আইপি প্রতিস্থাপন করা with


এটি আই 6 এবং আই 8 চালিত ক্লায়েন্টদের সাথে সমস্যা সৃষ্টি করবে। আপনি যদি এটির সাথে ঠিক থাকেন তবে ঠিক আছে। তাদের যাইহোক তাদের প্রাচীন ব্রাউজারগুলি আপগ্রেড করা উচিত।
ভাসিলি সিরিাকিস

6

উত্তর অনেক সহজ হতে পারে।

কেবল এটি httpd.conf এর নীচে অনুলিপি করুন (সাধারণত / etc / httpd / conf এ অবস্থিত)

<VirtualHost *:80>
ServerName localhost
Redirect 403 /
UseCanonicalName Off
UserDir disabled
</VirtualHost>

<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/html
</VirtualHost>

তারপরেই যখন কেবল www.example.com দ্বারা দর্শনার্থীরা অ্যাক্সেস পান, তিনি সার্ভারটিতে অ্যাক্সেস পেতে পারেন।


2

আপনি এইচটিটিপিএসের মাধ্যমে আপনার সার্ভারে সরাসরি আইপি অ্যাক্সেস অক্ষম করতে পারবেন না কারণ আপনার ভার্চুয়ালহোস্টের হোস্টনাম এসএসএল শংসাপত্রের ভিতরে এনক্রিপ্ট করা আছে।

ক্লায়েন্টদের অবশ্যই আপনার আইপি ঠিকানার সাথে সংযোগ করতে হবে, শংসাপত্রটি ডাউনলোড করতে হবে, সামগ্রীগুলি পড়তে হবে এবং তারপরে তারা হোস্টনামটি সঠিক কিনা তা যাচাই করতে পারে।

আর একমাত্র উপায় হ'ল এসএনআই প্রয়োগ করা , তবে আপনি ইন্টারনেট এক্সপ্লোরারের পুরানো সংস্করণগুলি ব্রাউজ করছেন এমন ব্যবহারকারীদের জন্য সমস্যা তৈরি করবেন।


1
  1. সম্ভবত আপনার শংসাপত্রটি উদাহরণ ডটকমকে জারি করা হয়েছে, 192.168.1.1 বা উভয়কে নয়; সুতরাং, যারা ব্যবহার করেন https://192.168.1.1তাদের একটি SSL ত্রুটি হওয়া উচিত (কারণ URL শংসাপত্রের থেকে পৃথক) one
  2. আপনার কোনও 'ডিফল্ট এসএসএল' ওয়েবসাইট নেই <VirtualHost *:443> SSLEngine on </VirtualHost>
  3. SSL- প্রতি-হোস্টনেম ব্যবহার করার জন্য আপনার এসএনআই সমর্থন (কিছু লিবিএসএসএল এবং অ্যাপাচি সংস্করণ প্রয়োজনীয়তা রয়েছে) সহ অ্যাপাচি ব্যবহার করা উচিত ( ওয়ান আইপি ঠিকানার সাথে অ্যাপাচে একাধিক এসএসএল শংসাপত্র ব্যবহার করা দেখুন)

0

আমি বিশ্বাস করি এটিই আপনি খুঁজছেন

http://www.htaccess-guide.com/deny-visitors-by-ip-address/


1
না, আমার ইস্যুটির সাথে এর কোনও যোগসূত্র নেই। যারা আমার ওয়েবসাইটের আইপি এটির পরিবর্তে ডিএনএস ব্যবহার করে তাদের জন্য ওয়েবসাইট অ্যাক্সেস ব্লক করতে চাই।
ইভান

যে .... ঠিক যে আছে
user155813

1
না, এই ক্লায়েন্টের আইপি ঠিকানায় সাইট অ্যাক্সেসকে ব্লক করে। প্রশ্নটি এর আইপি ঠিকানা ব্যবহার করে সাইটে অ্যাক্সেস অবরুদ্ধ করার উপায় খুঁজছে।
ডেভ দ্যমিনিয়ন

0

অন্য উত্তর যুক্ত করতে, মোড_সিকিউরিটি, এটি সেট আপ করা আপনার পক্ষে যদি মূল্যবান হয় তবে আইপি ঠিকানার মাধ্যমে সার্ভারে অ্যাক্সেস নিষিদ্ধ করার নিয়ম রয়েছে।


0

আপনি নিজের ফাইলগুলি ডিফল্ট / var / www / html ডিরেক্টরিতে না রাখলে এটি সহজ হতে পারে। কেবল একটি অন্য ডিরেক্টরি তৈরি করুন, উদাহরণস্বরূপ / ওয়েব বলতে দিন:

mkdir /web 
mkdir /web/example

আপনার ফাইলগুলি অনুলিপি করুন এবং দাগ পরিবর্তন করুন:

sudo chown -R www-data:www-data /web

তারপরে নিম্নলিখিত কনফিগারেশন সহ একটি ভার্চুয়াল হোস্ট তৈরি করুন:

<Directory /web/example>
  Require all granted
</Directory>

<VirtualHost *:80>

    DocumentRoot /web/example
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin webmaster@example.com

    # Force SSL, you can remove this line
    Redirect permanent / https://example.com/

    ServerAdmin webmaster@example.com

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

# If you use SSL
<IfModule mod_ssl.c>
    <VirtualHost *:443>
        DocumentRoot /web/example
        ServerName example.com
        ServerAlias www.example.com
        ServerAdmin webmaster@example.com

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # adapt this to your paths
        SSLEngine on
        SSLCertificateFile /etc/ssl/example/example_com.crt
        SSLCertificateKeyFile /etc/ssl/example/example.key
        SSLCertificateChainFile /etc/ssl/example/example_com.ca-bundle

    </VirtualHost>
</IfModule>

আপনার ভার্চুয়াল হোস্টটি সক্ষম করতে ভুলবেন না, উদাহরণস্বরূপ:

sudo a2ensite example.com.conf

0

একাধিক ফাইলযুক্ত একটি এপ্যাকে সেটআপে .conf, অগ্রাধিকারটি প্রথমে লোড হওয়া ফাইল এবং তারপরে দ্বিতীয়..এমনভাবে যায়। সুতরাং আপনি যদি উবুন্টুতে থাকেন তবে ফাইলগুলি ডিক্সিকোগ্রাফিক ক্রমে লোড করা হয়, সুতরাং যে "প্রথম" .confফাইলটি লোড করা হবে তা হ'ল000-default.conf ( তার নামে এটি 000 ) /etc/apache2/sites-available/ডিরেক্টরিতে থাকবে।

সুতরাং অন্য কোনও নিয়ম প্রয়োগ না হওয়ার জন্য আমাদের নিয়মটি প্রথম ফাইলটির শীর্ষে পৌঁছে দেওয়া দরকার।

এবং আপনি কেবলমাত্র সেই নিয়মটি সেই ফাইলটিতে সংশোধন করতে পারেন।

<VirtualHost *:80>
    ServerName default
    DocumentRoot /var/www/html
    #This part here, is crucial.
    <Location />
        Require all denied
    </Location>
</VirtualHost>

উবুন্টু 16.4 x64 অ্যাপাচি সংস্করণে চেষ্টা এবং পরীক্ষিত > 2.4

আপনি যদি আপাচি এর নিম্ন সংস্করণটি চালাচ্ছেন Require all deniedতবে উপরের কোড থেকে পরিবর্তিত করে দেখুন ...

<Location />
    Order deny,allow
    Deny from all
</Location>

-3

আমি সরাসরি আইপি অ্যাক্সেসকে সীমাবদ্ধ করতে এই সহজ কোডটি পিএইচপিতে লিখেছি!

$servername =  $_SERVER['SERVER_NAME'];
if($servername == 'your-domain.com'){

}elseif($servername == 'your-domain-with-www.com'){

}else{
    die("Direct ip access not allowed!");
}

শুধু আপনার পিএইচপি ফাইলে পেস্ট করুন এবং উপভোগ করুন!


1
আপনি অন্যান্য উত্তরের মাধ্যমে এর সুবিধাগুলি ব্যাখ্যা করতে পারেন?
030

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