পোর্ট স্ক্যানিং শনাক্তকরণের একটা বৈশিষ্ট্য আছে যা তাকে চেনা সরঞ্জাম থেকে আলাদা করে। Fail2ban অ্যাপ্লিকেশনের লগ পড়ে — আর কোনো বন্ধ পোর্ট স্ক্যান হলে সেখানে অ্যাপ্লিকেশনই থাকে না, তাই লগে এন্ট্রিও থাকে না। স্ক্যানিং কেবল ফায়ারওয়ালের স্তরেই দেখা যায়, আর ঠিক সেখানেই PSAD কাজ করে: সে সেসব বার্তা পড়ে যা iptables প্রত্যাখ্যাত প্যাকেট নিয়ে লেখে।
বাধ্যতামূলক শর্ত: লগিং চালু থাকতে হবে
PSAD-র «বসানো আছে আর কিছুই দেখায় না» হওয়ার প্রধান কারণ এটিই। ফায়ারওয়ালে লগিংয়ের নিয়ম ছাড়া তার পড়ার কিছু নেই, আর এর মধ্যে কোনো ত্রুটিও তৈরি হয় না।
আপনি UFW ব্যবহার করলে:
sudo ufw logging low
sudo ufw status verbose
বার্তা সত্যিই আসছে কি না নিশ্চিত হতে:
sudo journalctl -k | grep -c '\[UFW'
sudo grep -c 'UFW BLOCK' /var/log/ufw.log
দুটি কমান্ড থেকেই শূন্য মানে PSAD কাজ করবে না। আর Debian 12 ও Ubuntu 24.04 নিয়ে আলাদা করে: rsyslog ছাড়া /var/log/ufw.log ফাইলটি থাকেই না আর সব যায় systemd-র জার্নালে — আর PSAD-র সেটিংসে লগের পথ সেটি হিসেবে নেওয়া উচিত।
স্থাপন
sudo apt install psad
sudo psad --sig-update
sudo psad -R
sudo psad --Status
শেষ কমান্ডটিই আসল। এটি দেখায় কতগুলো প্যাকেট বিশ্লেষিত হয়েছে, কোন ঠিকানা দেখা গেছে আর কোন বিপদমাত্রায়। আর বিশ্লেষিত প্যাকেটের গণনা শূন্য হলে আগের অংশে ফিরুন: সমস্যা লগিংয়ের, স্ক্যানিংয়ের অনুপস্থিতির নয়।
সেটিংস আছে /etc/psad/psad.conf-এ। আর ব্যবহারিক গুরুত্বের প্যারামিটার কম: মেইলের ঠিকানা, লগের পথ, আর বিপদমাত্রার সীমা।
বিপদমাত্রা
PSAD প্রতিটি উৎসকে 1 থেকে 5 পর্যন্ত মাত্রা দেয়, কতগুলো আলাদা পোর্ট ছোঁয়া হয়েছে আর আচরণ পরিচিত স্ক্যানিং কৌশলের সঙ্গে কতটা মেলে তার ভিত্তিতে।
- 1–2 — বন্ধ পোর্টে বিক্ষিপ্ত সংস্পর্শ। এটি ইন্টারনেটের স্থায়ী পটভূমি; সাড়া দেওয়ার দরকার নেই;
- 3 — পোর্ট ধরে সুবিন্যস্ত টহল। সাধারণত গবেষণা স্ক্যানার, নেটওয়ার্কে যাদের কয়েক ডজন দৃষ্টান্ত আছে;
- 4–5 — একই ঠিকানা থেকে বিপুলসংখ্যক পোর্টের ইচ্ছাকৃত ঘাঁটাঘাঁটি, প্রায়ই সংস্পর্শের প্রকৃতি লুকানোর চেষ্টাসহ।
মেইলের সীমা ঠিক হয় EMAIL_ALERT_DANGER_LEVEL দিয়ে। মান 3 সাধারণত দৈনিক কয়েকটা ইমেইলের মানে বহন করে, আর সেটি বেশ দ্রুত মেইল ক্লায়েন্টে একটা নিয়মে গিয়ে ঠেকে। বেশি যুক্তিসঙ্গত হলো 4 রাখা আর বাকিটা কোনো সারসংক্ষেপের পাতায় দেখা।
স্বয়ংক্রিয় অবরোধ: করবেন না
PSAD নিজেও ফায়ারওয়ালে নিয়ম যোগ করতে পারে (ENABLE_AUTO_IDS)। আর একা চলা সার্ভারে সেটি চালু করা যুক্তিসঙ্গত নয়, আর কারণটা শক্ত: প্যাকেটে প্রেরকের ঠিকানা জাল হতে পারে। কারও পক্ষে আপনার দিকে বদলানো ঠিকানাসহ প্যাকেট পাঠানোই যথেষ্ট — আর আপনি সেই ঠিকানাটাই আটকাবেন যেটি সে বেছেছে। আর সেটি আপনারই ক্রেতা, কোনো পেমেন্ট গেটওয়ে বা নজরদারির সেবা হতে পারে।
আর তবু অবরোধ দরকার হলে সেটি উঁচু বিপদসীমাসহ আর সবসময় সময়সীমাসহ (AUTO_BLOCK_TIMEOUT) চালু করুন যাতে কোনো ভুল এন্ট্রি চিরকাল থেকে না যায়।
বাস্তবে এর কী করবেন
স্ক্যানিং নিজে থেকে ক্ষতিকর নয়: সে কিছুই ভাঙে না আর সবার সঙ্গেই অবিরত ঘটে। আর PSAD-র তথ্যের মূল্য খোদ ঘটনায় নয়, বরং তার মেজাজের বদলে।
কাজের পর্যবেক্ষণ:
- লক্ষ্যভিত্তিক আগ্রহ। সাধারণ স্ক্যানার হাজার হাজার ঠিকানা আর ডজনখানেক জনপ্রিয় পোর্টে টহল দেয়। কিন্তু কেউ সুবিন্যস্তভাবে ঠিক আপনার সার্ভারের পোর্টই ঘাঁটতে থাকলে, অ-আদর্শ পোর্টসহ, তবে সেটা আর পটভূমি নয়;
- নির্দিষ্ট একটা পোর্টের স্ক্যানিং। ডেটাবেস বা কন্ট্রোল প্যানেলের পোর্টে সংস্পর্শ মানে কেউ ঠিক ওই সেবাটিই খুঁজছে — সাধারণত তাতে নতুন কোনো ত্রুটির খবরের পরে;
- চেষ্টার আগে গোয়েন্দাগিরি। স্ক্যানিংয়ে হঠাৎ বৃদ্ধি আর ঘণ্টাখানেক পরে একই পরিসর থেকে পাসওয়ার্ড অনুমান একটা পরিচিত ক্রম, আর তার প্রথম অর্ধেক কিছুটা সময় কিনে দেয়।
আর এসব পর্যবেক্ষণের যেকোনোটির ব্যবহারিক ফল একটাই: যাচাই করুন বাইরের দিকে মুখ করা পোর্টের তালিকা প্রত্যাশার সঙ্গে মেলে আর প্রতিটি পোর্টে যা চলছে তা এমন কিছু যা আপনি এ বছরেই হালনাগাদ করেছেন।
সরঞ্জামের মধ্যে এর জায়গা
PSAD না ফায়ারওয়ালের জায়গা নেয়, না Fail2ban-এর, না কোনো অনুপ্রবেশ শনাক্তকরণ ব্যবস্থার। সে একটা সরু শূন্যস্থান বন্ধ করে — সেসব চেষ্টা যা আর কোথাও চিহ্ন রাখে না কারণ সেগুলো কখনও কোনো অ্যাপ্লিকেশন পর্যন্ত পৌঁছায়ইনি। তার দাম কম, প্রথমবার চালানোর পরে সে ব্যবস্থা ছাড়াই কাজ করে, আর তার সারসংক্ষেপ সেই প্রশ্নের উত্তর দেয় যা নইলে কেউ করে না: সাধারণ পটভূমি ছাড়া আর কেউ কি আপনার সার্ভারে আগ্রহী। ওই সারসংক্ষেপ কেমন দেখায় তা নিচের ডেমো পাতা দেখায়।