Ravindra Bagale · Cyber Securityसर्व coursesया course चे lessonsशोधाEnglish

Cyber Security · मराठी आवृत्ती

Ports आणि नेहमी वापरले जाणारे port numbers

रवींद्र बागले यांच्या course वर आधारित · सहज मराठीत explanation

या page मध्ये

IP म्हणजे building चा address आणि port म्हणजे flat number, असं समजा. Port हा 16-bit number आहे; range 0–65535. तो host वरच्या service/process पर्यंत traffic पोहोचवायला मदत करतो. एकाच server वर web server (80), SSH (22) आणि MySQL (3306) एकाच वेळी चालतात, कारण ते वेगवेगळ्या ports वर listen करतात.

203.0.113.10:443 हे IP आणि port मिळून तयार झालेल्या network endpoint चे उदाहरण आहे. Socket च्या addressing मध्ये असा endpoint आणि transport protocol महत्त्वाचे असतात.

Range Name अर्थ
0 – 1023 Well-known ports Standard services; Linux वर root किंवा योग्य capability लागते
1024 – 49151 Registered ports Applications वापरतात (MySQL, MongoDB, dev servers)
49152 – 65535 Dynamic / ephemeral OS ने निवडलेले temporary client ports

0–1023: well-known ports; standard services साठी. Linux वर कमी क्रमांकाच्या ports ला bind करण्यासाठी पारंपरिकपणे root किंवा योग्य capability लागते. 1024–49151: registered ports, जिथे MySQL व इतर applications चे ports येतात. 49152–65535: dynamic/ephemeral range; client connections साठी temporary ports. प्रत्यक्ष OS ची configured ephemeral range वेगळी असू शकते.

हे ports लक्षात ठेवा

Port Protocol Service कुठे दिसेल?
20, 21 TCP FTP (data, control) जुनं file transfer; plain FTP असुरक्षित
22 TCP SSH / SCP / SFTP EC2 ला login, files copy करणे
23 TCP Telnet जुना, unencrypted; वापर टाळा
25 TCP SMTP Email पाठवणे (AWS वर port 25 ला restrictions असू शकतात)
53 UDP/TCP DNS Domain नावाचे records शोधणे
67, 68 UDP DHCP आपोआप IP configuration देणे
80 TCP HTTP Websites (encryption नाही)
110 / 143 TCP POP3 / IMAP Email मिळवणे
443 TCP HTTPS TLS वापरणाऱ्या websites
3000 TCP Node.js / React dev server Express apps, npm start
3306 TCP MySQL / MariaDB Database
3389 TCP RDP Windows Remote Desktop
4200 TCP Angular dev server ng serve
5000 TCP Flask dev server flask run
5432 TCP PostgreSQL Database
6379 TCP Redis Cache
8000 TCP Gunicorn / Django dev server Python apps
8080 TCP Alternate HTTP / Tomcat / Jenkins Java apps, proxies
27017 TCP MongoDB NoSQL database

Table मधले ports हे defaults किंवा प्रचलित choices आहेत. App वेगळ्या port वर configure करता येतो. FTP file transfer, SSH remote login, DNS नाव शोधण्यासाठी, DHCP IP configuration, HTTP/HTTPS web traffic आणि MySQL/PostgreSQL/MongoDB databases साठी वापरले जातात. POP3/IMAP mail मिळवण्यासाठी, SMTP mail पाठवण्यासाठी, RDP Windows remote desktop साठी आणि Redis cache साठी वापरतात.

कोणते ports उघडे ठेवायचे?

सामान्य public website ला 80 आणि 443 लागतात. SSH साठी 22 हवा असेल तर फक्त trusted source IPs किंवा private access path ला परवानगी द्या. Application ports (3000, 5000, 8080) reverse proxy (Nginx/Apache) च्या मागे ठेवा. Database ports (3306, 27017) 0.0.0.0/0 साठी उघडू नका.

sudo ss -tlnp            # which programs are listening on which TCP ports?
sudo ss -ulnp            # same for UDP
nc -zv 127.0.0.1 22      # is TCP port 22 open locally?

पहिली command listening TCP services, दुसरी UDP services दाखवते. शेवटची command याच machine वर TCP port 22 उपलब्ध आहे का तपासते.

Security मध्ये उपयोग

प्रत्येक उघड्या port च्या मागे एखादी service असते. Port scan ने त्या services शोधल्या जातात; Nmap पुढे Part 10 मध्ये येईल. Defender म्हणून नको असलेले ports बंद करा आणि आवश्यक ports वर source access मर्यादित ठेवा. बाहेरून वापरता येणाऱ्या services हा attack surface चा महत्त्वाचा भाग आहे.

Practice

Table न पाहता SSH, FTP, Telnet, SMTP, DNS, HTTP, HTTPS, MySQL, RDP आणि PostgreSQL चे default ports लिहा. मग स्वतःच्या Linux machine वर sudo ss -tlnp चालवून प्रत्येक listening service ओळखा.