কম্পিউটার টিউটোরিয়াল

লিনাক্স সার্ভারে SSH হানিপট (Honeypot) বানিয়ে হ্যাকার ধরা

আপনি যদি কখনো আপনার সার্ভারের অথেন্টিকেশন লগ (authentication logs) দেখেন, তবে জানবেন যে ইন্টারনেটে সংযুক্ত যেকোনো সার্ভার হ্যাকারদের লগইন অটেম্পটের (login attempts) ধারাবাহিক বর্ষণ আন্ডারে থাকে।

আপনার সার্ভার যদি সম্পূর্ণ অজানা একটি হবি সার্ভার (hobby server) হোক, তবুও অটোমেটেড স্ক্রিপ্টগুলো এটাকে খুঁজে বের করবে এবং SSH-র মাধ্যমে ব্রুট-ফোর্স (brute force) করে ভেতর ঢুকতে চেষ্টা করবে। যদিও জটিল পাসওয়ার্ড বা অন্যান্য সিকিউরিটি মেজার ব্যবহার করলে তারা প্রবেশ করতে পারবে না, তবুও সফল হওয়ার সম্ভাবনা সবসময় থাকে।

خوشকিস্মتی থেকে, এই হ্যাকারদের আপনার সার্ভারে ফাঁসিয়ে রাখা এবং তাদের বিচলিত (distract) করা যাতে তারা কোনো অপকার করতে না পারে — এর একটি উপযোগী এবং মজার উপায় আছে।

SSH হানিপট (Honeypot) কী?

সহজ ভাষায়, SSH হানিপট হলো একটি ডিকয় (decoy) — নিচু ফল (low-hanging fruit) মতো দেখাবে যাতে সাইবার অপরাধীদের আকৃষ্ট করে সেটাকে টার্গেট করতে বাধ্য করে। কিন্তু এটি আসলে কোনো টার্গেট নয়, এবং হ্যাকার когда বুঝতে পান তখনই অনেক দেরি হয়ে গেছে।

লিনাক্স সার্ভারে SSH হানিপট (Honeypot) বানিয়ে হ্যাকার ধরা

হানিপট অনেক রূপ নিতে পারে এবং এর অনেক ব্যবহার আছে। কখনো কখনো এটি শুধু একটি বিচলন (distraction), আবার কখনো আক্রমণকারীর তথ্য সংগ্রহের জন্য ব্যবহৃত হয়।

অনেক সরকারি ഏজেন্সি হানিপট ব্যবহার করে অপরাধীদের ধরে — তাদের আক্রমণ করার জন্য লোভন করে, শুধু পরবর্তীতে তাদের ধরে ফেলতে ইন্টেল (intel) সংগ্রহ করতে। কিন্তু হানিপট কোম্পানির সিস্টেম অ্যাডমিনিস্ট্রেটর বা শুধু ফান کے জন্য লিনাক্স সার্ভার চালানোর শौকিনদের দারাও ব্যবহার করতে পারে।

কেন SSH হানিপট ব্যবহার করবেন?

কেউ তাদের সার্ভারে SSH হানিপট ইমপ্লিমেন্ট করতে পারে তার অনেক কারণ আছে। কিছু কেসে আপনি ভবিষ্যতে তাদের কানেকশন ব্লক করার জন্য ব্যবহার করতে পারেন। হয়তো আপনি শুধু তাদের আপনার সিস্টেমের আসল টার্গেট থেকে দূরে রাখতে চান। অথবা শিক্ষামূলক উদ্দেশ্যে: আক্রমণগুলো কীভাবে কাজ করে সেটা শিখতে।

এই গাইডের জন্য, আমরা প্রাথমিকভাবে হানিপটকে একটি বিচলন (distraction) হিসেবে ব্যবহার করছি। বিশেষত, এটি হ্যাকারকে আপনার সার্ভারের আরও ভালনারেবল (vulnerable) অংশগুলোর ওপর আক্রমণ করতে থেকে বিরত রাখবে এবং তাদের ockupied (ব্যস্ত) রাখবে যাতে তারা অন্যের সার্ভার আক্রমণ করতে না পারে।

এবং, কমপক্ষে এই কেসে, এই মেথড দু-একটা হাসির জন্যও ভালো।

SSH-এ আটকে যাওয়া (Trapped in SSH)

মূলত, আমরা যা চাই সেটা হলো: হ্যাকার যখন SSH লগইন ব্রুট-ফোর্স করার চেষ্টা করবে, তখন তাদের আটকে রাখা। এটার কিছু উপায় আছে, কিন্তু সবচেয়ে সহজ একটি হলো: তাদের খুব ধীরে ধীরে একটি খুব লম্বা SSH ব্যানার (banner) পাঠানো।

