সরাসরি পর্বে যান
পর্ব ২৫ · ৮০-এর মধ্যে · মডিউল ৪

VPN আর ZTNA — IPsec, WireGuard আর application-ভিত্তিক access

VPN and ZTNA — IPsec, WireGuard & Application-Based Access

Taught in Bangla, this lesson explains what a VPN protects and what it does not, remote access and site-to-site designs, IPsec with IKEv2, ESP, AH and its two modes, TLS VPNs and WireGuard, overhead and MTU calculations, full versus split tunnel, hardening VPN gateways, ZTNA policy with device posture, step-by-step migration, and honest limits of consumer VPN advertising, with in-page simulators.

এই পর্বে যা শিখবেন

  • VPN কোন ঝুঁকি কমায় আর কোন ঝুঁকিতে হাতই দেয় না
  • Remote access আর site-to-site-এর পার্থক্য; IPsec-এর IKEv2, ESP, AH আর দুই mode
  • TLS VPN আর WireGuard-এর নকশা, overhead আর MTU-র হিসাব
  • Full tunnel বনাম split tunnel-এর সিদ্ধান্ত
  • VPN gateway সুরক্ষা: patch, MFA, session limit আর log
  • ZTNA-র policy, device posture, VPN-এর সাথে তুলনা আর ধাপে ধাপে migration
  • Consumer VPN-এর বিজ্ঞাপন কী দাবি করে আর কী প্রতিশ্রুতি দেয় না

১ · VPN কী রক্ষা করে, কী করে না

ব্যাংকের ক্যাশ ভ্যান ভাবুন। শাখা থেকে ভল্টে টাকা যায় সাঁজোয়া গাড়িতে। পথের পকেটমার বা ছিনতাইকারী ভেতরে হাত দিতে পারে না। কিন্তু শাখার ভেতরের কেউ যদি জাল নোট গাড়িতে তোলে, গাড়ি সেটিও নিরাপদে পৌঁছে দেয়। গাড়ি পথ রক্ষা করে, মাল যাচাই করে না।

VPN (virtual private network) ঠিক এই গাড়ি। এটি খোলা ইন্টারনেটের ওপর একটি tunnel বানায়। Tunnel মানে একটি packet-কে আরেকটি packet-এর ভেতরে ভরে পাঠানো। VPN তিনটি কাজ একসাথে করে: encryption, integrity যাচাই আর দুই প্রান্তের পরিচয় যাচাই। Tunnel আর MTU-র network-দিক Firewall আর VPN পর্বে আছে। এখানে আমরা রক্ষকের প্রশ্ন ধরব: এটি কোন ঝুঁকি কমায়, আর ভুল করলে কী হয়?

পরিস্থিতিVPN সাহায্য করে?কারণ বা আসল নিয়ন্ত্রণ
ক্যাফের Wi-Fi-তে কেউ ট্রাফিক দেখছেহ্যাঁTunnel-এর ভেতরের অংশ পড়া যায় না; বাইরে দেখা যায় gateway-এর ঠিকানা, আকার আর সময়
দুই অফিসের মধ্যে private ঠিকানায় যোগাযোগহ্যাঁএটাই site-to-site VPN-এর কাজ
Laptop-এ malwareনাMalware tunnel-এর ভেতর দিয়েই অফিসে পৌঁছাতে পারে। লাগে EDR, patch আর least privilege
Password চুরিনা, উল্টো ঝুঁকিVPN login চুরি মানে network-এর দরজা খোলা। লাগে phishing-প্রতিরোধী MFA
Phishing সাইটনাআপনি নিজেই সাইটে যাচ্ছেন; tunnel সেটি আলাদা করে না
দুর্বল web appনাVPN app-এর বাগ ঠিক করে না; শুধু কে পৌঁছাতে পারে তা বদলায়
Gateway-র পরের অংশনাTunnel শেষ হয় gateway-তে। এরপর ডেটা সাধারণ পথে যায়, তাই TLS রাখতে হয়
মূল ধারণা

VPN একটি পরিবহন নিয়ন্ত্রণ। এটি প্রশ্ন করে “এই tunnel বৈধ কি না”, আর প্রথাগত নকশায় ভেতরে ঢোকার পর আর প্রশ্ন করে না। আক্রমণকারীর দিক থেকে তাই চুরি হওয়া VPN login মানে network-এর ভেতরে একটি পা রাখার জায়গা, যেখান থেকে lateral movement শুরু হতে পারে। রক্ষকের কাজ তিনটি: ঢোকা কঠিন করা, ভেতরের নাগাল ছোট করা, আর অস্বাভাবিক ব্যবহার দ্রুত ধরা।

২ · Remote access আর site-to-site

একই প্রযুক্তি দুই আকারে ব্যবহার হয়, আর ঝুঁকিও আলাদা।

Remote access VPN

Remote access VPN-এ একজন মানুষের যন্ত্র বাইরে থেকে অফিসের gateway-তে যুক্ত হয়। ঝুঁকি মূলত মানুষের: চুরি হওয়া password, পুরোনো laptop, বাড়ির network.

মানুষ থেকে network

Site-to-site VPN

Site-to-site VPN-এ দুই অফিস বা অফিস আর cloud-এর gateway সবসময় যুক্ত থাকে। ভেতরের কম্পিউটার কিছু টের পায় না। ঝুঁকি: এক শাখার সমস্যা অন্য শাখায় ছড়ানো।

Network থেকে network

Site-to-site tunnel-কে অনেকে “নিরাপদ তার” ভেবে দুই দিকেই সব খুলে রাখেন। এতে দুই network কার্যত একটি হয়ে যায়, আর তৃতীয় পক্ষের vendor-এর network হলে ঝুঁকি আরও বাড়ে। Tunnel-এর দুই পাশে firewall নিয়ম রাখুন: শুধু দরকারি host আর port. Cloud-এর দিকের নকশা দেখুন VPC connectivity পর্বে। Segmentation-এর নিয়ম পাবেন পর্ব ২২-এ।

৩ · IPsec — IKEv2, ESP, AH আর দুই mode

IPsec IP স্তরে কাজ করে, তাই ওপরের যেকোনো protocol সুরক্ষা পায়। এর দুটি ভাগ মনে রাখুন। Control plane ঠিক করে কে কার সাথে কোন key-তে কথা বলবে। Data plane আসল packet বহন করে।

অংশকাজরক্ষকের চোখে
IKEv2পরিচয় যাচাই, Diffie-Hellman, SA তৈরি আর নবায়ন (RFC 7296)দুর্বল group আর অ্যালগরিদম বন্ধ রাখুন; certificate ভালো, ছোট pre-shared key ঝুঁকিপূর্ণ
ESPEncryption আর integrity (RFC 4303)AES-GCM-এর মতো AEAD পছন্দ করুন
AHশুধু integrity আর উৎস যাচাই (RFC 4302)গোপনীয়তা দেয় না, NAT-এর সাথে মেলে না; আজ কম ব্যবহৃত
Tunnel modeপুরো মূল packet ভেতরে, নতুন বাইরের headerGateway-র মাঝে প্রচলিত; ভেতরের ঠিকানা লুকায়
Transport modeমূল IP header থাকে, শুধু payload সুরক্ষিতদুই host-এর মাঝে; ঠিকানা দৃশ্যমান
SA আর SPIএক দিকের চুক্তি আর তার নম্বরLog-এ SPI দেখে tunnel চেনা যায়
Traffic selectorকোন ঠিকানার ট্রাফিক tunnel-এ যাবেযত ছোট, তত ভালো; any এড়িয়ে চলুন

এবার একটি tunnel উঠতে দেখুন। ঢাকা আর চট্টগ্রাম অফিসের gateway, ঠিকানা documentation-এর জন্য সংরক্ষিত। সব মান কাল্পনিক, আর দেখানো হয়েছে ধারণার স্তরে।

  1. ট্রাফিকনিয়ম মিললSA নেই
  2. INITUDP 500key বানানো
  3. AUTHএনক্রিপ্টেডপরিচয় প্রমাণ
  4. ESPডেটা চলেদুই দিকের SA
চট্টগ্রাম gatewayনিয়মের তালিকা
packet: 10.2.0.5 -> 10.1.0.20
policy: 10.2.0.0/16 <-> 10.1.0.0/16  = PROTECT
SA    : নেই, তাই IKEv2 শুরু
IKE_SA_INITদুটি বার্তা, এখনও খোলা
চট্টগ্রাম -> ঢাকা : অ্যালগরিদম প্রস্তাব, DH public, nonce
ঢাকা -> চট্টগ্রাম : বাছাই করা প্রস্তাব, DH public, nonce
ফল: দুই পাশে একই গোপন key
এখনও জানা নেই অপর পাশে কে
IKE_AUTHদুটি বার্তা, এনক্রিপ্টেড
চট্টগ্রাম -> ঢাকা : ID, AUTH, প্রস্তাব, traffic selector
ঢাকা -> চট্টগ্রাম : ID, AUTH, বাছাই, traffic selector
ফল: দুই পাশের পরিচয় প্রমাণিত
Child SA তৈরিপ্রতি দিকে একটি
চট্টগ্রাম -> ঢাকা : SPI 0x0000a101, AES-GCM
ঢাকা -> চট্টগ্রাম : SPI 0x0000b202, AES-GCM
SPI দুটি কাল্পনিক
পথে একটি ESP packetTunnel mode
বাইরের IP : 203.0.113.1 -> 198.51.100.1
ESP       : SPI 0x0000a101, sequence 1
ভেতরে     : এনক্রিপ্টেড মূল packet
10.2.0.5 আর 10.1.0.20 পথে দেখা যায় না
মেয়াদ ফুরানোর আগেCREATE_CHILD_SA
পুরোনো: SPI 0x0000a101
নতুন  : SPI 0x0000a102
log   : rekey সফল, tunnel চালু
  1. ট্রাফিক নিয়মে মিলল। চট্টগ্রামের 10.2.0.5 ঢাকার 10.1.0.20-এ যেতে চায়। Gateway-র নিয়ম বলছে এই ট্রাফিক সুরক্ষিত হবে, কিন্তু কোনো SA নেই। তাই IKEv2 শুরু হলো।
  2. IKE_SA_INIT. দুই পাশ অ্যালগরিদমে একমত হয়, Diffie-Hellman-এর public মান আর nonce বিনিময় করে। এতে এনক্রিপ্টেড চ্যানেল তৈরি হয়। পথে NAT আছে কি না তাও এই ধাপে ধরা পড়ে। থাকলে পরের বার্তা UDP 4500-এ যায়, যাকে NAT-T বলে। লক্ষ করুন, পরিচয় এখনও প্রমাণিত নয়।
  3. IKE_AUTH. এবার এনক্রিপ্টেড চ্যানেলে দুই পাশ পরিচয় প্রমাণ করে, certificate বা pre-shared key দিয়ে। Traffic selector-ও এখানে ঠিক হয়। মিল না হলে tunnel ওঠে না। এখানেই বেশিরভাগ configuration ভুল ধরা পড়ে।
  4. দুটি SA. IKE_AUTH-এর সাথেই প্রথম child SA তৈরি হয়। প্রতি দিকের জন্য আলাদা SA, আলাদা SPI. তাই একটি tunnel-এ অন্তত দুটি SPI দেখা যায়।
  5. ESP-তে ডেটা। মূল packet পুরোটা এনক্রিপ্ট হয়ে নতুন header পায়। পথে দেখা যায় শুধু দুই gateway-এর ঠিকানা। Sequence নম্বর পুরোনো packet-এর পুনরাবৃত্তি ধরতে সাহায্য করে।
  6. নবায়ন। মেয়াদ ফুরানোর আগে CREATE_CHILD_SA নতুন key আর নতুন SPI আনে। নতুন Diffie-Hellman ব্যবহার করলে forward secrecy শক্ত হয়। Rekey ব্যর্থতা log-এ দেখুন, কারণ অনেক “হঠাৎ tunnel পড়ে গেল” সমস্যার কারণ এটাই।

