ECS Security Group: ตั้งกฎ Inbound/Outbound บน Alibaba Cloud

ตั้ง ECS Security Group บน Alibaba Cloud ให้ถูก เข้าใจ Priority 1–100 กับ Allow/Deny เปิดเว็บ 80/443 จำกัด SSH/RDP เฉพาะ IP สำนักงาน และทดสอบพอร์ต

โดย ทีมงาน THAI DATA CLOUD อัปเดต อ่าน 10 นาที

แชร์FacebookXLINELinkedIn
ECS Security Group — ECS Security Group: ตั้งกฎ Inbound/Outbound บน Alibaba Cloud
ECS Security Group: ตั้งกฎ Inbound/Outbound บน Alibaba Cloud

คำตอบสั้น ๆ: ตั้ง ECS Security Group บน Alibaba Cloud ให้ถูก เข้าใจ Priority 1–100 กับ Allow/Deny เปิดเว็บ 80/443 จำกัด SSH/RDP เฉพาะ IP สำนักงาน และทดสอบพอร์ต

คู่มือนี้อธิบาย ECS Security Group ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย

ECS Security Group คือไฟร์วอลล์เสมือนของ Alibaba Cloud ที่ครอบเครื่อง ECS ไว้ แต่ละกฎกำหนดทิศทาง (Inbound หรือ Outbound) นโยบาย Allow หรือ Deny ลำดับความสำคัญ (Priority) โปรโตคอล พอร์ต และต้นทางหรือปลายทาง กฎมีผลทันทีที่บันทึก จึงทั้งช่วยปิดช่องโหว่ได้เร็ว และทำให้เซิร์ฟเวอร์เข้าไม่ได้ทันทีถ้าตั้งผิด

คู่มือนี้เหมาะกับผู้ดูแล ECS ที่รันเว็บไซต์ แอปพลิเคชัน หรือฐานข้อมูล เมื่อทำครบ คุณจะเข้าใจว่า Alibaba Cloud ตัดสินกฎอย่างไร มีกลุ่มกฎที่เปิดเว็บ 80/443 ให้ทุกคน เปิด SSH หรือ RDP เฉพาะ IP สำนักงาน ให้ฐานข้อมูลรับเฉพาะเครื่องแอป และทดสอบแล้วว่าทำงานตามที่ตั้งใจ

แผนภาพ ECS Security Group อนุญาตเว็บ 80/443 จากทุก IP, SSH เฉพาะ IP สำนักงาน และ MySQL เฉพาะจากกลุ่มของเครื่องแอป
กลุ่มเว็บเปิด 80/443 ให้ทุกคน พอร์ตบริหารเปิดเฉพาะ /32 ฐานข้อมูลรับเฉพาะกลุ่มแอป

สิ่งที่ต้องเตรียม (ECS Security Group)

  • เครื่อง ECS ใน VPC อย่างน้อย 1 เครื่อง และ RAM User ที่มีสิทธิ์จัดการ ECS (ไม่ควรใช้บัญชีหลัก)
  • รายการพอร์ตที่แอปใช้จริง เช่น 22 (SSH), 3389 (RDP), 80/443 (เว็บ), 3306 (MySQL)
  • Public IP ของสำนักงานหรือผู้ดูแล เช่น 198.51.100.25
  • ทางเข้าสำรองกรณีตั้งกฎผิด คือปุ่ม Connect ของเครื่องในคอนโซล ซึ่งมี Workbench และ VNC

Security Group ทำงานคู่กับไฟร์วอลล์ในระบบปฏิบัติการ เช่น firewalld, UFW หรือ Windows Defender Firewall ต้องเปิดพอร์ตเดียวกันทั้งสองชั้น อ่านภาพรวมการป้องกันเซิร์ฟเวอร์ได้ที่ ความปลอดภัย Cloud Server

ขั้นตอนที่ 1: เข้าใจ Priority และลำดับการตัดสินกฎ

บน Alibaba Cloud ค่า Priority อยู่ระหว่าง 1 ถึง 100 ตัวเลขน้อยกว่าสำคัญกว่า ระบบเรียงกฎจาก Priority 1 ไปหา 100 ถ้าเท่ากัน กฎ Deny จะถูกตรวจก่อน Allow และกฎแรกที่ตรงกับทราฟฟิกเป็นตัวตัดสิน กฎที่เหลือไม่ถูกนำมาพิจารณา ถ้าเครื่องผูก ECS Security Group หลายกลุ่ม กฎของทุกกลุ่มจะถูกนำมารวมแล้วเรียงตามหลักเดียวกัน

ค่าเริ่มต้นของ ECS Security Group สองประเภทต่างกัน Basic Security Group อนุญาตให้เครื่องในกลุ่มเดียวกันคุยกันได้และอนุญาตขาออกทั้งหมด ส่วน Enterprise Security Group (เอกสารเก่าเรียก Advanced) ปฏิเสธทั้งขาเข้าและขาออกจนกว่าจะมีกฎ Allow และไม่มีการคุยกันภายในกลุ่มโดยอัตโนมัติ ทราฟฟิกขาเข้าที่ไม่มีกฎ Allow จะไม่ถึงเครื่องในทั้งสองแบบ

