ศูนย์คู่มือ Ruk-Com PaaS

คู่มือการพัฒนา Deploy และดูแล Application บน Platform

RUK-COM PAAS / APPLICATION SETTINGS

การจัดการกฎ Container Firewall

คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี

ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง

วัตถุประสงค์

บทความนี้อธิบายการจัดการกฎ Container Firewall บน Ruk-Com Cloud PaaS โดยจัดลำดับขั้นตอนและจุดตรวจสอบสำหรับการนำไปใช้งานจริง

ก่อนเริ่มดำเนินการ

  • เข้าสู่ระบบด้วยบัญชีที่มีสิทธิ์จัดการ Environment ที่เกี่ยวข้อง
  • ตรวจสอบชื่อ Environment, Region และ Resource เป้าหมายก่อนบันทึกการเปลี่ยนแปลง
  • สำรองข้อมูลหรือกำหนดแผนย้อนกลับก่อนแก้ไขระบบ Production

ฟีเจอร์ Container Firewall ช่วยให้คุณสามารถควบคุมความพร้อมใช้งานของ Node ได้ทั้งจากภายในและภายนอก Platform โดยจะวิเคราะห์ Parameter ต่างๆ (เช่น แหล่งที่มาของคำขอขาเข้า Protocol Port Node เป้าหมาย ฯลฯ) เพื่อจัดการการเข้าถึง Container ของคุณได้อย่างยืดหยุ่นผ่านการตั้งค่ากฎการเชื่อมต่อที่จำเป็น

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

เคล็ดลับ:หากคุณต้องการจำกัดการเข้าถึง environment ในบัญชีเดียวคุณสามารถกำหนดค่าได้โดยอัตโนมัติผ่านฟีเจอร์การแยกเครือข่าย

การจัดการ Container Firewall ผ่าน UI

แต่ละ Node ที่ Ruk-Com cloud PaaS (ยกเว้น Container ที่ใช้Dockerและหน้าต่าง) ได้จัดเตรียมชุดของ firewall rules ที่สามารถตรวจสอบและจัดการได้ผ่าน user interface แบบกราฟิกที่ใช้งานง่าย ส่วนที่เหมาะสมสามารถเข้าถึงได้โดยคลิกที่ปุ่มการตั้งค่าถัดจาก environment ที่ต้องการและเลือกเมนูFirewall

หมายเหตุ:ความพร้อมใช้งานของUI ContainerFirewallขึ้นอยู่กับการตั้งค่าผู้ให้บริการ Host ของคุณ หากไม่มีส่วนนี้โปรดติดต่อผู้ให้บริการเพื่อเปิดใช้งานฟีเจอร์สำหรับบัญชีของคุณ

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

โดยมีแท็บดังต่อไปนี้:

  • ภาพรวม- ประกอบด้วยข้อมูลทั่วไปสำหรับฟีเจอร์อนุญาตให้เปลี่ยนสถานะ Firewall (ซึ่งเปิดใช้งานสำหรับ Container ทั้งหมดโดยค่าเริ่มต้น) และแสดง Isolated Env Groups ที่รวม Environment ปัจจุบันไว้
  • กฎขาเข้า- อนุญาตให้จัดการคำขอที่เข้ามา (ไม่ได้อยู่ในรายการที่ปฏิเสธโดยค่าเริ่มต้น)
  • กฎขาออก- อนุญาตให้ควบคุมการเชื่อมต่อขาออก (ไม่ได้อยู่ในรายการที่อนุญาตโดยค่าเริ่มต้น)

กฎของ Firewall เริ่มต้น

เมื่อคุณสร้าง Container ใหม่ระบบจะเติมกฎ Inbound และ Outbound บางส่วนโดยอัตโนมัติซึ่งจำเป็นสำหรับการใช้งาน Container ที่เหมาะสม

เคล็ดลับ:กฎเหล่านี้จะถูกดึงโดยอัตโนมัติตาม Portเปิดเผยจากตัวแปรที่มีชื่อเดียวกันในdockerfile ของ Imageโปรดดูรายละเอียดเพิ่มเติมเกี่่ยวกับการสร้าง docker image ด้วย Ruk-Com Cloud PaaS

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