দেখার তালিকা: IKEv2 ব্যবহার করুন, IKEv1 বন্ধ করুন। AEAD আর আধুনিক Diffie-Hellman group রাখুন। অনুমোদিত বিকল্পের ছোট তালিকা রাখুন, যাতে downgrade-এর সুযোগ কমে। পুরোনো অ্যালগরিদম “সামঞ্জস্যের জন্য” চালু রাখা IPsec-এর সবচেয়ে পরিচিত ভুল। আরও নির্দেশনা আছে NIST SP 800-77 Rev. 1 (২০২০)-এ।

৪ · TLS VPN আর WireGuard

TLS VPN

TLS VPN tunnel বা portal চালায় TLS-এর ওপর। সুবিধা: সাধারণত TCP 443-এ চলে, তাই হোটেল বা অতিথি network-এও সংযোগ পাওয়া সহজ। এই নামের নিচে দুটি জিনিস থাকে। একটি browser-এর web portal, অন্যটি client দিয়ে পুরো network tunnel. OpenVPN-এর মতো সফটওয়্যার TLS দিয়ে key বানিয়ে নিজের packet format ব্যবহার করে।

দুটি সতর্কতা। প্রথমত, gateway-এর web interface সরাসরি ইন্টারনেটে থাকে, আর সেখানে জটিল কোড চলে। তাই TLS portal-এর দুর্বলতা গুরুতর হয়। দ্বিতীয়ত, TCP-র ভেতরে TCP চললে দুই স্তরের retransmission একে অপরের সাথে লড়ে। একে TCP meltdown বলে। এজন্যই tunnel-এ সাধারণত UDP পছন্দ করা হয়।

WireGuard-এর নকশা

WireGuard বানান Jason A. Donenfeld, আর NDSS ২০১৭-তে প্রকাশিত প্রবন্ধে এর নকশা আছে। প্রবন্ধটি বলে, Linux-এ এটি ৪,০০০ লাইনের কম কোডে লেখা সম্ভব। পরে লাইন গোনার পদ্ধতিভেদে সংখ্যা কিছুটা বদলায়, তবে মূল কথা একই: পর্যালোচনা করার মতো ছোট কোড। এটি Linux ৫.৬ (২০২০)-তে kernel-এ যুক্ত হয়।

  • একটি নির্দিষ্ট suite: Curve25519, ChaCha20-Poly1305, BLAKE2s, SipHash24 আর HKDF. আলোচনা করে অ্যালগরিদম বাছাই নেই, তাই downgrade-এর পথও নেই।
  • Noise protocol: Handshake গড়া Noise_IKpsk2 নকশায়। এক round trip-এ key তৈরি হয়। চাইলে অতিরিক্ত pre-shared key মেশানো যায়, যা ভবিষ্যৎ post-quantum ঝুঁকিতে বাড়তি স্তর হিসেবে আলোচিত।
  • Public key-ই পরিচয়: প্রতিটি peer একটি Curve25519 public key দিয়ে চেনা হয়, SSH key-র মতো। কোনো username বা certificate কর্তৃপক্ষ নেই।
  • Cryptokey routing: Public key-র সাথে জোড়া থাকে AllowedIPs. বাইরে পাঠানোর সময় এটি routing table, ভেতরে নেওয়ার সময় ACL.
  • নীরবতা: বৈধ handshake ছাড়া এটি উত্তর দেয় না, তাই বাইরে থেকে port আছে কি না বোঝা কঠিন হয়।

এবার একটি packet-এর যাত্রা দেখুন। Laptop (10.8.0.2) নিজের বাড়ির device-কে (10.8.0.1) ১২০ বাইটের একটি IP packet পাঠাচ্ছে।

ধাপ ১ · wg0 interface120 বাইট
IP src 10.8.0.2  dst 10.8.0.1
plaintext: 120 bytes
ধাপ ২ · cryptokey routingdst দেখে peer
dst 10.8.0.1 matches AllowedIPs 10.8.0.1/32
peer = home device (public key)
endpoint = 203.0.113.10:51820
ধাপ ৩ · session keyএক round trip
initiation -> 148 bytes
response   <- 92 bytes
send key, receive key ready
ধাপ ৪ · encryptionChaCha20-Poly1305
padded to 16: 120 -> 128
header (type, index, counter 7) : 16
ciphertext                      : 128
tag                             : 16
WireGuard message = 160 bytes
ধাপ ৫ · পথেবাইরে যা দেখা যায়
IPv4 20 + UDP 8 + message 160 = 188 bytes
visible: public addresses, port, size, time
hidden : 10.8.0.x, content
ধাপ ৬ · peer গ্রহণ করলচার যাচাই
index finds session        OK
counter 7 not seen before  OK
tag valid, decrypt         OK
src 10.8.0.2 in AllowedIPs OK, deliver
  1. Plaintext. প্রোগ্রাম সাধারণভাবে packet পাঠায়। OS সেটি wg0 নামের virtual interface-এ দেয়। প্রোগ্রাম জানেও না যে VPN আছে।
  2. Peer খোঁজা। গন্তব্য 10.8.0.1 যে peer-এর AllowedIPs-এ আছে, তার key আর endpoint বাছাই হয়। কোনো peer না মিললে packet পাঠানোই হয় না।
  3. Session key. চালু session না থাকলে handshake হয়: ১৪৮ বাইট যায়, ৯২ বাইট আসে। এরপর দুই পাশে দুটি session key. WireGuard-এর প্রকাশিত নকশায় প্রায় দুই মিনিট পরপর নতুন key আসে।
  4. Encryption. ১২০ বাইট শূন্য দিয়ে ১৬-এর গুণিতক ১২৮ হয়। ১৬ বাইট header, ১২৮ বাইট ciphertext আর ১৬ বাইট tag মিলে ১৬০ বাইট। Counter প্রতিবার বাড়ে, আর nonce হিসেবে কাজ করে। তাই nonce ফিরে আসে না।
  5. পথে। UDP আর IPv4 header জুড়ে ১৮৮ বাইট। পথের নজরদার public ঠিকানা, port, আকার আর সময় দেখে। ভেতরের ঠিকানা আর ডেটা দেখে না। Metadata যে পুরো লুকায় না, এটি মনে রাখুন।
  6. গ্রহণ। Receiver index দিয়ে session মেলে। Counter পুরোনো হলে replay হিসেবে বাতিল। Tag ভুল হলে বাতিল। শেষে ভেতরের উৎস ওই peer-এর AllowedIPs-এ আছে কি না দেখা হয়। সব ঠিক থাকলে তবেই packet ভেতরে যায়।

উদাহরণ: নিজের দুটি device-এর জন্য

নিচের configuration নিজের বাড়ির device আর নিজের laptop-এর জন্য। Key-গুলো কাল্পনিক, পড়ার জন্য দেখানো। এগুলো ব্যবহার করবেন না। প্রতিটি device-এ নিজের key নিজে বানান, আর private key ওই device থেকে কখনও বের করবেন না। শুধু নিজের যন্ত্র বা লিখিত অনুমতি আছে এমন network-এ এটি চালাবেন।

# Run on EACH of your own devices. The private key stays on that device.
umask 077
wg genkey > wg-private.key
wg pubkey < wg-private.key > wg-public.key
# /etc/wireguard/wg0.conf on your home device
# ALL KEYS BELOW ARE FAKE. They only show the format. Replace them with your own.
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = FAKEPRIVATEKEYxHome1DoNotUseThisInRealLife0=

[Peer]
# your laptop
PublicKey = FAKEPUBLICKEYxLapt1xDoNotUseThisInRealLife0=
AllowedIPs = 10.8.0.2/32
# /etc/wireguard/wg0.conf on your laptop
# ALL KEYS BELOW ARE FAKE. They only show the format. Replace them with your own.
[Interface]
Address = 10.8.0.2/24
PrivateKey = FAKEPRIVATEKEYxLapt1DoNotUseThisInRealLife0=

[Peer]
# your home device
PublicKey = FAKEPUBLICKEYxHome1xDoNotUseThisInRealLife0=
Endpoint = home.example.com:51820
AllowedIPs = 10.8.0.1/32
PersistentKeepalive = 25

AllowedIPs এখানে একটি মাত্র /32, তাই এই tunnel শুধু দুই device-এর মধ্যে। Laptop বিক্রি বা হারিয়ে গেলে home device থেকে ওই [Peer] অংশ মুছে দিন। PersistentKeepalive NAT-এর সারি বাঁচিয়ে রাখে। sudo wg show দিয়ে শেষ handshake দেখতে পাবেন। মনে রাখুন, প্রতিষ্ঠানে WireGuard একা যথেষ্ট নয়: এতে MFA, group বা মেয়াদি key নেই। এসবের জন্য ওপরে একটি ব্যবস্থাপনার স্তর লাগে।

