Course-এর সূচি

1.12

Firewall, Forward বনাম Reverse Proxy, ও VPN

Network-এর প্রহরী ও মধ্যস্থতাকারী: কোনটি কী লুকায়, অনুমতি দেয়, আটকায় ও সুরক্ষা দেয়।

38 মিনিট পড়া + Animation

টিপস: ডটেড-আন্ডারলাইন করা যেকোনো শব্দে ট্যাপ বা Hover করলে তার অর্থ দেখবে।

এই Lesson শেষে তুমি পারবে

  • Firewall কী পরীক্ষা করে, Rule-এর ক্রম ও “Default Deny” কেন গুরুত্বপূর্ণ, এবং Stateful Firewall কীভাবে উত্তরগুলো ভেতরে ঢুকতে দেয় তা ব্যাখ্যা করতে।
  • Network Firewall, WAF, IDS ও IPS-এর পার্থক্য বলতে, এবং একটি সহজ DMZ ডিজাইন করতে।
  • Ephemeral Port-এর ক্লাসিক ভুল ছাড়া Cloud-এর Security Group ও NACL কনফিগার করতে।
  • Forward ও Reverse Proxy ব্যাখ্যা করতে: কে কার প্রতিনিধি, কে কাকে লুকায়, আর HTTPS কীভাবে Proxy পার হয় (CONNECT)।
  • Production-এ Reverse Proxy কী করে বর্ণনা করতে: Health Check-সহ Load Balancing, TLS Termination, Caching, Routing, Rate Limiting, X-Forwarded-For, এবং API Gateway কোথায় বসে।
  • VPN Tunnel কীভাবে কাজ করে, প্রধান Protocol, Remote-access বনাম Site-to-site, এবং VPN ঠিক কী লুকায় আর কী লুকায় না তা ব্যাখ্যা করতে।
  • Network-এর প্রতিটা Layer-এর চেনা আক্রমণ আর সেই Layer-এ কাজ করা প্রতিরক্ষার নাম বলতে, আর Zero Trust ও mTLS কেন Network-এর সীমানা পাহারার চেয়ে এক ধাপ এগিয়ে তা বোঝাতে।

#তিন মধ্যস্থতাকারী, তিনটি আলাদা কাজ

তোমার ডিভাইস আর Server-এর মাঝে প্রায়ই এমন কিছু মেশিন থাকে যারা চূড়ান্ত গন্তব্য নয়, তবুও তোমার Traffic সামলায়। যে তিনটির সঙ্গে সবখানে দেখা হবে:

মধ্যস্থতাকারীতার প্রশ্নসাধারণ অবস্থান
Firewall“এই Traffic কি Allowed?”প্রতিটি Network-এর সীমানায়, এবং প্রতিটি কম্পিউটারে
Proxy“তোমার হয়ে Request-টা আমি করে দেব?”Client-এর সামনে (Forward Proxy) বা Server-এর সামনে (Reverse Proxy)
VPN“অবিশ্বস্ত Network-এর ওপর দিয়ে কীভাবে গোপনে নিয়ে যাব?”একটি ডিভাইস (বা অফিস) ও VPN Server-এর মাঝে

এরা প্রায়ই একসঙ্গে থাকে: প্রতিষ্ঠানের Network-এর সীমানায় Firewall, কর্মীরা Forward Proxy দিয়ে Browse করে, Website থাকে Reverse Proxy-র পেছনে, আর দূরের কর্মীরা VPN দিয়ে Connect করে। মাথায় এদের কাজ আলাদা রাখো, তাহলে এই মিশ্রণ বোঝা সহজ হবে।

#Firewall

Firewall হলো একটি Network Security System, যা পূর্বনির্ধারিত নিরাপত্তার নিয়মের (Security Rules) ভিত্তিতে Incoming ও Outgoing Traffic পরীক্ষা করে এবং তা Allow বা Block করে।

[Unfiltered internet] ──► [Firewall: rule inspection] ──► [Secured internal network]
                                    │
                               (block / drop)

#Packet Filtering: Rule, ক্রম ও Default Deny

Firewall-এর সবচেয়ে মৌলিক কাজ হলো Packet Filtering। প্রতিটি Packet-এর কয়েকটি Header Field সে পড়ে:

  • Source IP ও Destination IP: কে পাঠাচ্ছে, কার কাছে।
  • Source Port ও Destination Port: কোন Service (443 = HTTPS, 22 = SSH, 3306 = MySQL…)।
  • Protocol: TCP, UDP, ICMP।
  • দিক: Inbound (বাইরে থেকে ভেতরে) বা Outbound (ভেতর থেকে বাইরে)।

সে এগুলোকে একটি Rule Table-এর সঙ্গে ওপর থেকে নিচে মেলায়। প্রথম যে Rule মেলে, সিদ্ধান্ত সেটাই, বাকিগুলো আর পড়া হয় না। কিছুই না মিললে Default Policy প্রযোজ্য হয়, যা যেকোনো ভালোভাবে চালানো Firewall-এ Deny।

Firewall Rule: প্রতিটি Packet একটি ক্রমানুসারী তালিকার সঙ্গে মেলানো

Firewall প্রতিটি Packet-এর Source IP, Destination IP, Port ও Protocol পড়ে এবং ওপর থেকে Rule-গুলো মেলায়। প্রথম যে Rule মেলে, সিদ্ধান্ত সেটাই।

পরিস্থিতি

একজন সাধারণ ভিজিটর Port 443-এ Website-এ পৌঁছায়।

ভিজিটর198.51.100.7
বাসায় Admin192.0.2.50
Attacker / ক্ষতিকর Host198.51.100.66
FirewallRule Table
Web Server203.0.113.10
Database10.0.1.20
অফিস PC10.0.2.15
SYN :443

Firewall যে Header Field পড়ে

Source IP

198.51.100.7

Destination IP

203.0.113.10

Protocol

TCP

Destination port

443

ধাপ 1 / 4
1