ในตัวอย่างนี้ Rule จะถูกจัดกลุ่มตาม Layer และมีโครงสร้างต่อไปนี้:

  • ช่องแรกสุดสีเทา (เช่น แก้ไขไม่ได้/ที่ควรปฏิบัติตามหลักกฎหมาย) มีลำดับความสำคัญสูงสุด(1)และอนุญาตให้โครงสร้างพื้นฐาน Ruk-Com cloud เข้าถึง Container จาก:
  • ผู้จัดเตรียม Platformเพื่อจัดการการดำเนินการภายในทั้งหมด (เช่น การตั้งรหัสผ่านใหม่, การกำหนดค่า, การดำเนินการ CS scripts, การสร้าง SSH key, และอื่นๆ)
  • SSH Gate และ Web SSHจัดเตรียมการเข้าถึงบริการที่เหมาะสม
  • ค่าเริ่มต้น (stack ที่เกี่ยวข้อง) และที่ผู้ใช้งานเพิ่มกฎ (โดยเจ้าของ environment หรือผู้ร่วมงาน)

หมายเหตุ:ใช้การเปลี่ยนแปลงกฎเริ่มต้นเฉพาะกรณีที่รู้ว่าคุณำอะไรอยู่เนื่องจากการบันทึกนี้จำเป็นต้องทำให้แน่ใจว่ามีการทำงานเฉพาะของ Stack ที่เหมาะสมเพื่อจัดเตรียมฟีเจอร์ที่รองรับ (เช่น อนุญาตสสส, HTTP, HTTPSหรือการเชื่อมต่อ FTP)

  • ช่องสีเทาที่ไม่สามารถแก้ไขได้ (เป็นอันสุดท้ายเสมอ เนื่องจากลำดับความสำคัญต่ำสุดที่ 65535) จะบล็อกการเชื่อมต่อขาเข้าซึ่งไม่ได้รับอนุญาตผ่านกฎที่กล่าวถึงข้างต้น

ขณะที่ทำงานกับ Container (เช่น การเพิ่ม mount points, การติดตั้ง FTP add-on และอื่นๆ) Platform สามารถเสริมกฎ Firewall โดยอัตโนมัติตามข้อกำหนดใหม่ ในตัวอย่างนี้แต่ละ record เริ่มต้นจะถูกเพิ่มด้วยขั้นตอนลำดับความสำคัญ 10 จุดเพื่อให้สามารถแทรกกฎที่กำหนดเองได้

การเพิ่มกฎเริ่มต้นของ Container

หากจำเป็น (เช่น สำหรับโซลูชันระบบอัตโนมัติ) คุณสามารถใช้ตัวแปรเจลาสติค_Portเพื่อกำหนด Port เองซึ่งควรเปิดผ่าน ContainerFirewall ระหว่างการสร้าง Node ที่เหมาะสม

1. คลิกEnvironment ใหม่ใน Dashboard เลือก software stack ที่ต้องการและไปที่ตัวแปรเพื่อกำหนดค่า

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

2. ระบุตัวแปร Ruk-Com PaaS_PORTS ใหม่ในรูปแบบต่อไปนี้:

"JELASTIC_PORTS": "{port1}, {port2}, ... , {portN}"

โดยที่{Port N}เป็น Port เฉพาะ (1234) หรือช่วง (33062-34000) ซึ่งจะถูกเปิดเผยภายในกฎ Firewall ขาเข้า (ผ่านทั้ง Protocol tcp และ udp) หลังจากสร้าง Container

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

หมายเหตุ:การเปลี่ยนแปลงเนื่องจากตัวแปร Ruk-Com PaaS_PORTS ถูกนำไปใช้เพียงครั้งเดียวระหว่างการติดตั้ง Node ดังนั้นกฎ Firewall ควรได้รับการจัดการด้วยตนเอง

3. คุณสามารถตรวจสอบกฎ Firewall ของคุณหลังจากสร้าง environment

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

เคล็ดลับ:ด้านล่างนี้คุณสามารถตรวจสอบตัวอย่างเกี่ยวกับวิธีตั้งค่าตัวแปรนี้ผ่าน Cloud Scripting:

