Security Group: สร้างกฎไฟร์วอลล์และผูกกับ Cloud Server

สร้าง Security Group บน TDC Enterprise กำหนดกฎ Inbound/Outbound ทั้งพอร์ตและ IP ต้นทาง แล้วผูกกับ Cloud Server ให้เปิดเฉพาะทราฟฟิกที่จำเป็นจริง

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

แชร์FacebookXLINELinkedIn
Security Group — Security Group: สร้างกฎไฟร์วอลล์และผูกกับ Cloud Server
Security Group: สร้างกฎไฟร์วอลล์และผูกกับ Cloud Server

คำตอบสั้น ๆ: สร้าง Security Group บน TDC Enterprise กำหนดกฎ Inbound/Outbound ทั้งพอร์ตและ IP ต้นทาง แล้วผูกกับ Cloud Server ให้เปิดเฉพาะทราฟฟิกที่จำเป็นจริง

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

Security Group คือไฟร์วอลล์เสมือนระดับคลาวด์ของ TDC Enterprise ที่กำหนดว่าทราฟฟิกแบบไหนเข้าถึงหรือออกจาก Cloud Server ได้ โดยเขียนเป็นกฎ Inbound และ Outbound ตามโปรโตคอล พอร์ต และช่วง IP ต้นทางหรือปลายทาง กฎเหล่านี้ทำงานที่ชั้นเครือข่ายของแพลตฟอร์ม จึงช่วยกันทราฟฟิกที่ไม่ต้องการไว้ก่อนถึงไฟร์วอลล์ในระบบปฏิบัติการ

คู่มือนี้เหมาะกับผู้ดูแล Linux Server, Windows Server, GPU Server และ Active Directory Server บน TDC Enterprise เมื่อทำครบทุกขั้นตอน คุณจะมีกลุ่มกฎที่เปิดเฉพาะพอร์ตที่จำเป็น เช่น HTTP/HTTPS สำหรับทุกคน และ SSH หรือ RDP เฉพาะ IP ของสำนักงาน ผูกเข้ากับเซิร์ฟเวอร์แล้ว และทดสอบแล้วว่าทำงานตามที่ตั้งใจ

แผนภาพทราฟฟิกจากอินเทอร์เน็ตผ่าน Security Group ที่อนุญาตเฉพาะ HTTP/HTTPS และ SSH จาก IP สำนักงานไปยัง Cloud Server
กฎ Inbound ตัดสินว่าทราฟฟิกใดผ่านไปถึงเซิร์ฟเวอร์ ทราฟฟิกที่ไม่มีกฎ Allow จะไม่ถึงเครื่อง

สิ่งที่ต้องเตรียม

  • บัญชี TDC Enterprise ที่เข้าสู่ระบบได้ (ดู วิธีสมัครและเข้าสู่ระบบ) และมี Cloud Server อย่างน้อย 1 เครื่อง
  • รายการพอร์ตที่แอปพลิเคชันใช้จริง เช่น 22 (SSH), 3389 (RDP), 80/443 (เว็บ), 3306 (MySQL) หากไม่แน่ใจเลขพอร์ตมาตรฐาน ดูได้จากทะเบียนพอร์ตของ IANA
  • Public IP ของสำนักงานหรือเครื่องผู้ดูแล สำหรับจำกัดสิทธิ์ SSH/RDP เช่น 198.51.100.25 (สอบถามผู้ดูแลเครือข่าย หรือตรวจจากเว็บไซต์ตรวจ IP)
  • ทางเข้าสำรองกรณีตั้งกฎผิด เช่น Console ผ่าน Web UI

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

ขั้นตอนที่ 1: เปิดหน้ารายการกลุ่มกฎ

ที่แถบเมนูซ้ายของ TDC Enterprise คลิก Network > Firewall Security (ถ้าเลือกภาษาไทย เมนูจะแสดงเป็น เครือข่าย > ไฟร์วอลล์) หน้าที่เปิดขึ้นมีรายการ Your Security Groups ซึ่งแต่ละกลุ่มแสดงชื่อ วันที่สร้าง และจำนวนกฎ (rules) พร้อมปุ่ม Manage และ Delete มีช่องค้นหาด้วยชื่อและปุ่ม Refresh

