লিনাক্স ইউজারদের জন্য এই গাইড দেখাবে কীভাবে ডিনায়াল অফ সার্ভিস আক্রমণে ব্যবহৃত IP অ্যাড্রেসগুলো শনাক্ত করে ব্লক করতে হয়।
আমরা কয়েকদিন আগে লিনাক্সে iptables-এ IP অ্যাড্রেস ব্লক করার ऊपर একটি আর্টিকেল চালিয়েছিলাম। এখানে একটি কোম্প্লিমেন্টারি আর্টিকেল যা দেখাবে কীভাবে আক্রমণকারীদের IP অ্যাড্রেস শনাক্ত করতে হয় ডিনায়াল অফ সার্ভিস (অথবা DOS) আক্রমণের কেসে।
এটি করতে আমরা ফ্রি সফ্টওয়্যার psad ব্যবহার করব। psad iptables-সाथে সিঙ্কে কাজ করে এবং iptables লগ মনিটর করে এবং পোর্ট স্ক্যান এবং অন্যান্য সস্পিশিয়াস ট্রাফিক চেক করে যা সাধারণত কেউ আপনার লিনাক্স সার্ভারে ব্রেক ইন করার চেষ্টা করছে তার সাইন।
শুরু করতে, psad ইনস্টল করুন। আপনি যদি উবুন্টু বা ফেডোরার মত ফ্যান্সি প্যাকেজ ম্যানেজমেন্ট সিস্টেম والা লিনাক্স ফ্লেভার রান করেন, তবে আপনি নিচের যেকোনো একটি কমান্ড ব্যবহার করে আপনার সিস্টেমে psad পেতে পারেন:
# sudo apt-get install psad
অথবা
# yum install psad
যদি এটি আপনার জন্য কাজ না করে, psad ডাউনলোড পেজে যান এবং আপনার জন্য কাজ করার ফরম্যাটটি ডাউনলোড করুন।
যেহেতু আমি একটি উবুন্টু লিনাক্স সার্ভার ব্যবহার করি, এই টিউটোরিয়ালের বাকি অংশ উবুন্টু-স্পেসিফিক হবে। তবে কিছু মাইনর টুইকিং দিয়ে আপনি অন্য লিনাক্স ফ্লেভারেও এটি কাজ করতে পারবেন। syslog.conf ফাইলটি আপনার প্রিয় টেক্সট এডিটরে খুলুন:
# vim /etc/syslog.conf
ফাইলের শেষে নিচের লাইনটি যোগ করুন:
kern.info |/var/lib/psad/psadfifo
আপনি একই কাজ করতে নিচের কমান্ডও ব্যবহার করতে পারেন:
# echo -e 'kern.info\t|/var/lib/psad/psadfifo' >> /etc/syslog.conf
এখন sysklogd এবং klog ডেমনগুলো রিস্টার্ট করুন:
/etc/init.d/sysklogd restart
/etc/init.d/klogd restart
# vim /home/calvin/safeiplist.cfg
যেসব IP অ্যাড্রেস psad-কে হোয়াইটলিস্ট করতে চান সেগুলো লিখুন:
127.0.0.0/24
192.168.0.0/24
122.164.34.240
এখন নিচের স্ক্রিপ্টের মত একটি স্ক্রিপ্ট ব্যবহার করুন iptables-কে απαরিহার্য রুলস দিয়ে কনফিগার করতে। নোট করুন এই স্ক্রিপ্ট আপনার iptables সেটআপ থেকে সব প্রিভিয়াস সেটিংস রিমুভ করবে। নিচের স্ক্রিপ্টটি আপনার লিনাক্স সার্ভারে কপি পেস্ট করুন, এবং ভেরিয়েবল WORKDIR এবং SAFEIPLIST আপনার সেটআপ থেকে সঠিক সেটিংস দিয়ে রিপ্লেস করুন।
WORKDIR="/home/calvin/"
INTERVAL="5"
HITCOUNT="5"
SAFEIPLIST="safeiplist.cfg"
cd $WORKDIR
iptables -F
if [ -f $SAFEIPLIST ]; then
IPS=$(grep -Ev “^#” $SAFEIPLIST)
for i in $IPS
do
iptables -A INPUT -s $i -j ACCEPT
done
fi
iptables -A INPUT -m state –state NEW -m recent –set
iptables -A INPUT -m state –state NEW -m recent –update –seconds $INTERVAL –hitcount $HITCOUNT -j LOG
এই স্ক্রিপ্টটি কী করে সেটি হচ্ছে এটি একটি IP অ্যাড্রেস লগ করবে যদি সেটি পাঁচ সেকেন্ডের মধ্যে পাঁচ বা তার বেশি বার কানেকশন করার চেষ্টা করে। আমি সাজেস্ট করব আপনি স্ক্রিপ্টটি যেন আছে তেমনই ব্যবহার করুন যদি না আপনি জানেন আপনি কী করছেন মডিফাই করার সময়। একবার হলে, এক্সিকিউটেবল পারমিশন দিন এবং রান করুন।
# chmod +x /home/calvin/ipblock.sh
# /home/calvin/ipblock.sh
এখন আবার psad-এ ফিরি। psad কনফিগারেশন ফাইল খুলুন এবং এডিট করুন। এগুলো হলো আমার সাজেস্ট করা পরিবর্তন। আপনি psad ডকুমেন্টেশন পড়ে অন্যান্য পরিবর্তন করতে পারেন:
EMAIL_ADDRESSES you@yourdomain.com;
মেশিনের হোস্টনেম সেট করুন:
HOSTNAME yourdomain.com;
আপনার এই সার্ভারে শুধু একটি নেটওয়ার্ক ইন্টারফেস থাকলে, HOME_NET সেট করুন:
HOME_NET NOT_USED;
আপনি psad-এর ডেঞ্জার লেভেল অ্যাডজাস্ট করতে পারেন, এবং ইগনোর করার পোর্টের একটি সেট ডিফাইন করতে পারেন, উদাহরণস্বরূপ psad-কে বলতে UDP পোর্ট ৮০ এবং ৮০৮০ ইগনোর করতে, নিচের পরিবর্তনটি করুন:
IGNORE_PORTS udp/80, udp/8080;
ফাইলটি সেভ এবং বন্ধ করুন। তারপর psad রিস্টার্ট করুন:
# /etc/init.d/psad restart
আপনি এখন গো টু ゴ। psad-এর রিপোর্ট মনিটর করতে নিচের কমান্ডটি রান করুন:
# psad -S
অটোমেটিক্যালি ব্লক করা IP-গুলো রিমুভ করতে নিচের কমান্ডটি রান করুন:
# psad -F
psad একটি খুব ভার্সেটাইল এবং পাওয়ারফুল টুল। আপনি যদি জানেন কীভাবে ব্যবহার করতে হয়, এটি আপনার জন্য চমৎকার করতে পারে, কিন্তু আপনি না জানলে আপনার কম্পিউটার খুব বাজে করতে পারে। তাই দয়া করে সতর্কতার সাথে psad ব্যবহার করুন।