jpsType: install
name: JELASTIC_PORTS env variable
nodes:
  nodeType: apache2
  nodeGroup: cp
  env:
    JELASTIC_PORTS: 3306, 33061, 33062

การจัดการกฎ

เพื่อความสะดวกในการจัดการกฎ Firewall ที่มีอยู่แล้วและจัดเตรียมกฎใหม่ แผงควบคุมด้านบนจะประกอบชุดของปุ่ม คือAdd, Edit, Remove, Disable (Enable) และ Refresh

เมื่อเพิ่มกฎ Firewall ใหม่ Parameter ต่อไปนี้จะถูกกำหนด:

  • Node- เพื่อเลือก Layer environment ที่ต้องการ
  • ชื่อ- เพื่อตั้งชื่อบันทึก (สามารถขยายเพื่อเลือกจากค่าที่ตั้งล่วงหน้าที่ใช้กันทั่วไปได้)
  • พิธีสาร- เพื่อตั้งค่าประเภทของ Protocol ที่ต้องการ (TCP, UDP หรือ TCP/UDP)
  • ช่วง Port- เพื่อกำหนด Port เฉพาะ (เช่น 80) หรือช่วง (เช่น 1024-2048) ที่จะเปิด/ปิดสำหรับการเชื่อมต่อ เว้นฟิลด์นี้ว่างไว้เพื่อใช้กฎกับ Port ทั้งหมด
  • แหล่งที่มา- เพื่อเลือกคำขอต้นทาง:
  • IP Address(es) ที่กำหนดเอง - แยกรายการด้วยเครื่องหมายจุลภาคสำหรับ IPv4/IPv6 addresses และ CIDR blocks (เช่น 10.0.0.1, 10.0.0.0/24)
  • ช่วงที่กำหนดไว้ล่วงหน้า -ทั้งหมด, IPv4 ทั้งหมด, IPv6 ทั้งหมด, เครือข่ายท้องถิ่น, อินเทอร์เน็ต (การเข้าถึงสาธารณะ)
  • Environment Nodes - ประเภท Node (Layer) จาก environment ใดๆในบัญชี (กฎนี้จะถูกเสริม/ลดขนาดโดยอัตโนมัติด้วย IP ที่จำเป็นเมื่อ Layer ที่เหมาะสมถูกปรับขนาดเข้า/ออก)
  • ลำดับความสำคัญ- เพื่อกำหนดลำดับความสำคัญของกฎ (โดยที่กฎที่มีค่าต่ำกว่าจะถูกนำไปใช้ก่อน)
  • การดำเนินการ- เพื่อกำหนดการดำเนินการที่จำเป็นเมื่อได้รับคำขอจับคู่ (อนุญาตหรือปฏิเสธ)
ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

หากตรงตามความจำเป็นในการแก้ไขกฎเริ่มต้นหรือกฎที่กำหนดเอง คุณจะสามารถปรับเปลี่ยน Parameter ที่อธิบายข้างต้นทั้งหมดได้ ยกเว้นช่อง Node (เช่น ไม่สามารถสลับ Layer เป้าหมายได้) นอกจากนี้ เพื่อวัตถุประสงค์ในการทดสอบคุณสามารถปิดใช้งานกฎบางกฎชั่วคราวและนำไปใช้ใหม่ได้ในภายหลังด้วยปุ่มปิดการใช้งาน/เปิดใช้งานปุ่มRefreshมีประโยชน์อย่างมากในการอัปเดตรายการกฎหลังจากการปรับ Server บางส่วน (เช่น การเปลี่ยนแปลง topology) โดยไม่จำเป็นต้อง RestartServer ทั้งหมด

กรณีการใช้งาน Firewall

การเข้าถึง Node ของคุณสามารถควบคุมได้ตาม Parameter คำขอ เช่น ที่อยู่ IP ของ Node ต้นทาง, การเชื่อมต่อ Protocol, Port และอื่นๆ ในคำแนะนำด้านล่างเราจะพิจารณาตัวอย่างง่ายๆของการบล็อกการเข้าถึง Container สำหรับ IP address โดยเฉพาะโดยนำไปใช้ผ่านวิธีใดวิธีหนึ่งต่อไปนี้:

หมายเหตุ:ก่อนทำตามคำแนะนำนี้ ตรวจสอบให้แน่ใจว่า Container ของคุณมี public IP address

นอกจากนี้เมื่อจัดเตรียมโซลูชันอัตโนมัติของวงจร Container คุณอาจต้องใช้การเปลี่ยนแปลง Firewall ที่จำเป็นผ่านRuk-Com PaaS API- ตรวจสอบรายการของวิธีการที่เหมาะสมที่ลิงก์ข้อมูลอ้างอิง

จำกัดการเข้าถึงผ่าน User Interface

ตามที่ได้แสดงไว้ข้างต้นบางส่วน Ruk-Com cloud จัดเตรียม GUI ที่ใช้งานง่ายและมีประสิทธิภาพในการจัดการ ContainerFirewall โดยตรงผ่าน Dashboard

1. ในการเข้าถึงแผงควบคุมที่เหมาะสม ให้คลิกปุ่มการตั้งค่าถัดจาก environment ที่ต้องการและคลิกที่ส่วนของFirewall

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

เลือกแท็บกฎขาเข้าและคลิกปุ่มเพิ่ม(จะเห็นได้ชัดว่า ในการจัดการ TrafficContainer ภายนอกคุณต้องเลือกแท็บกฎขาออกแทน; โดยที่กฎ Parameter ทั้งหมดจะคล้ายกับ Parameter ที่อธิบายไว้ด้านล่าง)

2. เมื่อเปิดเพิ่มกฎขาเข้าคุณสามารถกำหนดค่าเงื่อนไขใหม่สำหรับการประมวลผลคำที่เข้ามาโดย Container

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

หากต้องการปฏิเสธปฏิเสธการเชื่อมต่อจาก IP โดยเฉพาะ (ตามตัวอย่างกรณีการใช้งานที่เราแนะนำ) ให้กรอกข้อมูลในฟิลด์ดังต่อไปนี้

  • Node- เลือก Container เพื่อจำกัดการเข้าถึง (เช่น tomcat)
  • ชื่อ- ป้อนชื่อกฎที่ต้องการ (เช่น my-rule)
  • พิธีสาร- เลือก Protocol ที่ต้องการ (TCP)
  • ช่วง Port- ปฏิเสธการเข้าถึง Port ทั้งหมดโดยเว้นฟิลด์นี้ว่างไว้
  • แหล่งที่มา- เลือกตัวเลือก IP address(es) ที่กำหนดเองและใส่ IP ทีจำเป็นในช่องช่วงที่อยู่ IP(111.111.111.111)
  • ลำดับความสำคัญ- กำหนดลำดับความสำคัญที่เหมาะสมสำหรับ record นี้ (เช่น 900 ที่จะใช้ก่อนกฎเริ่มต้น)
  • การดำเนินการ- เลือกตัวเลือก Deny
    คลิก Add เพื่อบันทึกและใช้กฎของคุณโดยอัตโนมัติ

3. ตอนนี้เมื่อพยายามเชื่อมต่อ Node ของคุณจาก IP address111.111.111.111ที่ระบุไว้ ผู้ใช้จะแสดงหน้าต่อไปนี้:

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

วิธีนี้ทำให้คุณสามารถปฏิเสธการเข้าถึง Container ของคุณจากที่อยู่ IP ใดก็ได้

การจำกัดการเข้าถึงผ่าน SSH

อีกทางเลือกหนึ่งคุณสามารถกำหนดค่ากฎ Firewall สำหรับ Container ของคุณผ่านสถานีปลายทางเมื่อเข้าถึง Node ผ่านประตูเอสเอสเอช

หมายเหตุ:ถึงแม้ว่าการกำหนดค่า Firewall ส่วนใหญ่จะสามารถทำได้ผ่าน User Interface โดยเฉพาะแต่การจัดการผ่าน SSH นั้นจะมีความยืดหยุ่นมากกว่า (เช่น อนุญาตให้กำหนดค่า redirect NAT) กฎดังกล่าวจะไม่ปรากฏในรายการ UI แต่จะมีลำดับความสำคัญสูงกว่า

