3.5
Security Group বনাম NACL, আর Ephemeral Port
stateful বনাম stateless filtering, rule কোন ক্রমে মেলে, ephemeral port, তিন স্তরের অ্যাপের rule set, আর timeout বনাম connection refused।
34 মিনিট পড়া + Animation
টিপস: ডটেড-আন্ডারলাইন করা যেকোনো শব্দে ট্যাপ বা Hover করলে তার অর্থ দেখবে।
এই লেসন শেষে তুমি যা পারবে
- VPC-তে firewall-এর দুটি স্তর কী, আর কোনটা কোথায় বসে, তা বুঝিয়ে বলতে পারবে।
- Security Group-এর rule লিখতে পারবে, এমনকি এমন rule-ও, যেখানে source হিসেবে অন্য একটা Security Group দেওয়া থাকে।
- Network ACL-এর rule লিখতে পারবে, “যে rule আগে মেলে, সেটাই চূড়ান্ত” নিয়মটা কাজে লাগাতে পারবে, আর custom NACL ও rule-এর ক্রম নিয়ে যে ফাঁদগুলো আছে সেগুলো এড়াতে পারবে।
- stateful আর stateless filtering-এর পার্থক্য বোঝাতে পারবে, আর stateless filtering-এর জন্য যে ephemeral port rule লাগে সেগুলো যোগ করতে পারবে।
- একটা web tier আর একটা database tier-এর পুরো rule set নিজে সাজাতে পারবে, আর সমস্যা হলে “timeout” আর “connection refused”-এর তফাত দেখে কারণ খুঁজে বের করতে পারবে।
#firewall-এর দুই স্তর
VPC-র কোনো Instance-এ যে packet ঢোকে বা বের হয়, তাকে দুই জায়গায় আটকানো বা ছেড়ে দেওয়া যায়:
- Subnet-এর সীমানায় থাকে Network ACL (NACL)। Subnet-এ যত packet ঢোকে আর বের হয়, প্রত্যেকটা সে পরীক্ষা করে।
- প্রতিটা Instance-এর গায়ে থাকে Security Group (SG) (ঠিকভাবে বললে, প্রতিটা network interface-এর গায়ে)। শুধু ওই একটা Instance-এ যা ঢোকে বা বের হয়, সেটুকুই সে দেখে।
ধরো Internet থেকে কেউ তোমার web server-এ request পাঠাল। সেটা আগে Subnet-এর Network ACL পার হবে, তারপর Instance-এর Security Group। উত্তর ফেরার সময় উল্টো পথ: আগে Security Group, তারপর Network ACL।
#Security Group
Security Group আসলে কিছু allow rule-এর তালিকা। প্রতিটা rule-এ তিনটা জিনিস থাকে: একটা protocol, একটা port range, আর inbound হলে একটা source, outbound হলে একটা destination। source হতে পারে:
- একটা CIDR block, যেমন
0.0.0.0/0(যে কেউ) বা203.0.113.25/32(শুধু একটা address); - অন্য একটা Security Group, মানে “যেসব network interface-এ ওই Security Group লাগানো আছে, তাদের সবাই”;
- একটা managed prefix list (কয়েকটা CIDR block একসাথে, একটা নাম দিয়ে রাখা)।
Security Group কীভাবে কাজ করে:
| বৈশিষ্ট্য | কী বোঝায় |
|---|---|
| শুধু allow rule | এখানে “deny” rule বলে কিছু নেই। যেটার অনুমতি দেওয়া নেই, সেটা এমনিতেই বাদ পড়ে যায়। |
| Stateful | কোনো request-কে ঢুকতে দিলে, তার উত্তর আপনা-আপনি বের হতে পারে; উল্টো দিকেও একই কথা। উত্তরের বেলায় outbound rule খুলে দেখাই হয় না। |
| সব rule একসাথে দেখা হয় | কোনো ক্রম বা নম্বর নেই: যেকোনো একটা rule অনুমতি দিলেই traffic ঢুকতে পারবে। |
| নতুন group-এর শুরুর অবস্থা | কোনো inbound rule থাকে না (মানে সব inbound বন্ধ), আর থাকে একটা outbound rule, যেটা সব traffic বের হতে দেয়। |
| network interface-এ লাগানো হয় | একটা Instance-এ একাধিক Security Group লাগানো যায় (default হিসেবে প্রতি interface-এ ৫টা), আর সবগুলোর rule মিলিয়ে কাজ করে। আবার একটা group অনেক Instance-এ লাগানো যায়। |
| সীমা | একটা Security Group একটা Region-এর একটা VPC-র মধ্যেই থাকে। |
| বদল সাথে সাথে কাজ করে | rule বদলালে চালু Instance-গুলোতে তখনই প্রভাব পড়ে; restart লাগে না। |
| কোটা | default হিসেবে প্রতি group-এ ৬০টা inbound আর ৬০টা outbound rule (বাড়ানো যায়)। |
Security Group কাজ করে Instance-এর বাইরে। যে traffic আটকে যায়, সেটা operating system পর্যন্ত পৌঁছায়ই না, তাই Instance সেটা দেখতেও পায় না, log-ও করতে পারে না।
#rule-এ অন্য Security Group-কে source বানানো
Security Group-এর সবচেয়ে কাজের সুবিধা হলো, rule-এর source হিসেবে আরেকটা Security Group বসিয়ে দেওয়া যায়। “10.0.1.0/24 থেকে port 3306 খুলে দাও” না লিখে তুমি লিখতে পারো “sg-web থেকে port 3306 খুলে দাও”। এতে যা হয়:
- যে Instance-এ
sg-webলাগানো আছে, সে VPC-র যেখানেই থাকুক, connect করতে পারবে; - Auto Scaling group নতুন web server চালু করলে সেগুলোও আপনা-আপনি অনুমতি পেয়ে যায়;
- একই Subnet-এ থাকা অন্য কোনো কিছু অনুমতি পায় না, তার address পাশাপাশি হলেও না।
স্তরগুলো এভাবেই একটার সাথে আরেকটা জোড়া লাগানো হয়: load balancer → web server → database। প্রতিটা group শুধু তার ঠিক আগের group-কে ঢুকতে দেয়। এটা একটা VPC-র ভেতরে কাজ করে, আবার একই Region-এ peering করা VPC-গুলোর মধ্যেও কাজ করে।
#যে Port-গুলো দেখলেই চিনতে হবে
| Port | Protocol | কী কাজে লাগে |
|---|---|---|
| 22 | SSH | Linux Instance-এ লগইন করা; SFTP-ও (SSH-এর ওপর দিয়ে ফাইল আদান-প্রদান) |
| 21 | FTP | encryption ছাড়া ফাইল আদান-প্রদান |
| 80 | HTTP | encryption ছাড়া ওয়েবসাইট |
| 443 | HTTPS | encrypted ওয়েবসাইট আর API |
| 3389 | RDP | Windows Instance-এ Remote Desktop |
| 3306 | MySQL / MariaDB / Aurora MySQL | database connection |
| 5432 | PostgreSQL / Aurora PostgreSQL | database connection |
একটা বাস্তব উদাহরণ নাও: একটা EC2 Instance-এ একটা WordPress সাইট চলছে। সাইটটা সবাই দেখবে, তাই Security Group-এ 0.0.0.0/0 থেকে HTTP (80) আর HTTPS (443) খোলা রাখতে হবে। server দেখভালের জন্য SSH (22)-ও লাগবে, কিন্তু সেটা খুলবে শুধু তোমার নিজের বাসা বা অফিসের address থেকে, যেমন 203.0.113.25/32। 0.0.0.0/0 থেকে কখনোই না। পরীক্ষায় যে option-এ port 22 0.0.0.0/0-এর জন্য খোলা, সেটা সবসময়ই “bad practice”।
#Network ACL
Network ACL হলো Subnet-এর সীমানায় বসানো allow আর deny rule-এর একটা নম্বর দেওয়া তালিকা।
| বৈশিষ্ট্য | কী বোঝায় |
|---|---|
| allow আর deny দুটোই | এখানে সরাসরি deny rule লেখা যায়। তাই নির্দিষ্ট কোনো IP address বা range আটকাতে NACL-ই হলো আসল হাতিয়ার। |
| Stateless | সে কিছুই মনে রাখে না। উত্তরটাও তার কাছে একটা নতুন packet, তাই উল্টো দিকের জন্য আলাদা rule-এর সাথে সেটাকে মিলতে হয়। |
| নম্বর দেওয়া, যেটা আগে মেলে সেটাই চূড়ান্ত | rule চেক হয় সবচেয়ে ছোট নম্বর থেকে শুরু করে ওপরের দিকে (1 থেকে 32766)। প্রথম যে rule মিলে যায়, সিদ্ধান্ত সেটাই; পরের rule-গুলো আর পড়াই হয় না। |
| শেষে একটা ধরা-পড়ার rule | প্রতিটা NACL-এর শেষে একটা * rule থাকে। নম্বর দেওয়া কোনো rule-এর সাথে যা মেলেনি, সেটা এখানে এসে deny হয়। এই rule বদলানো বা মোছা যায় না। |
| প্রতি Subnet-এ একটা | একটা Subnet-এর সাথে ঠিক একটা NACL-ই যুক্ত থাকে; তবে একটা NACL অনেকগুলো Subnet-এ কাজ করতে পারে। নতুন Subnet বানালে সেটা VPC-র default NACL ব্যবহার করে। |
| নম্বর দেওয়ার অভ্যাস | AWS বলে ১০০ করে বাড়িয়ে নম্বর দিতে (100, 200, 300…), যাতে পরে মাঝখানে নতুন rule ঢোকানোর জায়গা থাকে। |
| কোটা | default হিসেবে প্রতি দিকে ২০টা rule (৪০ পর্যন্ত বাড়ানো যায়)। |
Network ACL-এর rule-এ শুধু CIDR block দেওয়া যায়, Security Group দেওয়া যায় না।
#Default আর custom Network ACL
পরীক্ষায় সবচেয়ে বেশি যে ফাঁদগুলো আসে, এটা তার একটা:
- Default NACL (প্রতিটা VPC-র সাথে নিজে থেকেই তৈরি হয়) সব inbound আর সব outbound traffic যেতে দেয়।
- তুমি নিজে যে custom NACL বানাও, তাতে rule যোগ না করা পর্যন্ত সব inbound আর সব outbound traffic আটকে থাকে।
Network ACL rule: যেটা আগে মেলে, সেটাই চূড়ান্ত
একই দুটো rule, দুই রকম ক্রমে সাজানো। খেয়াল করো, প্রথম যে rule-এর সাথে মেলে, চেক সেখানেই থেমে যায়।
পরিস্থিতি
inbound rule (ছোট নম্বর আগে)
| Rule # | ধরন | উৎস | সিদ্ধান্ত |
|---|---|---|---|
| 100 | All traffic | 203.0.113.50/32 | Deny |
| 200 | TCP 80 | 0.0.0.0/0 | Allow |
| * | All traffic | 0.0.0.0/0 | Deny |
আক্রমণকারীর packet এল। প্রথমে rule 100 চেক হয়: source 203.0.113.50/32, মিলে গেল।
#Stateful, stateless আর ephemeral port
প্রতিটা TCP connection-এর দুটো মাথা থাকে, আর দুই মাথাতেই একটা করে port লাগে:
- Server একটা পরিচিত port-এ অপেক্ষা করে: 80, 443, 3306…
- Client-এর operating system শুধু এই একটা connection-এর জন্য একটা অস্থায়ী port বেছে নেয়। এটাকেই বলে ephemeral port।
ধরো 198.51.100.20-এর একটা browser request পাঠাল 198.51.100.20:50105 → 10.0.1.10:80। উত্তর ফিরবে 10.0.1.10:80 → 198.51.100.20:50105 পথে। মানে উত্তরটা যায় client-এর ephemeral port-এ।
Security Group stateful, তাই এই ঝামেলা সে নিজেই সামলে নেয়। Network ACL stateless, সে সামলায় না। তাই তার outbound rule-এ client-দের ephemeral port-এ উত্তর পাঠানোর অনুমতি রাখতে হবে। আর তোমার server-ই যদি client হয় (যেমন database বা কোনো API-কে call করে), তাহলে inbound rule-এও ওই server-এর ephemeral port-এ ফেরত আসা উত্তর ঢুকতে দিতে হবে।
কোন system কোন ephemeral port range ব্যবহার করে, সেটা আলাদা:
| Client | Ephemeral range |
|---|---|
| বেশিরভাগ Linux kernel (Amazon Linux-ও) | 32768–60999 |
| Windows Server 2008 আর তার পরের সংস্করণ, IANA-র সুপারিশ | 49152–65535 |
| AWS NAT gateway, Elastic Load Balancing, Lambda | 1024–65535 |
একটা public web server-এ কে client হয়ে আসবে তার ঠিক নেই, তাই সাধারণত rule দেওয়া হয় TCP 1024–65535। এতে সব ধরনের client ধরা পড়ে।
একটা request, দুটো firewall, যাওয়া-আসা দুই পথেই
একটা browser web server-এর কাছে একটা পেজ চাইছে। Network ACL পাহারা দেয় Subnet-এর সীমানায়, আর Security Group পাহারা দেয় Instance-এর গায়ে।
পরিস্থিতি
browser নিজের দিকে যেকোনো একটা source port বেছে নেয় (এটাই ephemeral port, এখানে 50105), তারপর server-এর port 80-তে connect করে। packet সবার আগে পৌঁছায় Subnet-এর সীমানায়।
নিজেকে যাচাই করোপ্রশ্ন
একটা ক্ষতিকর IP address যেন একটা Subnet-এর কোনো Instance-এ পৌঁছাতে না পারে, সেটা নিশ্চিত করতে হবে। কী ব্যবহার করবে?
#Security Group আর Network ACL পাশাপাশি
| Security Group | Network ACL | |
|---|---|---|
| কার ওপর কাজ করে | যেসব Instance / network interface-এ লাগানো আছে | যুক্ত Subnet-গুলোর ভেতরের সব resource |
| Rule | শুধু allow | allow আর deny দুটোই |
| State | Stateful: উত্তর আপনা-আপনি যেতে পারে | Stateless: উত্তরের জন্যও আলাদা rule লাগে |
| কীভাবে চেক হয় | সব rule একসাথে, কোনো ক্রম নেই | নম্বর ধরে, ছোট নম্বর আগে, যেটা আগে মেলে সেটাই চূড়ান্ত |
| Source | CIDR block, অন্য Security Group, prefix list | শুধু CIDR block |
| শুরুর অবস্থা | নতুন group: inbound বন্ধ, outbound সব খোলা | Default NACL: সব allow। Custom NACL: সব deny |
| সাধারণত কী কাজে | প্রতিটা resource-এর মূল আর খুঁটিনাটি নিয়ন্ত্রণ | পুরো Subnet-এর ওপর মোটা দাগের সুরক্ষা, আর নির্দিষ্ট address আটকানো |
বাস্তবে বেশিরভাগ ডিজাইনে খুঁটিনাটি rule রাখা হয় Security Group-এ, আর Network ACL রাখা হয় সাদামাটা (প্রায়ই default-টাই)। পুরো Subnet-এর জন্য কোনো বাড়তি সুরক্ষা লাগলে, বা চেনা খারাপ address আটকাতে হলে, তখন NACL-এ rule যোগ করা হয়।
#দুই স্তরের পুরো rule set
পরীক্ষার একটা পরিচিত scenario: VPC 10.0.0.0/16। একটা public web Subnet 10.0.1.0/24, যেটা HTTP/HTTPS দেয়। আর একটা private database Subnet 10.0.2.0/24, যেখানে port 3306-এ MySQL চলে।
Web Subnet-এর NACL, inbound
| Rule # | ধরন | উৎস | সিদ্ধান্ত | উদ্দেশ্য |
|---|---|---|---|---|
| 50 | All traffic | 203.0.113.50/32 | Deny | চেনা এক আক্রমণকারীকে আটকানো |
| 100 | TCP 80 | 0.0.0.0/0 | Allow | HTTP-তে আসা ভিজিটর |
| 110 | TCP 443 | 0.0.0.0/0 | Allow | HTTPS-এ আসা ভিজিটর |
| 120 | TCP 1024–65535 | 10.0.2.0/24 | Allow | database থেকে ফেরা উত্তর |
| * | All traffic | 0.0.0.0/0 | Deny | বাকি সব |
Web Subnet-এর NACL, outbound
| Rule # | ধরন | গন্তব্য | সিদ্ধান্ত | উদ্দেশ্য |
|---|---|---|---|---|
| 100 | TCP 1024–65535 | 0.0.0.0/0 | Allow | browser-এ উত্তর পাঠানো (ephemeral port) |
| 110 | TCP 3306 | 10.0.2.0/24 | Allow | শুধু database Subnet-এ query পাঠানো |
| * | All traffic | 0.0.0.0/0 | Deny | বাকি সব |
Database Subnet-এর NACL, inbound
| Rule # | ধরন | উৎস | সিদ্ধান্ত | উদ্দেশ্য |
|---|---|---|---|---|
| 100 | TCP 3306 | 10.0.1.0/24 | Allow | database connection, শুধু web Subnet থেকে |
| * | All traffic | 0.0.0.0/0 | Deny | Internet আর বাকি সব |
Database Subnet-এর NACL, outbound
| Rule # | ধরন | গন্তব্য | সিদ্ধান্ত | উদ্দেশ্য |
|---|---|---|---|---|
| 100 | TCP 1024–65535 | 10.0.1.0/24 | Allow | query-র ফল web server-এ ফেরত পাঠানো |
| * | All traffic | 0.0.0.0/0 | Deny | Internet-এর দিকে কিছুই বের হবে না |
একটা web tier আর একটা database tier, এক এক করে প্রতিটা rule
VPC 10.0.0.0/16 · web Subnet 10.0.1.0/24 · database Subnet 10.0.2.0/24 (3306-এ MySQL)। প্রতিটা ধাপে দেখানো হয়েছে, কোন rule সিদ্ধান্তটা নিল।
পরিস্থিতি
Web NACL · inbound
| Rule # | ধরন | উৎস / গন্তব্য | সিদ্ধান্ত |
|---|---|---|---|
| 50 | All traffic | 203.0.113.50/32 | Deny |
| 100 | TCP 80 | 0.0.0.0/0 | Allow |
| 110 | TCP 443 | 0.0.0.0/0 | Allow |
| 120 | TCP 1024–65535 | 10.0.2.0/24 | Allow |
| * | All traffic | 0.0.0.0/0 | Deny |
ভিজিটরের HTTPS request web Subnet-এ ঢুকছে। web-এর inbound rule একে একে দেখা হয়: 50-এর source এটা না; 100 হলো port 80-র, মেলে না; 110-এ TCP 443 খোলা। Allow।
এই ডিজাইনে তিনটা জিনিস খেয়াল করার মতো:
- Web-এর outbound rule 110 আসলে বাড়তি: rule 100 (যেকোনো জায়গায় 1024–65535) আগে চেক হয়, আর তার মধ্যেই 3306 পড়ে যায়। rule 110 কোনো ক্ষতি করে না, বরং উদ্দেশ্যটা লিখে রাখে; কিন্তু traffic আসলে এটার জোরে যায় না।
- Rule 50 সব traffic আটকায়, শুধু port 80 না। শুধু port 80-তে deny দিলে আক্রমণকারী rule 110 দিয়ে 443-এ ঠিকই ঢুকে পড়ত।
- Web server-গুলো নিজে থেকে Internet-এ 80/443-এ কোনো connection শুরু করতে পারে না (যেমন update নামাতে), কারণ outbound-এ শুধু উঁচু port-গুলো খোলা। কড়া ডিজাইনের জন্য এটা ঠিকই আছে, তবে তখন update-এর জন্য একটা proxy, মানানসই rule সহ একটা NAT পথ, বা VPC endpoint লাগবে।
এর সাথে মিলিয়ে Security Group-গুলো অনেক সহজ, কারণ এরা stateful আর একে অপরকে source হিসেবে দেখাতে পারে:
| Security Group | Inbound rule |
|---|---|
sg-web | 0.0.0.0/0 থেকে TCP 80 আর 443 (load balancer থাকলে, তার Security Group থেকে) |
sg-db | sg-web থেকে TCP 3306 |
#নিজে করে দেখো
# Security Group: web-এ যেকোনো জায়গা থেকে HTTPS খোলা, db-তে MySQL শুধু web group থেকে
WEB=$(aws ec2 create-security-group --group-name web --description web --vpc-id $VPC --query GroupId --output text)
DB=$(aws ec2 create-security-group --group-name db --description db --vpc-id $VPC --query GroupId --output text)
aws ec2 authorize-security-group-ingress --group-id $WEB --protocol tcp --port 443 --cidr 0.0.0.0/0
aws ec2 authorize-security-group-ingress --group-id $DB --protocol tcp --port 3306 --source-group $WEB
# Network ACL: ছোট rule নম্বর দিয়ে একটা address আটকাও
aws ec2 create-network-acl-entry --network-acl-id $NACL --ingress --rule-number 50 \
--protocol -1 --cidr-block 203.0.113.50/32 --rule-action deny
# client থেকে সমস্যা খোঁজা: timeout নাকি refused
curl -m 5 http://203.0.113.25/ # "timed out" → firewall; "Connection refused" → কোনো app শুনছে না
#সারসংক্ষেপ
মূল কথাগুলো
- VPC-তে দুটো ছাঁকনি: Subnet-এর সীমানায় Network ACL, আর প্রতিটা Instance-এ Security Group।
- Security Group: শুধু allow rule, stateful, সব rule একসাথে দেখা হয়, source হিসেবে অন্য Security Group দেওয়া যায়; নতুন group-এ সব inbound বন্ধ আর সব outbound খোলা।
- Network ACL: allow আর deny দুটোই, stateless, নম্বর দেওয়া আর যেটা আগে মেলে সেটাই চূড়ান্ত, শেষে একটা
*deny, শুধু CIDR block, প্রতি Subnet-এ একটা। নির্দিষ্ট IP আটকাতে এটাই ব্যবহার করো। - Default NACL সব খোলা রাখে; নতুন custom NACL সব বন্ধ রাখে।
- উত্তর যায় client-এর ephemeral port-এ। stateless NACL-এ এর জন্য আলাদা করে rule দিতে হয়; 1024–65535 দিলে সব ধরনের client ধরা পড়ে (Linux ব্যবহার করে 32768–60999, Windows 49152–65535)।
- “request পৌঁছায়, কিন্তু উত্তর ফেরে না” → Network ACL দেখো। Timeout → কোনো firewall আটকেছে; connection refused → কোনো application শুনছে না।
- স্তরগুলো জোড়া লাগাও এমন Security Group দিয়ে, যারা একে অপরকে source হিসেবে দেখায় (
sg-db-তেsg-webথেকে 3306 খোলা); database port কখনো0.0.0.0/0-এর জন্য খুলবে না।
আগে নিজে উত্তর দাও, তারপর ব্যাখ্যাটা পড়ো। ঠিক হলেও পড়ো, কারণ ভুল Option-গুলো কেন ভুল, সেটাও ওখানে আছে।
নিজেকে যাচাই করোপ্রশ্ন
একটা Security Group-এ 0.0.0.0/0 থেকে inbound TCP 443 খোলা, আর তার default outbound rule মুছে ফেলা হয়েছে (কোনো outbound rule নেই)। client-রা কি এখনো HTTPS-এর উত্তর পাবে?
নিজেকে যাচাই করোপ্রশ্ন
একটা টিম নতুন একটা Network ACL বানিয়ে production Subnet-এ লাগাল, আর সাথে সাথেই application বন্ধ হয়ে গেল। কেন?
নিজেকে যাচাই করোপ্রশ্ন
database-এর Security Group-এ source হিসেবে কী দেবে, যাতে শুধু application server-রাই MySQL-এ connect করতে পারে, পরে Auto Scaling যেগুলো চালু করবে সেগুলোও?
নিজেকে যাচাই করোপ্রশ্ন
Network ACL নিয়ে কোন দুটো কথা সত্যি?
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
Network ACL ঠিক কোন জায়গায় traffic ছাঁকে?
নিজেকে যাচাই করোপ্রশ্ন
একটা Security Group এইমাত্র বানানো হয়েছে, কোনো rule বদলানো হয়নি। এটা কী কী যেতে দেয়?
নিজেকে যাচাই করোপ্রশ্ন
একজন admin Remote Desktop দিয়ে একটা Windows Instance-এ ঢুকবেন। admin-এর address থেকে Security Group-এ কোন port খুলতে হবে?
নিজেকে যাচাই করোপ্রশ্ন
একটা application tier একটা Aurora PostgreSQL cluster-এ connect করে। database-এর Security Group-এ application tier-এর Security Group থেকে কোন port খুলবে?
নিজেকে যাচাই করোপ্রশ্ন
একটা ছোট কোম্পানি একটা EC2 Instance-এ WordPress সাইট চালায়। Security Group-এর কোন inbound rule-গুলো ঠিকঠাক নিয়ম মেনে চলে?
নিজেকে যাচাই করোপ্রশ্ন
এক সহকর্মী জোর দিয়ে বলছেন: ‘web server-এর Security Group-এ TCP 1024–65535-এর একটা outbound rule লাগবেই, নইলে ভিজিটরদের কাছে উত্তর যাবে না।’ কোনটা ঠিক?
নিজেকে যাচাই করোপ্রশ্ন
একটা Instance-এ দুটো Security Group লাগানো। sg-admin খোলা রেখেছে 203.0.113.25/32 থেকে TCP 22, আর sg-web খোলা রেখেছে 0.0.0.0/0 থেকে TCP 443। কোন inbound traffic Instance পর্যন্ত পৌঁছাবে?
নিজেকে যাচাই করোপ্রশ্ন
নিচের কোনটা Security Group-এর inbound rule-এ source হিসেবে দেওয়া যায় না?
নিজেকে যাচাই করোপ্রশ্ন
Security Group নিয়ে কোন দুটো কথা সত্যি?
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
একজন developer port 8080-এ একটা Instance-এর দিকে curl চালাল, আর সাথে সাথেই ‘Connection refused’ পেল। সবচেয়ে সম্ভাব্য কারণ কী?
নিজেকে যাচাই করোপ্রশ্ন
user-রা বলছে, একটা ওয়েবসাইট প্রায় ৩০ সেকেন্ড ঝুলে থেকে তারপর timeout দেখায়। web server-এর process চলছে, port 443-এ শুনছেও। একজন solutions architect প্রথমে কোথায় খুঁজবেন?
নিজেকে যাচাই করোপ্রশ্ন
একজন client একটা Instance-এর TCP 443-এ connect করতে পারছে না: connection timeout হয়ে যাচ্ছে। কোন দুটো কারণ এই লক্ষণের সাথে মেলে?
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
প্রতিটা Network ACL-এর শেষে * দাগ দেওয়া যে rule থাকে, তার ব্যাপারে কোনটা সত্যি?
নিজেকে যাচাই করোপ্রশ্ন
একজন solutions architect একটা চালু VPC-তে নতুন একটা Subnet যোগ করলেন, কিন্তু কোনো Network ACL-এর সাথে যুক্ত করলেন না। NACL স্তরে Subnet-টা কী পাবে?
নিজেকে যাচাই করোপ্রশ্ন
একটা Network ACL-এর inbound rule এরকম: rule 100 সবার জন্য (0.0.0.0/0) TCP 80 allow করে; rule 200 198.51.100.7/32 থেকে আসা সব traffic deny করে; rule * সব deny করে। 198.51.100.7 থেকে আসা একটা TCP 80 packet-এর কী হবে?
নিজেকে যাচাই করোপ্রশ্ন
একটা টিম inbound Network ACL-এ rule 200 যোগ করল, যেটা 203.0.113.50/32 থেকে আসা সব traffic deny করে। rule 100 আগে থেকেই 0.0.0.0/0 থেকে সব traffic allow করছে। 203.0.113.50-এর আক্রমণকারী এখনো ঢুকে পড়ছে। টিমের কী করা উচিত?
নিজেকে যাচাই করোপ্রশ্ন
একটা Network ACL-এর inbound rule এরকম: rule 90 203.0.113.0/24 থেকে TCP 22 deny করে; rule 100 0.0.0.0/0 থেকে সব traffic allow করে; rule * সব deny করে। 203.0.113.40 থেকে আসা একটা TCP 443 packet-এর কী হবে?
নিজেকে যাচাই করোপ্রশ্ন
198.51.100.20-এর একটা browser port 50105 থেকে 10.0.1.10-এর web server-এর port 80-তে connection খুলল। server-এর উত্তরের source আর destination কী হবে?
নিজেকে যাচাই করোপ্রশ্ন
default হিসেবে Linux kernel (Amazon Linux-ও) বাইরের দিকে connection করার সময় কোন ephemeral port range ব্যবহার করে?
নিজেকে যাচাই করোপ্রশ্ন
কোন দুটো 1024 থেকে 65535-এর যেকোনো port-কে source port হিসেবে ব্যবহার করতে পারে, যে কারণে Network ACL-এর rule-এ সাধারণত পুরো 1024–65535 range খোলা হয়?
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
একটা কোম্পানি public Subnet-এ কিছু EC2 Instance-এ ওয়েবসাইট চালায়, Subnet-এ একটা custom Network ACL লাগানো। Security Group 0.0.0.0/0 থেকে TCP 80 আর 443 খোলা রেখেছে। NACL-এর inbound rule 0.0.0.0/0 থেকে TCP 80 আর 443 allow করে, আর outbound rule শুধু 0.0.0.0/0-এ TCP 80 আর 443 allow করে। user-রা সাইট খুলতে পারছে না। solutions architect কী বদলাবেন?
নিজেকে যাচাই করোপ্রশ্ন
দুটো Instance একই Subnet-এ আছে। Subnet-এর Network ACL একদম নতুন একটা custom NACL, তাতে শুধু * deny rule-গুলো। Instance B-এর Security Group, Instance A-এর Security Group থেকে TCP 5432 খোলা রেখেছে। A কি B-এর port 5432-এ connect করতে পারবে?
নিজেকে যাচাই করোপ্রশ্ন
database Subnet-এর Network ACL-এ MySQL connection খুলতে হবে শুধু web tier থেকে। web tier চলে 10.0.1.0/24 Subnet-এ, আর তার Security Group হলো sg-web। inbound NACL rule-এর source কী হবে?
নিজেকে যাচাই করোপ্রশ্ন
একটা কোম্পানির three-tier application: Internet-মুখী একটা Application Load Balancer, Auto Scaling group-এ কিছু web server, আর একটা Aurora MySQL database। web server-এ পৌঁছাতে পারবে শুধু load balancer, আর database-এ পৌঁছাতে পারবে শুধু web server। কোন Security Group ডিজাইন এটা পূরণ করে?
নিজেকে যাচাই করোপ্রশ্ন
লেসনের web Subnet-এর NACL-এ outbound rule 100 0.0.0.0/0-এ TCP 1024–65535 allow করে, আর rule 110 10.0.2.0/24-এ TCP 3306 allow করে। একটা web server 10.0.2.15-এর port 3306-এ query পাঠাল। কোন rule packet-টাকে যেতে দিল?
নিজেকে যাচাই করোপ্রশ্ন
লেসনের web Subnet-এর NACL-এ inbound rule 50 শুধু TCP 80 না আটকে 203.0.113.50/32 থেকে সব traffic কেন deny করে?
নিজেকে যাচাই করোপ্রশ্ন
লেসনের two-tier ডিজাইনের web server-গুলোকে এখন HTTPS দিয়ে সরাসরি Internet থেকে update নামাতে হবে (Subnet-এর route আগে থেকেই internet gateway-তে যায়)। Network ACL-এ কোন দুটো বদল লাগবে?
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
Network ACL নিয়ে নিচের কোন কথাটা ভুল?