কত বাইট খরচ: overhead আর MTU

Tunnel মানে প্রতিটি packet-এ বাড়তি header. WireGuard-এর IPv4-এ হিসাব: ২০ (IP) + ৮ (UDP) + ১৬ (header) + ১৬ (tag) = ৬০ বাইট। MTU ১৫০০ হলে ভেতরের সর্বোচ্চ packet ১৪৪০। নিচের calculator চারটি tunnel-এর হিসাব মেলায়। ধরে নেওয়া হয়েছে ESP-তে AES-GCM আর ভেতরে ৪০ বাইটের IPv4 + TCP header.

// Tunnel overhead calculator. Header sizes assume the settings named in comments.
const padTo = (n, m) => Math.ceil(n / m) * m;
const wgWire = (inner, ip) => ip + 8 + 16 + padTo(inner, 16) + 16;  // UDP, header, tag
const espWire = (inner, ip, natT) =>                // ESP tunnel mode with AES-GCM
  ip + (natT ? 8 : 0) + 8 + 8 + padTo(inner + 2, 4) + 16;  // SPI+seq, IV, ICV
function maxInner(wireOf, link) {                   // largest inner packet that fits
  let n = link;
  while (wireOf(n) > link) n--;
  return n;
}
const TUNNELS = [
  ['WireGuard, IPv4', n => wgWire(n, 20), 60],
  ['WireGuard, IPv6', n => wgWire(n, 40), 80],
  ['ESP tunnel, IPv4', n => espWire(n, 20, false), 0],
  ['ESP + NAT-T, IPv4', n => espWire(n, 20, true), 0],
];
function innerFor(fn, fixed, link) {
  // WireGuard caps padding at the MTU, so full-size packets carry no padding.
  return fixed ? link - fixed : maxInner(fn, link);
}
console.log('tunnel            MTU@1500 MTU@1492 MSS@1500 wire(100) wire(1400)');
for (const [name, fn, fixed] of TUNNELS) {
  const m1500 = innerFor(fn, fixed, 1500), m1492 = innerFor(fn, fixed, 1492);
  const cells = [m1500, m1492, m1500 - 40, fn(100), fn(1400)];
  console.log(name.padEnd(17), cells.map(v => String(v).padStart(8)).join(' '));
}
const share = (inner, wire) => (100 * inner / wire).toFixed(1) + '%';
console.log('payload share, WireGuard over IPv4:');
console.log('  100-byte packet :', share(100, wgWire(100, 20)));
console.log('  1400-byte packet:', share(1400, wgWire(1400, 20)));

আসল আউটপুট:

tunnel            MTU@1500 MTU@1492 MSS@1500 wire(100) wire(1400)
WireGuard, IPv4       1440     1432     1400      172     1468
WireGuard, IPv6       1420     1412     1380      192     1488
ESP tunnel, IPv4      1446     1438     1406      156     1456
ESP + NAT-T, IPv4     1438     1430     1398      164     1464
payload share, WireGuard over IPv4:
  100-byte packet : 58.1%
  1400-byte packet: 95.4%

MTU@1492 মানে PPPoE-র মতো ৮ বাইট কম link. একই tunnel সেখানে ৮ বাইট ছোট packet নেয়। wire(100) সারিতে WireGuard ১৭২ বাইট: ২০ + ৮ + ১৬ + ১১২ + ১৬, কারণ ১০০ বাইট padding-এ ১১২ হয়। তাই ছোট packet-এ payload-এর ভাগ ৫৮.১%, আর বড় packet-এ ৯৫.৪%. Voice call-এর মতো ছোট packet-এ overhead বেশি লাগে। MTU ভুল হলে ছোট পেজ খোলে কিন্তু বড় ফাইল আটকে যায়। এর প্রচলিত প্রতিকার MSS clamping. ESP-র সংখ্যা অ্যালগরিদমভেদে বদলায়।

৫ · Full tunnel না split tunnel

Full tunnel মানে সব ট্রাফিক অফিসের gateway দিয়ে যায়। Split tunnel মানে শুধু অফিসের ঠিকানা tunnel-এ, বাকিটা সরাসরি ইন্টারনেটে। সিদ্ধান্তটি নিরাপত্তা, গতি আর খরচের লেনদেন।

// Toy split-tunnel router: same destinations under two VPN profiles.
const toInt = a => a.split('.').reduce((x, o) => x * 256 + Number(o), 0);
const inNet = (ip, cidr) => {
  const [net, len] = cidr.split('/'), size = 2 ** (32 - Number(len));
  return Math.floor(toInt(ip) / size) === Math.floor(toInt(net) / size);
};
const LAN = '192.168.1.0/24';
const PROFILES = {
  full: ['0.0.0.0/0'],
  split: ['10.20.0.0/16', '198.51.100.0/24'],
};
const DESTS = [                                     // name, address, GB per day (assumed)
  ['hr app', '10.20.4.10', 0.5], ['partner api', '198.51.100.25', 0.3],
  ['public web', '203.0.113.80', 2], ['video site', '203.0.113.200', 6],
  ['home printer', '192.168.1.50', 0.1],
];
function route(ip, tunnelNets) {                    // the longest prefix wins
  const table = [['0.0.0.0/0', 'DIRECT'], [LAN, 'LAN'], ...tunnelNets.map(c => [c, 'TUNNEL'])];
  let best = null, bestLen = -1;
  for (const [cidr, via] of table) {
    const len = Number(cidr.split('/')[1]);
    if (inNet(ip, cidr) && len >= bestLen) { best = via; bestLen = len; }
  }
  return best;
}
for (const [mode, nets] of Object.entries(PROFILES)) {
  console.log(`--- ${mode} tunnel: ${nets.join(', ')}`);
  let gateway = 0;
  for (const [name, ip, gb] of DESTS) {
    const via = route(ip, nets);
    if (via === 'TUNNEL') gateway += gb;
    console.log(`${name.padEnd(13)} ${ip.padEnd(14)} -> ${via}`);
  }
  console.log(`company gateway carries ${gateway.toFixed(1)} GB per day for this user`);
}

আসল আউটপুট:

--- full tunnel: 0.0.0.0/0
hr app        10.20.4.10     -> TUNNEL
partner api   198.51.100.25  -> TUNNEL
public web    203.0.113.80   -> TUNNEL
video site    203.0.113.200  -> TUNNEL
home printer  192.168.1.50   -> LAN
company gateway carries 8.8 GB per day for this user
--- split tunnel: 10.20.0.0/16, 198.51.100.0/24
hr app        10.20.4.10     -> TUNNEL
partner api   198.51.100.25  -> TUNNEL
public web    203.0.113.80   -> DIRECT
video site    203.0.113.200  -> DIRECT
home printer  192.168.1.50   -> LAN
company gateway carries 0.8 GB per day for this user

দুই profile-এ অফিসের দুটি গন্তব্য একই পথে যায়। পার্থক্য public web আর video-তে। Full tunnel-এ gateway দিনে ৮.৮ GB বহন করে, split-এ ০.৮ GB: ১১ গুণ পার্থক্য, শুধু এই অনুমিত সংখ্যায়। ৩০০ জন একসাথে হলে full tunnel-এ ৩০০ × ৮.৮ = ২,৬৪০ GB, যা সব gateway আর উপরের link দিয়ে যাবে। home printer দুই ক্ষেত্রেই LAN-এ যায়, কারণ /24 দীর্ঘতম prefix. অনেক প্রতিষ্ঠান এই আচরণও নিয়ম দিয়ে বন্ধ করে, যাতে অপরিচিত network থেকে laptop আলাদা থাকে।

দিকFull tunnelSplit tunnel
দৃশ্যমানতাসব web ট্রাফিক অফিসের filter আর log দিয়ে যায়বাইরের ট্রাফিক অফিস দেখে না; endpoint-এর নিয়ন্ত্রণ লাগে
গতিসব কিছু gateway ঘুরে যায়ইন্টারনেট সরাসরি, cloud app দ্রুত
Gateway-র ওপর চাপবেশিকম
ঝুঁকিএকটি gateway-তে সব নির্ভরতাLaptop একসাথে ইন্টারনেট আর অফিসে যুক্ত, তাই সেতু হওয়ার ঝুঁকি
DNSঅফিসের resolver-এ রাখা সহজDNS leak সাবধানে দেখতে হয়

একটি বাস্তব মাঝের পথ: Split tunnel রাখুন, তবে শুধু নির্দিষ্ট বিশ্বস্ত সেবা বাইরে পাঠান। Endpoint-এ EDR আর DNS filter চালু রাখুন। আর full tunnel চাইলে kill switch রাখুন, যাতে tunnel পড়লে ট্রাফিক খোলা পথে না যায়।

“Full tunnel” লেখা থাকলেই সব ট্রাফিক tunnel-এ যায়, এটি ধরে নেবেন না। ২০২৪ সালে গবেষকদের প্রকাশিত প্রতিবেদন (TunnelVision নামে পরিচিত, CVE-2024-3661) দেখায়, স্থানীয় network-এর route সেটিং কিছু client-এর ট্রাফিক tunnel-এর বাইরে নিতে পারে। প্রতিকার OS আর client-ভেদে আলাদা, যেমন firewall-ভিত্তিক kill switch. নিজের যন্ত্রে শুধু নিজের অনুমোদিত পরীক্ষায় আচরণ যাচাই করুন, আর vendor-এর সর্বশেষ নির্দেশনা পড়ুন।

৬ · VPN gateway — সবচেয়ে দামি দরজা

একটি অফিসের প্রধান ফটক ভাবুন। ফটকের দারোয়ান সবার চেয়ে বেশি মানুষ দেখেন, আর তাঁর কাছে ভেতরের চাবিও থাকে। VPN gateway ঠিক তেমন। এটি ইন্টারনেট থেকে দেখা যায়, login নেয়, ভেতরের network-এ পৌঁছায়, আর অনেক সময় এতে EDR চলে না। তাই আক্রমণকারী এটিকে আগে নিশানা করে। NSA আর CISA-র ২০২১ সালের যৌথ নির্দেশনাও remote access VPN server-কে ভেতরের network-এর প্রবেশপথ আর নিশানা হিসেবে বর্ণনা করে।