1. วิธีที่ง่ายที่สุดในการเข้าถึง Node ผ่าน SSH คือการเรียก Web SSH ที่เหมาะสมโดยตรงจาก Dashboard - คลิก Node ที่ต้องการเมื่อเชื่อมต่อแล้ว ให้ตรวจสอบไฟล์ /etc/Ruk-Com PaaS/metainf.conf เพื่อให้แน่ใจว่า container firewall ปิดอยู่:

cat /etc/jelastic/metainf.conf
ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

ในตัวอย่างนี้ ParameterFirewall_เปิดใช้งานแล้วควรเท่ากับ "1" หากไม่เป็นเช่นนั้นโปรดติดต่อผู้ให้บริการ Host ของคุณเพื่อขอเปิดใช้งานการป้องกัน Firewall สำหรับบัญชีของคุณ

2. คุณต้องแก้ไขไฟล์/etc/sys กำหนดค่า/iptables-custom.php(เช่น vim editor)

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

หมายเหตุ:ไฟล์ /etc/sys กำหนดค่า/ip6tables-custom ควรใช้เมื่อทำงานกับ IPv6 rules

3. ประกาศ firewall rules ที่จำเป็นโดยใช้รูปแบบเครื่องมือ iptables-save ตัวอย่างเช่น ควรใช้รหัสต่อไปนี้เพื่อปฏิเสธการเข้าถึงจาก IP โดยเฉพาะ (เช่น 111.111.111.111):

filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-I INPUT -s 111.111.111.111 -p tcp -m state --state NEW -m tcp --dport 1111 -j DROP
COMMIT
\#
ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

4. ใช้คำสั่งต่อไปนี้เพื่อใช้การตั้งค่า Firewall แบบกำหนดเองกับกฎ Firewall เริ่มต้นของ Container

sudo /usr/bin/jem firewall fwstart
ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

5. ตอนนี้คุณสามารถตรวจสอบรายการกฎ Firewall ที่ทำงานอยู่ในปัจจุบันสำหรับ Container ของคุณได้โดยใช้คำสั่งต่อไปนี้:

sudo jem firewall list {table} {options}

โดยที่:

  • {ตาราง}- ระบุเป้าหมาย iptable (กรอง, แนท, ยุ่งเหยิง, ดิบ)
  • {ตัวเลือก}- แสดงรายการ Parameter iptable (ควรใช้)
ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

กฎที่คุณกำหนดเองจะอยู่หลังกฎเริ่มต้น ซึ่งปฏิเสธการเข้าถึง Node ของคุณจาก IP 111.111.111.111

การตั้งค่ากฎผ่าน Ruk-Com PaaS API

ในบางกรณี (เช่น การกำหนด scripts, การทำงานอัตโนมัติ ฯลฯ) คุณอาจต้องกำหนดค่ากฎ Firewall ผ่าน Code คุณสามารถใช้วิธีการที่เหมาะสมจากส่วนของEnvironment > ความปลอดภัยในเอกสาร Ruk-Com PaaS API

  • เพิ่มกฎ- สร้างกฎใหม่
  • เพิ่มกฎ- เพิ่มหลายกฎ
  • แก้ไขกฎ- เปลี่ยน Parameter ของกฎที่มีอยู่
  • รับกฎ- แสดงรายการของกฎสำหรับ environment
  • ลบกฎ- ลบกฎ
  • ลบกฎ- ลบหลายกฎ
  • ตั้งค่า Firewall เปิดใช้งานแล้ว- เปิด Firewall
  • ตั้งค่ากฎเปิดใช้งานแล้ว- เปิดใช้งานกฎที่มีอยู่
  • ตั้งกฎ- แทนที่กฎที่มีอยู่

ด้วยวิธีนี้ การจัดการ Container Firewall จะช่วยให้คุณสามารถควบคุมความพร้อมใช้งานของ Node ในบัญชีของคุณได้อย่างมีประสิทธิภาพ และเพิ่มความปลอดภัยให้ Application อย่างมาก (โดยการกรองการเชื่อมต่อที่ต้องการและไม่ต้องการ)