CentOS 9-এ Telnet Server ইনস্টল এবং কনফিগার করার প্রক্রিয়া নিচে ধাপে ধাপে দেওয়া হলো। যেহেতু Telnet একটি ইনসিকিউর প্রোটোকল (ডেটা প্লেইন টেক্সট হিসেবে ট্রান্সফার হয়), তাই আধুনিক সিস্টেমে এটি সাধারণত xinetd সার্ভিসের মাধ্যমে পরিচালনা করা হয় যাতে নির্দিষ্ট সময়ে বা প্রয়োজনে সার্ভিসটি চালু থাকে।
ধাপ ১: সিস্টেম আপডেট করুন
ইনস্টলেশন শুরু করার আগে প্যাকেজ লিস্ট আপডেট করে নিন:
Bash
sudo dnf update -y
যাচাই করার পদ্ধতি: sudo dnf check-update কমান্ড চালিয়ে দেখে নিতে পারেন সিস্টেম সম্পূর্ণ আপডেট আছে কিনা।
ধাপ ২: Telnet সার্ভার এবং xinetd ইনস্টল করা
CentOS 9-এ Telnet সার্ভার এবং xinetd ইনস্টল করতে নিচের কমান্ডটি রান করুন:
Bash
sudo dnf install telnet-server xinetd -y
যাচাই করার পদ্ধতি: rpm -qa | grep -E "telnet-server|xinetd" কমান্ড দিয়ে প্যাকেজ দুটি সফলভাবে ইনস্টল হয়েছে কিনা চেক করুন।
ধাপ ৩: xinetd কনফিগারেশন ফাইল তৈরি বা সম্পাদনা করা
Telnet সাধারণত xinetd দ্বারা নিয়ন্ত্রিত হয়। এর জন্য কনফিগারেশন ফাইল তৈরি বা চেক করতে হবে। ১. /etc/xinetd.d/telnet ফাইলটি ওপেন করুন:
Bash
sudo nano /etc/xinetd.d/telnet
২. ফাইলের ভেতরে নিচের কনফিগারেশনটি দিন (যদি না থাকে):
Plaintext
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
}
(এখানে disable = no নিশ্চিত করবে যে Telnet সার্ভিসটি এনাবল আছে।) ফাইলটি সেভ করে বের হয়ে যান (Ctrl+O, তারপর Enter, এরপর Ctrl+X)।
যাচাই করার পদ্ধতি: cat /etc/xinetd.d/telnet কমান্ড চালিয়ে দেখতে পারেন ফাইলের কনফিগারেশন সঠিক আছে কিনা।
ধাপ ৪: ফায়ারওয়াল (Firewall) কনফিগারেশন
CentOS-এর ডিফল্ট ফায়ারওয়ালে Telnet পোর্ট (Port 23) এলাও করতে হবে:
Bash
sudo firewall-cmd --permanent --add-service=telnet
sudo firewall-cmd --reload
যাচাই করার পদ্ধতি: ফায়ারওয়ালে পোর্টটি যুক্ত হয়েছে কিনা দেখতে রান করুন:
Bash
sudo firewall-cmd --list-services
আউটপুটে telnet দেখতে পেলে বুঝবেন এটি সফল হয়েছে।
ধাপ ৫: xinetd সার্ভিস স্টার্ট ও এনাবল করা
এখন xinetd সার্ভিসটি চালু করুন এবং সিস্টেম রিবুট হলেও যেন নিজে থেকে চালু থাকে তা নিশ্চিত করুন:
Bash
sudo systemctl start xinetd
sudo systemctl enable xinetd
যাচাই করার পদ্ধতি: সার্ভিসের স্ট্যাটাস চেক করতে নিচের কমান্ড দিন:
Bash
sudo systemctl status xinetd
স্ট্যাটাস active (running) দেখালে বুঝবেন সবকিছু ঠিকঠাক কাজ করছে।
ধাপ ৬: রুট (Root) দিয়ে লগইন করার সতর্কতা (ঐচ্ছিক)
নিরাপত্তার কারণে ডিফল্টভাবে রুট ইউজারকে Telnet-এ লগইন করতে দেওয়া হয় না। আপনি যদি রুট দিয়ে টেস্ট করতে চান, তবে নিশ্চিত করুন /etc/securetty ফাইলে pts/0, pts/1 ইত্যাদি যোগ করা আছে অথবা সাধারণ কোনো ইউজার অ্যাকাউন্ট দিয়ে লগইন করুন।
সাধারণত সিকিউরিটির জন্য সাধারণ ইউজার দিয়ে কানেক্ট করে পরে su - দিয়ে রুট হওয়া শ্রেয়।
CentOS 9 বা আধুনিক RHEL ভিত্তিক ডিস্ট্রিবিউশনে xinetd প্যাকেজটি এখন আর ডিফল্ট রেপোজিটরিতে সরাসরি উপলব্ধ থাকে না অথবা এর ব্যবহার সম্পূর্ণ অপ্রাসঙ্গিক হয়ে গেছে। আধুনিক সিস্টেমে Telnet সার্ভার বা এজাতীয় সার্ভিসগুলোর পরিবর্তে নিরাপদ প্রোটোকল হিসেবে SSH ব্যবহার করা হয়।
তবে আপনার যদি একান্তই Telnet সার্ভার প্রয়োজন হয়, তবে আধুনিক পদ্ধতিতে সরাসরি systemd ব্যবহার করে Telnet সার্ভিস চালু করতে পারেন।
সমাধান: সরাসরি systemd এর মাধ্যমে Telnet সার্ভার চালু করা
১. প্রথমে প্যাকেজটি ইনস্টল করুন:
Bash
sudo dnf install telnet-server -y
যাচাই করার পদ্ধতি: rpm -qa | grep telnet-server কমান্ড দিয়ে দেখে নিন প্যাকেজটি সফলভাবে ইনস্টল হয়েছে কিনা।
২. Telnet সার্ভিসের জন্য একটি systemd সার্ভিস ফাইল তৈরি করুন:
Bash
sudo nano /etc/systemd/system/telnet.socket
৩. ফাইলের ভেতর নিচের কোডটুকু পেস্ট করুন:
Plaintext
[Unit]
Description=Telnet Socket Service
[Socket]
ListenStream=23
Accept=yes
[Install]
WantedBy=sockets.target
ফাইলটি সেভ করে বের হয়ে যান।
৪. এরপর সার্ভিস ফাইল তৈরি করুন যা কানেকশন হ্যান্ডেল করবে:
Bash
sudo nano /etc/systemd/system/telnet@.service
৫. এই ফাইলের ভেতরে নিচের কনফিগারেশন দিন:
Plaintext
[Service]
ExecStart=-/usr/sbin/in.telnetd
StandardInput=socket
ফাইলটি সেভ করে বের হয়ে যান।
৬. সিস্টেম রিলোড করে Telnet সার্ভিসটি চালু ও এনাবল করুন:
Bash
sudo systemctl daemon-reload
sudo systemctl enable --now telnet.socket
যাচাই করার পদ্ধতি: সার্ভিসটি সচল আছে কিনা দেখতে রান করুন:
Bash
sudo systemctl status telnet.socket
আউটপুটে active (listening) লেখা দেখতে পেলে বুঝবেন এটি সফলভাবে কাজ করছে।
CentOS 9-এ ফায়ারওয়ালের মাধ্যমে Telnet-এর পোর্ট (Port 23/tcp) ওপেন করার জন্য firewalld সার্ভিস ব্যবহার করা হয়। নিচে খুব সহজে এটি কনফিগার করার নিয়ম দেওয়া হলো:
ধাপ ১: ফায়ারওয়ালে Telnet সার্ভিস যুক্ত করা
আপনি চাইলে সরাসরি telnet সার্ভিস অথবা সরাসরি পোর্ট নাম্বার ফায়ারওয়ালে যুক্ত করতে পারেন।
পদ্ধতি ক (সার্ভিস নেম দিয়ে):
Bash
sudo firewall-cmd --permanent --add-service=telnet
পদ্ধতি খ (ডাইরেক্ট পোর্ট নাম্বার দিয়ে – পোর্ট ২৩):
Bash
sudo firewall-cmd --permanent --add-port=23/tcp
(যেকোনো একটি পদ্ধতি অনুসরণ করলেই হবে।)
ধাপ ২: ফায়ারওয়াল রিলোড করা
ফায়ারওয়ালের রুলস আপডেট করার পর তা কার্যকর করতে ফায়ারওয়াল রিলোড করুন:
Bash
sudo firewall-cmd --reload
ধাপ ৩: ফায়ারওয়াল স্ট্যাটাস ও পোর্ট চেক করা
পোর্টটি সফলভাবে ওপেন হয়েছে কিনা তা দেখতে নিচের কমান্ডটি রান করুন:
Bash
sudo firewall-cmd --list-ports
অথবা সমস্ত সার্ভিস দেখতে:
Bash
sudo firewall-cmd --list-services
আউটপুটে telnet অথবা 23/tcp দেখতে পেলে বুঝবেন পোর্টটি সঠিকভাবে ওপেন হয়েছে।
অন্য কোনো কম্পিউটার বা ক্লায়েন্ট মেশিন থেকে আপনার CentOS 9 সার্ভারে Telnet কানেকশন টেস্ট করার নিয়ম নিচে দেওয়া হলো। আপনার ক্লায়েন্ট মেশিনটি লিনাক্স, ম্যাক বা উইন্ডোজ যাই হোক না কেন, নিচের যেকোনো একটি পদ্ধতি অনুসরণ করতে পারেন।
ধাপ ১: ক্লায়েন্ট মেশিনে Telnet ক্লায়েন্ট ইনস্টল করা (প্রয়োজন সাপেক্ষে)
অনেক আধুনিক অপারেটিং সিস্টেমে Telnet ক্লায়েন্ট বাই ডিফল্ট ইনস্টল থাকে না।
- লিনাক্স (Ubuntu/Debian):Bash
sudo apt install telnet -y - লিনাক্স (CentOS/RHEL):Bash
sudo dnf install telnet -y - উইন্ডোজ (Windows): উইন্ডোজের ক্ষেত্রে কমান্ড প্রম্পট (CMD) ওপেন করে সরাসরি Telnet ব্যবহার করতে পারেন। যদি কমান্ড কাজ না করে, তবে
Turn Windows features on or offঅপশনে গিয়ে Telnet Client এনাবল করে নিতে হবে।
ধাপ ২: রিমোট সার্ভার সংযোগ টেস্ট করা
ক্লায়েন্ট মেশিন থেকে টার্মিনাল বা কমান্ড প্রম্পট ওপেন করে নিচের কমান্ডটি রান করুন (এখানে YOUR_SERVER_IP এর জায়গায় আপনার CentOS 9 সার্ভারের আসল আইপি অ্যাড্রেস বসাবেন):
Bash
telnet YOUR_SERVER_IP 23
- সফল হলে: স্ক্রিনে সার্ভারের ওয়েলকাম মেসেজ (যেমন:
CentOS Linux...অথবা লগইন প্রম্পটlogin:) দেখতে পাবেন। - সফলতার যাচাই: স্ক্রিনে
Trying YOUR_SERVER_IP... Connected to YOUR_SERVER_IP.লেখা আসার মানে হলো নেটওয়ার্ক ও ফায়ারওয়াল সফলভাবে পার হয়ে সার্ভার পোর্ট ২৩-এ রেসপন্স করছে।
ধাপ ৩: সার্ভারে লগইন করা
কানেকশন সফল হওয়ার পর আপনার CentOS সার্ভারের কোনো একটি ভ্যালিড ইউজারনেম এবং পাসওয়ার্ড দিয়ে লগইন করতে পারেন।
Connecting To 10.0.2.15…Could not open connection to the host, on port 23: Connect failed
এই ত্রুটি নির্দেশ করে যে উইন্ডোজ মেশিনটি পোর্ট ২৩-এ CentOS সার্ভারের সাথে যোগাযোগ করতে পারছে না। আইপি অ্যাড্রেস 10.0.2.15 সাধারণত ভার্চুয়াল মেশিন (যেমন VirtualBox-এর NAT মোড) বা একটি প্রাইভেট লোকাল ইন্টারফেসের ক্ষেত্রে দেখা যায়, যেখান থেকে সরাসরি হোস্ট বা অন্য কোনো মেশিন থেকে কানেক্ট করা সম্ভব হয় না।
সমস্যাটি সমাধান করতে নিচের ধাপগুলো অনুসরণ করুন:
- আইপি অ্যাড্রেস সঠিক কিনা যাচাই করুনCentOS সার্ভারে টার্মিনালে
ip aবাhostname -Iকমান্ড চালিয়ে নিশ্চিত করুন যে আইপি অ্যাড্রেসটি সত্যিই10.0.2.15নাকি অন্য কিছু (যেমন ব্রিজ মোডের কোনো লোকাল আইপি)।সফলতা যাচাই: সার্ভারের সঠিক লোকাল আইপি (যেমন192.168.x.x) উইন্ডোজের কমান্ড প্রম্পটে ব্যবহার করুন। - ভার্চুয়াল মেশিন নেটওয়ার্ক মোড পরিবর্তন করুন (VirtualBox/VMware হলে)যদি সার্ভারটি VirtualBox-এ চলে এবং নেটওয়ার্ক মোড NAT করা থাকে, তবে বাইরে থেকে পোর্ট ২৩-এ এক্সেস করা যাবে না। এটিকে Bridge Adapter মোডে পরিবর্তন করুন।সফলতা যাচাই: ব্রিজ মোডে পরিবর্তন করার পর CentOS সার্ভার নতুন একটি লোকাল আইপি পাবে, যা দিয়ে উইন্ডোজ থেকে কানেক্ট করা যাবে।
- সার্ভারে Telnet সার্ভিস বা সকেট সচল আছে কিনা চেক করুনCentOS সার্ভারে গিয়ে চেক করুন Telnet সার্ভিস বা সকেটটি রানিং আছে কি না:Bash
sudo systemctl status telnet.socketসফলতা যাচাই: স্ট্যাটাসেactive (listening)লেখা থাকতে হবে।