প্রকাশিত ঘটনা থেকে শিক্ষা

ঘটনা (প্রকাশিত প্রতিবেদন অনুযায়ী)কোথায় দুর্বলতা ছিলযা সাহায্য করত
Colonial Pipeline, ২০২১: প্রধান নির্বাহীর সিনেট সাক্ষ্যপুরোনো VPN profile, MFA ছিল না; profile-টি আর ব্যবহারের কথাও ছিল নাMFA, VPN account-এর তালিকা, ব্যবহারহীন account বন্ধ
Change Healthcare, ২০২৪: UnitedHealth-এর প্রধান নির্বাহীর লিখিত সাক্ষ্যচুরি হওয়া credential, remote access portal-এ MFA ছিল নাসব বাইরের portal-এ MFA যাচাই, অধিগ্রহণের পরে নিরীক্ষা
Ivanti Connect Secure ও Policy Secure, ২০২৪: CISA Emergency Directive 24-01Gateway product-এ সক্রিয়ভাবে ব্যবহৃত দুর্বলতা (CVE-2023-46805, CVE-2024-21887)দ্রুত ব্যবস্থা, compromise ধরে নিয়ে তদন্ত, credential বদল

Ivanti-র ক্ষেত্রে CISA-র পরের নির্দেশনা মার্কিন ফেডারেল সংস্থাগুলোকে ২ ফেব্রুয়ারি ২০২৪-এর মধ্যে ওই product-এর সব instance সংস্থার network থেকে বিচ্ছিন্ন করতে বলে। সংশ্লিষ্ট domain account-কে compromised ধরে নিয়ে password আর token বদলাতেও বলে। শিক্ষা হলো, gateway-এর সমস্যা হলে patch-ই শেষ কথা নয়। ওই gateway-এর হাতে যা ছিল, তাও ফাঁস হয়েছে ধরে নিতে হতে পারে। এখানে আমরা ঘটনার পদ্ধতি নয়, রক্ষকের শিক্ষা নিয়েই থাকছি।

Gateway শক্ত করার তালিকা

  • Patch সবার আগে: Gateway-কে সবার আগের সারিতে রাখুন, পর্ব ৩২-এর KEV অগ্রাধিকার মেনে। Vendor-এর advisory-র জন্য subscribe করুন। পরিকল্পিত maintenance window রাখুন, আর দুটি gateway থাকলে একে একে patch করুন।
  • Phishing-প্রতিরোধী MFA: সবার জন্য, ব্যতিক্রম ছাড়া। পর্ব ১৬-এর passkey বা security key সবচেয়ে ভালো। Service account আর পুরোনো profile-ও খুঁজে দেখুন।
  • বাইরে থেকে কম দেখা: Admin interface কখনও ইন্টারনেটে নয়। অব্যবহৃত feature আর portal বন্ধ রাখুন।
  • ভেতরের নাগাল ছোট: VPN user-কে আলাদা zone-এ রাখুন, আর group অনুযায়ী দরকারি host-এ সীমিত করুন। Admin access আলাদা পথে রাখুন।
  • Gateway-র নিজের secret: LDAP bind বা RADIUS-এর account ছোট অধিকারে রাখুন, কারণ এগুলো gateway-তে জমা থাকে। Domain admin দিয়ে কখনও নয়।

Session limit আর log

Tunnel যত লম্বা, চুরি হওয়া session তত কাজের। Idle timeout মানে কাজ না থাকলে session শেষ; absolute timeout মানে কাজ চললেও নির্দিষ্ট সময়ের পরে আবার login. সংখ্যা প্রতিষ্ঠানের ঝুঁকির ওপর নির্ভর করে। একটি ধরে নেওয়া শুরু হতে পারে: idle ৩০ মিনিট, absolute ১০ ঘণ্টা, একজনের একসাথে একটি session. Admin-এর জন্য এগুলো আরও ছোট রাখা যায়।

কী log করবেন: সময়, user, device, উৎস IP, দেওয়া ঠিকানা, MFA-র ফল, বাইট, সংযোগ বিচ্ছিন্নের কারণ, আর gateway-এর নিজের configuration বদল। Log gateway-তে রাখলে হবে না, কারণ gateway compromise হলে সেগুলোও বদলানো যেতে পারে। তাই বাইরের SIEM-এ পাঠান। নিচের Sigma-ধরনের নিয়ম একটি কাল্পনিক log format-এ MFA ছাড়া VPN login ধরে। আপনার gateway-র field নাম মিলিয়ে নিন।

title: VPN login succeeded without MFA
status: experimental
description: A VPN session started and no MFA result was recorded for it.
logsource:
  product: vpn_gateway
  category: authentication
detection:
  selection:
    action: login_success
    mfa_result: none
  filter_break_glass:
    user: break-glass-01
  condition: selection and not filter_break_glass
falsepositives:
  - Old profile that was never moved to MFA. Fix the profile, do not ignore it.
level: high

আরও তিনটি সংকেত: অল্প সময়ে দূরের দুই দেশ থেকে একই user (impossible travel), বহু user-এ ব্যর্থ login (password spraying) আর gateway-তে নতুন local admin. বাংলাদেশের mobile network-এ CGNAT-এর জন্য বহু মানুষ এক IP ব্যবহার করতে পারেন, তাই শুধু IP দেখে সিদ্ধান্ত নেবেন না। Break-glass-কে নিয়ম থেকে বাদ দিলে আলাদা নিয়মে তার প্রতিটি login-এ alert রাখুন। Log-এর আয়ু আর স্থান নিয়ে বিস্তারিত পর্ব ৫৫-এ পাবেন।

৭ · ZTNA — network নয়, শুধু application

অফিস ভবনের কথা আবার ভাবুন। পুরোনো নিয়ম: মূল ফটকে পরিচয়পত্র দেখালে সব তলায় হাঁটা যায়। নতুন নিয়ম: মূল ফটকই নেই। আপনি রিসেপশনে জানান, “HR-এর ফাইল কক্ষে যাব।” দারোয়ান পরিচয়পত্র, আজকের অনুমতি আর হাতের ব্যাগ দেখে শুধু সেই কক্ষের পথ খোলেন। অন্য কক্ষ আপনি দেখতেই পান না।

ZTNA (zero trust network access) এই চিন্তা। এটি কোনো একক standard নয়, বাজারের একটি শব্দ। ভিত্তি হলো zero trust: network-এ থাকা মানেই বিশ্বাস নয়। পূর্ণ architecture পাবেন পর্ব ৭৪-এ (Zero trust architecture, NIST SP 800-207, ২০২০)। এখানে শুধু remote access-এর অংশ।

চুরি হওয়া একটি account কতদূর পৌঁছায়

Network reach through a VPN vs application reach through ZTNA

VPN-এর network নাগাল বনাম ZTNA-র application নাগাল VPN: ভেতরের network-এ পৌঁছায় ZTNA: শুধু অনুমোদিত app চুরি হওয়া account Gateway HR appWikiDatabaseAdminBackup চুরি হওয়া account Policy প্রতি app HR appWikiDatabase: আড়ালেAdmin: আড়ালেBackup: আড়ালে নিয়ন্ত্রণ না থাকলে flat VPN-এ নাগাল এমন বড় হতে পারে
ছবি ২৫.১ — ZTNA account-এর চুরি ঠেকায় না, চুরির পরে নাগাল ছোট করে। ভালো segmentation থাকলে VPN-এর ছবিও ছোট হয়।

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

  • প্রতি app-এ access: ব্যবহারকারী 10.x network পায় না। পায় একটি নির্দিষ্ট app-এর সংযোগ। Policy লেখা হয় user, app আর শর্তে, ঠিকানায় নয়।
  • পরিচয় আগে: Identity-aware proxy বা broker প্রথমে identity provider দিয়ে পরিচয় যাচাই করে। সিদ্ধান্ত নেয় PDP, প্রয়োগ করে PEP, যা পর্ব ১৯-এ দেখেছেন।
  • Device posture: Device-টি প্রতিষ্ঠানের কি না, OS কত নতুন, disk encrypted কি না, EDR চলছে কি না। Password ঠিক হলেও অচেনা বা অসুস্থ device আটকে যেতে পারে।
  • Network-স্তরের পা রাখার জায়গা নেই: App connector সাধারণত ভেতর থেকে বাইরের broker-এ সংযোগ খোলে। তাই app-এর জন্য ইন্টারনেট থেকে ভেতরে খোলা port লাগে না।
  • Continuous verification: একবার ঢুকলেই শেষ নয়। Device বা ঝুঁকি বদলালে session শেষ হতে পারে। তবে সংকেত কত দ্রুত পৌঁছায়, তা product-ভেদে আলাদা।

ZTNA দুই রূপে দেখা যায়। Agent-ভিত্তিক রূপে device-এ client থাকে, posture পাঠায়, আর non-web app-ও চালাতে পারে। Agentless রূপে browser দিয়ে web app খোলে, যা vendor বা ঠিকাদারের জন্য সহজ, তবে posture তথ্য কম। বাজারে ZTNA প্রায়ই SWG আর CASB-এর সাথে SSE হিসেবে আসে, আর network সেবা জুড়লে SASE. নামের চেয়ে দেখুন: policy কোথায়, সিদ্ধান্তের log কোথায়, আর কোন app-এ পৌঁছায়।

নিচে একটি সিদ্ধান্ত ধাপে ধাপে দেখুন। রিনা HR বিভাগের কর্মী, দুপুরে বাড়ি থেকে hr-portal খুলছেন। সব নাম আর মান কাল্পনিক।

