উত্তর:
যতদূর আমি জানি, আথ বেসিক মডিউলটি এই বৈশিষ্ট্যটি সমর্থন করে না, তবে আপনি ফেলাইল 2 ব্যবহার করে এটি করতে পারেন ।
অস্তিত্বহীন ব্যবহারকারীর সাথে পরীক্ষা করা, আপনি ত্রুটি লগতে নীচের মতো কিছু দেখতে পাবেন:
2012/08/25 10:07:01 [error] 5866#0: *1 no user/password was provided for basic authentication, client: 127.0.0.1, server: localhost, request: "GET /pma HTTP/1.1", host: "localhost:81"
2012/08/25 10:07:04 [error] 5866#0: *1 user "ajfkla" was not found in "/etc/nginx/htpasswd", client: 127.0.0.1, server: localhost, request: "GET /pma HTTP/1.1", host: "localhost:81"
তারপরে প্রয়োজনীয় ফিল্টার তৈরি করুন:
/etc/fail2ban/filter.d/nginx-auth.conf
[Definition]
failregex = no user/password was provided for basic authentication.*client: <HOST>
user .* was not found in.*client: <HOST>
user .* password mismatch.*client: <HOST>
ignoreregex = </host></host></host>
/etc/fail2ban/jail.conf
[nginx-auth]
enabled = true
filter = nginx-auth
action = iptables[name=NoAuthFailures, port=80, protocol=tcp]
logpath = /var/log/nginx*/*error*.log
bantime = 3600 # 1 hour
maxretry = 3
ব্যর্থ 2 নিষেধাজ্ঞার পরীক্ষা করা:
fail2ban-regex /var/log/nginx/localhost.error_log /etc/fail2ban/filter.d/nginx-auth.conf
Failregex
|- Regular expressions:
| [1] no user/password was provided for basic authentication.*client: <HOST>
| [2] user .* was not found in.*client: <HOST>
| [3] user .* password mismatch.*client: <HOST>
|
`- Number of matches:
[1] 1 match(es)
[2] 2 match(es)
[3] 0 match(es)
Ignoreregex
|- Regular expressions:
|
`- Number of matches:
Summary
=======
Addresses found:
[1]
127.0.0.1 (Sat Aug 25 10:07:01 2012)
[2]
127.0.0.1 (Sat Aug 25 10:07:04 2012)
127.0.0.1 (Sat Aug 25 10:07:07 2012)
[3]
পিএস: যেহেতু ফেইল2বান লগ ফাইলগুলি নিষিদ্ধ করতে আনছে, তাই logpath
আপনার কনফিগারেশনের সাথে নিশ্চিত ম্যাচগুলি নিশ্চিত করুন ।
আমি বিস্মিত হয়েছি আর কেউই এই সমাধান / কার্যবিবরণী দেয় নি।
Nginx বেসিক-লেখক এবং and htpasswd
চ্ছিক ব্যয় ভেরিয়েবলের সাহায্যে বিক্রিপ্ট পাসওয়ার্ড এনক্রিপশন সমর্থন করে। Bcrypt ধীর হওয়ার জন্য ডিজাইন করা হয়েছে, এভাবে আপনি কীভাবে বিভিন্ন পাসওয়ার্ড চেষ্টা করতে পারেন তার একটি কঠোর সীমা সরবরাহ করে।
আপনার বুনিয়াদি লেখক ব্যবহারকারীর নাম / পাসওয়ার্ড ব্যবহার করার সময়
htpasswd -B -C 12 path/to/users.db <username>
12 টির দাম সহ আপনার সার্ভারটি সম্ভবত কয়েক সেকেন্ডের চেয়ে বেশি বার পাসওয়ার্ড ব্যবহার করতে সক্ষম হবে না, 14 বলতে বাড়াতে হবে এবং আপনি সম্ভবত পাসওয়ার্ডের প্রয়াসে প্রায় 1 এস খুঁজছেন।
যে কনফিগার করা হয়েছে কোনও যুক্তিসঙ্গত পাসওয়ার্ডই জোর করে আক্রমণ আক্রমণ প্রতিরোধ করবে এমনকি আক্রমণকারী কয়েক বছর ধরে নিরবচ্ছিন্নভাবে পাসওয়ার্ড চেষ্টা করলেও।
একটি 8 অক্ষরের আলফানিউমেরিক পাসওয়ার্ড দ্বিতীয় পাশব বল আক্রমণ 10 পাসওয়ার্ড প্রচেষ্টা এ যেমন 692.351 বছর লাগতে হবে: 62**8 / (10*3600*24*365)
।
এটি "বুদ্ধিমান" অনুরোধ সীমাবদ্ধ করার চেয়ে কনফিগার করা অনেক সহজ এবং মূর্খ-প্রমাণ।
আমি বিশ্বাস করি না এনজিনেক্সের এটি করার জন্য কোনও অভ্যন্তরীণ সুবিধা রয়েছে। ডকুমেন্টেশন পৃষ্ঠাটিতে এটা সম্ভব সুপারিশ নেই।
আপনি ব্যর্থ লগইন প্রচেষ্টা বারবার হয়েছে এমন আইপি ঠিকানাগুলি ব্লক করতে Fail2Ban ব্যবহার করতে পারেন।
Fail2Ban উইকিতে কিছু nginx- নির্দিষ্ট নিদর্শন রয়েছে ।
Fail2Ban বেশিরভাগ বড় ডিস্ট্রোজে প্যাকেজ হিসাবে পাওয়া উচিত।
এনগিনেক্স-এইচটিটিপি-আথ-ডাইজেস্ট মডিউলটি পুনরায় চেষ্টা ও সময়সীমা হিসাবে অতিরিক্ত অতিরিক্ত বৈশিষ্ট্য স্তন্যপান সহ বেসিক লেখক মডিউলটি প্রতিস্থাপন করতে পারে। অতিরিক্ত ডকুমেন্টেশন এখানে উপলব্ধ
একমাত্র ক্ষতি হ'ল এটির জন্য সম্ভবত পুনর্নির্মাণের এনজিনেক্স প্রয়োজন
bcrypt
এনগিনেক্সের মৌলিক লেখার সাথে এড পাসওয়ার্ড ব্যবহার করতে পারতেন তবে এটি কার্যকর হবে তবে দৃশ্যত আপনি পারবেন না ।