একজন ভিজিটরের Browser Web Server-এর Public Address-এ Port 443 (HTTPS)-এ TCP SYN পাঠায়। প্রতিটি Packet-কে আগে Firewall পার হতে হয়।

  • Inbound Rule ভেতরে আসা Traffic Filter করে। ক্লাসিক উদাহরণ: Port 22 (SSH) পুরো দুনিয়ার জন্য বন্ধ রাখা, শুধু Admin-এর Address বা VPN-এর জন্য খোলা।
  • Outbound Rule (Egress Filtering) বাইরে যাওয়া Traffic নিয়ন্ত্রণ করে। উদাহরণ: অফিসের কম্পিউটার থেকে ক্ষতিকর বা নির্দিষ্ট Category-র সাইটে প্রবেশ রোধ করা, বা সংক্রমিত মেশিনকে অস্বাভাবিক Port-এ Attacker-এর সঙ্গে যোগাযোগ করতে না দেওয়া।
  • ক্রমও Policy-র অংশ। নির্দিষ্ট allow (“192.0.2.50 থেকে SSH”)-কে সাধারণ deny (“যে কারও SSH”)-এর ওপরে রাখতে হয়। ওপরে ভুলে থেকে যাওয়া একটি “allow any to any” নিচের সবকিছু চুপচাপ অকেজো করে দেয়।
  • আগে সব Deny, তারপর দরকারিটুকু Allow অনেক বেশি নিরাপদ, “সব Allow, তারপর খারাপ দেখলে Block”-এর চেয়ে। সব খারাপ জিনিসের তালিকা করা যায় না; কয়েকটি ভালো জিনিসের তালিকা করা যায়।
  • Drop বনাম Reject। Drop কিছুই ফেরত পাঠায় না (Scanner কম জানে); Reject TCP RST বা ICMP Error দিয়ে উত্তর দেয় (সৎ Client দ্রুত ব্যর্থতা টের পায়)। Internet-মুখী সীমানায় সাধারণত Drop করা হয়।

#Stateful Inspection

সাধারণ Packet Filter প্রতিটি Packet-কে আলাদাভাবে বিচার করে। এতে উত্তর-এর ক্ষেত্রে সমস্যা হয়। তোমার Laptop কোনো Website-এ Connection খুললে একটি এলোমেলো বড় Source Port ব্যবহার করে (Ephemeral Port, ধরো 51000)। Website-এর উত্তর Port 51000-এ Inbound হিসেবে আসে। Stateless Filter-এর এর জন্য একটি Rule লাগে, আর Port এলোমেলো বলে Rule-টি বড় হতে হয় (“1024–65535-এ Inbound allow”), যা ওই Port-গুলোর দিকে পাঠানো অন্য যেকোনো কিছুকেও ঢুকতে দেয়।

Stateful Firewall পুরো Connection-কে একটি State Table-এ (Connection Table-ও বলে) Track করে এর সমাধান করে। Outbound Connection একটি Entry তৈরি করে; Inbound Packet শুধু তখনই Allowed, যখন সেটি কোনো বিদ্যমান Entry-র অংশ। নোটে যেমন বলা আছে, আধুনিক Firewall কেবল একটি একক Packet দেখে সিদ্ধান্ত নেয় না; এটি পুরো Connection বা Session Track করে, এবং Traffic যদি ভেতরের কম্পিউটার থেকে শুরু হওয়া কোনো বৈধ Request-এর Response হয়, তবেই ভেতরে ঢুকতে দেয়।

Stateless বনাম Stateful: Return Traffic কীভাবে ভেতরে ফেরে

Stateless Filter প্রতিটি Packet-কে আলাদাভাবে বিচার করে। Stateful Firewall একটি Connection Table রাখে, এবং শুধু ভেতর থেকে শুরু হওয়া আলাপের উত্তরকে ঢুকতে দেয়।

পরিস্থিতি

তোমার Laptop192.168.1.10
Firewall
Web Server203.0.113.80
Attacker198.51.100.66
SYN :51000 → :443
ধাপ 1 / 8
1

তোমার Laptop একটি Website-এ Connection খোলে: Source Port 51000 (একটি এলোমেলো “Ephemeral” Port), Destination Port 443। Outbound Rule Web Traffic Allow করে।

দুটি ব্যবহারিক ফলাফল:

  • বাসার Router ও Cloud-এর Security Group Stateful, এজন্যই “সব Inbound Block, সব Outbound Allow” এমনিতেই কাজ করে: উত্তর ফিরে আসে, অযাচিত Connection আসে না।
  • State Table-এর জায়গা সীমিত, তাই নিষ্ক্রিয় Entry-র মেয়াদ শেষ হয়। দীর্ঘস্থায়ী কোনো Connection যদি কিছু না পাঠায় (Database Pool, Chat Socket), মাঝের কোনো Firewall বা NAT ডিভাইস তা চুপচাপ কেটে দিতে পারে। Idle Timeout-এর চেয়ে ছোট বিরতির Keepalive এটা ঠেকায়।

#Hardware ও Software Firewall

ধরনকীউদাহরণকাকে রক্ষা করে
Hardware (Network) Firewallএকটি Dedicated ফিজিক্যাল ডিভাইস, সাধারণত Internet সংযোগ ও ভেতরের Network-এর মাঝের সীমানায় (প্রায়ই Routing ও NAT-ও করে)Fortinet FortiGate, Palo Alto Networks, Ciscoপুরো একটি Network
Software (Host) FirewallOperating System-এ চলা একটি প্রোগ্রামWindows Defender Firewall, Linux-এর ufw (nftables/iptables-এর সহজ Front End), macOS Firewallএকটি কম্পিউটার
Cloud FirewallVirtual Server-এর চারপাশে Cloud Platform যে Rule প্রয়োগ করেAWS Security Group ও NACL, Azure Network Security Group, Google Cloud Firewall RuleCloud Server ও Subnet

দুই স্তরই ব্যবহার করো: Network Firewall সীমানাতেই বেশিরভাগ আবর্জনা থামায়, আর Network-এর ভেতরে কিছু দখল হলে বা Laptop ক্যাফের Wi-Fi-তে গেলেও Host Firewall মেশিনটিকে রক্ষা করে।

#Packet Filter-এর বাইরে: WAF, IDS/IPS ও DMZ

Packet Filter Address ও Port দেখে। কিন্তু অনেক আক্রমণ আসে Port 443-এ, একদম বৈধ Connection-এর ভেতরে। অন্য স্তরগুলো সেগুলো ধরে:

  • WAF (Web Application Firewall): Application Layer-এ কাজ করে। সে TLS Terminate করে, HTTP Request পড়ে এবং SQL Injection, Cross-site Scripting (XSS) ও অপব্যবহারকারী Bot-এর মতো আক্রমণ Block করে। Cloudflare, AWS WAF ও Open-source Rule Set প্রচলিত।
  • IDS (Intrusion Detection System): Traffic-এর একটি কপিতে পরিচিত আক্রমণের Signature ও অস্বাভাবিক আচরণ খোঁজে, এবং Alert দেয়। সে পথের মধ্যে নেই, তাই নিজে কিছু থামাতে পারে না।
  • IPS (Intrusion Prevention System): পথের মধ্যে (Inline) বসে এবং যা ধরে তা Block করে। বেশি সুরক্ষা দেয়, কিন্তু False Positive হলে আসল ব্যবহারকারী Block হয়, আর তাকে পূর্ণ গতির Traffic সামলাতে হয়।
  • NGFW (Next-generation Firewall): এক যন্ত্রে Stateful Filtering, IPS, Application বোঝার ক্ষমতা (“এটা Facebook ভিডিও”) এবং প্রায়ই TLS Inspection।
  • DMZ (Demilitarised Zone): যেসব Server-এ Internet-কে পৌঁছাতে হবে (Web Server, Mail Relay) তাদের জন্য আলাদা একটি Network Zone। Internet DMZ-এ পৌঁছাতে পারে; DMZ ভেতরে যেতে পারে শুধু সরু, নির্দিষ্ট Rule দিয়ে। DMZ-এর কোনো Server দখল হলেও Attacker তখনো Database Network-এর বাইরে।