Policy যাচাইয়ের খাতা (toy উদাহরণ)
অনুরোধ
পরিচয়
Device
Policy
সংযোগ
সিদ্ধান্ত
  1. অনুরোধ। রিনার browser বা agent hr-portal চায়। App-এর ঠিকানা ইন্টারনেটে খোলা নেই। অনুরোধ যায় broker-এ। এখনও কেউ জানে না তিনি কে। Default deny.
  2. পরিচয়। Identity provider রিনাকে passkey দিয়ে যাচাই করল, আর জানাল তিনি hr group-এ।
  3. Device. Agent জানাল: প্রতিষ্ঠানের device, OS 15, disk encrypted, EDR চালু। এগুলোও একটি সংকেত, পুরো প্রমাণ নয়, কারণ আক্রান্ত device ভুল তথ্য দিতে পারে।
  4. সিদ্ধান্ত। PDP সব শর্ত মিলিয়ে ALLOW দিল, আর কারণসহ decision log লিখল।
  5. শুধু একটি app. PEP রিনাকে connector-এর মাধ্যমে hr-portal:443-এ পৌঁছে দিল। Database, admin বা backup তাঁর সামনে নেই। Session ১৩:০০-তে শুরু।
  6. আবার যাচাই। ১৩:৪০-এ EDR বন্ধ হলো। Policy-র শর্ত ভাঙল, session বন্ধ, আর log আছে। রিনা EDR ঠিক করে আবার চেষ্টা করতে পারেন। এই ধাপ না থাকলে ZTNA “প্রথমে যাচাই, পরে ভুলে যাওয়া” VPN-এর মতোই হয়ে যায়।

একই যুক্তি কোডে। রিনার ০৯:৪০-এর সারিটি ওপরের শেষ ধাপের মতো: session চলছে, device-এর অবস্থা বদলেছে।

// Toy ZTNA policy evaluator. Default deny; every name and value here is made up.
const POLICIES = {
  'hr-portal': { groups: ['hr'], managed: true, minOs: 14, mfa: 'passkey' },
  'wiki':      { groups: ['staff', 'hr'], managed: false, minOs: 12, mfa: 'any' },
};
function decide(req) {
  const p = POLICIES[req.app], why = [];
  if (!p) return { allow: false, why: ['no policy: default deny'] };
  if (!req.groups.some(g => p.groups.includes(g))) why.push('group not allowed');
  if (p.managed && !req.device.managed) why.push('device not managed');
  if (req.device.os < p.minOs) why.push(`OS ${req.device.os} below ${p.minOs}`);
  if (!req.device.encrypted) why.push('disk not encrypted');
  if (p.mfa === 'passkey' && req.mfa !== 'passkey') why.push('needs passkey');
  if (p.mfa === 'any' && req.mfa === 'none') why.push('needs MFA');
  return { allow: why.length === 0, why };
}
const good = { managed: true, os: 15, encrypted: true };
const staff = { user: 'karim', groups: ['staff'] }, hr = { user: 'rina', groups: ['hr'] };
const REQUESTS = [
  { t: '09:00', ...hr, app: 'hr-portal', device: good, mfa: 'passkey' },
  { t: '09:05', ...hr, app: 'hr-portal', device: good, mfa: 'otp' },
  { t: '09:10', ...staff, app: 'hr-portal', device: good, mfa: 'passkey' },
  { t: '09:15', ...staff, app: 'wiki', mfa: 'otp',
    device: { managed: false, os: 13, encrypted: true } },
  { t: '09:20', ...staff, app: 'ssh-prod', device: good, mfa: 'passkey' },
  { t: '09:40', ...hr, app: 'hr-portal', mfa: 'passkey', // same session, posture re-checked
    device: { managed: true, os: 15, encrypted: false } },
];
let allowed = 0;
for (const r of REQUESTS) {
  const d = decide(r);
  allowed += d.allow ? 1 : 0;
  console.log(`${r.t} ${r.user.padEnd(5)} ${r.app.padEnd(9)} ${d.allow ? 'ALLOW' : 'DENY '} ${d.why.join('; ')}`);
}
console.log(`decisions ${REQUESTS.length}, allowed ${allowed}, denied ${REQUESTS.length - allowed}`);

আসল আউটপুট:

09:00 rina  hr-portal ALLOW
09:05 rina  hr-portal DENY  needs passkey
09:10 karim hr-portal DENY  group not allowed
09:15 karim wiki      ALLOW
09:20 karim ssh-prod  DENY  no policy: default deny
09:40 rina  hr-portal DENY  disk not encrypted
decisions 6, allowed 2, denied 4

09:05-এ সঠিক user আর ভালো device, তবু OTP-তে hr-portal খোলে না, কারণ এই app-এ passkey লাগে। 09:15-এ অচেনা device-এ wiki খোলে, কারণ wiki-র নিয়ম হালকা: ঝুঁকি অনুযায়ী আলাদা নিয়ম ZTNA-র বড় সুবিধা। 09:20-এ ssh-prod-এর কোনো নিয়মই নেই, তাই default deny. প্রতিটি সারিতে কারণ লেখা, যা তদন্তে কাজে লাগে। মোট ৬টি সিদ্ধান্তে ২টি ALLOW, ৪টি DENY.

আরও গভীরে: Google-এর BeyondCorp প্রবন্ধ (Ward ও Beyer, ;login:, ২০১৪) বিশ্বাসকে network থেকে সরিয়ে user আর device-এর ওপর আনে। NIST SP 800-207 (২০২০) বলে, access দিতে হয় session ধরে, আর policy engine, policy administrator ও enforcement point আলাদা ভূমিকা। CISA ও সহযোগী সংস্থার Modern Approaches to Network Access Security (জুন ২০২৪) ব্যবসাগুলোকে Zero Trust, SSE আর SASE-এর দিকে যেতে উৎসাহ দেয়, তবে VPN-কে এক কথায় অকেজো বলে না।

৮ · VPN বনাম ZTNA, আর ধাপে ধাপে যাওয়া

চুরি হওয়া একটি sales account কতদূর পৌঁছায়, তা একটি ছোট কাল্পনিক network-এ মাপি। সব সংখ্যা ধরে নেওয়া। “Host:port” মানে একটি host-এর একটি খোলা port, অর্থাৎ পৌঁছানোর একটি জায়গা।

// Reach of one stolen sales account on a toy network of 24 hosts. Counts are made up.
const SEGMENTS = {           // hosts, open ports per host, admin ports among them
  sales:  { hosts: 8, ports: 2, admin: 1 },
  app:    { hosts: 6, ports: 3, admin: 1 },
  db:     { hosts: 4, ports: 2, admin: 1 },
  admin:  { hosts: 2, ports: 3, admin: 2 },
  backup: { hosts: 4, ports: 2, admin: 1 },
};
function reach(names) {
  const r = { hosts: 0, ports: 0, admin: 0, backup: names.includes('backup') };
  for (const n of names) {
    const s = SEGMENTS[n];
    r.hosts += s.hosts; r.ports += s.hosts * s.ports; r.admin += s.hosts * s.admin;
  }
  return r;
}
const SCENARIOS = [
  ['VPN, flat network', reach(Object.keys(SEGMENTS))],
  ['VPN + segmentation', reach(['sales', 'app'])],
  ['ZTNA, two apps', { hosts: 2, ports: 2, admin: 0, backup: false }], // HTTPS via broker
];
const flat = SCENARIOS[0][1].ports;
console.log('access model         hosts  host:ports  admin  share  backup?');
for (const [name, r] of SCENARIOS) {
  const share = (100 * r.ports / flat).toFixed(1) + '%';
  console.log(name.padEnd(20), String(r.hosts).padStart(5), String(r.ports).padStart(11),
    String(r.admin).padStart(6), share.padStart(6), r.backup ? ' yes' : ' no');
}
const ztna = SCENARIOS[2][1], seg = SCENARIOS[1][1];
console.log(`flat / ZTNA reach: ${flat / ztna.ports} times; segmented / ZTNA: ${seg.ports / ztna.ports} times`);

আসল আউটপুট:

access model         hosts  host:ports  admin  share  backup?
VPN, flat network       24          56     26 100.0%  yes
VPN + segmentation      14          34     14  60.7%  no
ZTNA, two apps           2           2      0   3.6%  no
flat / ZTNA reach: 28 times; segmented / ZTNA: 17 times

Flat VPN-এ ৫৬টি host:port, segmentation-এ ৩৪, ZTNA-তে ২. অনুপাত ২৮ গুণ আর ১৭ গুণ। লক্ষ করুন, segmentation একাই backup-কে নাগালের বাইরে নেয়। তাই ZTNA না কিনেও আজই অনেকটা ঝুঁকি কমানো যায়। সংখ্যাটি নাগাল মাপে, ঝুঁকি নয়। দুটি app-এর একটিতে গুরুতর বাগ থাকলে ক্ষতি ছোট নাও হতে পারে।

প্রশ্নVPNZTNA
কী খুলে দেয়Network, যতটুকু নিয়মে আছেনির্দিষ্ট app
সিদ্ধান্ত কখনসাধারণত সংযোগের শুরুতেপ্রতি app-এ, পরিবর্তনে আবার
Device যাচাইআলাদা feature, অনেক সময় বন্ধনকশার অংশ
বাইরে খোলা জায়গাআপনার gatewayBroker, সাধারণত সেবাদাতার; app আড়ালে
পুরোনো protocolপ্রায় সব চলেWeb সহজ; thick client, voice, server থেকে client-এর ট্রাফিকে সীমা থাকতে পারে
Server-to-server, শাখাSite-to-site ভালো মানায়এটির মূল ক্ষেত্র নয়
নতুন নির্ভরতাGateway patch আর capacityIdentity provider, broker আর vendor; এদের ব্যর্থতা সবাইকে থামায়
খরচের ধরনযন্ত্র, license, মানুষের সময়সাধারণত user প্রতি সেবা-মূল্য; হিসাব vendor-ভেদে আলাদা

ZTNA সব সমস্যার সমাধান নয়। চুরি হওয়া session token, phishing করে পাওয়া identity provider login, বৈধ user-এর অপব্যবহার আর app-এর নিজের বাগ এটি নিজে থেকে বন্ধ করে না। Broker নিজেও একটি দামি নিশানা। “ZTNA কিনলাম, তাই zero trust হলো”, এটি বিপজ্জনক ভুল ধারণা।

ধাপে ধাপে migration

  1. তালিকা: VPN log থেকে দেখুন কে, কোন app, কত ঘন ঘন। ব্যবহারহীন account আর profile সরান।
  2. VPN আজই শক্ত করুন: MFA, patch, segmentation আর log. Migration-এর অপেক্ষায় এগুলো থামাবেন না।
  3. ভিত্তি: একটি identity provider, phishing-প্রতিরোধী MFA আর device-এর তালিকা।
  4. Pilot: কম ঝুঁকির একটি web app, একটি ছোট দল। VPN সমান্তরালে চালু।
  5. বিস্তার: App ধরে ধরে সরান, আর VPN-এ ওই app-এর পথ বন্ধ করুন। শুধু নতুন পথ জুড়লে নিরাপত্তা বাড়ে না, দুটি দরজা হয়।
  6. বাকিটা সংকোচন: যেসব জিনিস সরানো যায় না, সেগুলোর জন্য ছোট, কড়া VPN. জরুরি অবস্থার জন্য বিকল্প পথ পরীক্ষা করে রাখুন, যাতে identity provider পড়লেও admin পৌঁছাতে পারেন।