এভাবে, হ্যাকারের অটোমেটেড স্ক্রিপ্ট ব্যানারের জন্য অপেক্ষা করতে থাকবে। এটি ঘন্টার পর ঘন্টা, না হলে দিন বা সপ্তাহ ধরে চলতে পারে। যেহেতু স্ক্রিপ্টটি অটোমেটেড, হ্যাকার প্রতিবার সেটার ওপর খুব মনোযোগ দেয় না এবং অনেক সময় বीत যাওয়ার পরেই বুঝতে পারবে যে সেটা আটকে গেছে।

একে কখনো কখনো বিনোদনভাবে "SSH tarpit" বলা হয়, কারণ হ্যাকারের স্ক্রিপ্ট তার মাঝপথে আটকে যায় এবং নিজে বের হতে পারে না।

এতে কিছু বেসিক SSH যেজ্ঞান দরকার। আপনি যদি SSH কীভাবে ব্যবহার করতে হয় সেটা না জানেন, তবে এই গাইড দেখুন।

endlessh

এই কাজে আমরা যে প্রোগ্রামটি ব্যবহার করব সেটার নাম endlessh, যা skeeto-র তৈরি।

লিনাক্স সার্ভারে SSH হানিপট (Honeypot) বানিয়ে হ্যাকার ধরা

সার্ভারে লগইন করার পর রিপোজিটরি ক্লোন করুন (git ইনস্টলড থাকতে হবে):

git clone https://github.com/skeeto/endlessh

এখন সেই ডিরেক্টরিতে যান এবং কম্পাইল (compile) করুন:

cd endlessh && make

কম্পাইল করার সময় কিছু এরর আসতে পারে। এর মানে আপনার কোনো ডিপেনডেন্সি মিসিং যা প্রোগ্রাম কম্পাইল করতে লাগে। মিসিং ডিপেনডেন্সিটি চেক করে আপনার ডিস্ট্রিবিউশনের প্যাকেজ ম্যানেজার দিয়ে ইনস্টল করুন।

প্রোগ্রাম কম্পাইল হলে সেটাকে আপনার bin ডিরেক্টরিতে মুভ করুন যাতে এটি আপনার PATH-এ থাকে।

sudo mv endlessh /usr/local/bin

PATH-এ ডিটেক্ট হচ্ছে কিনা চেক করুন:

which endlessh

এটি /usr/local/bin/endlessh পাথ প্রিন্ট করতে হবে। না হলে নিশ্চিত করুন সঠিক ডিরেক্টরিতে মুভ করা হয়েছে।

লিনাক্স সার্ভারে SSH হানিপট (Honeypot) বানিয়ে হ্যাকার ধরা

এখন প্রোগ্রামটিকে একটি সার্ভিস ডিমন (service daemon) বানান যাতে এটি systemd সার্ভিস হিসেবে কাজ করতে পারে।

sudo cp util/endlessh.service /etc/systemd/system/

হोলে সার্ভিসটি এনেবল (enable) করুন যাতে ব্যাকগ্রাউন্ডে চলে।

sudo systemctl enable endlessh
লিনাক্স সার্ভারে SSH হানিপট (Honeypot) বানিয়ে হ্যাকার ধরা

ডিফল্টভাবে endlessh শুধু ১০২৪-এর উপরের পোর্টে কাজ করে, কিন্তু আমরা চাই ডিফল্ট SSH পোর্ট (২২) ব্যবহার করব যাতে হ্যাকারদের ফাঁসানো যায়। এর জন্য সার্ভিস ফাইল এডিট করতে হবে।

এখানে nano ব্যবহার করা হয়েছে, আপনি আপনার পছন্দের টেক্সট এডিটর ব্যবহার করতে পারেন।

sudo nano /etc/systemd/system/endlessh.service

