Security group আসলে একটা অতিথি-তালিকা, দেয়াল নয়। নিয়মের চারটে ঘর, `0.0.0.0/0` আসলে কতটা খোলা, stateful মানে কী, NACL কেন আলাদা, একটা আসল ঘটনার মতো firewall অডিট, আর যে একটা অভ্যাস firewall-কে নিজে থেকে ঠিক রাখে।
আগের পর্বে সার্ভার চালু করার সময় একটা চেকবক্সে ক্লিক করেছিলে: Allow SSH traffic from — Anywhere। ওই একটা ক্লিকে যা হয়েছে, এই পর্ব পুরোটা সেটা নিয়ে।
Security group হলো তোমার সার্ভারের সামনে বসা একটা ফিল্টার। কিন্তু "firewall" শব্দটা একটু ভুল ছবি আঁকে, কারণ মানুষ firewall শুনলে দেয়াল ভাবে — যেখানে তুমি দরজা বন্ধ করো, তালা দাও, নিষেধ লেখো।
Security group তা নয়। ওটা একটা অতিথি-তালিকা।
পার্থক্যটা গভীর, আর এটা বোঝা গেলে বাকি সবকিছু পরিষ্কার হয়ে যায়:
তাই একটা নতুন security group-এ একটাও inbound নিয়ম থাকে না, আর তার মানে কেউ ঢুকতে পারে না — কোনো "deny all" লেখার দরকার নেই, কারণ তালিকায় নাম না থাকাটাই যথেষ্ট।
আর এই কারণেই একটা প্রশ্নের উত্তর কখনো পাবে না: "কোন নিয়মটা আমাকে আটকাচ্ছে?" কোনো নিয়ম আটকাচ্ছে না। কোনো নিয়ম তোমাকে ঢুকতে দিচ্ছে না — আর এটা সম্পূর্ণ আলাদা প্রশ্ন, যার উত্তর খুঁজতে হয় অন্য জায়গায়।
আর দুটো তথ্য, যেগুলো পরে কাজে লাগবে:
এটা instance-এর সাথে যুক্ত নয়, নেটওয়ার্ক ইন্টারফেসের সাথে। ফলে একটা security group অনেক instance-এ একসাথে লাগানো যায়, আর একটা instance-এ একাধিক group লাগানো যায় (পাঁচটা পর্যন্ত)। একাধিক থাকলে নিয়মগুলো যোগ হয় — যেকোনো একটা group অনুমতি দিলেই যথেষ্ট।
এটা সার্ভারের ভেতরে চলে না। iptables বা ufw-এর মতো এটা মেশিনের উপর বসা কোনো সফটওয়্যার নয় — এটা নেটওয়ার্কের ভেতরে, instance-এ পৌঁছানোর আগে। ফলে সার্ভারটা জানেই না তাকে কে কে খুঁজতে এসে ফিরে গেছে, আর সার্ভারের ভেতরে ঢুকে কেউ এটা বন্ধ করতে পারে না।
প্রতিটা inbound নিয়মে চারটে জিনিস থাকে, আর চতুর্থটাই সবচেয়ে জরুরি:
Type আসলে শুধু সুবিধা — SSH বাছলে ও নিজেই TCP আর পোর্ট ২২ বসিয়ে দেয়। কিছু নতুন হলে Custom TCP নিয়ে নিজে পোর্ট লেখো।
পরিচিত পোর্টগুলো মনে রাখা কাজের, কারণ এগুলো বারবার আসবে:
ডানদিকের কলামটা মনে রাখার মতো, কারণ এটা মতামত নয়, মাপা অভিজ্ঞতা। একটা ডেটাবেসের পোর্ট ইন্টারনেটে খোলা রাখলে কয়েক ঘণ্টার মধ্যে অজানা মেশিন এসে চেষ্টা শুরু করে। এই পর্বের অডিট সেকশনে আমরা ঠিক এমন একটা জিনিস খুঁজে বের করব।
আর Source ঘরটা তিন ধরনের জিনিস নিতে পারে, আর তিনটে সম্পূর্ণ আলাদা অর্থ বহন করে:
১. একটা নির্দিষ্ট ঠিকানা — 203.0.113.4/32। /32 মানে "ঠিক এই একটা ঠিকানা, আর কিছু নয়"।
২. একটা পুরো পরিসর — 10.0.0.0/16 মানে ৬৫,৫৩৬টা ঠিকানা; 0.0.0.0/0 মানে সবগুলো, গোটা ইন্টারনেট।
৩. আরেকটা security group — সবচেয়ে কাজের বিকল্প, আর এই পর্বের শেষ সেকশনের পুরো বিষয়।
0.0.0.0/0 লেখার একটা সৎ অনুবাদ আছে: "পৃথিবীর যেকোনো কম্পিউটার।"
১০৯টি অংশের ২২টি দেখানো হয়েছে, ৮৭টি বাকি