DenyHosts ব্যবহার করে এসএসএইচ সার্ভার আক্রমণ (ব্লু ফোর্স আক্রমণ) ব্লক করুন


ফিলি সোয়ার্টজ পাইথন ভাষায় ডেভেলপড এসএসএইচ সার্ভারগুলির জন্য ডেনিহোস্টগুলি একটি ওপেন সোর্স এবং ফ্রি লগ-ভিত্তিক অনুপ্রবেশ প্রতিরোধ সুরক্ষা প্রোগ্রাম। এটি সার্ভারের /etc/hosts.deny ফাইলে একটি এন্ট্রি যুক্ত করে সূত্রের আইপি অ্যাড্রেসগুলি অবরুদ্ধ করে অবৈধ লগইন প্রচেষ্টা, অভিধান ভিত্তিক আক্রমণ এবং ব্রুট ফোর্সের আক্রমণগুলির জন্য এসএসএইচ সার্ভার লগগুলি নিরীক্ষণ ও বিশ্লেষণ করার উদ্দেশ্যে এবং আইপি ঠিকানাটি তৈরি করা থেকে বাধা দেয় এই জাতীয় কোনও লগইন প্রচেষ্টা।

সমস্ত লিনাক্স ভিত্তিক সিস্টেমের জন্য অস্বীকৃতি হ'ল ডিএনহোস্টগুলি প্রয়োজনীয় সরঞ্জাম, বিশেষত যখন আমরা পাসওয়ার্ড ভিত্তিক এসএসএস লগইনগুলিতে অনুমতি দিই। এই নিবন্ধে আমরা আপনাকে কীভাবে আরএইচএল 6.3/6.2/6.1/6/5.8, সেন্টোস 6.3/6.2/6.1/6/5.8 এবং ফেডোরা 17,16,15,14,13,12 এ DenyHosts ইনস্টল ও কনফিগার করতে পারি ইপেল সংগ্রহস্থল ব্যবহার করে সিস্টেমগুলি।

আরো দেখুন :

  1. এসএসএইচ এর জন্য ব্যর্থ2ban (অনুপ্রবেশ প্রতিরোধ) সিস্টেম
  2. এসএসএইচ রুট লগইন অক্ষম করুন বা সক্ষম করুন
  3. লিনাক্স ম্যালওয়্যার সনাক্তকরণ (এলএমডি)

আরএইচইল, সেন্টোস এবং ফেডোরায় অস্বীকৃতি ইনস্টল করা হচ্ছে

ডিফল্টরূপে DenyHosts সরঞ্জামটি লিনাক্স সিস্টেমে অন্তর্ভুক্ত নয়, তৃতীয় পক্ষের EPEL সংগ্রহস্থল ব্যবহার করে আমাদের এটি ইনস্টল করা দরকার। একবার সংগ্রহস্থল যুক্ত হয়ে গেলে, নিম্নলিখিত YUM কমান্ডটি ব্যবহার করে প্যাকেজটি ইনস্টল করুন।

# yum --enablerepo=epel install denyhosts
OR
# yum install denyhosts

শ্বেত তালিকাভুক্ত আইপি অ্যাড্রেসগুলির জন্য অস্বীকৃতি কনফিগার করা

ড্যানিহোস্টগুলি ইনস্টল হয়ে গেলে, নিজের আইপি ঠিকানাটি শ্বেত তালিকাতে নিশ্চিত করুন, যাতে আপনি কখনই লক আউট হয়ে যাবেন না। এটি করতে, একটি ফাইল /etc/hosts.allow খুলুন।

# vi /etc/hosts.allow

বর্ণনার নীচে প্রতিটি আইপি ঠিকানা পৃথক লাইনে একের পর এক যুক্ত করুন, যা আপনি কখনই ব্লক করতে চান না। ফর্ম্যাটটি নিম্নরূপ হওয়া উচিত।

#
# hosts.allow   This file contains access rules which are used to
#               allow or deny connections to network services that
#               either use the tcp_wrappers library or that have been
#               started through a tcp_wrappers-enabled xinetd.
#
#               See 'man 5 hosts_options' and 'man 5 hosts_access'
#               for information on rule syntax.
#               See 'man tcpd' for information on tcp_wrappers
#
sshd: 172.16.25.125
sshd: 172.16.25.126
sshd: 172.16.25.127

ইমেল সতর্কতার জন্য DenyHosts কনফিগার করা

মূল কনফিগারেশন ফাইলটি /etc/denyhosts.conf এর অধীনে অবস্থিত। সন্দেহজনক লগইন এবং সীমাবদ্ধ হোস্ট সম্পর্কে ইমেল সতর্কতা পাঠাতে এই ফাইলটি ব্যবহৃত হয়। ষষ্ঠ সম্পাদক ব্যবহার করে এই ফাইলটি খুলুন।

# vi /etc/denyhosts.conf

সন্দেহজনক লগইনগুলি সম্পর্কে একাধিক ইমেল সতর্কতা পেতে (একাধিক ইমেল সতর্কতার জন্য কমা বিচ্ছিন্ন ব্যবহার করা হয়েছে) 'ADMIN_EMAIL' অনুসন্ধান করুন এবং আপনার ইমেল ঠিকানাটি এখানে যুক্ত করুন। আমার CentOS 6.3 সার্ভারের কনফিগারেশন ফাইলটি একবার দেখুন। প্রতিটি পরিবর্তনশীল ভাল নথিভুক্ত তাই আপনার পছন্দ অনুযায়ী এটি কনফিগার করুন।