ตารางตัวอย่างกฎ ECS Security Group เรียงตาม Priority แสดงว่า Deny ที่ Priority 1 ถูกตรวจก่อน Allow และตัวเลขน้อยสำคัญกว่า
ตัวเลขน้อยถูกตรวจก่อน ถ้าเท่ากัน Deny มาก่อน Allow และกฎแรกที่ตรงเป็นตัวตัดสิน

ขั้นตอนที่ 2: สร้าง ECS Security Group สำหรับเครื่องเว็บ

เปิด ECS console เลือก Region ให้ตรงกับเครื่อง ที่เมนูซ้ายเลือก Network & Security > Security Groups แล้วคลิก Create Security Group ตั้งชื่อ ECS Security Group ให้บอกหน้าที่ เช่น sg-web-public เลือก VPC เดียวกับเครื่อง และเลือกประเภท Basic สำหรับงานทั่วไป หรือ Enterprise ถ้าต้องการให้ปฏิเสธทุกอย่างเป็นค่าเริ่มต้นและมีเครื่องจำนวนมาก

คลิก ID ของ ECS Security Group เพื่อเปิดหน้ารายละเอียด ที่ส่วนกฎจะแยกทิศทาง Inbound กับ Outbound เลือกทิศทางที่ต้องการแล้วคลิก Add Rule เพื่อเพิ่มกฎทีละแถว

ขั้นตอนที่ 3: เปิดเว็บ 80/443 ให้ทุกคน

ในทิศทาง Inbound เพิ่มกฎ Action เป็น Allow, Priority 1, Protocol เป็น TCP พอร์ต 80 และ 443 และ Source เป็น 0.0.0.0/0 ถ้าเว็บรองรับ IPv6 ให้เพิ่มกฎคู่กันที่ Source เป็น ::/0 ใส่ Description เช่น Public web เพื่อให้คนดูแลคนต่อไปรู้ว่ากฎนี้มีไว้ทำไม

เมื่อเรียกผ่าน API หรือ CLI ช่วงพอร์ตเขียนเป็นรูปแบบ เริ่ม/สิ้นสุด เช่น 443/443 หรือ 8000/8080 และพอร์ตของ ICMP ใช้ -1/-1 ในคอนโซลจะมีตัวช่วยเลือกพอร์ตที่ใช้บ่อยให้

ภาพจำลองหน้า Security Groups ใน ECS console กำลังเพิ่มกฎ Inbound แบบ Allow พอร์ต 22 จาก IP สำนักงาน
เลือกทิศทาง Inbound คลิก Add Rule แล้วกรอก Action, Priority, Protocol, Source และพอร์ต (ภาพจำลอง)

ขั้นตอนที่ 4: จำกัด SSH หรือ RDP เฉพาะ IP สำนักงาน

เพิ่มกฎ Allow, Priority 1, TCP พอร์ต 22 (Linux) หรือ 3389 (Windows) และ Source เป็น 198.51.100.25/32 ซึ่งหมายถึง IP เดียว จากนั้นตรวจรายการกฎว่ามีกฎ 22 หรือ 3389 ที่ Source เป็น 0.0.0.0/0 หลงเหลือจากตอนซื้อเครื่องหรือไม่ ถ้ามีให้ลบ เพราะพอร์ตบริหารจัดการที่เปิดให้ทั้งอินเทอร์เน็ตจะถูกสแกนและเดารหัสผ่านตลอดเวลา

คำเตือน: ก่อนลบกฎเปิดกว้าง ให้ทดสอบเข้าด้วย IP สำนักงานผ่านกฎใหม่ให้ได้ก่อน ถ้าล็อกตัวเองออก ให้ใช้ Connect > Workbench หรือ VNC จากคอนโซลเข้าไปแก้ ซึ่งไม่ผ่าน Security Group

ขั้นตอนที่ 5: ให้ฐานข้อมูลรับเฉพาะเครื่องแอป

สร้าง ECS Security Group แยกสำหรับฐานข้อมูล เช่น sg-db แล้วเพิ่มกฎ Allow TCP 3306 โดยตั้ง Source เป็น Security Group ของเครื่องแอป (ทำได้กับ Basic Security Group) ข้อดีคือเครื่องแอปที่เพิ่มเข้ากลุ่มภายหลังจะเข้าฐานข้อมูลได้ทันทีโดยไม่ต้องแก้ IP ถ้าใช้ Enterprise Security Group ซึ่งอ้างอิงกลุ่มอื่นเป็นต้นทางไม่ได้ ให้ใช้ CIDR ของ vSwitch ฝั่งแอป เช่น 192.168.1.0/24 แทน และไม่ต้องเปิด 3306 ให้ 0.0.0.0/0 ไม่ว่ากรณีใด

ขั้นตอนที่ 6: ใช้ Deny และ Priority บล็อกต้นทางที่ไม่ต้องการ