ফাইল খুললে নিচের লাইনটি আনকমেন্ট (uncomment) করুন (# চিহ্ন মুছে দিন):

#AmbientCapabilities=CAP_NET_BIND_SERVICE

এবং এই লাইনের শুরুতে # যোগ করুন:

PrivateUsers=true
লিনাক্স সার্ভারে SSH হানিপট (Honeypot) বানিয়ে হ্যাকার ধরা

ফাইল সেভ করে এই কমান্ড চালান:

sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/endlessh

এখন endlessh কনফিগারেশন ফাইল তৈরি করুন যাতে এটি বুঝতে পারে কোন পোর্টে চলবে। önce ডিরেক্টরি বানান, তারপর কনফিগ ফাইল।

sudo mkdir -p /etc/endlessh && sudo vim /etc/endlessh/config

কনফিগ ফাইলে শুধু এক লাইন থাকবে। এটি endlessh-কে বলবে পোর্ট ২২-এ চলতে — যেটা SSH-এর ডিফল্ট পোর্ট। আমরা এটা করছি যাতে হ্যাকারদের কাছে এটি আরও আকর্ষণীয় লাগে। তারা ডিফল্ট SSH পোর্ট খোলা দেখে সেটাকে ভাঙতে চেষ্টা করবে।

কনফিগ ফাইলে নিচের লাইনটি লিখুন:

Port 22
লিনাক্স সার্ভারে SSH হানিপট (Honeypot) বানিয়ে হ্যাকার ধরা

এখন endlessh সার্ভিস চালু করুন:

sudo systemctl start endlessh

বस! এখন আপনার ডিফল্ট SSH পোর্টে endlessh চলছে এবং ইতিমধ্যে হ্যাকারদের ফাঁসাচ্ছে।

টেস্ট করা (Testing It Out)

হানিপট ঠিকমতো কাজ করছে কিনা দেখতে একটু হ্যাকার বানিয়া আপনার সার্ভারের SSH-এ অ্যাক্সেস পাওয়ার চেষ্টা করুন।

ssh root@

সবকিছু ঠিক থাকলে দেখবেন ssh কমান্ডটি আটকে আছে এবং কিছুই করছে না। আসলে কী হচ্ছে সেটা দেখতে একই কমান্ডে -vvv ফ্ল্যাগ যোগ করুন (verbose mode)।

ssh -vvv root@
লিনাক্স সার্ভারে SSH হানিপট (Honeypot) বানিয়ে হ্যাকার ধরা

এখন বুঝতে পারবেন এই ছোট টুলটি কীভাবে আপনাকে (বা আসলে হ্যাকারকে) আটকে রেখেছে এবং আপনার সার্ভারের SSH-এ অ্যাক্সেস করতে দিচ্ছে না। এটি লাইন বাই লাইন খুব ধীরে একটি বিশাল SSH ব্যানার ক্লায়েন্টকে পাঠাচ্ছে।

এবং অবশ্যই, যেহেতু হ্যাকারের এটি একটি বট (bot) দিয়ে অটোমেটেড, তারা ঘন্টার পর ঘন্টা, না হলে দিনღনে তাদের সময় বিল mëরানো পর্যন্ত এটা বুঝতে পারবে না।

প্রশ্নোত্তর (FAQ)

১. এটি কি হ্যাকারদের SSH অ্যাক্সেস থেকে সম্পূর্ণ রক্ষা দেবে?

এটি একটি ভালো প্রতিরোধক (deterrent) হলেও, হ্যাকারদের সম্পূর্ণ রক্ষা দেওয়ার গ্যারান্টি দেয় না। একজন মনোযোগী হ্যাকার শেষ পর্যন্ত বুঝতে পারবে যে আপনি আপনার সার্ভারে হানিপট বানিয়েছেন এবং SSH অ্যাক্সেসের জন্য অন্য পোর্ট স্ক্যান করতে পারে।

তবে, শুধু "নিচু ফল" খুঁজে বের করতে वालো হ্যাকারদের বিরুদ্ধে এটা যথেষ্ট কার্যকর।

২. এই প্রোগ্রাম ডিফল্ট পোর্টে চললে আমি SSH কীভাবে ব্যবহার করব?

আপনাকে SSH-এর পোর্ট চেঞ্জ করতে হবে। হানিপট না থাকলেও এটি ভালো অভ্যাস (good practice), কারণ হ্যাকাররা সবসময় ডিফল্ট পোর্টগুলো প্রথমে ট্রাই করে, তারপর অন্য পোর্ট স্ক্যান করে।

৩. কনফিগ ফাইলে আর কোনো অপশন যোগ করা যায় কি?

হ্যাঁ, আরও অনেক সেটিং চেঞ্জ করা যায়, যেনে ডिले স্পিড (delay speed) চেঞ্জ করা। GitHub রিপোজিটরির স্যাম্পল কনফিগারেশন ফাইলে অপশন লিস্ট আছে।

শেষ কথা

এখন আপনি শিখেছেন কীভাবে আপনার সার্ভারে হানিপট সেটআপ করে হ্যাকারদের ফাঁসিয়ে তাদের বিচলিত রাখবেন যাতে তারা আর কিছু আক্রমণ করতে না পারে। কিন্তু SSH অ্যাক্সেস সিকিউর করার এটি একমাত্র উপায় নয়।

এনক্রিপশন কী (encryption keys) ব্যবহার করে SSH-এ লগইন করার এই আর্টিকেল দেখে আপনার সার্ভার আরও সিকিউর করুন।

  1. লিনাক্স পিসি দ্রুত করার উপায়

  2. লিনাক্স হোম সার্ভার সিকিউর করুন

  3. রিভার্স SSH টানেল ব্যবহার করে আপনার PC-এ এক্সটার্নাল কানেকশন অনুমতি দেওয়ার পদ্ধতি

  4. আপনার ডিসকোর্ড সার্ভারে কাস্টম ইমোজি তৈরি এবং যোগ করার পদ্ধতি