৫০ জনের একটি প্রতিষ্ঠানে যদি মাত্র দুটি cloud app থাকে, হয়তো VPN-ই লাগে না: সরাসরি SSO আর MFA যথেষ্ট হতে পারে। আগে সমস্যা মাপুন, পরে product বাছুন।

পরীক্ষা ও ইন্টারভিউতে:

  • ESP আর AH-এর পার্থক্য? ESP গোপনীয়তা আর integrity দেয়; AH শুধু integrity আর উৎস যাচাই, আর NAT-এর সাথে মেলে না।
  • Tunnel আর transport mode? Tunnel-এ পুরো packet ভেতরে, নতুন header; transport-এ শুধু payload সুরক্ষিত।
  • WireGuard-এর ৬০ বাইট কোথা থেকে? IPv4 ২০ + UDP ৮ + header ১৬ + tag ১৬.
  • VPN থাকলে কি phishing থেকে নিরাপদ? না। এটি পথ রক্ষা করে, সিদ্ধান্ত বা সাইট যাচাই করে না।
  • ZTNA-র মূল সুবিধা? Network-স্তরের নাগাল সরিয়ে, প্রতি app-এ পরিচয় আর device দেখে access.

৯ · Consumer VPN — বিজ্ঞাপনের দাবি আর বাস্তব

এখন পর্যন্ত আমরা প্রতিষ্ঠানের VPN দেখলাম। বিজ্ঞাপনে দেখা commercial VPN আলাদা জিনিস। আপনি একটি কোম্পানির server-এ tunnel খোলেন, আর সেখান থেকে ইন্টারনেটে যান। এতে আপনার ISP আর ক্যাফের network দেখে কম। কিন্তু VPN কোম্পানি দেখতে পারে বেশি। অর্থাৎ বিশ্বাস দূর হয় না, এক জায়গা থেকে আরেক জায়গায় সরে।

বিজ্ঞাপনের ভাষাবাস্তবে
“পুরো পরিচয় গোপন”আপনার account, cookie আর browser-এর চিহ্ন আগের মতোই থাকে। Login করলে সাইট আপনাকে চেনে।
“হ্যাকারদের থেকে সম্পূর্ণ নিরাপদ”Malware, phishing আর দুর্বল password-এ এর কোনো ভূমিকা নেই।
“No-log”No-logs policy একটি দাবি, বাইরে থেকে দেখা যায় না। স্বাধীন নিরীক্ষা সাহায্য করে, তবে তা এক সময়ের ছবি।
“Bank-grade encryption”বিপণনের শব্দ। Protocol, client-এর হালনাগাদ, DNS আচরণ আর নিরীক্ষা দেখুন।
“বিনামূল্যে, চিরকাল”খরচ কোথাও উঠছেই। ব্যবসার মডেল আর অনুমতি দেখুন।

গবেষণাও সতর্ক করে। Ikram ও সহলেখকদের IMC ২০১৬-এর গবেষণা ২৮৩টি Android VPN app পরীক্ষা করে অনিরাপদ tunnel, IPv6 আর DNS leak, TLS interception আর tracking-এর জন্য JavaScript ঢোকানোর ঘটনা পায়। এটি ২০১৬-র একটি ছবি, সব VPN-এর রায় নয়। Website-এর HTTPS এখন অনেক ট্রাফিক পথেই রক্ষা করে, তাই সাধারণ ব্রাউজিংয়ে VPN-এর বাড়তি লাভ আগের চেয়ে কম। অবিশ্বস্ত network-এ এটি তবু কাজে আসতে পারে।

আইনের কথা: VPN ব্যবহারের নিয়ম দেশ, প্রতিষ্ঠান আর উদ্দেশ্যভেদে আলাদা হতে পারে, আর তা বদলায়। ব্যবহারের আগে আপনার দেশের বর্তমান আইন, নিয়ন্ত্রক সংস্থার নির্দেশনা আর প্রতিষ্ঠানের policy নিজে দেখে নিন। অফিসের network-এ অনুমতি ছাড়া VPN চালানো নিয়ম ভাঙতে পারে। VPN অবৈধ কাজকে বৈধ করে না, আর অনুমতি ছাড়া কোনো system-এ ঢোকা অপরাধ। আইন আর নৈতিকতার কাঠামো পাবেন পর্ব ৬-এ। এই পর্ব আইনি পরামর্শ নয়।

১০ · AI-এর যুগে VPN আর access নকশা

AI একটি VPN configuration মুহূর্তে লিখে দেয়। কিন্তু সে আপনার network, আইন বা ঝুঁকি দেখে না। সাধারণ ভুলগুলো এমন:

AI যা করতে পারেকেন বিপজ্জনকযাচাইয়ের উপায়
পুরোনো অ্যালগরিদম দেয়: 3DES, SHA-1, ছোট DH groupদুর্বল বিকল্প চালু থাকেNIST আর vendor-এর বর্তমান নির্দেশনা পড়ুন
AllowedIPs = 0.0.0.0/0 সব peer-এভুল routing, ভুল ACLপ্রতিটি peer-এর ঠিকানা হাতে মেলান
Tunnel না উঠলে certificate যাচাই বন্ধ করতে বলেপরিচয় যাচাই-ই চলে গেলআসল error খুঁজুন, যাচাই বন্ধ করবেন না
কাল্পনিক CVE, ভুল patch versionভুল অগ্রাধিকারCVE আর vendor advisory সরাসরি পড়ুন
Config-এর সাথে private key পেস্ট করতে উৎসাহ দেয়Secret ফাঁসKey মুছে পেস্ট করুন; ফাঁস হলে key বদলান
“ZTNA নিলে VPN লাগবে না” ধরনের নিশ্চিত দাবিবাস্তব app-এর সীমা বাদ পড়েনিজের app তালিকায় pilot চালান

নিজের configuration পর্যালোচনা করাতে পারেন। আগে key, ঠিকানা আর নাম মুছে দিন। প্রশ্নটি নিরাপত্তা বাড়ানোর জন্য, আর সিদ্ধান্ত আপনার:

আমি আমার নিজের প্রতিষ্ঠানের VPN পর্যালোচনা করছি, আর কাজটি করার অনুমতি আমার আছে। নিচের configuration থেকে সব key আর আসল ঠিকানা সরানো হয়েছে। [এখানে key-মুক্ত configuration পেস্ট করুন] তুমি একজন রক্ষণাত্মক network security reviewer. বলো: ১. কোন অ্যালগরিদম বা option পুরোনো, আর কেন। ২. কোন নিয়ম দরকারের চেয়ে বেশি নাগাল দিচ্ছে। ৩. MFA, session limit আর log-এ কী কী বাকি। ৪. প্রতিটি পরামর্শের জন্য কোন primary source দেখব, তার নাম বলো। নিশ্চিত না হলে বলো “নিশ্চিত নই”। কোনো CVE নম্বর অনুমান করবে না।

AI-এর পরামর্শ চালুর আগে

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিয়ে নিজে কিছুক্ষণ ভাবুন, তারপর “→ উত্তর” চাপুন।

প্র ০১নিরাপত্তার যন্ত্র VPN gateway নিজেই কেন বারবার নিরাপত্তার সমস্যা হয়ে দাঁড়ায়?

এর কারণ কোনো একটি vendor-এর ভুল নয়, অবস্থান। Gateway ইন্টারনেটের দিকে খোলা, তাই পৃথিবীর যে কেউ তার সাথে কথা বলতে পারে। আবার সে ভেতরের network-এও পৌঁছায়, আর login-এর তথ্য দেখে। আক্রমণকারীর হিসাবে তাই একটি gateway-এর দুর্বলতার দাম অনেক বেশি। NSA আর CISA-র ২০২১ সালের নির্দেশনা ঠিক এই কারণেই remote access VPN server-কে আলাদাভাবে শক্ত করতে বলে।

এর সাথে আছে কিছু ব্যবহারিক সমস্যা। অনেক gateway একটি বন্ধ যন্ত্র, যেখানে EDR বসানো যায় না, তাই ভেতরে কী হচ্ছে তা কম দেখা যায়। Gateway বন্ধ করলে সবার কাজ থামে, তাই patch পিছিয়ে যায়। TLS portal-এ জটিল web কোড চলে। আর বহু প্রতিষ্ঠান একই product চালায়, ফলে একটি দুর্বলতা একসাথে অনেক জায়গায় কাজে লাগে।

২০২৪ সালের Ivanti Connect Secure-এর ঘটনা এর স্পষ্ট উদাহরণ। CISA Emergency Directive 24-01 জারি করে, আর পরের নির্দেশনায় মার্কিন ফেডারেল সংস্থাগুলোকে ওই product-এর সব instance বিচ্ছিন্ন করতে বলে। অর্থাৎ প্রতিক্রিয়া শুধু “patch করুন” ছিল না। সংশ্লিষ্ট domain account-কে compromised ধরে নিতেও বলা হয়েছিল। Colonial Pipeline আর Change Healthcare আবার ভিন্ন ধরনের শিক্ষা দেয়: সেখানে প্রকাশিত সাক্ষ্য অনুযায়ী সমস্যা ছিল MFA-হীন remote access, কোনো অজানা দুর্বলতা নয়।

রক্ষকের দিক থেকে তিনটি উত্তর আছে। প্রথমত, দ্রুত patch-এর পরিকল্পনা আগেই রাখা, দুটি gateway থাকলে একটি করে। দ্বিতীয়ত, gateway ভেঙে গেছে ধরে নিয়ে নকশা করা: ভেতরের নাগাল ছোট, secret-এর অধিকার ছোট, log বাইরে। তৃতীয়ত, যতটা সম্ভব সরাসরি ইন্টারনেট-মুখী যন্ত্র কমানো, যা ZTNA-র একটি যুক্তি। তবে broker-ও একটি কেন্দ্রীভূত নিশানা, শুধু দায়িত্বের একটি ভাগ অন্যের হাতে যায়।

