পদ্ধতি # 1 - পাসওয়ার্ড লগইন অক্ষম করুন
আপনার যদি পাসওয়ার্ড লগইনগুলির অনুমতি দেওয়ার প্রয়োজন না হয় তবে কেবল তাদের এড়িয়ে গেলে আপনাকে পছন্দসই প্রভাব দেবে। কেবল এই লাইনটি এতে যুক্ত করুন /etc/ssh/sshd_config
:
PasswordAuthentication no
অতিরিক্ত হিসাবে আপনি নির্দিষ্ট ব্যবহারকারীদের মধ্যে Match
অপারেটরটি ব্যবহার করে পাসওয়ার্ড ব্যবহার সীমাবদ্ধ করতে পারেন sshd_config
:
Match User root,foo,bar
PasswordAuthentication no
Match User user1,user2
PasswordAuthentication yes
পদ্ধতি # 2 - iptables
আপনি iptables
ব্যর্থ লগইন প্রচেষ্টা ট্র্যাক করতে এবং একটি নির্দিষ্ট প্রান্তিকের পরে এগুলি ফেলে দিতেও ব্যবহার করতে পারেন । এটি হোস্টিংফু থেকে আপনার উদাহরণের মতো তবে বোঝা সহজ।
$ sudo iptables -I INPUT -p tcp --dport <YOUR PORT HERE> -i eth0 -m state --state NEW -m recent --set
$ sudo iptables -I INPUT -p tcp --dport <YOUR PORT HERE> -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
দ্রষ্টব্য: প্রথম লাইনটি মূলত একটি নিয়ম তৈরি করে যা কেবল ssh বন্দরে নতুন সংযোগ প্রয়াসের জন্য ব্যবহৃত প্যাকেটের ক্ষেত্রে প্রযোজ্য। দ্বিতীয় লাইনটি বলে যে 60 সেকেন্ডের মধ্যে যদি কোনও আইপি থেকে 4 টির বেশি চেষ্টা করা হয়, তবে সেই আইপি থেকে যে কোনও ট্র্যাফিক ব্ল্যাকহোল করা উচিত। এই ব্যবহারটি বিভিন্ন ব্যবহারকারীর অ্যাকাউন্টে চেষ্টা করার চেষ্টা করে না care
পদ্ধতি # 3 - পিএএম ব্যবহার করুন
আমি বুঝতে পেরেছি যে আপনি বলেছিলেন যে আপনার কাছে পিএএম উপলব্ধ নেই, তবে আপনি যদি তা করেন তবে এভাবেই আপনি ব্যর্থ লগইন প্রচেষ্টা বিলম্ব করতে পারেন। যদি আপনার উদ্দেশ্যটি কেবল ssh লগইন ব্যর্থতাগুলিতে বিলম্ব করা হয় তবে আপনি প্যাম মডিউলটি ব্যবহার করতে পারেন pam_faildelay
। এই পিএএম মডিউলটি সাধারণত ডিফল্ট মিশ্রণের সাথে অন্তর্ভুক্ত থাকে।
আমার ফেডোরা 19 সিস্টেমে এটি ডিফল্ট ইনস্টলেশনটির অংশ।
উদাহরণ
সম্পর্কিত ফাইলগুলি সন্ধান করুন pam_faildelay
।
$ locate pam|grep -i delay
/usr/lib/security/pam_faildelay.so
/usr/lib64/security/pam_faildelay.so
/usr/share/doc/pam-1.1.6/html/sag-pam_faildelay.html
/usr/share/doc/pam-1.1.6/txts/README.pam_faildelay
/usr/share/man/man8/pam_faildelay.8.gz
তাদের দ্বারা সরবরাহ করা RPM দেখুন:
$ rpm -qf /usr/share/man/man8/pam_faildelay.8.gz
pam-1.1.6-12.fc19.x86_64
pam-1.1.6-12.fc19.i686
ব্যবহার
ব্যর্থতার জন্য বিলম্ব তৈরি করতে আপনি কেবল আপনার sshd
পাম কনফিগ ফাইলে একটি লাইন যুক্ত করতে চান । আবার ফেডোরা / সেন্টওএস / rhel সিস্টেমে এই ফাইলটি এখানে অবস্থিত হয়: /etc/pam.d/sshd
।
একটি 10 সেকেন্ড বিলম্ব তৈরি করতে:
auth optional pam_faildelay.so delay=10000000
একটি 60 দ্বিতীয় বিলম্ব:
auth optional pam_faildelay.so delay=60000000
উদাহরণ
উপরের পদ্ধতিটি ব্যবহার করে 20 সেকেন্ডের বিলম্বের সাথে আমি আমার পিএএম sshd
কনফিগারেশন ফাইলটি এমনভাবে পরিবর্তন করেছি :
#%PAM-1.0
auth required pam_sepermit.so
auth substack password-auth
auth include postlogin
auth optional pam_faildelay.so delay=20000000
account required pam_nologin.so
account include password-auth
password include password-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session optional pam_keyinit.so force revoke
session include password-auth
session include postlogin
এখন আমি যখন লগইন করি:
$ date
Tue Dec 17 09:16:30 EST 2013
$ ssh blah@localhost
blah@localhost's password:
Permission denied, please try again.
blah@localhost's password:
...Control + C....
$ date
Tue Dec 17 09:16:50 EST 2013
তথ্যসূত্র