Skip to Content

Ports & Services

একটা machine-এ একটাই IP থাকলেও SSH, web server, database — সব একসাথে চলতে পারে। Port এই সমস্যার সমাধান। কোন port-এ কী চলছে সেটা দেখতে পারা network security-র core skill।

Port কেন দরকার

সমস্যাটা বোঝো:

তোমার server-এর IP হলো 192.168.1.100। এই একটা IP দিয়েই SSH, web server, আর database — তিনটো service চলছে। কেউ যখন এই IP-তে connect করে, Linux কীভাবে বুঝবে সে SSH চায় নাকি web page চায় নাকি database চায়?

Port এই সমস্যার সমাধান।

Port হলো IP address-এর পাশে একটা number যেটা বলে দেয় কোন service-এর সাথে কথা বলতে চাইছো:

192.168.1.100:22 → SSH service 192.168.1.100:80 → Web server 192.168.1.100:3306 → MySQL database

একই ঠিকানায় (IP) আলাদা দরজা (port) — প্রতিটা দরজায় আলাদা service বসে আছে।

Common Ports

PortServiceকী করে
22SSHনিরাপদ remote terminal access
80HTTPWeb traffic (plain)
443HTTPSWeb traffic (encrypted)
21FTPFile transfer
25SMTPEmail পাঠানো
53DNSDomain name → IP resolution
3306MySQLDatabase
5432PostgreSQLDatabase
8080HTTP AltAlternative web port

Port range:

  • 0–1023 — Well-known ports। System services। Root ছাড়া bind করা যায় না।
  • 1024–49151 — Registered ports। Applications ব্যবহার করে।
  • 49152–65535 — Dynamic ports। Temporary connections-এ ব্যবহার হয়।

ss

কোন port-এ কী listen করছে দেখো — modern tool।

Terminal
# সব listening TCP ports দেখো ss -tlnp # সব listening UDP ports ss -ulnp # সব connections (established সহ) ss -tanp # নির্দিষ্ট port খোঁজো ss -tlnp | grep :80

Flags-এর মানে:

Flagমানে
-tTCP connections
-uUDP connections
-lশুধু listening ports
-nNumber দেখাও (service name না)
-pকোন process সেটা দেখাও
-aসব connections

Output বোঝো:

State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 128 0.0.0.0:22 0.0.0.0:* sshd LISTEN 0 511 127.0.0.1:3306 0.0.0.0:* mysqld LISTEN 0 128 0.0.0.0:80 0.0.0.0:* nginx

Local Address-এর মানে বোঝাটা critical:

AddressমানেSecurity impact
0.0.0.0:22সব network interface-এ listenযেকোনো IP থেকে connect করা যাবে
127.0.0.1:3306শুধু localhost-এ listenশুধু এই machine থেকে access হবে, বাইরে থেকে না
192.168.1.100:8080নির্দিষ্ট interface-এশুধু সেই network থেকে
0.0.0.0:22 → SSH বাইরে থেকে accessible — নিরাপদ হতে হবে 127.0.0.1:3306 → Database শুধু local — ভালো security practice

Database কখনো 0.0.0.0 তে bind করবে না। যদি MySQL 0.0.0.0:3306-এ bind হয়, তাহলে ইন্টারনেট থেকে database-এ direct connect করার চেষ্টা করা সম্ভব। সবসময় 127.0.0.1 বা specific internal IP ব্যবহার করো।

netstat

পুরনো tool কিন্তু CTF machines-এ এখনও পাবে।

Terminal
# Install (net-tools package) sudo apt install net-tools # Listening ports netstat -tlnp # Active connections netstat -tanp # নির্দিষ্ট port netstat -tlnp | grep :443

lsof

কোন process কোন port ব্যবহার করছে দেখো।

Terminal
# Port 80 কোন process ব্যবহার করছে sudo lsof -i :80 # সব network connections sudo lsof -i # শুধু TCP sudo lsof -i TCP # নির্দিষ্ট user-এর connections sudo lsof -i -u omar

ss -tlnp vs lsof -i পার্থক্য:

ss দ্রুত এবং port/state দেখায়। lsof process-এর বিস্তারিত (কোন user, কোন file) দেখায়। দুটো complement করে।

CyberSec Note

Port analysis — attack surface বোঝা:

Defensive — নিজের machine চেক করো:

Terminal
# কোন ports বাইরে থেকে accessible ss -tlnp # Unexpected service চলছে কিনা — unusual ports ss -tlnp | grep -v "22\|80\|443\|3306" # কোন process unexpected port use করছে sudo lsof -i -P -n | grep LISTEN

Offensive — target machine scan:

Terminal
# Nmap দিয়ে open ports খোঁজো nmap -sV target-ip # service version সহ nmap -sC -sV -p- target-ip # সব ports scan (slow but thorough)

CTF workflow:

1. nmap -sV target-ip → কোন ports open 2. Open port-এর service চেনো (22=SSH, 80=HTTP...) 3. Service-এর version দেখো 4. সেই version-এ known vulnerability আছে কিনা খোঁজো 5. Exploit করো

0.0.0.0 vs 127.0.0.1 — কোনো service 0.0.0.0-তে bind থাকলে এটা externally accessible। CTF-এ অনেক সময় locally bind করা service-কে SSH tunneling দিয়ে access করতে হয়।

Quick Check

  • Port কেন দরকার — একটা IP থাকলেই তো হতো?
  • 0.0.0.0:22 আর 127.0.0.1:3306 এর পার্থক্য কী?
  • ss -tlnp এর প্রতিটা flag কী করে?
  • Database 0.0.0.0-তে bind হওয়া কেন বিপজ্জনক?
  • CTF-এ port scan করার পর কী করবে?

পরবর্তী → curl & wget

Search Keywords: linux ports services bangla, ss netstat open ports, 0.0.0.0 127.0.0.1 difference, port scanning nmap, well known ports bengali, lsof network

Last updated on