এনগিনেক্স .htaccess এবং লুকানো ফাইলগুলি অক্ষম করে তবে।-পরিচিত ডিরেক্টরিকে অনুমতি দেয়


16

আমার একটি এনগিনেক্স সার্ভার রয়েছে এবং এর মধ্যে লুকানো ফাইলগুলি অক্ষম করে nginx_vhost.conf

## Disable .htaccess and other hidden files
    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }

তবে লেটসেক্রিপ্টের .well-knownডিরেক্টরিতে অ্যাক্সেস দরকার ।

আমি কীভাবে .well-knownডিরেক্টরিটিকে অনুমতি দেব এবং অন্যান্য লুকানো ফাইলগুলি অস্বীকার করব?


দ্রষ্টব্য: এনজিনেক্স .htaccessফাইল ব্যবহার করে না বা রাখে না । এটিতে কনফিগারেশন ফাইল রয়েছে তবে সেগুলি ডাকা হয় না .htaccessবা তারা একই কাজ করে না।
— রব

উত্তর:


17

অন্যান্য সমাধানগুলি আমাকে সাহায্য করেনি।

আমার সমাধান অন্তর্ভুক্ত করা হয় নেতিবাচক Regex জন্য .well-known। আপনার কোড ব্লকটি এর পরে দেখতে হবে:

## Disable .htaccess and other hidden files
location ~ /\.(?!well-known).* {
    deny all;
    access_log off;
    log_not_found off;
}

এটি শুরু হওয়া ফাইলগুলি বাদে প্রতিটি ডট ফাইলকে ব্লক করে দেবে .well-known

পিএস: আমিও return 404;ব্লকে যুক্ত করব।


1
কি location ~* /\.(?!well-known\/) {হিসাবে দেখা github.com/h5bp/server-configs-nginx/blob/master/h5bp/location/... এই অভিন্ন location ~ /\.(?!well-known).* { ?
— প্রো ব্যাকআপ 21

3
না এটি ঠিক একরকম নয়। /\.(?!well-known\/)আমার রেজেক্সের মতো ভাববাদী নয় (কারণ আমি সংজ্ঞা দ্বারা সুপরিচিত ব্যতীত সমস্ত ডট ফাইলগুলি ব্লক করি)। সম্ভবত location ~ /\.(?!well-known\/).*সেরাটি এমন একটি সংমিশ্রণ হতে পারে যা কেবল সুপরিচিত ডিরেক্টরিকে পরিবর্তে একটি তাত্ত্বিকও আনলক করে .well-known-blabla। তবে আমি মনে করি কোনও তাত্ত্বিককে অবরুদ্ধ না করার কোনও সত্য বিপদ নেই।
— Therealmarv

এনগিনেক্স হ্যান্ডেল না করায় কেন এইচটিচেসি অক্ষম করবেন?
— ওয়েবউইম্যান

3
হ্যাঁ আপনি @Wwwman ঠিকই বলেছেন তবে কখনও কখনও মিশ্র পরিবেশ থাকে। সত্যই প্রয়োজন না হলে কোনও ডট ফাইলই আমার মতে (.git এর মতো সুরক্ষিত বা ইতিহাসের অযাচিত উদ্ঘাটন) দেওয়া উচিত নয় unless
— Therealmarv

16

এনগিনেক্সগুলি কনফিগারেশন ফাইলে তাদের উপস্থিতির ক্রম অনুযায়ী নিয়মিত প্রকাশের সাথে অবস্থানগুলি প্রয়োগ করে।

অতএব, আপনার বর্তমান অবস্থানের ঠিক আগে এ জাতীয় এন্ট্রি যুক্ত করা এটি আপনাকে সহায়তা করবে।

location ~ /\.well-known { 
    allow all;
}

আপনাকে ধন্যবাদ, এটি ঠিক আমার প্রয়োজন ছিল! সমস্ত ডটফাইলে অ্যাক্সেস অস্বীকার করার নিয়মের আগে এটি স্থাপন করা হয়েছে। আমি পরিবর্তন করেছি কেবলমাত্র বিন্দু থেকে বাঁচা, যেমন location ~ /\.well-known {। যেভাবেই হোক, এটি গ্রহণযোগ্য উত্তর হওয়া উচিত।
— এক্সেল

8

আমি কীভাবে NGINX- এর সাথে এনক্রিন্ট ব্যবহার করতে পারি তা সম্পর্কে আমার ওয়েবসাইটে একটি পূর্ণ ধাপে ধাপে টিউটোরিয়াল সরবরাহ করেছি ।

মূল অংশগুলি হ'ল:

  • অফিসিয়াল ক্লায়েন্টটি ঠিক আছে, এবং অ্যামাজন লিনাক্সে সত্যই দুর্বল। আমি আলাদা ক্লায়েন্ট, এসিএমই সুপারিশ করি ।
  • আমার প্রস্তাবিত ক্লায়েন্ট সহ ওয়েবরুট পদ্ধতির জন্য এই অবস্থানটি ব্যবহার করুন। নোট করুন যে অনুরোধগুলি https নয়, HTTP- র মাধ্যমে পরিবেশন করা হয়েছে।

আপনার https ব্লকটিতে শ্রোতার দরকার নেই, এটি সবই https এ সম্পন্ন হয়েছে। এটি কেবলমাত্র আপনাকে ডোমেনকে নিয়ন্ত্রণ করার প্রমাণ করার জন্য, এটি ব্যক্তিগত বা গোপনীয় কোনও কিছুই সরবরাহ করে না।

# Answer let's encrypt requests, but forward everything else to https
server {
  listen       80;
  server_name  example.com www.example.com
  access_log  /var/log/nginx/access.log main;

  # Let's Encrypt certificates with Acmetool
  location /.well-known/acme-challenge/ {
    alias /var/www/.well-known/acme-challenge/;
  }

  location / {
    return       301 https://www.example.com$request_uri;
  }
}

উপরে লিঙ্কিত ধাপে ধাপে গাইড।


3

এটি যোগ করুন (আগে বা পরে):

location ^~ /.well-known/ {
        log_not_found off;
     }

আপনি এটি নীচেও যুক্ত করতে পারেন, কারণ ম্যাচিং ^~সংশোধক নিয়মিত অভিব্যক্তির চেয়ে অগ্রাধিকার নেয়। দেখুন ডক্স ।


0

আপনার কাছে যদি প্রচুর কনফিগার ফাইল থাকে এবং সেগুলিতে ইতিমধ্যে .htaccess এর মতো একটি অস্বীকার থাকে

location ~ /\.ht { deny all; }

তারপরে সমস্ত ডট ফাইল উপেক্ষা করার পরিবর্তে , আপনি সহজেই .git এর জন্য একটি দ্বিতীয় উপেক্ষা যুক্ত করতে পারেন

sed -i '/location ~ \/\\.ht { deny all; }/a \  location ~ \/\\.git { deny all; }' /etc/nginx/*
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.