মূল উপলব্ধি: যে যন্ত্র সবচেয়ে বেশি বিশ্বাস পায় আর সবচেয়ে বেশি দৃশ্যমান, সেটিকে সবচেয়ে কম বিশ্বাস করেই নকশা করুন।

প্র ০২WireGuard অ্যালগরিদম বাছাইয়ের স্বাধীনতা ইচ্ছা করে রাখেনি। এটি কি বুদ্ধিমানের কাজ, নাকি ভবিষ্যতের ঝুঁকি?

IPsec আর TLS-এর ইতিহাসে আলোচনার মাধ্যমে অ্যালগরিদম বাছাই একটি গুরুত্বপূর্ণ ধারণা। এতে একটি অ্যালগরিদম ভাঙলে অন্যটিতে সরা যায়, যাকে crypto-agility বলে। কিন্তু দাম আছে। বিকল্প বাড়লে কোডের পথ বাড়ে, পরীক্ষার ক্ষেত্র বাড়ে, আর পুরোনো বিকল্প বছরের পর বছর চালু থাকে। TLS-এর ইতিহাসে POODLE-এর মতো ঘটনা দেখায়, সামঞ্জস্যের জন্য রাখা পুরোনো version কীভাবে বিপদ আনে।

Donenfeld উল্টো পথ নেন। একটি নির্দিষ্ট suite: Curve25519, ChaCha20-Poly1305, BLAKE2s. কোনো আলোচনা নেই, তাই আক্রমণকারীর জন্য দুর্বল বিকল্পে নামানোর পথও নেই। কোড ছোট থাকে, যা NDSS ২০১৭-র প্রবন্ধের মূল দাবির একটি: ৪,০০০ লাইনের কম। ছোট নকশার কারণে গবেষকেরা Tamarin-এর মতো টুলে protocol-এর আনুষ্ঠানিক বিশ্লেষণও করতে পেরেছেন।

ঝুঁকিও সত্যি। কোনো অ্যালগরিদম ভাঙলে configuration বদলে পালানো যাবে না; protocol-এর নতুন version আর সব peer-এর হালনাগাদ লাগবে। নিজের device-এ এটি সহজ, তবে বহু vendor-এর হাজার যন্ত্রে কঠিন। আরেকটি বাস্তব বাধা: নিয়ন্ত্রিত পরিবেশে অনুমোদিত অ্যালগরিদমের তালিকা থাকে। ChaCha20-Poly1305 সাধারণত FIPS-অনুমোদিত অ্যালগরিদমের তালিকায় ধরা হয় না, তাই কিছু সরকারি বা নিয়ন্ত্রিত প্রতিষ্ঠান সরাসরি WireGuard ব্যবহার করতে পারে না; আপনার ক্ষেত্রে বর্তমান নিয়ম মিলিয়ে নিন।

Post-quantum দিকটিও ভাবার মতো। Curve25519 ভবিষ্যৎ কোয়ান্টাম কম্পিউটারের কাছে নিরাপদ নয়। WireGuard-এর ঐচ্ছিক pre-shared key এখানে একটি অতিরিক্ত স্তর দেয়, তবে সেই key ভাগ করার কাজটি আলাদা। পর্ব ১৪-এ এই সমস্যার বড় চিত্র আছে।

মূল উপলব্ধি: নমনীয়তা আর নিরাপত্তা একই দিকে যায় না। প্রশ্ন “কোনটি ভালো” নয়, প্রশ্ন “বদল দরকার হলে আমরা কত দ্রুত সবাইকে বদলাতে পারব”।

প্র ০৩অফিসের ভেতরের network-কে নিরাপদ ধরে নেওয়ার ধারণা কেন ভেঙে পড়ল?

পুরোনো নকশা ছিল দুর্গ আর পরিখা। Firewall-এর বাইরে শত্রু, ভেতরে বন্ধু। VPN সেই নকশার সেতু: বাইরের কর্মীকে ভেতরে এনে “বন্ধু” বানানো। এই ধারণা ততদিন চলত, যতদিন app, মানুষ আর ডেটা সবই এক ভবনে ছিল।

তিনটি বদল এটি ভাঙে। প্রথমত, phishing আর malware দেখায় যে ভেতরের একটি কম্পিউটারও আক্রান্ত হতে পারে, তখন ভেতরের বিশ্বাসই আক্রমণকারীর পথ হয়। দ্বিতীয়ত, SaaS আর cloud এসে app-কে ভবনের বাইরে নিয়ে যায়, ফলে সীমানা অস্পষ্ট হয়। তৃতীয়ত, ২০২০ সালের পর remote কাজ বহু প্রতিষ্ঠানে সাধারণ হয়, আর VPN-এর সামর্থ্য ও ঝুঁকি দুটোই চোখে পড়ে।

Google-এর BeyondCorp এই চিন্তার সবচেয়ে পরিচিত প্রকাশিত উদাহরণ। Ward ও Beyer-এর ২০১৪ সালের প্রবন্ধে কর্মীরা অফিসে থাকুন বা বাইরে, একই নিয়মে app-এ যান, আর সিদ্ধান্ত হয় user আর device দেখে। প্রকাশিত আলোচনায় ২০০৯ সালের Operation Aurora-কে এর পেছনের প্রেরণা হিসেবে প্রায়ই উল্লেখ করা হয়। NIST SP 800-207 (২০২০) পরে এই ধারণাকে একটি সাধারণ কাঠামো দেয়, আর বলে দেয় যে zero trust কোনো একক product নয়।

তবে ভিন্ন মতও আছে। Network নিয়ন্ত্রণ পুরো বাদ দেওয়া ঠিক নয়। Segmentation, firewall আর IDS এখনও স্তর হিসেবে কাজ করে, যা পর্ব ৩-এর defense in depth-এর কথা। আর সব প্রতিষ্ঠানের জন্য পুরো রূপান্তর সহজ নয়: পুরোনো যন্ত্র, কারখানার system আর দুর্বল identity ভিত্তি বড় বাধা। এজন্যই ধাপে ধাপে যাওয়া বাস্তবসম্মত।

মূল উপলব্ধি: “কোথায় আছেন” একটি দুর্বল প্রমাণ। “কে, কোন device-এ, কী চান, আর এখন ঝুঁকি কত”, এই প্রশ্নগুলো শক্তিশালী, যদিও উত্তর দেওয়া বেশি কঠিন।

প্র ০৪Split tunnel কি সবসময় ঝুঁকিপূর্ণ? কোনো নিরাপত্তা দল কেন এটি বেছে নিতে পারে?

একসময় অনেক নিরাপত্তা নীতি split tunnel নিষিদ্ধ করত। যুক্তি সহজ: Laptop একসাথে ইন্টারনেট আর অফিসে যুক্ত থাকলে সে সেতু হতে পারে, আর বাইরের ট্রাফিক অফিসের filter বা log দেখে না। এই যুক্তি এখনও সত্য।

কিন্তু পরিবেশ বদলেছে। আগে ট্রাফিকের বড় অংশ অফিসের server-এ যেত। এখন অনেক কাজ cloud-এ, video call-এ আর SaaS-এ। Full tunnel হলে ঢাকার একজন কর্মীর video call আগে অফিসে ঘুরে তারপর সেবাদাতার কাছে যায়। Delay বাড়ে, gateway ভরে যায়, আর কর্মীরা বিরক্ত হয়ে বিকল্প খোঁজেন। মানুষ নিয়ম এড়ালে নিরাপত্তাই কমে, যা পর্ব ৩-এর psychological acceptability-র শিক্ষা। ২০২০ সালে হঠাৎ remote কাজ বাড়ার সময় বহু প্রতিষ্ঠান এই কারণেই নির্দিষ্ট সেবার জন্য split tunnel চালু করে।

তাই সিদ্ধান্তের প্রশ্ন “split ভালো না খারাপ” নয়। প্রশ্ন হলো, নিরাপত্তার নিয়ন্ত্রণ কোথায় থাকছে। আগে নিয়ন্ত্রণ ছিল network-এ, gateway-তে। এখন EDR, DNS filter, browser-এর নিয়ন্ত্রণ আর identity-র নিয়ম endpoint-এর কাছে চলে আসছে। সেগুলো থাকলে split tunnel গ্রহণযোগ্য। সেগুলো না থাকলে full tunnel-ই হয়তো একমাত্র দৃশ্যমানতা।

আমাদের toy হিসাবে full tunnel-এ gateway ৮.৮ GB বহন করে, split-এ ০.৮ GB. অনুমিত সংখ্যা হলেও এই ধরনের হিসাব capacity পরিকল্পনায় কাজে লাগে। সিদ্ধান্ত লিখে রাখুন: কোন ঠিকানা বাইরে যায়, কেন, কে অনুমোদন করল, আর কবে আবার দেখা হবে। DNS কীভাবে সমাধান হচ্ছে, সেটিও পরীক্ষা করুন।

মূল উপলব্ধি: নিয়ন্ত্রণ যখন network থেকে endpoint-এ সরে, তখন split tunnel ঝুঁকির চেয়ে নকশার প্রশ্ন হয়ে দাঁড়ায়। কোন নিয়ন্ত্রণ কোথায় আছে, আগে সেটি লিখুন।

প্র ০৫একজন সাধারণ মানুষের কি consumer VPN দরকার? সিদ্ধান্ত কীভাবে নেবেন?

শুরু করুন threat modeling দিয়ে, পর্ব ৪-এর মতো: কার কাছ থেকে, কী লুকাতে চান? ক্যাফের অচেনা Wi-Fi-তে পথের নজরদারি কমাতে চাইলে VPN সাহায্য করতে পারে। তবে আজ বেশিরভাগ গুরুত্বপূর্ণ সাইট HTTPS ব্যবহার করে, তাই পাসওয়ার্ড বা মোবাইল ব্যাংকিংয়ের বিষয়বস্তু পথে এমনিতেই সুরক্ষিত। প্রতারণার ঝুঁকি, যেমন phishing বা ভুয়া app, VPN কমায় না। আপনার ফোনের ঝুঁকি কমাতে হালনাগাদ, MFA আর password manager অনেক বেশি কার্যকর।