คลิกปุ่ม Create Security Group ที่ส่วนหัวของหน้า (ถ้ายังไม่มีกลุ่มใดเลย จะเห็นปุ่ม New Security Group กลางหน้าแทน) ระบบจะเปิดฟอร์ม New Security Group พร้อมคำแนะนำ Name it, then add the inbound and outbound rules ด้านบนขวามีปุ่ม Back to list สำหรับกลับหน้ารายการ

ภาพจำลองฟอร์ม New Security Group ใน TDC Enterprise มีช่อง Name, Description กฎ Inbound และปุ่ม Save changes
ตั้งชื่อกลุ่ม เพิ่มกฎในแท็บ Inbound Rules แล้วกด Save changes (ภาพจำลอง)

ขั้นตอนที่ 2: ตั้งชื่อและคำอธิบายของกลุ่ม

ช่อง Name เป็นช่องบังคับ ต้องยาวอย่างน้อย 6 ตัวอักษร และใช้ได้เฉพาะตัวอักษรภาษาอังกฤษ ตัวเลข ขีดกลาง (-) และจุด (.) ตั้งชื่อให้บอกหน้าที่ของกลุ่ม เช่น web-public หรือ ssh-office จะได้แยกออกง่ายเมื่อมีหลายกลุ่ม

ช่อง Description ไม่บังคับ แต่ควรเขียนว่ากลุ่มนี้ใช้กับเครื่องใด เช่น Web server production เพราะตอนผูกกลุ่มในหน้าเซิร์ฟเวอร์ ระบบจะแสดงคำอธิบายนี้ให้เลือกได้ถูกกลุ่ม

ขั้นตอนที่ 3: เพิ่มกฎ Inbound Rules

อยู่ที่แท็บ Inbound Rules แล้วคลิก Add inbound rule ระบบจะเพิ่มแถวใหม่ที่มีค่าเริ่มต้นเป็น Allow, Priority 1, TCP, SSH(22) และ Source 0.0.0.0/0 ให้แก้แต่ละคอลัมน์ดังนี้

  • Action: Allow เพื่ออนุญาต หรือ Deny เพื่อปฏิเสธ
  • Priority: ตัวเลข 1–100 ใช้จัดลำดับเมื่อมีหลายกฎครอบคลุมทราฟฟิกเดียวกัน วิธีที่ดูแลง่ายที่สุดคือออกแบบไม่ให้ Allow และ Deny ทับพอร์ตเดียวกัน
  • Protocol: TCP หรือ UDP
  • Port (or range): สำหรับ TCP เลือกพอร์ตสำเร็จรูปได้ ได้แก่ SSH(22), Telnet(23), HTTP(80), HTTPS(443), MS SQL(1433), Oracle(1521), MySQL(3306), RDP(3389), PostgresSQL(5432), Redis(6379) หรือเลือก Custom แล้วกรอกพอร์ตต้นและพอร์ตปลาย ส่วน UDP ต้องกรอกเองทั้งสองช่อง ถ้าเป็นพอร์ตเดียวให้กรอกเลขเดียวกันทั้งสองช่อง เช่น 8080 / 8080
  • Source: เลือก 0.0.0.0/0 (ทุก IP), 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 หรือ Custom แล้วพิมพ์ CIDR เช่น 203.0.113.0/24 ถ้าเป็น IP เดียวให้ใส่ /32 ต่อท้าย (หลักการเขียน CIDR ดูได้ที่ RFC 4632)
  • Note: บันทึกสั้น ๆ ว่ากฎนี้มีไว้ทำอะไร

ตัวอย่างชุดกฎของเว็บเซิร์ฟเวอร์ Linux ที่ผู้ดูแลทำงานจากสำนักงานเดียว

ActionProtocolPort (or range)SourceNote
AllowTCPSSH(22)198.51.100.25/32ssh from office
AllowTCPHTTP(80)0.0.0.0/0web
AllowTCPHTTPS(443)0.0.0.0/0web tls

อย่าเปิด SSH, RDP หรือพอร์ตฐานข้อมูลให้ 0.0.0.0/0 เพราะพอร์ตเหล่านี้ถูกสแกนและเดารหัสผ่านอยู่ตลอดเวลา ถ้ากรอกพอร์ตหรือ CIDR ผิดรูปแบบ ช่องจะเป็นสีแดงพร้อมข้อความ Invalid port number หรือ Invalid source value

