প্রথমত, চাকাটি পুনরায় উদ্ভাবন করবেন না। এটাই denyhosts
হ'ল ঠিক কী জন্য:
DenyHosts is a python program that automatically blocks ssh attacks by
adding entries to /etc/hosts.deny. DenyHosts will also inform Linux
administrators about offending hosts, attacked users and suspicious
logins.
যতদূর আমি জানি, denyhosts
কেবল ssh
সংযোগের জন্য তবে
fail2ban
এটির সাথে আরও অনেক কিছু রয়েছে:
Fail2Ban consists of a client, server and configuration files to limit
brute force authentication attempts.
The server program fail2ban-server is responsible for monitoring log
files and issuing ban/unban commands. It gets configured through a
simple protocol by fail2ban-client, which can also read configuration
files and issue corresponding configuration commands to the server.
উভয়ই সংগ্রহস্থলগুলিতে পাওয়া যায়:
sudo apt-get install denyhosts fail2ban
আপনি চাইলে এটিও স্ক্রিপ্ট করতে পারতেন। কিছুটা এইরকম:
#!/usr/bin/env sh
netstat -an |
awk -vmax=100 '/tcp/{split($5,a,":"); if(a[1] > 0 && a[1]!="0.0.0.0"){c[a[1]]++}}
END{for(ip in c){if(c[ip]>max){print ip}}}' |
while read ip; do iptables -I INPUT 1 -s "$ip" -j DROP; done
awk
আইপিগুলি উত্থিত করব এবং তাদেরকে গণনা এবং শুধুমাত্র যে বেশী প্রদর্শিত ঐ প্রিন্ট max
বার (এখানে -vmax=100
, এটা সেই অনুযায়ী পরিবর্তন)। এরপরে আইপিগুলিকে কিছুক্ষণ লুপ দেওয়া হয় যা প্রাসঙ্গিক iptables
নিয়ম চালায় ।
এটি 24/7 চালানোর জন্য, আমি এমন একটি ক্রোনজব তৈরি করব যা প্রতি মিনিট বা তারও বেশি সময় ধরে কমান্ডটি চালায়। এই লাইনটি যুক্ত করুন/etc/crontab
* * * * * root /path/to/script.sh