ถ้าพบช่วง IP ที่ยิงเว็บผิดปกติ เช่น 192.0.2.0/24 ให้เพิ่มกฎ Inbound แบบ Deny, Priority 1, Protocol ทั้งหมด และ Source เป็นช่วงนั้น กฎนี้ชนะกฎ Allow 80/443 ที่ Priority 1 เพราะเมื่อค่าเท่ากัน Deny ถูกตรวจก่อน ถ้าต้องการให้ชัดเจนขึ้น ให้เลื่อนกฎ Allow ทั่วไปไปไว้ที่ Priority ตัวเลขสูงกว่า เช่น 50 แล้วใช้ 1–10 สำหรับกฎ Deny เฉพาะจุด

สำหรับขาออก Basic Security Group อนุญาตทั้งหมดอยู่แล้ว ถ้าใช้ Enterprise หรือต้องการคุมขาออก ให้เพิ่มกฎ Allow เฉพาะที่จำเป็น เช่น TCP 443 สำหรับอัปเดตระบบและเรียก API, UDP 53 สำหรับ DNS และ UDP 123 สำหรับ NTP

ขั้นตอนที่ 7: ผูกกลุ่มกับ ECS และทดสอบ

ไปที่หน้ารายละเอียดของเครื่อง ECS เปิดแท็บ Security Groups แล้วเพิ่มเครื่องเข้า ECS Security Group ที่สร้าง เครื่องหนึ่ง (หนึ่ง ENI) อยู่ได้หลายกลุ่มแต่ไม่เกิน 10 กลุ่ม และกลุ่มทั้งหมดต้องเป็นประเภทเดียวกัน จากนั้นทดสอบจากเครื่องสำนักงานและจากเครือข่ายอื่น เช่น มือถือที่ปิด Wi-Fi

nc -zv -w 3 203.0.113.10 22
nc -zv -w 3 203.0.113.10 3306
curl -sI https://www.example.com | head -1
หน้าจอเทอร์มินัลทดสอบพอร์ต 22, 3306 และ HTTPS ของเครื่องที่ผูก ECS Security Group ด้วย nc และ curl
พอร์ต 22 ต่อได้จาก IP สำนักงาน 3306 ถูกปิดจากภายนอก และเว็บตอบ 200 ตามที่ตั้งใจ

ปัญหาที่พบบ่อยเกี่ยวกับ ECS Security Group

เพิ่มกฎ Allow แล้วแต่ยังเชื่อมต่อไม่ได้ ต้องตรวจอะไร?

ตรวจสามจุด หนึ่ง ไฟร์วอลล์ในระบบปฏิบัติการเปิดพอร์ตเดียวกันหรือไม่ สอง โปรแกรมฟังพอร์ตบน 0.0.0.0 ไม่ใช่ 127.0.0.1 (ดูด้วย ss -tlnp) สาม เครื่องผูกกลุ่มอื่นที่มีกฎ Deny Priority ตัวเลขน้อยกว่าหรือเท่ากันอยู่หรือไม่ เพราะกฎของ ECS Security Group ทุกกลุ่มถูกนำมาเรียงรวมกัน

Priority 1 กับ 100 ค่าไหนสำคัญกว่า?

บน Alibaba Cloud ค่า 1 สำคัญที่สุด และกฎ Deny ชนะ Allow เมื่อ Priority เท่ากัน ระวังสับสนกับระบบอื่นที่ใช้ตัวเลขมากเป็นสำคัญกว่า ก่อนแก้กฎควรเปิดรายการกฎทั้งหมดของเครื่องดูลำดับรวมก่อน

IP สำนักงานเปลี่ยนแล้ว SSH เข้าไม่ได้ แก้อย่างไร?

แก้ Source ของกฎ 22 หรือ 3389 เป็น IP ใหม่ในคอนโซล กฎมีผลทันที ถ้าต้องเข้าเครื่องก่อนแก้ ให้ใช้ Connect > Workbench หรือ VNC ระยะยาวควรเข้าผ่าน VPN หรือ Bastion Host ที่มี IP คงที่ แทนการเปิดพอร์ตให้ IP บ้านของแต่ละคน

อยากให้ ping เครื่องได้ต้องตั้งอย่างไร?

เพิ่มกฎ Inbound แบบ Allow โปรโตคอล ICMP (IPv4) จากต้นทางที่ต้องการ เช่น IP สำนักงาน ไม่จำเป็นต้องเปิด ICMP ให้ทั้งอินเทอร์เน็ต เพราะการปิด ping ไม่กระทบการทำงานของเว็บ

ถ้าต้องการให้ช่วยตรวจกฎ Security Group ของทุกเครื่อง หรือวางเครือข่าย VPC บน Alibaba Cloud ให้ปลอดภัย ติดต่อทีมงาน THAI DATA CLOUD ดูบริการที่หน้า Alibaba Cloud และอ่านรายละเอียดกฎได้จากเอกสาร Security group rules ของ Alibaba Cloud

อ่านเพิ่มเติมเกี่ยวกับ ECS Security Group

แชร์FacebookXLINELinkedIn

มีคำถามเรื่องบริการ? ติดต่อทีมงาน