ขั้นตอนที่ 4: ตรวจ Outbound Rules แล้วบันทึก

คลิกแท็บ Outbound Rules ปุ่มจะเปลี่ยนเป็น Add outbound rule และคอลัมน์ Source จะเปลี่ยนเป็น Destination ถ้าเซิร์ฟเวอร์ต้องเชื่อมต่อออกไปภายนอก เช่น อัปเดตแพ็กเกจหรือเรียก API ของคู่ค้า ให้แน่ใจว่ามีกฎ Allow สำหรับปลายทางและพอร์ตที่ต้องใช้ เช่น TCP 80/443 และ UDP 53 สำหรับ DNS

เมื่อครบแล้ว คลิก Save changes ปุ่มนี้กดได้ต่อเมื่อกลุ่มมีกฎอย่างน้อย 1 ข้อและไม่มีกฎซ้ำ หากมีกฎซ้ำ ระบบจะแสดงข้อความ Duplicate Inbound found (หรือ Duplicate Outbound found) ให้แก้แถวที่ซ้ำก่อน เมื่อบันทึกสำเร็จ ระบบจะพากลับไปหน้ารายการ และกลุ่มใหม่จะอยู่บนสุดของรายการ

ขั้นตอนที่ 5: ผูก Security Group กับ Cloud Server

ไปที่ Cloud Instance > Linux Server (หรือ Windows Server, GPU Server, Active Directory Server ตามประเภทเครื่อง) คลิกชื่อเซิร์ฟเวอร์ แล้วเลือกแท็บ Security ส่วน Security Group Information จะแสดงกฎ Inbound และ Outbound ที่รวมมาจากทุกกลุ่มที่ผูกกับเครื่องนี้

  1. คลิก Add Security Group หน้าต่าง Join/Unjoin Group จะแสดงทุกกลุ่มในบัญชี พร้อมคำอธิบายและจำนวนกฎ
  2. คลิก Show ที่กลุ่มเพื่อดูรายละเอียดกฎก่อนผูก
  3. คลิก Join แล้วคลิก Confirm to join เมื่อสำเร็จจะมีข้อความ Joined security group success

เซิร์ฟเวอร์ 1 เครื่องผูกได้สูงสุด 4 กลุ่ม เมื่อครบแล้วปุ่ม Join จะกดไม่ได้ แนวทางที่ดูแลง่ายคือแยกกลุ่มตามหน้าที่ เช่น กลุ่มเว็บสาธารณะหนึ่งกลุ่ม และกลุ่มสิทธิ์ผู้ดูแลอีกหนึ่งกลุ่ม แล้วผูกหลายเครื่องเข้ากลุ่มเดียวกัน

ลำดับงาน Security Group ตั้งแต่สร้างกลุ่ม เพิ่มกฎ บันทึก Join กับเซิร์ฟเวอร์ และทดสอบพอร์ต
ทำครบทั้งห้าขั้นก่อนถือว่าเซิร์ฟเวอร์ได้รับการป้องกันแล้ว

ขั้นตอนที่ 6: แก้ไข ถอด หรือลบกลุ่ม

ถ้าต้องเพิ่มหรือแก้กฎ ให้กลับไปที่ Network > Firewall Security คลิก Manage ที่กลุ่ม แก้ไขแล้วคลิก Save changes การแก้ไขนี้มีผลกับทุกเซิร์ฟเวอร์ที่ผูกกลุ่มนี้อยู่ จึงควรตรวจก่อนว่ามีเครื่องใดใช้กลุ่มนี้บ้าง

ถ้าต้องการถอดกลุ่มออกจากเครื่องเดียว ให้เปิดแท็บ Security ของเครื่องนั้น คลิก Add Security Group แล้วคลิก Unjoin และ Confirm to unjoin ส่วนการลบทั้งกลุ่ม ให้คลิก Delete ในหน้ารายการ ระบบจะเตือนว่า This cannot be undone ก่อนกด Yes ให้แน่ใจว่าเซิร์ฟเวอร์ที่เคยใช้กลุ่มนี้ยังมีกลุ่มอื่นที่อนุญาตทราฟฟิกที่จำเป็น