############ DENYHOSTS REQUIRED SETTINGS ############
SECURE_LOG = /var/log/secure
HOSTS_DENY = /etc/hosts.deny
BLOCK_SERVICE  = sshd
DENY_THRESHOLD_INVALID = 5
DENY_THRESHOLD_VALID = 10
DENY_THRESHOLD_ROOT = 1
DENY_THRESHOLD_RESTRICTED = 1
WORK_DIR = /var/lib/denyhosts
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
HOSTNAME_LOOKUP=YES
LOCK_FILE = /var/lock/subsys/denyhosts

############ DENYHOSTS OPTIONAL SETTINGS ############
ADMIN_EMAIL = [email 
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts <[email >
SMTP_SUBJECT = DenyHosts Daily Report

############ DENYHOSTS OPTIONAL SETTINGS ############
DAEMON_LOG = /var/log/denyhosts
DAEMON_SLEEP = 30s
DAEMON_PURGE = 1h

DenyHosts পরিষেবা পুনরায় চালু করা হচ্ছে

একবার আপনি আপনার কনফিগারেশনটি সম্পন্ন করার পরে, নতুন পরিবর্তনের জন্য অস্বীকারকারী পরিষেবা পুনরায় চালু করুন। আমরা সিস্টেম স্টার্ট-আপে অস্বীকারকারী পরিষেবা যুক্ত করি।

# chkconfig denyhosts on
# service denyhosts start

DenyHosts লগগুলি দেখুন

আপনার সার্ভারে অ্যাক্সেস পাওয়ার জন্য কত আক্রমণকারী এবং হ্যাকার চেষ্টা করা হচ্ছে তা অস্বীকার করার জন্য ssh লগগুলি দেখতে। রিয়েল-টাইম লগগুলি দেখার জন্য নিম্নলিখিত কমান্ডটি ব্যবহার করুন।

# tail -f /var/log/secure
Nov 28 15:01:43 tecmint sshd[25474]: Accepted password for root from 172.16.25.125 port 4339 ssh2
Nov 28 15:01:43 tecmint sshd[25474]: pam_unix(sshd:session): session opened for user root by (uid=0)
Nov 28 16:44:09 tecmint sshd[25474]: pam_unix(sshd:session): session closed for user root
Nov 29 11:08:56 tecmint sshd[31669]: Accepted password for root from 172.16.25.125 port 2957 ssh2
Nov 29 11:08:56 tecmint sshd[31669]: pam_unix(sshd:session): session opened for user root by (uid=0)
Nov 29 11:12:00 tecmint atd[3417]: pam_unix(atd:session): session opened for user root by (uid=0)
Nov 29 11:12:00 tecmint atd[3417]: pam_unix(atd:session): session closed for user root
Nov 29 11:26:42 tecmint sshd[31669]: pam_unix(sshd:session): session closed for user root
Nov 29 12:54:17 tecmint sshd[7480]: Accepted password for root from 172.16.25.125 port 1787 ssh2

DenyHosts থেকে নিষিদ্ধ IP ঠিকানা সরান

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

# /etc/init.d/denyhosts stop

নিষিদ্ধ আইপি ঠিকানা সম্পূর্ণরূপে মুছতে বা মুছতে। আপনাকে নিম্নলিখিত ফাইলগুলি সম্পাদনা করতে হবে এবং আইপি ঠিকানাটি সরিয়ে ফেলতে হবে।

# vi /etc/hosts.deny
# vi /var/lib/denyhosts/hosts
# vi /var/lib/denyhosts/hosts-restricted
# vi /var/lib/denyhosts/hosts-root
# vi /var/lib/denyhosts/hosts-valid
# vi /var/lib/denyhosts/users-hosts

নিষিদ্ধ IP ঠিকানা অপসারণের পরে, পরিষেবাটি আবার চালু করুন।

# /etc/init.d/denyhosts start

আপত্তিজনক আইপি ঠিকানাটি/var/lib/অস্বীকারকারী ডিরেক্টরিগুলির অধীনে সমস্ত ফাইলগুলিতে যুক্ত হয়েছে, সুতরাং কোন ফাইলগুলিতে আপত্তিজনক আইপি ঠিকানা রয়েছে তা নির্ধারণ করা খুব কঠিন হয়ে পড়ে। গ্রেপ কমান্ড ব্যবহার করে আইপি ঠিকানাটি খুঁজে বের করার অন্যতম সেরা উপায়। উদাহরণস্বরূপ আইপি ঠিকানা 172.16.25.125 খুঁজে বের করার জন্য, করুন।

cd /var/lib/denyhosts
grep 172.16.25.125 *

শ্বেতলিস্টের আইপি অ্যাড্রেসগুলি স্থায়ীভাবে অস্বীকার করুন হোস্টে

স্থায়ী আইপি ঠিকানার তালিকা যদি আপনি স্থায়ীভাবে শ্বেত তালিকাতে রাখতে চান।/Var/lib/অস্বীকৃতি/অনুমোদিত-হোস্ট ফাইলটি খুলুন। এই ফাইলে অন্তর্ভুক্ত আইপি অ্যাড্রেসটি ডিফল্টরূপে নিষিদ্ধ করা হবে না (এটি একটি তালিকা হিসাবে বিবেচনা করুন)।

# vi /var/lib/denyhosts/allowed-hosts

এবং প্রতিটি আইপি ঠিকানা পৃথক লাইনে যুক্ত করুন। সংরক্ষণ করুন এবং ফাইলটি বন্ধ করুন।

# We mustn't block localhost
127.0.0.1
172.16.25.125
172.16.25.126
172.16.25.127