স্তরে স্তরে নিরাপত্তা: Firewall, WAF, IDS/IPS ও DMZ

প্রতিটি স্তর ধরে যা আগের স্তর দেখতে পায় না। পাবলিক Server-গুলো আলাদা একটি Zone (DMZ)-এ থাকে, যাতে সেখানে ঢুকে পড়লেও Database পর্যন্ত যাওয়া না যায়।

পরিস্থিতি

ভিজিটর
Attacker
Edge FirewallPort + IP
WAFHTTP পড়ে
IDS / IPSTraffic দেখে
Web Server (DMZ)
Internal Firewall
App ServerPrivate
DatabasePrivate
HTTPS
ধাপ 1 / 5
1

একজন ভিজিটরের HTTPS Request Edge Firewall-এ পৌঁছায়। Web স্তরে Port 443 Allowed।

#Cloud-এ Firewall: Security Group ও NACL

AWS-এ (এবং অন্য Cloud-এও প্রায় একই রকম) একটি Server-এ যাওয়া প্রতিটি Packet দুটি Filter পার হয়:

Security GroupNetwork ACL (NACL)
প্রযোজ্যপ্রতিটি Instance-এ (তার Network Interface)পুরো একটি Subnet-এ
StateStateful: উত্তর স্বয়ংক্রিয়ভাবে AllowedStateless: উত্তরের জন্য আলাদা Rule লাগে
Ruleশুধু AllowAllow ও Deny, Rule নম্বর অনুযায়ী, ছোট নম্বর আগে
সাধারণ ব্যবহারপ্রধান Filter: “যেকোনো জায়গা থেকে 443, 5432 শুধু App Server-এর Group থেকে”মোটা দাগের Subnet পাহারা, বা নির্দিষ্ট অপব্যবহারকারী Range Block

Cloud-এ: Security Group বনাম Network ACL

AWS-এ (ও এরকম অন্য Cloud-এ) একটি Server-এ যাওয়া Packet দুটি Filter পার হয়: Subnet-এর NACL (Stateless) এবং Instance-এর Security Group (Stateful)।

পরিস্থিতি

অপব্যবহারকারী IP198.51.100.66
ব্যবহারকারী198.51.100.7
NACLSubnet, Stateless
Security GroupInstance, Stateful
Server10.0.1.10
TCP :51000 → :443
ধাপ 1 / 6
1

একজন ব্যবহারকারীর Request Subnet-এ ঢোকে। NACL তার Inbound Rule নম্বরের ক্রমে দেখে: Rule 100 TCP 443 Allow করে।

দ্বিতীয় পরিস্থিতির Bug-টি প্রায় সবাইকে একবার না একবার ধরে: যে NACL Outbound-এ শুধু Port 443 Allow করে, সে প্রতিটি Response Drop করে, কারণ Response যায় Client-এর Ephemeral Port-এ, 443-এ নয়।

নিজেকে যাচাই করোপ্রশ্ন

তোমার Stateful Firewall সব Outbound Traffic Allow করে, আর Default Deny ছাড়া কোনো Inbound Rule নেই। তুমি একটি Website খুললে। Page লোড হয় কেন?

#Proxy Server

Proxy মানে “প্রতিনিধি”: যে অন্যের হয়ে কাজ করে। Proxy Server হলো একজন মধ্যস্থতাকারী, যে Request গ্রহণ করে নিজেই সেটি করে। এটি দুই ধরনের, এবং তাদের উদ্দেশ্য সম্পূর্ণ বিপরীত:

Forward proxy:
[Client A, B, C] ──► [Forward proxy] ──► [Internet] ──► [Destination server]
(hides the clients and sends requests on their behalf)

Reverse proxy:
[Internet clients] ──► [Reverse proxy] ──► [Server 1 / Server 2 / Server 3]
(hides the servers and receives requests on their behalf)

দ্রুত পরীক্ষা: এটি কার পক্ষে? Forward Proxy কনফিগার ও পরিচালনা করে Client-রা (বা তাদের জন্য কেউ)। Reverse Proxy চালায় Website-এর মালিক, আর Client সাধারণত জানেই না এটি আছে।

#Forward Proxy

Forward Proxy বসানো হয় Client-এর সামনে। Client কোনো সাইটে যেতে চাইলে সরাসরি Connect করে না: সে Proxy-কে বলে, আর Proxy সাইট থেকে Data এনে তাকে দেয়।

Forward Proxy: Client-এর হয়ে কথা বলা

Client তার Request Proxy-কে পাঠায়, আর Proxy তার হয়ে Internet থেকে নিয়ে আসে। Website দেখে Proxy-কে, Client-কে নয়।

পরিস্থিতি

কর্মীর Laptop10.0.2.15
Forward Proxy203.0.113.5
Website198.51.100.30
GET http://example.com/news
ধাপ 1 / 8
1

Browser-এ Proxy সেট করা আছে, তাই সে নিজে example.com-এ Connect না করে পুরো URL Proxy-কে পাঠায়।

মূল উদ্দেশ্য:

  • Anonymity (পরিচয় গোপন): গন্তব্য Server Client-এর আসল IP দেখতে পায় না, Proxy-র IP দেখে।
  • Geo-restriction এড়ানো: অন্য দেশের Proxy তোমাকে সেই দেশে আছ বলে দেখায়। একই কৌশলে অফিস বা স্কুলের Restriction-ও এড়ানো যায়, এজন্য প্রতিষ্ঠানগুলো পরিচিত Proxy Block করে।
  • Content Filtering ও Access Control: অফিস কর্মীদের Facebook বা অপ্রাসঙ্গিক সাইট চালানো বন্ধ করতে পারে, সবার জন্য Malware ও Phishing সাইট Block করতে পারে, এবং কে কোথায় গেল Log রাখতে পারে।
  • Caching: জনপ্রিয় File Proxy থেকেই দেওয়া হয়, Bandwidth বাঁচে (আজকাল অনেক কম কার্যকর, কারণ বেশিরভাগ Traffic HTTPS, যা Decrypt না করা Proxy Cache করতে পারে না)।