ตรวจสอบว่า Security Group ทำงานถูกต้อง

ทดสอบจากเครื่องที่อยู่ในช่วง IP ที่อนุญาต แล้วเทียบกับเครือข่ายอื่น เช่น มือถือที่ปิด Wi-Fi บน macOS หรือ Linux ใช้คำสั่ง nc และ curl

nc -zv -w 5 203.0.113.10 22
curl -I http://203.0.113.10

บน Windows ใช้ PowerShell

Test-NetConnection 203.0.113.10 -Port 3389

พอร์ตที่อนุญาตควรตอบ succeeded หรือ TcpTestSucceeded : True ส่วนพอร์ตที่ไม่มีกฎ Allow ควรหมดเวลา (timed out) อย่าใช้ ping เป็นตัววัด เพราะฟอร์มกฎรองรับเฉพาะ TCP และ UDP ผลของ ping จึงไม่ได้บอกว่าพอร์ตบริการเปิดอยู่หรือไม่

ผลคำสั่ง nc และ curl ที่พอร์ต 22 และ 80 เชื่อมต่อได้ ส่วนพอร์ต 3306 หมดเวลาเพราะไม่มีกฎ Allow
พอร์ตที่มีกฎ Allow ตอบ succeeded ส่วนพอร์ตที่ไม่มีกฎจะ timed out

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

ทำไมปุ่ม Save changes กดไม่ได้?

ปุ่มจะกดได้เมื่อชื่อกลุ่มถูกต้อง (อย่างน้อย 6 ตัวอักษร ใช้ได้เฉพาะ a-z, A-Z, 0-9, ขีดกลางและจุด) มีกฎอย่างน้อย 1 ข้อ และไม่มีกฎซ้ำ ตรวจข้อความเตือนเหนือตารางกฎและช่องที่เป็นสีแดง แก้ให้ครบแล้วปุ่มจะกดได้ทันที

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

ตรวจตามลำดับ: กลุ่มถูกผูกกับเครื่องที่ถูกต้องหรือไม่ (ดูแท็บ Security ของเครื่อง) Public IP ของคุณยังอยู่ในช่วง CIDR ของกฎหรือไม่ ไฟร์วอลล์ในระบบปฏิบัติการอนุญาตพอร์ตเดียวกันหรือยัง และบริการรอรับการเชื่อมต่ออยู่จริงหรือไม่ บน Linux ตรวจด้วย sudo ss -tlnp

ทำไมปุ่ม Join ในหน้าต่าง Join/Unjoin Group กดไม่ได้?

เซิร์ฟเวอร์ผูกครบ 4 กลุ่มแล้ว ให้ Unjoin กลุ่มที่ไม่จำเป็นออกก่อน หรือย้ายกฎไปรวมไว้ในกลุ่มเดิมเพื่อลดจำนวนกลุ่มที่ต้องผูก

ตั้งกฎผิดจนเข้า SSH หรือ RDP ไม่ได้ จะแก้อย่างไร?

กลุ่มกฎแก้ไขจากพอร์ทัลได้โดยไม่ต้องเข้าเครื่อง ให้เปิดกลุ่มด้วย Manage แล้วแก้ Source ให้เป็น Public IP ปัจจุบันของคุณ (หรือเพิ่มกฎใหม่) แล้วกด Save changes ถ้าต้นเหตุอยู่ที่ไฟร์วอลล์ภายในเครื่อง ให้เข้าผ่าน Console บนเว็บแล้วแก้จากในเครื่อง

Security Group กับไฟร์วอลล์ในเครื่องควรใช้อันไหน?

ใช้ทั้งสองชั้น กลุ่มกฎบนแพลตฟอร์มกรองทราฟฟิกก่อนถึงเครื่องและจัดการหลายเครื่องพร้อมกันได้ ส่วนไฟร์วอลล์ในเครื่อง เช่น iptables เป็นแนวป้องกันอีกชั้น เมื่อเปิดพอร์ตใหม่ต้องอนุญาตทั้งสองที่

หากต้องการให้ช่วยออกแบบกฎสำหรับระบบที่มีหลายเครื่อง ติดต่อทีมงาน THAI DATA CLOUD หรือดูรายละเอียดบริการ Cloud Server

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

แชร์FacebookXLINELinkedIn

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