Consumer VPN-এর মূল সত্য হলো বিশ্বাসের স্থানান্তর। আগে আপনার ISP দেখত কোন server-এ যাচ্ছেন। এখন দেখে VPN কোম্পানি। সেই কোম্পানি কে, কোন দেশে, কীভাবে আয় করে, এটি একটি বড় প্রশ্ন। “No-log” কথাটি বাইরে থেকে যাচাই করা কঠিন। স্বাধীন নিরীক্ষা আছে কি না, প্রকাশিত নীতি কী, আর client কতটা নিয়মিত হালনাগাদ হয়, তা দেখুন।

গবেষণা এখানে কাজে লাগে। Ikram ও সহলেখকদের IMC ২০১৬-এর কাজ Android VPN app-এ অনিরাপদ tunnel আর ট্রাফিক বদলের প্রমাণ দেখায়। পরের গবেষণায়ও commercial VPN-এ leak-এর কথা এসেছে। এসব ফল নির্দিষ্ট সময়ের, তবে একটি নিয়ম দেয়: VPN app খুব শক্তিশালী অনুমতি পায়, কারণ আপনার সব ট্রাফিক তার ভেতর দিয়ে যায়। তাই বিনামূল্যের অচেনা app খুব সতর্কভাবে বিচার করুন।

আইনের দিকটিও আপনার দায়িত্ব। নিয়ম দেশভেদে আলাদা আর সময়ের সাথে বদলায়, তাই ইন্টারনেটের পুরোনো লেখার ওপর নির্ভর করবেন না। বর্তমান সরকারি উৎস দেখুন, আর পর্ব ৬-এর কাঠামো মনে রাখুন: অনুমতি ছাড়া অন্যের system-এ ঢোকা VPN থাকলেও অপরাধ।

মূল উপলব্ধি: VPN কেনার আগে লিখুন আপনি কোন ঝুঁকি কমাতে চান। উত্তর না পেলে সম্ভবত আগে হালনাগাদ, MFA আর password manager দরকার।

অনুশীলন

প্রথমে নিজে করুন, তারপর উত্তর মিলিয়ে নিন।

  1. হিসাব: একটি link-এর MTU ১৪০০। WireGuard চলছে IPv6-এর ওপর। ভেতরের সর্বোচ্চ MTU কত? ভেতরে IPv4 + TCP হলে MSS কত? ১৪০ বাইটের ভেতরের packet পথে কত বাইট হবে?

    IPv6-এ overhead = ৪০ + ৮ + ১৬ + ১৬ = ৮০ বাইট। ভেতরের MTU = ১৪০০ − ৮০ = ১৩২০. MSS = ১৩২০ − ২০ − ২০ = ১২৮০. ১৪০ বাইট padding-এ ১৪৪ হয় (১৬-এর গুণিতক), তাই পথে ৪০ + ৮ + ১৬ + ১৪৪ + ১৬ = ২২৪ বাইট.

  2. নকশা সমালোচনা: একটি কাল্পনিক অনলাইন বাজারের VPN: password-only login, admin interface ইন্টারনেটে খোলা, সবাই পুরো 10.0.0.0/8-এ যেতে পারে, session চলে ৩০ দিন, log gateway-তে। অগ্রাধিকার দিয়ে ৫টি বদল লিখুন।
    1. Phishing-প্রতিরোধী MFA: সবচেয়ে বড় ফাঁক, আর প্রকাশিত ঘটনাগুলোতে বারবার দেখা গেছে।
    2. Admin interface ইন্টারনেট থেকে সরানো: আলাদা management network, আর gateway patch-এর পরিকল্পনা।
    3. নাগাল ছোট করা: Group অনুযায়ী দরকারি app, পুরো /8 নয়। Backup আর admin zone বাদ।
    4. Session limit: Idle আর absolute timeout, আর একজনের একটি session. ৩০ দিন মানে চুরি হওয়া session-এরও ৩০ দিন।
    5. Log বাইরে: SIEM-এ পাঠান, MFA-হীন login আর admin বদলের alert রাখুন।

    পরের ধাপে ZTNA-র pilot ভাবা যায়। তবে এই পাঁচটি অপেক্ষা করতে পারে না।

  3. আউটপুট অনুমান: ZTNA simulator-এর নিয়মে wiki-র minOs ১২ থেকে ১৪ করা হলো, আর সব অনুরোধ আগের মতো। 09:15-এর সারি কী হবে? শেষ সারিটি কী হবে? মোট ALLOW কত?

    09:15-এ karim-এর device-এর OS 13, তাই লাইন হবে 09:15 karim wiki DENY OS 13 below 14. শেষ সারি hr-portal-এর, নিয়ম বদলায়নি, তাই আগের মতো DENY disk not encrypted. ALLOW থাকে শুধু 09:00, মোট ১টি: decisions 6, allowed 1, denied 5.

  4. নিজের যন্ত্রে দেখুন: নিজের দুটি device-এ WireGuard বসিয়ে থাকলে, AllowedIPs কী কাজ করছে নিজের ভাষায় লিখুন। তারপর ভাবুন: Laptop হারিয়ে গেলে কোন তিনটি কাজ করবেন? শুধু নিজের device-এ করুন।

    আপনার configuration-এ AllowedIPs বলে কোন ঠিকানা কোন peer-এ যাবে, আর ওই peer থেকে কোন উৎসের packet গৃহীত হবে। Laptop হারালে:

    • Home device থেকে ওই [Peer] অংশ মুছে দিন, যাতে তার key আর কাজ না করে।
    • Laptop দিয়ে পৌঁছানো যেত এমন সব account-এর password আর session বদলান।
    • sudo wg show দিয়ে শেষ handshake দেখুন, যাতে বোঝেন হারানোর পরে কেউ ব্যবহার করেছে কি না।

    WireGuard-এ আলাদা revocation list নেই, তাই peer মুছে ফেলাই key বাতিল করার উপায়।

নিজেকে যাচাই করুন

ভুল হলে কারণসহ ব্যাখ্যা পাবেন, আবার চেষ্টাও করতে পারবেন।

ক্রমVPN থেকে ZTNA-তে যাওয়ার ধাপগুলো সঠিক ক্রমে সাজান (▲▼ চেপে সরান)

  1. VPN log থেকে user আর app-এর তালিকা বানানো
  2. চলতি VPN-এ MFA, patch আর segmentation বসানো
  3. Identity provider আর device তালিকা তৈরি করা
  4. কম ঝুঁকির একটি web app-এ ছোট pilot
  5. App ধরে ধরে সরানো আর VPN-এ সেই পথ বন্ধ করা
  6. বাকি অংশের জন্য ছোট, কড়া VPN রেখে জরুরি পথ পরীক্ষা করা

একজন কর্মী VPN চালু রেখে একটি phishing লিংকে নিজের password দিলেন। VPN-এর কাছ থেকে কোন প্রত্যাশাটি ঠিক?

  • VPN ভুয়া সাইট চিনে সংযোগ আটকে দেবে
  • Tunnel থাকায় password আক্রমণকারীর কাছে পৌঁছাবে না
  • VPN পথ রক্ষা করে, phishing সরাসরি ঠেকায় না
  • VPN নিজে থেকে password বদলে দেবে

IPsec-এ কোন অংশ এনক্রিপশন আর integrity দুটোই দেয়?

  • AH
  • ESP
  • IKEv2
  • SPI

WireGuard-এ প্রতি packet-এ IPv4-এর ওপর মোট header আর tag-এর খরচ ৬০ বাইট। Link MTU ১৫০০ হলে ভেতরের TCP MSS (IPv4 + TCP ৪০ বাইট) কত?

  • ১৪৬০
  • ১৪৪০
  • ১৩৮০
  • ১৪০০

WireGuard-এর AllowedIPs ভেতরে আসা packet-এর ক্ষেত্রে কী কাজ করে?

  • ভেতরের উৎস ঠিকানা ওই peer-এর জন্য অনুমোদিত কি না যাচাই করে
  • Public IP ঠিকানা গোপন করে
  • ব্যবহারকারীর MFA যাচাই করে
  • কোন encryption algorithm চলবে তা বাছাই করে

চুরি হওয়া একটি sales account-এর ক্ষতি কমাতে ZTNA-র মূল ভূমিকা কী?

  • Password চুরি পুরোপুরি অসম্ভব করে
  • অনুমোদিত app-এর সব বাগ নিজে থেকে ঠিক করে
  • Account-এর নাগালকে network থেকে নির্দিষ্ট app-এ নামিয়ে আনে
  • সব log বন্ধ করে দিয়ে ঝুঁকি কমায়

একটি consumer VPN দাবি করল: “আমরা কোনো log রাখি না।” সবচেয়ে যৌক্তিক ব্যাখ্যা কোনটি?

  • এটি প্রমাণিত, কারণ কোম্পানি নিজে বলেছে
  • এটি একটি দাবি, যা বাইরে থেকে পুরো যাচাই করা যায় না
  • এতে ব্যবহারকারী সব সাইটে পুরো পরিচয়হীন হন
  • এতে যেকোনো দেশের আইন প্রযোজ্য থাকে না

শব্দকোষ

লেখার মধ্যে ডটেড দাগ দেওয়া শব্দে মাউস রাখুন বা চাপুন, অর্থ দেখাবে। এই পর্বের সব নতুন শব্দ এখানে একসাথে:

মনে রাখুন

  1. VPN পথ রক্ষা করে; malware, phishing আর দুর্বল app থেকে নয়।
  2. IPsec = IKEv2 + ESP; WireGuard = Noise, public key আর cryptokey routing.
  3. VPN gateway সবচেয়ে দামি দরজা: patch, MFA, ছোট নাগাল, session limit, বাইরে log.
  4. ZTNA network নয়, app দেয়, আর পরিচয় ও device দেখে সিদ্ধান্ত নেয়; broker আর identity provider নতুন নির্ভরতা।
  5. Migration ধাপে ধাপে; consumer VPN-এর দাবি যাচাই করুন, আর স্থানীয় আইন নিজে দেখে নিন।

পরের পর্বে: Tunnel-এর বাইরেও দুটি পুরোনো ব্যবস্থা রোজ আপনার নিরাপত্তা ঠিক করে দেয়: DNS আর email. পর্ব ২৬-এ দেখব DNSSEC, SPF, DKIM আর DMARC.

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

এই পর্বটি শেয়ার করুন:
এই পর্বে ভুল পেয়েছেন? জানান