নেটওয়ার্কিং এবং রিমোট অ্যাক্সেস
নেটওয়ার্কিং এবং রিমোট অ্যাক্সেস লিনাক্স এবং ইউনিক্স সিস্টেমগুলিতে খুবই গুরুত্বপূর্ণ। নেটওয়ার্কিং সিস্টেমের এক বা একাধিক কম্পিউটারকে সংযোগ করার প্রক্রিয়া এবং রিমোট অ্যাক্সেস হল একটি সিস্টেম বা সার্ভারে দূরবর্তী অবস্থান থেকে অ্যাক্সেস করার প্রক্রিয়া। সিস্টেম প্রশাসকরা এবং ব্যবহারকারীরা অনেক সময় তাদের সিস্টেমের রিমোট অ্যাক্সেসের মাধ্যমে কাজ পরিচালনা করে থাকেন।
নেটওয়ার্কিং (Networking)
নেটওয়ার্কিং হল দুটি বা তার বেশি কম্পিউটার বা ডিভাইসকে সংযোগ করার প্রক্রিয়া, যা তাদের একে অপরের সাথে তথ্য আদান-প্রদান করতে সক্ষম করে। লিনাক্স/ইউনিক্স সিস্টেমে নেটওয়ার্কিং কনফিগারেশন এবং মনিটরিং করার জন্য অনেক টুলস এবং কমান্ড রয়েছে। কিছু গুরুত্বপূর্ণ ধারণা এবং কমান্ড হলো:
1. IP ঠিকানা চেক করা (Check IP Address)
নেটওয়ার্কের একটি গুরুত্বপূর্ণ অংশ হল IP ঠিকানা, যা আপনার সিস্টেমের জন্য একটি অনন্য সনাক্তকারী হিসেবে কাজ করে। IP ঠিকানা দেখার জন্য ip বা ifconfig কমান্ড ব্যবহার করা যেতে পারে।
ipকমান্ড:ip addr showifconfigকমান্ড:ifconfig
এগুলি আপনার সিস্টেমের IP ঠিকানা, সাবনেট মাস্ক, এবং অন্যান্য নেটওয়ার্ক সম্পর্কিত তথ্য প্রদর্শন করবে।
2. নেটওয়ার্ক কনফিগারেশন সম্পাদনা (Edit Network Configuration)
লিনাক্সে নেটওয়ার্ক কনফিগারেশন ফাইল সাধারণত /etc/network/interfaces (Debian/Ubuntu) অথবা /etc/sysconfig/network-scripts/ifcfg-eth0 (CentOS/Red Hat) ফাইলে সংরক্ষিত থাকে। এখানে আপনি IP ঠিকানা, DNS এবং অন্যান্য নেটওয়ার্ক সেটিংস কনফিগার করতে পারেন।
Ubuntu/Debian-এ নেটওয়ার্ক কনফিগারেশন উদাহরণ:
sudo nano /etc/network/interfacesএখানে আপনি IP অ্যাড্রেস স্ট্যাটিক বা DHCP কনফিগারেশন সেট করতে পারবেন।
3. নেটওয়ার্ক পিং (Ping Network)
নেটওয়ার্কের মাধ্যমে একটি ডিভাইসের সংযোগ পরীক্ষা করতে ping কমান্ড ব্যবহার করা হয়। এটি প্রেরিত প্যাকেটের প্রতিক্রিয়া সময় পরিমাপ করে।
ব্যবহার:
ping [IP ঠিকানা বা ডোমেইন নাম]যেমন:
ping google.com
এটি গুগল সাইটের সাথে সংযোগ পরীক্ষা করবে এবং প্রতিক্রিয়া সময় দেখাবে।
4. নেটওয়ার্ক রুট ট্রেস (Trace Network Route)
traceroute কমান্ড নেটওয়ার্কে প্যাকেট কোথা থেকে যাচ্ছে তার রুট ট্রেস করতে ব্যবহৃত হয়। এটি সিস্টেমের থেকে গন্তব্য সার্ভারের মধ্যে বিভিন্ন রাউটারের পাথ প্রদর্শন করে।
ব্যবহার:
traceroute [IP ঠিকানা বা ডোমেইন নাম]
রিমোট অ্যাক্সেস (Remote Access)
রিমোট অ্যাক্সেস হল দূরবর্তী অবস্থান থেকে একটি সিস্টেমে প্রবেশ এবং তার সাথে ইন্টারঅ্যাক্ট করার প্রক্রিয়া। লিনাক্স/ইউনিক্স সিস্টেমে রিমোট অ্যাক্সেসের জন্য বিভিন্ন টুলস এবং প্রোটোকল ব্যবহার করা হয়। এর মধ্যে অন্যতম হলো SSH (Secure Shell), যা নিরাপদভাবে সিস্টেমে রিমোট লগইন এবং কমান্ড এক্সিকিউট করার জন্য ব্যবহৃত হয়।
1. SSH (Secure Shell)
SSH হল একটি নিরাপদ প্রোটোকল যা রিমোট সিস্টেমে লগইন করার জন্য ব্যবহৃত হয়। এটি পাসওয়ার্ড এবং ডেটা এনক্রিপ্ট করে, তাই সুরক্ষিতভাবে দূরবর্তী সিস্টেমে অ্যাক্সেস করা যায়।
SSH সার্ভার ইনস্টল করা:
Ubuntu/Debian:sudo apt install openssh-serverCentOS/RHEL:
sudo yum install openssh-serverSSH সার্ভার শুরু করা:
sudo systemctl start sshSSH ক্লায়েন্টের মাধ্যমে রিমোট সিস্টেমে লগইন করা:
ssh [ব্যবহারকারী নাম]@[IP ঠিকানা]উদাহরণ:
ssh john@192.168.1.10
এটি আপনার সিস্টেমের IP ঠিকানা ব্যবহার করে রিমোট সিস্টেমে লগইন করবে।
2. SSH কী জেনারেট করা (Generate SSH Keys)
SSH পাসওয়ার্ডের পরিবর্তে SSH কী ব্যবহার করে সুরক্ষিতভাবে লগইন করা যায়। এটি একটি পাবলিক এবং প্রাইভেট কী পেয়ার তৈরি করে, যা নিরাপদ এবং দ্রুত লগইন করতে সাহায্য করে।
SSH কী জেনারেট করা:
ssh-keygen -t rsaপাবলিক কী রিমোট সিস্টেমে কপি করা:
ssh-copy-id [ব্যবহারকারী নাম]@[IP ঠিকানা]
এটি আপনার পাবলিক SSH কী রিমোট সিস্টেমে কপি করবে, যাতে আপনি ভবিষ্যতে পাসওয়ার্ড ছাড়া লগইন করতে পারেন।
3. SCP (Secure Copy)
SCP ব্যবহার করে আপনি SSH প্রোটোকল ব্যবহার করে একটি ফাইল এক সিস্টেম থেকে অন্য সিস্টেমে কপি করতে পারেন।
ব্যবহার:
scp [ফাইল নাম] [ব্যবহারকারী নাম]@[IP ঠিকানা]:[গন্তব্য পথ]যেমন:
scp myfile.txt john@192.168.1.10:/home/john/
এটি myfile.txt ফাইলটি রিমোট সিস্টেমে /home/john/ ডিরেক্টরিতে কপি করবে।
4. VNC (Virtual Network Computing)
VNC হল একটি গ্রাফিক্যাল ডেস্কটপ শেয়ারিং সিস্টেম, যা দূরবর্তী সিস্টেমে গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) অ্যাক্সেস দেয়। VNC ব্যবহার করে আপনি রিমোট সিস্টেমের ডেস্কটপকে দেখতে এবং পরিচালনা করতে পারেন।
VNC ইনস্টল করা:
Ubuntu/Debian:sudo apt install tightvncserverCentOS/RHEL:
sudo yum install tigervnc-serverVNC সার্ভার চালু করা:
vncserver
এটি রিমোট সিস্টেমে GUI অ্যাক্সেসের জন্য একটি VNC সার্ভার চালু করবে, যা আপনি ক্লায়েন্টের মাধ্যমে ব্যবহার করতে পারবেন।
সারসংক্ষেপ
- নেটওয়ার্কিং হল দুটি বা তার বেশি সিস্টেমকে সংযুক্ত করে তথ্য আদান-প্রদান করার প্রক্রিয়া। এটি IP অ্যাড্রেস, রাউটিং, DNS, DHCP, এবং অন্যান্য নেটওয়ার্ক প্রোটোকল ব্যবহৃত করে।
- রিমোট অ্যাক্সেস ব্যবহারকারীদের একটি সিস্টেমে দূরবর্তী অবস্থান থেকে অ্যাক্সেস প্রদান করে। এটি SSH, SCP, VNC ইত্যাদি প্রোটোকল দ্বারা করা হয়।
- SSH হল একটি নিরাপদ রিমোট অ্যাক্সেস প্রোটোকল, যা পাসওয়ার্ড এবং ডেটা এনক্রিপ্ট করে সুরক্ষিতভাবে সিস্টেমে লগইন করতে সাহায্য করে।
- SCP এবং VNC ব্যবহার করে আপনি ফাইল কপি এবং গ্রাফিক্যাল ডেস্কটপ অ্যাক্সেস করতে পারেন।
এই টুলস এবং প্রোটোকলগুলি সিস্টেম প্রশাসন এবং সুরক্ষিত রিমোট অ্যাক্সেস নিশ্চিত করতে সাহায্য করে।
নেটওয়ার্ক সেটআপ এবং কনফিগারেশন
নেটওয়ার্ক সেটআপ এবং কনফিগারেশন হল সিস্টেমে ইন্টারনেট বা লোকাল নেটওয়ার্কের সাথে সংযোগ স্থাপন ও ব্যবস্থাপনার প্রক্রিয়া। এটি সিস্টেমের বিভিন্ন নেটওয়ার্কিং উপাদান (যেমন IP ঠিকানা, DNS, গেটওয়ে, সাবনেট মাস্ক) কনফিগার করতে এবং সিস্টেমের মধ্যে যোগাযোগ সক্ষম করতে ব্যবহৃত হয়।
এখানে LINUX/UNIX সিস্টেমে নেটওয়ার্ক সেটআপ এবং কনফিগারেশনের জন্য সাধারণ ধাপ এবং কমান্ডের আলোচনা করা হয়েছে।
১. নেটওয়ার্ক কনফিগারেশন ফাইল
LINUX এবং UNIX সিস্টেমে নেটওয়ার্ক কনফিগারেশন ফাইলগুলি সাধারণত /etc/network/ বা /etc/sysconfig/network-scripts/ ডিরেক্টরিতে থাকে।
এছাড়া, বেশ কিছু সিস্টেমে /etc/hostname (হোস্টনেম সেটিং), /etc/resolv.conf (DNS কনফিগারেশন), এবং /etc/hosts (লোকাল হোস্ট কনফিগারেশন) ফাইলগুলো নেটওয়ার্ক কনফিগারেশনের জন্য ব্যবহৃত হয়।
২. নেটওয়ার্ক ইন্টারফেস কনফিগারেশন
নেটওয়ার্ক ইন্টারফেসগুলি (যেমন eth0, wlan0) কনফিগার করার জন্য সিস্টেমে একটি ফাইল বা কনফিগারেশন টুল ব্যবহার করা হয়। এখানে বিভিন্ন পদ্ধতিতে ইন্টারফেস কনফিগার করার জন্য কমান্ড ব্যবহার করা হবে।
২.১ ifconfig কমান্ড: নেটওয়ার্ক ইন্টারফেস কনফিগারেশন
ifconfig হল একটি পুরানো এবং জনপ্রিয় কমান্ড যা নেটওয়ার্ক ইন্টারফেস কনফিগার করতে ব্যবহৃত হয়।
কমান্ড উদাহরণ:
নেটওয়ার্ক ইন্টারফেসের তথ্য দেখানো:
ifconfigনতুন IP ঠিকানা সেট করা:
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 upএটি
eth0ইন্টারফেসে IP ঠিকানা192.168.1.100এবং সাবনেট মাস্ক255.255.255.0সেট করবে।নেটওয়ার্ক ইন্টারফেস বন্ধ করা:
sudo ifconfig eth0 downনেটওয়ার্ক ইন্টারফেস চালু করা:
sudo ifconfig eth0 up
২.২ ip কমান্ড: আধুনিক নেটওয়ার্ক কনফিগারেশন
ip কমান্ডটি বর্তমানে ifconfig কমান্ডের পরিবর্তে ব্যবহার করা হচ্ছে, কারণ এটি আরও শক্তিশালী এবং আধুনিক।
কমান্ড উদাহরণ:
নেটওয়ার্ক ইন্টারফেসের তথ্য দেখানো:
ip addr showIP ঠিকানা সেট করা:
sudo ip addr add 192.168.1.100/24 dev eth0নেটওয়ার্ক ইন্টারফেস বন্ধ করা:
sudo ip link set eth0 downনেটওয়ার্ক ইন্টারফেস চালু করা:
sudo ip link set eth0 up
৩. গেটওয়ে এবং DNS কনফিগারেশন
নেটওয়ার্ক গেটওয়ে এবং DNS (ডোমেইন নাম সিস্টেম) সঠিকভাবে কনফিগার না থাকলে সিস্টেম ইন্টারনেট বা অন্যান্য নেটওয়ার্ক রিসোর্স অ্যাক্সেস করতে পারবে না। এই কনফিগারেশনটি /etc/network/interfaces, /etc/resolv.conf, বা /etc/sysconfig/network-scripts/ ফাইলের মাধ্যমে করা হয়।
৩.১ গেটওয়ে কনফিগারেশন
গেটওয়ে হল একটি নোড যা আপনার নেটওয়ার্ককে অন্য নেটওয়ার্কের সাথে সংযুক্ত করে। এটি সাধারণত রাউটার বা ব্রিজ হিসেবে কাজ করে।
কমান্ড উদাহরণ:
sudo route add default gw 192.168.1.1এই কমান্ডটি গেটওয়ে IP ঠিকানা 192.168.1.1 সেট করবে।
৩.২ DNS কনফিগারেশন
DNS সেটিং /etc/resolv.conf ফাইলে করা হয়। এখানে DNS সার্ভারের IP ঠিকানা নির্ধারণ করা হয়।
কমান্ড উদাহরণ:
DNS সার্ভার সেট করা:
sudo nano /etc/resolv.confফাইলে নিম্নলিখিত কনফিগারেশন যুক্ত করুন:
nameserver 8.8.8.8 nameserver 8.8.4.4
এখানে, 8.8.8.8 এবং 8.8.4.4 হল গুগলের পাবলিক DNS সার্ভার।
৪. নেটওয়ার্ক স্ট্যাটাস চেক করা
নেটওয়ার্কের সাথে সংযোগ সঠিকভাবে আছে কিনা, তা যাচাই করতে বিভিন্ন টুল ব্যবহার করা হয়।
৪.১ ping কমান্ড: সংযোগ যাচাই
ping কমান্ড ব্যবহার করে আপনি একটি IP ঠিকানা বা ডোমেইন নামের সাথে সংযোগ যাচাই করতে পারেন।
কমান্ড উদাহরণ:
ping 8.8.8.8এটি Google's DNS server এর সাথে সংযোগ পরীক্ষণ করবে।
৪.২ traceroute কমান্ড: ট্রেসিং রুট
traceroute কমান্ড ব্যবহার করে আপনি নির্দিষ্ট একটি নেটওয়ার্ক রাউট বা ডোমেইন নামের জন্য রাউটিং পাথ দেখতে পারেন।
কমান্ড উদাহরণ:
traceroute google.com৫. DHCP কনফিগারেশন
DHCP (Dynamic Host Configuration Protocol) একটি প্রোটোকল যা সিস্টেমে স্বয়ংক্রিয়ভাবে IP ঠিকানা এবং অন্যান্য নেটওয়ার্ক কনফিগারেশন প্রদান করে।
৫.১ DHCP সিস্টেম কনফিগারেশন
DHCP সার্ভারের সাথে সংযোগ স্থাপন:
sudo dhclient eth0এটি
eth0ইন্টারফেসে DHCP সার্ভার থেকে IP ঠিকানা এবং অন্যান্য নেটওয়ার্ক কনফিগারেশন গ্রহণ করবে।
৬. নেটওয়ার্ক ইনটারফেস কনফিগারেশন ফাইল
Ubuntu/Debian-এর জন্য নেটওয়ার্ক কনফিগারেশন ফাইল সাধারণত /etc/network/interfaces এ থাকে। এই ফাইলটি সম্পাদনা করে স্ট্যাটিক বা DHCP কনফিগারেশন করা যায়।
ফাইল উদাহরণ:
# Static IP configuration
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
# DHCP configuration
iface eth0 inet dhcpRHEL/CentOS/Fedora-এ নেটওয়ার্ক কনফিগারেশন সাধারণত /etc/sysconfig/network-scripts/ifcfg-eth0 ফাইলে থাকে।
সারসংক্ষেপ
- নেটওয়ার্ক কনফিগারেশন:
ifconfigবাipকমান্ড দিয়ে IP ঠিকানা, সাবনেট মাস্ক এবং নেটওয়ার্ক ইন্টারফেস কনফিগার করা হয়। - গেটওয়ে এবং DNS কনফিগারেশন:
/etc/resolv.confফাইল ব্যবহার করে DNS সার্ভার সেট করা হয় এবং গেটওয়ে কনফিগার করার জন্যrouteকমান্ড ব্যবহার করা হয়। - নেটওয়ার্ক স্ট্যাটাস চেক:
pingএবংtracerouteকমান্ডের মাধ্যমে নেটওয়ার্ক সংযোগ এবং পাথ পরীক্ষা করা যায়। - DHCP: DHCP সার্ভার থেকে IP ঠিকানা অটোমেটিকভাবে পেতে
dhclientব্যবহার করা হয়।
IP অ্যাড্রেস, ifconfig, এবং ip কমান্ড
IP অ্যাড্রেস হল একটি ইউনিক আইডেন্টিফিকেশন নম্বর যা একটি নেটওয়ার্কে থাকা ডিভাইসকে চিহ্নিত করতে ব্যবহৃত হয়। একটি ডিভাইস যেমন একটি কম্পিউটার বা স্মার্টফোন একটি IP অ্যাড্রেস ব্যবহার করে নেটওয়ার্কে যোগাযোগ করে। UNIX এবং LINUX সিস্টেমে নেটওয়ার্ক সংযোগ এবং কনফিগারেশন পরিচালনার জন্য বেশ কিছু কমান্ড রয়েছে, যার মধ্যে ifconfig এবং ip অন্যতম।
১. IP অ্যাড্রেস
IP অ্যাড্রেসের দুটি প্রধান ধরনের সংস্করণ রয়েছে:
- IPv4 (Internet Protocol Version 4): 32-বিট অ্যাড্রেস (যেমন
192.168.1.1) - IPv6 (Internet Protocol Version 6): 128-বিট অ্যাড্রেস (যেমন
fe80::a00:27ff:fe12:34a7)
IPv4 অ্যাড্রেস সাধারণত ডট-ডেসিমেল ফরম্যাটে লেখা হয়, যেমন 192.168.1.1, যেখানে চারটি সংখ্যা থাকে (প্রতিটি ০ থেকে ২৫৫ এর মধ্যে)। IPv6 অ্যাড্রেসের মধ্যে আটটি ১৬-বিট সংখ্যা থাকে যা হেক্সাডেসিমেল ফরম্যাটে লিখিত থাকে।
২. ifconfig কমান্ড (Deprecated)
ifconfig (interface configuration) কমান্ডটি ব্যবহৃত হয় একটি নেটওয়ার্ক ইন্টারফেসের কনফিগারেশন দেখার জন্য বা সেট করার জন্য। এটি একটি পুরোনো এবং deprecated কমান্ড, এবং নতুন সিস্টেমে ip কমান্ডটি এটি প্রতিস্থাপন করেছে। তবে, অনেক পুরনো সিস্টেমে এখনও এটি ব্যবহার করা হয়।
সিনট্যাক্স:
ifconfig [interface]কমান্ড উদাহরণ:
নেটওয়ার্ক ইন্টারফেসের তথ্য দেখতে:
ifconfigএটি সমস্ত নেটওয়ার্ক ইন্টারফেসের বর্তমান কনফিগারেশন দেখাবে।
একটি নির্দিষ্ট ইন্টারফেসের তথ্য দেখতে:
ifconfig eth0এখানে
eth0হলো একটি নেটওয়ার্ক ইন্টারফেসের নাম, এবং এটি তার আইপি অ্যাড্রেস, ম্যাক অ্যাড্রেস, প্যাকেট এবং বাইট পরিসংখ্যান দেখাবে।নতুন আইপি অ্যাড্রেস সেট করা:
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 upএখানে
eth0ইন্টারফেসে192.168.1.100আইপি অ্যাড্রেস সেট করা হয়েছে এবং সঠিক netmask দেওয়া হয়েছে।নেটওয়ার্ক ইন্টারফেস বন্ধ করা:
sudo ifconfig eth0 downনেটওয়ার্ক ইন্টারফেস চালু করা:
sudo ifconfig eth0 up
৩. ip কমান্ড
ip কমান্ডটি আধুনিক প্যাকেজ ম্যানেজমেন্ট টুল হিসেবে কাজ করে এবং এটি ifconfig এর পরিবর্তে বর্তমানে ব্যবহৃত হয়। ip কমান্ডটি বিভিন্ন নেটওয়ার্ক কনফিগারেশন এবং পরিচালনা কাজের জন্য আরও ক্ষমতাশালী এবং আধুনিক।
সিনট্যাক্স:
ip [options] [command] [parameters]কমান্ড উদাহরণ:
বর্তমান নেটওয়ার্ক কনফিগারেশন দেখতে:
ip addr showএটি সমস্ত নেটওয়ার্ক ইন্টারফেসের আইপি অ্যাড্রেস এবং সম্পর্কিত তথ্য দেখাবে।
একটি নির্দিষ্ট ইন্টারফেসের তথ্য দেখতে:
ip addr show eth0এখানে
eth0একটি নেটওয়ার্ক ইন্টারফেস এবং এটি এর বর্তমান আইপি অ্যাড্রেস এবং অন্যান্য তথ্য দেখাবে।নতুন আইপি অ্যাড্রেস সেট করা:
sudo ip addr add 192.168.1.100/24 dev eth0এখানে
eth0ইন্টারফেসে192.168.1.100আইপি অ্যাড্রেস যুক্ত করা হয়েছে এবং/24দ্বারা সাবনেট মাস্ক নির্ধারণ করা হয়েছে।আইপি অ্যাড্রেস মুছে ফেলা:
sudo ip addr del 192.168.1.100/24 dev eth0এটি
eth0ইন্টারফেস থেকে192.168.1.100আইপি অ্যাড্রেস মুছে ফেলবে।নেটওয়ার্ক ইন্টারফেস চালু করা:
sudo ip link set eth0 upনেটওয়ার্ক ইন্টারফেস বন্ধ করা:
sudo ip link set eth0 downনেটওয়ার্ক রাউটিং টেবিল দেখতে:
ip route showনতুন রাউটিং এন্ট্রি যোগ করা:
sudo ip route add default via 192.168.1.1এটি ডিফল্ট রাউটার
192.168.1.1যোগ করবে।
সারসংক্ষেপ
| অপারেশন | ifconfig (Deprecated) | ip (Modern) |
|---|---|---|
| আইপি অ্যাড্রেস দেখানো | ifconfig | ip addr show |
| নতুন আইপি অ্যাড্রেস সেট করা | sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 | sudo ip addr add 192.168.1.100/24 dev eth0 |
| নেটওয়ার্ক ইন্টারফেস চালু করা | sudo ifconfig eth0 up | sudo ip link set eth0 up |
| নেটওয়ার্ক ইন্টারফেস বন্ধ করা | sudo ifconfig eth0 down | sudo ip link set eth0 down |
| রাউটিং টেবিল দেখানো | ifconfig (কোনও রাউটিং টেবিল দেখানোর জন্য নয়) | ip route show |
ip কমান্ড আধুনিক এবং শক্তিশালী, এবং এটি অনেক বেশি ফিচারযুক্ত, যেমন রাউটিং টেবিল পরিচালনা, নেটওয়ার্ক ডিভাইসের কনফিগারেশন ইত্যাদি। তাই, নতুন সিস্টেমে ip কমান্ড ব্যবহৃত হয়, তবে পুরনো সিস্টেমে ifconfig ব্যবহার করা হতে পারে।
রিমোট অ্যাক্সেস: ssh এবং এর ব্যবহার
SSH (Secure Shell) একটি প্রোটোকল যা রিমোট সিস্টেমে নিরাপদভাবে অ্যাক্সেস প্রদান করে। এটি মূলত কমান্ড-লাইন ভিত্তিক একটি টুল যা দূরবর্তী কম্পিউটার বা সার্ভারে লগইন এবং কমান্ড চালানোর জন্য ব্যবহৃত হয়। SSH একটি নিরাপদ পদ্ধতি, কারণ এটি ইন্টারনেটের মাধ্যমে ডেটা এনক্রিপ্ট করে পাঠায়, যা কোনো তৃতীয় পক্ষের দ্বারা অবৈধভাবে ডেটা গ্রহণ বা পরিবর্তন করার ঝুঁকি কমিয়ে দেয়।
1. SSH কী এবং কেন এটি ব্যবহৃত হয়?
SSH (Secure Shell) হলো একটি প্রোটোকল যা রিমোট কম্পিউটার বা সার্ভারের সাথে নিরাপদ যোগাযোগ প্রতিষ্ঠা করতে ব্যবহৃত হয়। এটি কমান্ড লাইনের মাধ্যমে সিস্টেম অ্যাডমিনিস্ট্রেশন কাজ বা অন্যান্য ফাইল ট্রান্সফার পরিচালনা করার জন্য নিরাপদ পদ্ধতি প্রদান করে।
SSH ব্যবহারের প্রধান সুবিধাগুলি হলো:
- নিরাপত্তা: SSH এনক্রিপশন ব্যবহার করে, যা ডেটা স্থানান্তরের সময় নিরাপত্তা নিশ্চিত করে।
- সক্ষমতা: SSH ব্যবহার করে আপনি দূরবর্তী সিস্টেমে লগইন করতে পারেন এবং সেখান থেকে কোনো কাজ চালাতে পারেন।
- আধুনিক প্রোটোকল: পাসওয়ার্ড সুরক্ষা ছাড়াও পাবলিক কী এবং প্রাইভেট কী এর মাধ্যমে আরও নিরাপদ লগইন নিশ্চিত করা যায়।
2. ssh কমান্ডের মৌলিক ব্যবহার
SSH কমান্ডের মাধ্যমে রিমোট সিস্টেমে লগইন করা হয়। এটি সাধারণত নিম্নলিখিত সিনট্যাক্সে ব্যবহৃত হয়:
ssh [username]@[hostname][username]: দূরবর্তী সিস্টেমে লগইন করার জন্য আপনার ব্যবহারকারীর নাম।[hostname]: রিমোট সিস্টেমের IP অ্যাড্রেস বা ডোমেইন নাম।
উদাহরণ:
ssh user@192.168.1.100এই কমান্ডটি 192.168.1.100 আইপি ঠিকানাযুক্ত রিমোট সিস্টেমে user ব্যবহারকারী হিসেবে লগইন করবে।
যদি আপনি প্রথমবার SSH ব্যবহার করেন, তবে SSH হোস্টের কী আপনাকে প্রমাণ করতে হবে। আপনি yes দিয়ে এগিয়ে যেতে পারেন, এরপর আপনার পাসওয়ার্ড প্রবেশ করালে আপনি সিস্টেমে লগইন হতে পারবেন।
3. SSH পাসওয়ার্ড ছাড়া লগইন (পাবলিক-কি অথেনটিকেশন)
পাসওয়ার্ড ছাড়া SSH লগইন সেটআপ করতে পাবলিক-কি অথেনটিকেশন ব্যবহার করা হয়, যা অধিক নিরাপদ। এর জন্য আপনাকে একটি পাবলিক কী এবং প্রাইভেট কী জেনারেট করতে হবে এবং সেগুলি দূরবর্তী সিস্টেমে কপি করতে হবে।
৩.১: SSH কী জেনারেট করা
প্রথমে আপনার লোকাল মেশিনে একটি পাবলিক-প্রাইভেট কী পেয়ার জেনারেট করুন:
ssh-keygen -t rsaএটি একটি RSA কী পেয়ার তৈরি করবে। আপনাকে কিপ্যাথ (ফাইলের নাম) এবং পাসফ্রেজ প্রদান করতে বলা হবে, যা নিরাপত্তা বাড়ায়।
৩.২: পাবলিক কী রিমোট মেশিনে কপি করা
এখন আপনাকে আপনার পাবলিক কী রিমোট মেশিনে কপি করতে হবে, যাতে আপনি পাসওয়ার্ড ছাড়া SSH লগইন করতে পারেন। এর জন্য ssh-copy-id কমান্ড ব্যবহার করা হয়:
ssh-copy-id user@192.168.1.100এটি আপনার পাবলিক কী রিমোট মেশিনের ~/.ssh/authorized_keys ফাইলে যুক্ত করবে।
৩.৩: SSH পাসওয়ার্ড ছাড়া লগইন
এখন আপনি পাসওয়ার্ড ছাড়া SSH মাধ্যমে রিমোট সিস্টেমে লগইন করতে পারবেন:
ssh user@192.168.1.100এটি আপনার প্রাইভেট কী ব্যবহার করবে এবং সিস্টেমে লগইন করবে, যদি আপনার কী পেয়ার সঠিকভাবে সেট করা থাকে।
4. SSH এর বিভিন্ন অপশন
ssh কমান্ডে কিছু অতিরিক্ত অপশন রয়েছে, যা বিশেষ পরিস্থিতিতে ব্যবহার করা যেতে পারে:
৪.১: পোর্ট নম্বর নির্দিষ্ট করা
যদি রিমোট সিস্টেমে SSH সার্ভারটি কোনো অস্বাভাবিক পোর্টে চলছে (যেমন ডিফল্ট ২২ পোর্টের পরিবর্তে), আপনি -p অপশন দিয়ে পোর্ট নম্বর নির্দিষ্ট করতে পারেন:
ssh -p 2222 user@192.168.1.100এখানে 2222 হল পোর্ট নম্বর।
৪.২: SSH এর মাধ্যমে একসাথে একাধিক কমান্ড চালানো
আপনি SSH ব্যবহার করে রিমোট সিস্টেমে একাধিক কমান্ড চালাতে পারেন, যেমন:
ssh user@192.168.1.100 'ls -l; df -h'এটি ls -l এবং df -h কমান্ড দুটি একযোগে চালাবে এবং আউটপুট দেখাবে।
৪.৩: SSH ত্বরা ফাইল ট্রান্সফার (SCP বা SFTP ব্যবহার)
ফাইল ট্রান্সফার করতে SCP (Secure Copy Protocol) বা SFTP (Secure File Transfer Protocol) ব্যবহার করা হয়। উদাহরণস্বরূপ:
SCP:
scp localfile.txt user@192.168.1.100:/remote/directory/SFTP:
sftp user@192.168.1.1005. SSH এর মাধ্যমে পোর্ট ফরওয়ার্ডিং
SSH পোর্ট ফরওয়ার্ডিং ব্যবহার করে আপনি রিমোট সিস্টেমে থাকা পোর্টে স্থানীয়ভাবে অ্যাক্সেস পেতে পারেন। এটি সাধারণত নিরাপদ টানেলিং জন্য ব্যবহৃত হয়।
৫.১: লুকাল পোর্ট ফরওয়ার্ডিং
ssh -L 8080:localhost:80 user@192.168.1.100এই কমান্ডটি আপনার লোকাল সিস্টেমের 8080 পোর্টকে রিমোট সিস্টেমের 80 পোর্টের সাথে যুক্ত করবে।
৫.২: রিমোট পোর্ট ফরওয়ার্ডিং
ssh -R 8080:localhost:80 user@192.168.1.100এই কমান্ডটি রিমোট সিস্টেমের 8080 পোর্টকে আপনার লোকাল সিস্টেমের 80 পোর্টের সাথে যুক্ত করবে।
6. SSH সেশনের জন্য টার্মিনাল মেনু
exit: SSH সেশন বন্ধ করতে।Ctrl + C: চলমান প্রক্রিয়া বন্ধ করতে।Ctrl + D: লগ আউট করতে।
সারসংক্ষেপ
SSH একটি নিরাপদ এবং শক্তিশালী প্রোটোকল যা আপনাকে দূরবর্তী সিস্টেম বা সার্ভারে নিরাপদভাবে লগইন এবং কমান্ড চালাতে সক্ষম করে। এটি ইন্টারনেট বা ল্যানের মাধ্যমে সিস্টেম অ্যাডমিনিস্ট্রেশন এবং ফাইল ট্রান্সফারের জন্য ব্যাপকভাবে ব্যবহৃত হয়। SSH এর মাধ্যমে পাসওয়ার্ড ছাড়া লগইন, পোর্ট ফরওয়ার্ডিং, এবং নিরাপদ ফাইল ট্রান্সফারের মতো সুবিধা পাওয়া যায়।
ফাইল স্থানান্তর: scp এবং rsync
ফাইল স্থানান্তর করতে scp এবং rsync দুটি জনপ্রিয় এবং শক্তিশালী টুল যা Linux, UNIX, এবং macOS সিস্টেমে ব্যবহৃত হয়। এই টুল দুটি ব্যবহারের মাধ্যমে আপনি একটি কম্পিউটার থেকে অন্য কম্পিউটারে নিরাপদে এবং দ্রুত ফাইল স্থানান্তর করতে পারবেন। যদিও দুইটি টুলের কার্যকারিতা একরকম, তবে তাদের মধ্যে কিছু গুরুত্বপূর্ণ পার্থক্য রয়েছে, যেমন ব্যবহার, কার্যকারিতা এবং ক্ষমতা।
1. scp (Secure Copy)
scp হল একটি নিরাপদ ফাইল স্থানান্তর প্রোটোকল যা SSH (Secure Shell) ব্যবহার করে ফাইল স্থানান্তর করতে সাহায্য করে। এটি এক কম্পিউটার থেকে অন্য কম্পিউটারে ফাইল বা ডিরেক্টরি স্থানান্তর করতে ব্যবহৃত হয় এবং এটির মধ্যে এনক্রিপশন থাকে, যাতে ডেটা স্থানান্তর নিরাপদ থাকে।
scp কমান্ডের সাধারণ গঠন:
scp [অপশন] [সোর্স ফাইল] [গন্তব্য]- সোর্স ফাইল: আপনি যে ফাইল বা ডিরেক্টরি স্থানান্তর করতে চান, তা উল্লেখ করুন।
- গন্তব্য: আপনি যেখানেই ফাইল পাঠাতে চান, সেই পাথ (বা দূরবর্তী সিস্টেমের ইউজারনেম এবং আইপি অথবা ডোমেইন নাম) উল্লেখ করুন।
প্রধান অপশনসমূহ:
-r: ডিরেক্টরি রিককার্সিভভাবে কপি করতে ব্যবহৃত হয়।-P: পোর্ট নম্বর নির্ধারণ করতে ব্যবহৃত হয় (ডিফল্ট পোর্ট ২২)।-v: ভের্বোজ মোড, যা স্থানান্তরের সময় প্রক্রিয়া দেখায়।
scp এর উদাহরণ:
একটি ফাইল স্থানান্তর করা:
scp /path/to/local/file.txt user@remote_host:/path/to/remote/directory/এই কমান্ডটি
file.txtফাইলটি আপনার লোকাল সিস্টেম থেকেremote_hostসিস্টেমে/path/to/remote/directory/ডিরেক্টরিতে পাঠাবে।একটি ডিরেক্টরি স্থানান্তর করা (রিকার্সিভ):
scp -r /path/to/local/directory user@remote_host:/path/to/remote/directory/এখানে,
-rঅপশনটি ডিরেক্টরিটি রিকার্সিভভাবে কপি করার জন্য ব্যবহার করা হয়েছে।পোর্ট নম্বর উল্লেখ করে ফাইল স্থানান্তর করা:
scp -P 2222 /path/to/local/file.txt user@remote_host:/path/to/remote/directory/এই কমান্ডটি পোর্ট ২২২২ ব্যবহার করে ফাইলটি স্থানান্তর করবে।
2. rsync
rsync হল একটি অত্যন্ত শক্তিশালী এবং কার্যকরী টুল যা ফাইল এবং ডিরেক্টরি স্থানান্তরের জন্য ব্যবহৃত হয়। এটি শুধুমাত্র স্থানান্তর করতে ব্যবহৃত হয় না, বরং এটি স্থানান্তরিত ডেটার সাথে উৎস এবং গন্তব্যের মধ্যে সিঙ্ক্রোনাইজেশন বজায় রাখার জন্য ব্যবহৃত হয়। এটি স্থানান্তরিত ফাইলের পরিবর্তিত অংশগুলি শুধুমাত্র স্থানান্তর করে, যা স্থানান্তরের গতি বৃদ্ধি করে।
rsync কমান্ডের সাধারণ গঠন:
rsync [অপশন] [সোর্স] [গন্তব্য]প্রধান অপশনসমূহ:
-a: আর্কাইভ মোড, যা ডিরেক্টরি স্ট্রাকচার এবং ফাইলের প্রপার্টি বজায় রাখে।-v: ভের্বোজ মোড, যা বিস্তারিত তথ্য দেখায়।-z: ডেটা কম্প্রেসন সক্রিয় করে।-P: স্থানান্তরের প্রক্রিয়া প্রদর্শন করে এবং স্থানান্তরের সময় মাঝপথে রিজিউম করতে সাহায্য করে।--delete: গন্তব্যে অতিরিক্ত ফাইল মুছে ফেলতে সাহায্য করে (যেগুলি সোর্সে আর নেই)।
rsync এর উদাহরণ:
ফাইল স্থানান্তর করা:
rsync -av /path/to/local/file.txt user@remote_host:/path/to/remote/directory/এই কমান্ডটি
file.txtফাইলটি লোকাল সিস্টেম থেকেremote_hostসিস্টেমে স্থানান্তর করবে এবং ফাইলের সমস্ত অ্যাট্রিবিউট (যেমন, অনুমতি, মালিকানা) বজায় রাখবে।ডিরেক্টরি স্থানান্তর করা:
rsync -av /path/to/local/directory/ user@remote_host:/path/to/remote/directory/এখানে
/path/to/local/directory/ডিরেক্টরি এবং এর সমস্ত উপাদান রিককার্সিভভাবে গন্তব্যে পাঠানো হবে।ফাইল স্থানান্তর করার সময় কম্প্রেশন ব্যবহার করা:
rsync -avz /path/to/local/file.txt user@remote_host:/path/to/remote/directory/-zঅপশনটি কম্প্রেসন চালু করবে, যাতে স্থানান্তরের সময় ডেটা কম আকারে পাঠানো হয়।একাধিক ফাইল স্থানান্তর করা:
rsync -av /path/to/local/file1.txt /path/to/local/file2.txt user@remote_host:/path/to/remote/directory/
scp এবং rsync এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | scp | rsync |
|---|---|---|
| ডেটা স্থানান্তর | ফাইল সরাসরি স্থানান্তর করে। | শুধুমাত্র পরিবর্তিত অংশগুলি স্থানান্তর করে। |
| দ্রুততা | সাধারণত ধীর হতে পারে, কারণ প্রতিবার পুরো ফাইল স্থানান্তর করতে হয়। | দ্রুত, কারণ এটি শুধুমাত্র পরিবর্তিত অংশ স্থানান্তর করে। |
| সিঙ্ক্রোনাইজেশন | সিঙ্ক্রোনাইজেশন সরাসরি সমর্থিত নয়। | ফাইল এবং ডিরেক্টরি সিঙ্ক্রোনাইজেশন সমর্থিত। |
| পুনরায় স্থানান্তর | পুনরায় স্থানান্তরিত হলে পুরো ফাইলটি পুনরায় স্থানান্তরিত হবে। | আগের স্থানান্তরিত ফাইলের শুধুমাত্র পরিবর্তিত অংশ পুনঃস্থাপন হবে। |
| কম্প্রেসন | scp স্বাভাবিকভাবে কম্প্রেসন সমর্থন করে না। | rsync কম্প্রেসন সমর্থন করে (-z অপশন)। |
| অতিরিক্ত অপশন | সীমিত অপশনগুলি, সাধারণত স্থানান্তরের জন্য ব্যবহার করা হয়। | উন্নত অপশন সহ আরো অনেক কাস্টমাইজেশন সক্ষম। |
সারসংক্ষেপ
scpহল একটি সরল এবং সহজ উপায় এক কম্পিউটার থেকে অন্য কম্পিউটারে ফাইল স্থানান্তরের জন্য, যা SSH ব্যবহার করে নিরাপদ ফাইল স্থানান্তর নিশ্চিত করে।rsyncবেশি শক্তিশালী এবং নমনীয় টুল, যা ডেটার সিঙ্ক্রোনাইজেশন এবং শুধুমাত্র পরিবর্তিত অংশ স্থানান্তরের মাধ্যমে গতি বাড়ায় এবং পুনরায় স্থানান্তরিত ফাইলগুলোর জন্য সময় বাঁচায়।
আপনি যদি সিঙ্ক্রোনাইজেশন এবং দ্রুত স্থানান্তর চাচ্ছেন, তবে rsync ভালো একটি বিকল্প, আর যদি সাধারণ স্থানান্তর প্রয়োজন হয়, তবে scp একটি সহজ এবং নিরাপদ পদ্ধতি।
নেটওয়ার্ক টেস্টিং এবং ট্রাবলশুটিং: ping, netstat, traceroute
নেটওয়ার্ক ট্রাবলশুটিং এবং টেস্টিং হল নেটওয়ার্ক সংযোগের সমস্যা চিহ্নিতকরণ এবং সমাধান করার জন্য অত্যন্ত গুরুত্বপূর্ণ কাজ। নেটওয়ার্কের সমস্যা যেমন স্লো কানেকশন, সংযোগ বিচ্ছিন্নতা বা প্যাকেট লস নির্ণয় করতে ping, netstat, এবং traceroute কমান্ডগুলি ব্যবহৃত হয়। এগুলি মূলত নেটওয়ার্কের অবস্থা পরীক্ষা করার এবং সমস্যাগুলি চিহ্নিত করার জন্য ব্যবহৃত কমান্ড।
১. ping কমান্ড
ping কমান্ড নেটওয়ার্কে অন্য ডিভাইসের সাথে সংযোগ পরীক্ষা করার জন্য ব্যবহৃত হয়। এটি একটি ছোট ডেটা প্যাকেট প্রেরণ করে এবং সেই প্যাকেটটি গন্তব্যে পৌঁছানোর পর তার প্রতিক্রিয়া (response) পরীক্ষা করে। এটি নেটওয়ার্কের দেরি, সংযোগের স্থিতি এবং প্যাকেট লস সম্পর্কিত তথ্য সরবরাহ করে।
ব্যবহার:
ping [hostname_or_IP]উদাহরণ:
ping google.comএই কমান্ডটি google.com এ পিং পাঠাবে এবং তার প্রতিক্রিয়া সময় দেখাবে, যেমন:
64 bytes from 142.250.183.14: icmp_seq=1 ttl=115 time=20.4 ms
64 bytes from 142.250.183.14: icmp_seq=2 ttl=115 time=21.2 msএখানে:
- ttl (time to live): প্যাকেটটি কতটি রাউটার পার করেছে তা নির্দেশ করে।
- time: প্যাকেটটি গন্তব্যে পৌঁছাতে কত সময় নেয় (মিলিসেকেন্ডে)।
ফিচার:
- Packet Loss: যদি প্যাকেটগুলি গন্তব্যে পৌঁছাতে না পারে, তবে
pingপ্যাকেট লস সম্পর্কে তথ্য প্রদান করবে। - Round-trip time: প্যাকেট গন্তব্যে পৌঁছাতে এবং ফিরে আসতে মোট কত সময় নিচ্ছে, তা প্রদর্শন করবে।
- Continuous ping:
pingকমান্ডটি সাধারণত কিছু সংখ্যক পিং প্রেরণ করে, তবেpingকমান্ডকে নির্দিষ্ট সময় ধরে চালাতেping -tব্যবহার করা যেতে পারে (Windows এর জন্য)। উদাহরণ:ping -t google.com।
২. netstat কমান্ড
netstat (network statistics) কমান্ডটি নেটওয়ার্কের সক্রিয় সংযোগ, সিস্টেমের পোর্টের অবস্থা এবং অন্যান্য নেটওয়ার্ক সম্পর্কিত তথ্য প্রদর্শন করে। এটি নেটওয়ার্ক ট্রাবলশুটিং এবং ডায়াগনস্টিকের জন্য অত্যন্ত কার্যকরী।
ব্যবহার:
netstat [option]উদাহরণ:
netstat -tulnএখানে:
-t: TCP সংযোগগুলি দেখাবে।-u: UDP সংযোগগুলি দেখাবে।-l: শুধু লিসনিং (listening) সংযোগগুলি দেখাবে (যেগুলি ইনকামিং সংযোগ গ্রহণ করছে)।-n: আইপি ঠিকানা এবং পোর্ট নম্বর সংখ্যালঘু ফর্ম্যাটে দেখাবে (অর্থাৎ, নাম পরিবর্তে সংখ্যা ব্যবহার করবে)।
আউটপুট উদাহরণ:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::80 :::* LISTENএখানে:
- Proto: প্রোটোকল (TCP/UDP)
- Recv-Q: ইনপুট কিউ (মেসেজের অপেক্ষমান সংখ্যা)
- Send-Q: আউটপুট কিউ (মেসেজের সংখ্যা প্রেরণের জন্য অপেক্ষমাণ)
- Local Address: লোকাল (এটি কোথায় শুনছে)
- Foreign Address: দূরবর্তী সংযোগের ঠিকানা
- State: সংযোগের অবস্থা (যেমন LISTEN)
netstat কমান্ডটি সিস্টেমে চলমান সব নেটওয়ার্ক সংযোগ এবং তাদের অবস্থা প্রদর্শন করে, যা নেটওয়ার্ক ইস্যু চিহ্নিত করতে সাহায্য করে।
৩. traceroute কমান্ড
traceroute কমান্ডটি একটি ডেটা প্যাকেটের পথ ট্র্যাক করে, এটি গন্তব্যে পৌঁছানোর আগে কোন রাউটার বা গেটওয়ে পার করেছে তা দেখতে সাহায্য করে। এটি নেটওয়ার্কের মধ্যে প্যাকেটের দেরি এবং নেটওয়ার্ক স্ট্রাকচারের সমস্যা চিহ্নিত করতে ব্যবহৃত হয়।
ব্যবহার:
traceroute [hostname_or_IP]উদাহরণ:
traceroute google.comএটি google.com সাইটের জন্য প্যাকেটের পথ ট্র্যাক করবে এবং সমস্ত রাউটারগুলির তালিকা দেখাবে, যেগুলির মাধ্যমে প্যাকেটটি চলেছে।
আউটপুট উদাহরণ:
traceroute to google.com (142.250.183.14), 30 hops max, 60 byte packets
1 router.local (192.168.1.1) 1.524 ms 1.479 ms 1.426 ms
2 isp-gateway (10.0.0.1) 10.457 ms 10.412 ms 10.357 ms
3 172.217.1.45 (172.217.1.45) 20.398 ms 20.351 ms 20.306 ms
4 142.250.183.14 (142.250.183.14) 30.569 ms 30.508 ms 30.461 msএখানে:
- প্রতিটি hop হল একটি রাউটার যেখানে প্যাকেটটি যাবে এবং ফিরে আসবে।
- Time: প্রতিটি hop থেকে প্যাকেটের সময় দেখায় (মিলিসেকেন্ডে)।
ফিচার:
- Packet Delay:
tracerouteকমান্ডে প্রতিটি hop-এর জন্য প্যাকেট ডেলির সময় প্রদর্শিত হয়, যা নেটওয়ার্কের দেরি চিহ্নিত করতে সাহায্য করে। - Routing Issues: যদি কোনো রাউটার বা গেটওয়ে সমস্যায় পড়ে, তাহলে
tracerouteতার অবস্থান প্রদর্শন করবে, যেখানে প্যাকেট আটকে গেছে।
সারসংক্ষেপ
ping: একটি সিস্টেম বা সার্ভারের সাথে সংযোগ পরীক্ষা করতে ব্যবহৃত হয়, এটি প্যাকেট লস এবং দেরি পরিমাপ করে।netstat: সিস্টেমের সক্রিয় নেটওয়ার্ক সংযোগগুলি এবং পোর্টের অবস্থা প্রদর্শন করে।traceroute: প্যাকেটের রুট ট্র্যাক করে, বিভিন্ন রাউটার বা গেটওয়ে পার করার সময় দেখায়, যা নেটওয়ার্ক সমস্যা সনাক্ত করতে সাহায্য করে।
এই কমান্ডগুলি নেটওয়ার্ক ট্রাবলশুটিং এবং টেস্টিংয়ের জন্য অত্যন্ত কার্যকরী এবং সিস্টেম অ্যাডমিনিস্ট্রেটরদের জন্য অপরিহার্য টুল।
Read more