Client কীভাবে Proxy-তে পৌঁছায়:

  • কনফিগার করা Proxy: Browser বা OS-এ Proxy-র Address দেওয়া থাকে। সাধারণ HTTP-র জন্য সে পুরো URL Proxy-কে পাঠায় (GET http://example.com/news)।
  • Proxy দিয়ে HTTPS: Browser পাঠায় CONNECT example.com:443, Proxy একটি TCP Connection খুলে এরপর শুধু এনক্রিপ্টেড Byte পৌঁছে দেয়। TLS End-to-End থাকে; Proxy Host Name জানে, Page নয়। ভেতরে দেখতে হলে লাগে TLS Interception: প্রতিষ্ঠান কর্মীদের ডিভাইসে নিজস্ব Root Certificate বসায়, আর Proxy Decrypt করে আবার Encrypt করে। এটি শক্তিশালী কিন্তু ঝুঁকিপূর্ণ, আর যেসব App Certificate Pin করে সেগুলো ভেঙে যায়।
  • PAC File (Proxy Auto-config): একটি ছোট JavaScript File, যা Browser-কে বলে কোন URL-এর জন্য কোন Proxy (“ভেতরের সাইট সরাসরি, বাকি সব Proxy দিয়ে”)। প্রতিষ্ঠানগুলো এটি সব ডিভাইসে পাঠিয়ে দেয়।
  • Transparent (Intercepting) Proxy: কিছুই কনফিগার করা নেই; Network Gateway চুপচাপ Traffic Proxy-তে ঘুরিয়ে দেয়। হোটেলের Wi-Fi Login Page ও কিছু ISP Cache এভাবে কাজ করে।
  • SOCKS Proxy: নিচের স্তরের একটি Proxy, যা শুধু HTTP নয়, যেকোনো TCP (আর SOCKS5 UDP-ও) Connection পৌঁছে দেয়। SSH দিয়েও একটি বানানো যায় (ssh -D)।

#Reverse Proxy

Reverse Proxy বসানো হয় Server-এর সামনে। ব্যবহারকারীরা মনে করে তারা মূল Web Server-এ Hit করছে, কিন্তু আসলে Hit করছে Reverse Proxy-তে, যা Request গ্রহণ করে পেছনের উপযুক্ত অভ্যন্তরীণ Server-এ (Backend Node) পাঠায়।

Reverse Proxy: অনেক Server-এর একটি সদর দরজা

Client-রা সবসময় শুধু Reverse Proxy-র Address-এর সঙ্গে কথা বলে। পেছনে Proxy ঠিক করে কোন Server কোন Request সামলাবে।

পরিস্থিতি

User A198.51.100.7
User B192.0.2.44
Attacker198.51.100.66
Reverse Proxyapi.example.com → 203.0.113.10
web110.0.0.11
web210.0.0.12
web310.0.0.13
Orders API10.0.0.21
GET /

Upstream Pool (Backend সম্পর্কে Proxy-র ধারণা)

BackendHealthচলমান Connection
web1 10.0.0.11সুস্থ0
web2 10.0.0.12সুস্থ0
web3 10.0.0.13সুস্থ0
ধাপ 1 / 5
1

User A-এর Request Proxy-তে আসে। সাইটের DNS শুধু Proxy-কে দেখায়, তাই ব্যবহারকারীরা শুধু এই Address-টিই জানে।

এটি তোমার জন্য যা করে:

  • Load Balancing: লাখ লাখ ব্যবহারকারীকে একাধিক Backend Server-এ সুষমভাবে ভাগ করে (Round Robin, Least Connections, IP Hash), এবং Health Check দিয়ে ব্যর্থ Server-এ Traffic পাঠানো বন্ধ করে।
  • Security ও DDoS Protection: মূল Server-এর আসল IP গোপন থাকে, তাই Attacker শুধু Proxy-তে আঘাত করতে পারে, যা বন্যা সামলানোর জন্যই তৈরি (Cloudflare বিখ্যাত উদাহরণ)। এটি তখনই কাজ করে, যখন Origin-ও Proxy ছাড়া অন্য কোথাও থেকে আসা Traffic প্রত্যাখ্যান করে।
  • TLS (SSL) Termination: Encryption-এর ভারী প্রসেসিং Client ও Proxy-র মধ্যেই থাকে, ফলে Backend Server Application-এর কাজের জন্য মুক্ত থাকে, আর Certificate থাকে এক জায়গায়।
  • Caching: স্ট্যাটিক Content (Image, File, CSS) Server-কে বিরক্ত না করে Proxy থেকেই দেওয়া হয়।
  • বাস্তবে আরও: Compression, Rate Limiting (429 Too Many Requests), বিভিন্ন Service-এ Path ও Host দেখে Routing, X-Forwarded-For ও X-Forwarded-Proto Header যোগ করা যাতে Backend আসল Client জানে, Request-এর আকার ও Timeout সীমা, এবং এক এক করে Server সরিয়ে Downtime ছাড়া Deploy।

জনপ্রিয় Software: Nginx, HAProxy, Envoy, Traefik, Caddy; Managed: Cloudflare, AWS Application Load Balancer, Google Cloud Load Balancing। এই Software-গুলো ভেতরে কীভাবে কাজ করে, তা Web Server ও App Server Lesson-এ।

#TLS কোথায় শেষ হয়

Encryption কোথায় থামে তার ওপর নির্ভর করে Proxy কী করতে পারবে। Termination তাকে পূর্ণ দৃষ্টি দেয় (Cache, Route, Header যোগ); Re-encryption প্রতিটি Hop এনক্রিপ্টেড রাখে, যেমন Compliance বা Zero-trust Network চায়; Passthrough Key Backend-এ রাখে, কিন্তু Proxy-কে বানিয়ে দেয় একটি অন্ধ Layer 4 Relay, যে শুধু Server Name (SNI) দেখে Route করে।

TLS Termination, Re-encryption ও Passthrough

Encryption কোথায় শেষ হয় তার ওপর নির্ভর করে Proxy কী করতে পারবে: Cache, Path দেখে Routing, Header যোগ, নাকি শুধু Byte Forward।

পরিস্থিতি

Browser
Reverse ProxyPublic Certificate
App Server10.0.0.11
TLS Client Hello (SNI: shop.example.com)
ধাপ 1 / 6
1

Browser Proxy-র সঙ্গে TLS Handshake শুরু করে। সাইটের Certificate ও Private Key Proxy-র কাছে থাকে।

#API Gateway: একটি বিশেষ Reverse Proxy

API Gateway (Kong, AWS API Gateway, Apigee, Envoy-ভিত্তিক Gateway) Reverse Proxy-র জায়গাতেই বসে, কিন্তু API বোঝে: Token যাচাই করে (JWT, API Key), প্রতি Client-এর Quota প্রয়োগ করে, /v1/orders ও /v1/users-কে আলাদা Microservice-এ Route করে, Response বদলায় বা একত্র করে, এবং API-এর Log ও Metric-এর জন্য একটি জায়গা দেয়।

API Gateway: যে Reverse Proxy তোমার API বোঝে

Reverse Proxy-র মতোই অবস্থান, সঙ্গে API-সংক্রান্ত কাজ: Token যাচাই, প্রতি Client-এর Rate Limit, Microservice-এ Routing, Response একত্র করা।

পরিস্থিতি

Mobile App
API Gatewayapi.example.com
Users Service
Orders Service
GET /v1/orders (Bearer token)
ধাপ 1 / 5
1

App Authorization Header-এ একটি JWT Access Token দিয়ে API Call করে।

সাধারণ নিয়ম: সবার জন্য প্রযোজ্য (Cross-cutting) কাজ Gateway-তে রাখো (Authentication, Rate Limit, Routing, Logging), আর Business Logic রাখো Service-এ। যে Gateway বেশি জানে, সে এমন এক বাধা হয়ে যায় যা প্রতিটি Team-কে বদলাতে হয়।

#Forward বনাম Reverse Proxy

মানদণ্ডForward ProxyReverse Proxy
কার প্রতিনিধিত্ব করেClient-এর পক্ষে কাজ করেServer-এর পক্ষে কাজ করে
কী লুকায়Client-এর আসল IPমূল Server-এর IP ও Architecture
কে সেট করেClient-এর দিক (ব্যবহারকারী, অফিসের Admin)Website-এর মালিক
Client কি জানে?সাধারণত হ্যাঁ (কনফিগার করা), Transparent না হলেসাধারণত না
প্রধান সুবিধাPrivacy, Access Control ও FilteringLoad Balancing, নিরাপত্তা, TLS Termination ও Caching
জনপ্রিয় উদাহরণCorporate Proxy (Squid, Zscaler), পরিচয় গোপনকারী ProxyCloudflare, Nginx, HAProxy, Envoy, Cloud Load Balancer

নোটে Forward Proxy-র উদাহরণ হিসেবে “VPN Services” আছে। ভূমিকা কাছাকাছি (একজন মধ্যস্থতাকারী যে তোমার IP লুকায়), কিন্তু VPN Network Layer-এ প্রতিটি App-এর সব Traffic নিয়ে কাজ করে, আর Proxy সাধারণত প্রতি Application-এ কাজ করে। নিচে VPN অংশের তুলনার Table পার্থক্যটি স্পষ্ট করে।

নিজেকে যাচাই করোপ্রশ্ন

Nginx-এর পেছনের একটি Backend প্রতিটি Request-কে 10.0.0.5 থেকে আসা হিসেবে Log করছে। আসল Client IP Log করার সঠিক উপায় কী?

#VPN (Virtual Private Network)

VPN পাবলিক Internet-এর মতো উন্মুক্ত ও অনিরাপদ Network-এর ওপর দিয়ে একটি এনক্রিপ্টেড ও সুরক্ষিত ভার্চুয়াল সুড়ঙ্গ বা Tunnel তৈরি করে।

                     Unsecured public network
[Client] ═══ encrypted VPN tunnel (e.g. AES-256) ═══► [VPN server] ──► [Target website]

কীভাবে কাজ করে:

  1. Tunneling Protocol: VPN Client Software (WireGuard, OpenVPN, IPsec) দুই পক্ষ নিজেদের যাচাই করে Key ঠিক করার পর তোমার ডিভাইস ও VPN Server-এর মধ্যে একটি Data Tunnel স্থাপন করে।
  2. Encryption: তোমার ডিভাইস থেকে বের হওয়া প্রতিটি Packet এনক্রিপ্ট হয় (AES-256 দিয়ে, বা WireGuard-এ ChaCha20 দিয়ে) এবং VPN Server-এর ঠিকানায় একটি নতুন Packet-এর ভেতরে মোড়ানো হয়। তোমার ISP, একই Wi-Fi-এর হ্যাকার বা Wi-Fi মালিক দেখতে পায় না তুমি কী পাঠাচ্ছ বা নিচ্ছ, বা কোন সাইটে যাচ্ছ।
  3. IP Masking: তোমার Traffic VPN Server হয়ে Website-এ পৌঁছায়, যা নিজের Address থেকে Forward করে। ফলে Website তোমার আসল IP-র বদলে VPN Server-এর IP দেখে।

VPN: অবিশ্বস্ত Network-এর ভেতর দিয়ে একটি এনক্রিপ্টেড Tunnel

প্রতিটি পরিস্থিতিতে Packet Header দেখো: কে কী পড়তে পারে, আর Website কোন Address দেখে।

পরিস্থিতি

তুমি (ক্যাফের Wi-Fi)192.168.0.23
ক্যাফের Router203.0.113.200দেখে: shop.example
ISP
ISP DNS Resolver
VPN Server203.0.113.50
Website198.51.100.30
A? shop.exampleA? shop.example
ধাপ 1 / 3
1

প্রথমে তোমার Laptop shop.example খোঁজে। সাধারণ DNS Plain Text, তাই ক্যাফে ও ISP তোমার খোঁজা প্রতিটি নাম পড়তে পারে।

Tunnel-এর ভেতরে এটি আক্ষরিক অর্থেই Packet-এর ভেতরে Packet:

VPN Packet-এর ভেতরে: Packet-এর ভেতরে Packet

তোমার সাধারণ Packet এনক্রিপ্ট হয়ে VPN Server-এর ঠিকানায় একটি নতুন বাইরের Packet-এর Payload হয়ে যায় (WireGuard দেখানো হলো)।

পরিস্থিতি

HTTPGET /account
ধাপ 1 / 5
1

Browser একটি HTTP Request তৈরি করে।

#Protocol

Protocolবৈশিষ্ট্য
WireGuardআধুনিক ও ছোট (কয়েক হাজার লাইনের Code), খুব দ্রুত, শুধু UDP, নির্দিষ্ট আধুনিক Cryptography (ChaCha20-Poly1305, Curve25519)। Network বদলালে দ্রুত আবার Connect হয়। বেশিরভাগ নতুন VPN Product-এর Default।
OpenVPNপুরনো ও নমনীয়, TLS ব্যবহার করে, UDP বা TCP-তে চলে (TCP 443 কড়া Firewall পার হতে সাহায্য করে)। WireGuard-এর চেয়ে ধীর ও জটিল।
IPsecপ্রতিষ্ঠানের Gateway-গুলোর মধ্যে Site-to-site Link এবং ফোন ও Laptop-এর Built-in VPN Client-এর দীর্ঘদিনের Standard (সাধারণত IKEv2 Key Exchange-সহ)। Hardware Firewall-এ ব্যাপকভাবে সমর্থিত।

PPTP-র মতো পুরনো Protocol ভাঙা, ব্যবহার করা উচিত নয়।

#Remote-access বনাম Site-to-site

Remote-access বনাম Site-to-site VPN

পরিস্থিতি

বাসায় কর্মীVPN App
Branch PC10.2.0.15
Branch Gatewayচট্টগ্রাম
Internet
প্রধান অফিসের VPN Gatewayঢাকা
File Server10.1.0.20
Accounts App10.1.0.30
TunnelTunnel
ধাপ 1 / 4
1

বাসায় একজন কর্মী VPN App খুলে Sign in করে (Password ও দ্বিতীয় ধাপের যাচাই)। App অফিসের VPN Gateway পর্যন্ত একটি Tunnel তৈরি করে।

  • Remote-access VPN: একজন ব্যবহারকারীর ডিভাইস প্রতিষ্ঠানের Network-এ Connect করে, একটি Internal Address পায়, এবং Private Server-এ পৌঁছাতে পারে। Client Software ও শক্ত Sign-in (দ্বিতীয় ধাপের যাচাইসহ) লাগে।
  • Site-to-site VPN: দুটি Gateway একটি স্থায়ী Tunnel রাখে, ফলে দুটি অফিস (বা অফিস ও Cloud Network) একটি Network-এর মতো আচরণ করে। ডিভাইসে কোনো VPN Software লাগে না। Cloud Provider এটি Managed Service হিসেবে বিক্রি করে।
  • Consumer VPN Service (NordVPN ইত্যাদি) হলো Remote-access VPN, যাদের “প্রতিষ্ঠানের Network” হলো সাধারণ Internet; পাবলিক Wi-Fi-তে Privacy বা অন্য দেশে আছ বলে দেখানোর জন্য ব্যবহৃত।

#Full বনাম Split Tunnel, DNS Leak ও Kill Switch

  • Full Tunnel: সব Traffic VPN দিয়ে যায়। সবচেয়ে Private, প্রতিষ্ঠান সবকিছু Filter করতে পারে, কিন্তু ধীর এবং VPN-এ চাপ বেশি।
  • Split Tunnel: শুধু কিছু Traffic (প্রতিষ্ঠানের Network) VPN দিয়ে যায়; বাকিটা সরাসরি। দ্রুত, কিন্তু ডিভাইস একই সময়ে খোলা Internet ও Private Network দুই জায়গাতেই থাকে।
  • DNS Leak: Tunnel চালু, কিন্তু DNS Query তখনো Tunnel-এর বাইরে ISP-এর Resolver-এ যাচ্ছে, ফলে তোমার যাওয়া প্রতিটি নাম প্রকাশ পায়। ভালো VPN Client নিজস্ব Resolver সেট করে এবং Tunnel-এর বাইরে DNS Block করে। Browser-এর WebRTC-ও একইভাবে তোমার আসল IP প্রকাশ করতে পারে।
  • Kill Switch: Tunnel বিচ্ছিন্ন হলে একটি Local Firewall Rule আবার Connect না হওয়া পর্যন্ত সব Traffic Block করে, চুপচাপ আসল সংযোগে ফিরে না গিয়ে।

#VPN বনাম Proxy বনাম Tor

ProxyVPNTor
কোন স্তরে কাজ করেApplication (প্রতি App বা প্রতি Browser)Network Layer (সব App, সব Traffic)Application (Tor Browser)
তোমার Traffic এনক্রিপ্ট করে?নিজে নয় (HTTPS তবুও Content রক্ষা করে)হ্যাঁ, ডিভাইস থেকে VPN Server পর্যন্তহ্যাঁ, তিন স্তরে, তিনটি Relay জুড়ে
কে তোমার গন্তব্য দেখতে পায়Proxy পরিচালনাকারীVPN Providerকোনো একক Relay তোমাকে ও তোমার গন্তব্য দুটোই দেখে না
গতিদ্রুতদ্রুত (সামান্য Overhead)ধীর
সাধারণ ব্যবহারঅফিসের Filtering, Scraping, একটি App-এর Geo-accessপাবলিক Wi-Fi-তে Privacy, Remote Work, অফিস যুক্ত করাশক্তিশালী পরিচয় গোপন ও Censorship প্রতিরোধ

#Layer ধরে আক্রমণ, আর প্রতিটার প্রতিরক্ষা

Firewall, Proxy আর VPN, প্রত্যেকে সুরক্ষার একটা করে স্তর মাত্র। আক্রমণ আসে Network Model-এর প্রতিটা Layer দিয়ে, আর প্রতিটা Layer-এর নিজস্ব প্রতিরক্ষা আছে। মনে রাখার সহজ নিয়ম: কোনো আক্রমণ থামাতে পারে শুধু সে-ই, যে ওই Layer দেখতে পায়। বৈধ HTTPS Request-এর ভেতরে লুকানো SQL Injection একটা Packet Filter দেখতেই পায় না, আবার Data Center-এর WAF অফিসের LAN-এর ARP Spoofing দেখতে পায় না।

Layerচেনা আক্রমণকীভাবে কাজ করেওই Layer-এর প্রতিরক্ষা
১ PhysicalCable Tapping, রেডিও Jamming, ডিভাইস চুরিSignal কপি করা, Wi-Fi-কে শব্দে ডুবিয়ে দেওয়া, Laptop বা Disk নিয়ে চলে যাওয়াতালাবন্ধ Comms Room, খালি Port বন্ধ, Camera, Disk Encryption; পথে Encryption থাকলে Tap করে লাভ নেই
২ Data LinkARP Spoofing, MAC Spoofing ও Flooding, VLAN HoppingGateway-এর IP নিজের বলে দাবি করে Man-in-the-middle হওয়া; Switch-এর MAC Table উপচে দেওয়া, যাতে সে Hub-এর মতো সব Frame সবখানে পাঠায়; ব্যবহারকারীর Port-কে Trunk বানিয়ে অন্য VLAN-এ ঢোকাDHCP Snooping-সহ Dynamic ARP Inspection, Port Security (প্রতি Port-এ MAC-এর সীমা), ব্যবহারকারীর Port-এ নিজে থেকে Trunk বন্ধ, ডিভাইস যোগ দেওয়ার আগে Port-এ পরিচয় যাচাই
৩ NetworkIP Spoofing, ICMP Flood, Route Hijackজাল Source Address; আবর্জনা দিয়ে Link ভরানো; অন্যের Prefix নিজের বলে ঘোষণাIngress (Anti-spoofing) Filtering, ACL, ICMP-এর হার বেঁধে দেওয়া, ওপরের দিকে DDoS Scrubbing, RPKI (Lesson 1.7), দুই অফিসের মধ্যে IPsec
৪ TransportSYN Flood, Port ScanningHalf-open Connection-এর Table ভরে ফেলা; কোন Port খোলা তার Map বানানোSYN Cookie, Stateful Firewall, Default Deny, Connection-এর হার বেঁধে দেওয়া, Scan দেখলে IDS Alert
৫–৬ Session, PresentationSession Hijacking, দুর্বল বা অনুপস্থিত EncryptionSession Cookie বা Token চুরি; খোলা বা ভাঙা Cipher-এর Traffic পড়ে ফেলাTLS 1.2 বা নতুন (1.3 ভালো), Secure Cookie Flag আর Login-এর সময় নতুন Session ID (Lesson 1.3)
৭ ApplicationSQL Injection, XSS, HTTP Flood, Password আক্রমণInput-এর ভেতর দিয়ে Code ঢোকানো; বৈধ দেখতে Request-এর ঢল; ফাঁস হওয়া Password চেষ্টাWAF, Parameterised Query, Output Encoding, হার বেঁধে দেওয়া আর Bot যাচাই, MFA

এই Table থেকে দুটো কথা বেরিয়ে আসে:

  • Defence in Depth। একা কোনো Layer যথেষ্ট না। Edge Firewall বেশিরভাগ আবর্জনা ছেঁটে ফেলে, যাতে ওপরের দামি Layer-গুলো চাপে ডুবে না যায়; WAF ভুলভরা Code-এর জন্য নিরাপত্তা জাল; আর Injection-এর আসল সমাধান Code নিজেই। একটা স্তর ভাঙলেও পরেরটা দাঁড়িয়ে থাকে।
  • Encryption তার নিচের সব Layer-কে রক্ষা করে। Traffic TLS বা VPN-এ থাকলে ARP Spoofing করা আক্রমণকারী বা Cable Tap পায় শুধু Ciphertext। এজন্যই আধুনিক Network ভেতরের Traffic-ও এনক্রিপ্ট করে, আর এখান থেকেই সরাসরি আসে Zero Trust।

Defence in Depth: প্রতিটা আক্রমণ থামে সেই Layer-এ, যেখানে তাকে দেখা যায়

একটা অফিসের LAN আর একটা Public Web App। একটা Layer বেছে নাও: আগে তার চেনা আক্রমণ, তারপর ওই Layer-এ যে প্রতিরক্ষা কাজ করে।

পরিস্থিতি

Internet-এর আক্রমণকারী
Edge Router + FirewallL3 / L4
WAF / Reverse ProxyL7
Web App
অফিসের ভেতরের অচেনা ডিভাইস
Access SwitchL2
কর্মীর Laptop192.168.1.20
খালি Wall Port

Layer অনুযায়ী আক্রমণ

Layerআক্রমণকে থামায়
L1Cable Tap, রেডিও Jamming, চুরিতালাবন্ধ ঘর, বন্ধ Port, Encryption
L2ARP Spoofing, MAC Flooding, VLAN HoppingDynamic ARP Inspection, Port Security, Auto-trunking বন্ধ
L3IP Spoofing, ICMP Flood, Route HijackIngress Filtering, Rate Limit, Upstream Scrubbing, RPKI
L4SYN Flood, Port ScanSYN Cookie, Stateful Firewall, Default Deny
L7SQL Injection, XSS, HTTP FloodWAF, Parameterised Query, Rate Limit
ধাপ 1 / 3
1

Layer 1-এর আক্রমণে লাগে শারীরিক নাগাল: দেয়ালের খালি Socket-এ একটা ডিভাইস গুঁজে দেওয়া, সিলিংয়ের Cable-এ Tap বসানো, বা রেডিও Transmitter দিয়ে Wi-Fi Jam করা। কোনো Packet Filter এর কিছুই দেখতে পায় না।

#Service-এ Service-এ: mTLS আর Zero Trust

পুরনো ধাঁচের অফিস Network যেন পরিখা ঘেরা দুর্গ: সীমানায় Firewall, আর ভেতরের সবাই বিশ্বস্ত। দুর্বলতাটা ধরা পড়ে যেদিন আক্রমণকারী একটা Machine-এ ঢুকে পড়ে, Phishing-এ পড়া Laptop বা দুর্বল কোনো Web Server দিয়ে: সেখান থেকে সে বাকি সবখানে পৌঁছে যায়, কারণ ভেতরের সবাই ভেতরের সবাইকে বিশ্বাস করে। একে বলে Lateral Movement, আর বড় বড় হামলার বেশিরভাগেই এটা থাকে।

Zero Trust “বিশ্বস্ত Network” ধারণাটাই বাদ দেয়। প্রতিটা Request-কে প্রমাণ করতে হয় সে কার কাছ থেকে আসছে, আর অনুমতি পেতে হয়, সে যেখান থেকেই আসুক:

  • Service-এ Service-এ প্রমাণ হলো Mutual TLS (mTLS)। দুই পক্ষই Certificate দেখায়, তাই Payments Service নিশ্চিত জানে Call-টা সত্যিই Orders Service-এর, শুধু “10.0.3.7-এর কেউ একজন” না। Certificate-গুলো স্বল্পমেয়াদি আর নিজে থেকেই তৈরি হয়, সাধারণত একটা Service Mesh (Istio, Linkerd) বা Platform-ই দেয়, তাই কাউকে হাতে Key সামলাতে হয় না।
  • পরিচয়ের পর আসে Policy: “Orders পারবে Payments-কে Call করতে; আর কেউ না”। দখল হওয়া Web Server একই Network-এ আছে বলেই আর Database-এ পৌঁছাতে পারে না।
  • মানুষের জন্যও একই ধারণা VPN-এর জায়গা নেয় একটা Identity-aware Proxy দিয়ে: প্রতিটা ভেতরের App প্রতিটা Request-এ ব্যবহারকারী আর ডিভাইস যাচাই করে (Google তার নিজের কর্মীদের Access এভাবেই চালায়)।

Firewall আর Network ভাগ করা এখনো বাড়তি স্তর হিসেবে দরকারি; Zero Trust শুধু Network-এর অবস্থানকে আর কোনো প্রমাণ হিসেবে ধরে না। Identity, Certificate, Token আর Access Policy পুরোপুরি পড়ানো হবে Chapter 33-এ, Identity and Access।

#System Design-এ এরা কীভাবে আসে

একটি সাধারণ Production Request-এর পথে তিনটি ধারণাই মিলেমিশে থাকে:

User ─► DNS ─► CDN / WAF / DDoS protection ─► load balancer (reverse proxy, TLS termination)
     ─► API gateway ─► services (in private subnets, security groups)
     ─► database (reachable only from the services)

Engineers ─► VPN or zero-trust access ─► private admin tools (never SSH open to the internet)
Services  ─► NAT gateway / egress proxy ─► third-party APIs (outbound allow list)

Interviewer ও Incident যেসব Design-এর প্রশ্ন তোলে:

  • Reverse Proxy একটি Single Point of Failure, যদি না সেটি Redundant হয়: অন্তত দুটি Load Balancer Node চালাও (বা Managed, Multi-zone একটি ব্যবহার করো), একটি DNS নাম বা Floating IP-র পেছনে।
  • Health Check-কে আসল কিছু পরীক্ষা করতে হবে। Database-এ পৌঁছানো না গেলেও যে /healthz 200 দেয়, সে ব্যবহারকারীকে নষ্ট Server-এ পাঠায়; আবার অতিরিক্ত কড়া Check একসঙ্গে সব Server বাদ দিয়ে দিতে পারে।
  • Server Private রাখো। শুধু Load Balancer-এর Public Address থাকে; Security Group App Port শুধু Load Balancer-এর Group থেকে, আর Database Port শুধু App-এর Group থেকে Allow করে।
  • Admin Access VPN, Bastion Host বা Zero-trust Access Service দিয়ে, কখনো পুরো দুনিয়ার জন্য Port 22 খুলে নয়।
  • Egress নিয়ন্ত্রণ দখল হওয়া Service কোথায় পৌঁছাতে পারবে তা সীমিত করে, এবং একটি স্থির Outbound IP দেয় যা Partner-রা Allow-list করতে পারে।
  • প্রতিটি Proxy পেরিয়ে Client IP ধরে রাখো (X-Forwarded-For, বা সাধারণ TCP-র জন্য HAProxy-র Proxy Protocol), এবং শুধু নিজের Proxy থেকে এলে বিশ্বাস করো।
  • TLS Termination-এর জায়গায় Certificate নবায়ন স্বয়ংক্রিয় করো; মেয়াদ শেষ হওয়া নিজের হাতে তৈরি Outage-এর সবচেয়ে সাধারণ কারণগুলোর একটি।
  • প্রতিরক্ষা স্তরে স্তরে সাজাও: Layer 3–4-এর জন্য DDoS Scrubbing আর Edge Firewall, Layer 7-এর জন্য WAF আর Rate Limit, আর ভেতরে mTLS ও প্রতি Service-এর Policy, যাতে একটা Machine দখল হলেই পুরো System দখল না হয়।

#নিজে করে দেখো

# Linux (Ubuntu): a sensible host firewall in five lines
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 443/tcp
sudo ufw allow from 192.0.2.50 to any port 22 proto tcp   # SSH only from one address
sudo ufw enable && sudo ufw status numbered               # rules in order

# Windows (PowerShell): firewall profiles and a rule
Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultInboundAction
New-NetFirewallRule -DisplayName "Block 3306 in" -Direction Inbound -Protocol TCP -LocalPort 3306 -Action Block
# Watch a forward proxy's CONNECT tunnel (any proxy you have access to)
curl -v -x http://proxy.example.com:3128 https://example.com/ 2>&1 | grep -i connect

# Look for reverse proxies and caches in response headers
curl -sI https://www.cloudflare.com | grep -iE "server|cf-cache-status|age"

# Your public IP, with and without the VPN connected
curl https://ifconfig.me

Load Balancing ও প্রচলিত Header-সহ একটি ছোট Nginx Reverse Proxy:

upstream web_pool {
    server 10.0.0.11:8080 max_fails=3 fail_timeout=10s;
    server 10.0.0.12:8080 max_fails=3 fail_timeout=10s;
}
server {
    listen 443 ssl;
    server_name shop.example.com;
    ssl_certificate     /etc/ssl/shop.crt;   # TLS terminates here
    ssl_certificate_key /etc/ssl/shop.key;

    location /api/orders/ { proxy_pass http://10.0.0.21:8080; }   # path-based routing
    location / {
        proxy_pass http://web_pool;
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host              $host;
    }
}

#সারসংক্ষেপ

মূল শিক্ষা

  • Firewall IP, Port, Protocol ও দিকের ওপর Rule দিয়ে Traffic Allow বা Block করে। Rule ওপর থেকে নিচে দেখা হয়, প্রথম মিলটাই জেতে, শেষে থাকে Default Deny। Inbound Rule Service পাহারা দেয় (Port 22 দুনিয়ার জন্য বন্ধ); Outbound Rule Data ও Malware বেরোনো আটকায়।
  • Stateful Firewall Connection Track করে, তাই বড় Inbound Rule ছাড়াই উত্তর ফিরে আসে। Stateless Filter (Router ACL, Cloud NACL)-এর Ephemeral Port-এ Return Traffic-এর জন্য স্পষ্ট Rule লাগে। নিষ্ক্রিয় State-এর মেয়াদ শেষ হয়: Keepalive ব্যবহার করো।
  • Hardware Firewall Network রক্ষা করে, Software Firewall Host রক্ষা করে; দুটোই ব্যবহার করো। NAT Firewall নয়। WAF HTTP পড়ে, IDS Alert দেয়, IPS Inline Block করে, DMZ পাবলিক Server আলাদা রাখে। Cloud-এ Security Group Stateful, NACL Stateless।
  • Forward Proxy Client-এর হয়ে কাজ করে: Anonymity, Geo-bypass, Filtering, Caching। HTTPS এটি পার হয় CONNECT দিয়ে, End-to-End, যদি না প্রতিষ্ঠান TLS Intercept করে।
  • Reverse Proxy Server-এর হয়ে কাজ করে: Health Check-সহ Load Balancing, Origin লুকানো ও DDoS শোষণ, TLS Termination, Caching, Routing, Rate Limiting, X-Forwarded-For। API Gateway হলো API-এর জন্য বিশেষায়িত Reverse Proxy।
  • VPN এনক্রিপ্টেড Packet-কে VPN Server-এর ঠিকানার Packet-এ মুড়ে দেয় (WireGuard, OpenVPN, IPsec): Local Network ও ISP শুধু Tunnel দেখে, Website দেখে VPN-এর IP। এটি VPN Provider বা যে সাইটে Login করো তার কাছ থেকে তোমাকে লুকায় না। DNS Leak-এর দিকে নজর রাখো; Kill Switch ব্যবহার করো।
  • প্রতিটা Layer-এর নিজস্ব আক্রমণ আর প্রতিরক্ষা আছে: Tapping (শারীরিক নিরাপত্তা, Encryption), ARP Spoofing (Dynamic ARP Inspection), IP Spoofing আর Flood (Ingress Filtering, Scrubbing), SYN Flood আর Scan (SYN Cookie, Default Deny), SQL Injection আর HTTP Flood (WAF, নিরাপদ Code, Rate Limit)। Zero Trust যোগ করে mTLS আর প্রতি Service-এর Policy, যাতে Network-এর ভেতরে থাকাটা কিছুই প্রমাণ না করে।