กำหนด Container Firewall
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
คำสั่ง ชื่อเมนู Parameter และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง
ที่FirewallContainerคุณสมบัติช่วยให้คุณควบคุมความพร้อมใช้งานของ Node จากภายในและภายนอก Platform โดยจะประเมิน Parameter ต่างๆเช่นแหล่งที่มาของคำขอขาเข้า Protocol และ Port Node เป้าหมายเพื่อจัดการการเข้าถึง Container ผ่านกฎการเชื่อมต่อ
เคล็ดลับ:หากคุณต้องการจำกัดการเข้าถึงระหว่าง Environment ในบัญชีเดียวคุณสามารถกำหนดค่าได้โดยอัตโนมัติผ่านทางการแยกเครือข่ายคุณสมบัติ.
การจัดการ Container Firewall ผ่าน UI Platform
แต่ละ Node บน Platform (ไม่รวม customDocker- และหน้าต่าง-based Container) ได้รับการจัดเตรียมด้วยกฎ Firewall ที่คุณสามารถตรวจสอบและจัดการได้ใน Dashboard คลิกการตั้งค่าถัดจาก Environment ที่ต้องการแล้วเลือกFirewall.
บันทึก:ความพร้อมของFirewallContainerUI ขึ้นอยู่กับการตั้งค่าผู้ให้บริการ Host เฉพาะของคุณหากคุณไม่มีส่วนนี้โปรดติดต่อฝ่ายสนับสนุน Platform ของคุณและขอเปิดใช้งานฟีเจอร์สำหรับบัญชีของคุณ
- ภาพรวม- ให้ข้อมูลทั่วไปเกี่ยวกับคุณสมบัติช่วยให้คุณเปลี่ยนแปลงได้สถานะ Firewall(เปิดใช้งานสำหรับ Container ทั้งหมดตามค่าเริ่มต้น) และแสดงกลุ่ม Env ที่แยกออกมาซึ่งรวมถึง Environment ในปัจจุบันด้วย
- กฎขาเข้า- จัดการคำขอที่เข้ามา (การเชื่อมต่อที่ไม่อยู่ในกฎจะถูกปฏิเสธโดยค่าเริ่มต้น)
- กฎขาออก- จัดการการเชื่อมต่อขาออก (การเชื่อมต่อที่ไม่อยู่ในกฎจะได้รับอนุญาตตามค่าเริ่มต้น)
กฎ Firewall เริ่มต้น
เมื่อคุณสร้าง Container ใหม่ Platform จะเพิ่มเรกคอร์ดเริ่มต้นให้กับขาเข้าและกฎขาออกส่วนต่างๆเพื่อให้ Container สามารถทำงานได้อย่างถูกต้องหากไม่มีกฎเริ่มต้น Platform จะเพิ่มกฎเหล่านั้นอีกครั้งระหว่างการ RestartFirewall
เคล็ดลับ:กฎเหล่านี้จะขึ้นอยู่กับเปิดเผยPort ที่ประกาศไว้ใน Docker Imagefile ดูการสร้าง Container แบบกำหนดเองคำแนะนำสำหรับรายละเอียด
กฎจะถูกจัดกลุ่มตาม Layer และเป็นไปตามโครงสร้างนี้:
-
บันทึกแรกสุดจะเป็นสีเทา (เช่นไม่สามารถแก้ไขได้/บังคับ) มีลำดับความสำคัญสูงสุด (1) และอนุญาตให้โครงสร้างพื้นฐานของ Platform เข้าถึง Container จาก:
- ผู้จัดเตรียม Platformเพื่อจัดการการดำเนินการทั้งหมดภายใน (รีเซ็ตรหัสผ่านการสร้างการกำหนดค่าการดำเนินการ Script CS การสร้าง SSH Key ฯลฯ)
- ประตูเอสเอสเอชและเว็บ SSHเพื่อให้สามารถเข้าถึงบริการที่เหมาะสม
- Load Balancer ที่ใช้ร่วมกันเพื่ออนุญาตการเชื่อมต่อกับ Container โดยไม่มี Public IP
-
กฎเริ่มต้น (เกี่ยวข้องกับ Stack) และกฎที่ผู้ใช้เพิ่ม (เพิ่มโดยเจ้าของ Environment หรือผู้ทำงานร่วมกัน)
- อีกบันทึกสีเทาที่ไม่สามารถแก้ไขได้ (บันทึกสุดท้ายเสมอเนื่องจากมีลำดับความสำคัญต่ำสุดของ65535) ที่บล็อกการเชื่อมต่อขาเข้าใดๆที่ไม่ได้รับอนุญาตตามกฎข้างต้น
บันทึก:เปลี่ยนกฎเริ่มต้นเฉพาะเมื่อคุณรู้แน่ชัดว่าคุณกำลังทำอะไรอยู่เรกคอร์ดเหล่านี้จำเป็นสำหรับฟังก์ชันการทำงานเฉพาะ Stack และการสนับสนุนฟีเจอร์ (เช่นสสส,HTTP,HTTPS, หรือเอฟทีพีการเชื่อมต่อ)
ในขณะที่คุณทำงานกับ Container (เช่นการเพิ่มจุดเชื่อมต่อหรือการติดตั้งโปรแกรมเสริม FTP) Platform จะสามารถเพิ่มกฎ Firewall เริ่มต้นเพื่อให้ตรงกับข้อกำหนดใหม่แต่ละเรกคอร์ดเริ่มต้นจะใช้ขั้นตอนลำดับความสำคัญ 10 จุดดังนั้นคุณจึงสามารถแทรกกฎที่กำหนดเองระหว่างเรกคอร์ดเหล่านั้นได้
การเพิ่มกฎเริ่มต้นของ Container
หากจำเป็น (เช่นสำหรับโซลูชั่นระบบอัตโนมัติ) ใช้OPEN_INBOUND_PORTS(เมื่อก่อนรักคอม PaaS_PORTS)Environment Variableเพื่อเปิด Port ที่กำหนดเองใน Container Firewall เมื่อมีการสร้าง Node
- คลิกEnvironment ใหม่ใน Dashboard เลือกกลุ่ม Software ที่ต้องการและไปที่ตัวแปรกรอบการกำหนดค่า
2.จัดเตรียมใหม่OPEN_INBOUND_PORTSตัวแปรในรูปแบบต่อไปนี้:
ข้อความ
"OPEN_INBOUND_PORTS": "{port1}, {port2}, ... , {portN}"
ที่นี่,{Port N}เป็น Port เฉพาะ (1234) หรือช่วง (33062-34000) ซึ่งจะถูกเปิดเผยภายในกฎ Firewall ขาเข้า (ผ่านทั้ง 2 รายการทีซีพีและudpProtocol) หลังการสร้าง Container
บันทึก:การเปลี่ยนแปลงเนื่องจากOPEN_INBOUND_PORTSตัวแปรจะถูกใช้เพียงครั้งเดียวระหว่างการติดตั้ง Node ด้วยเหตุนี้.กฎ Firewallควรได้รับการจัดการด้วยตนเอง
- หลังจากที่คุณสร้าง Environment แล้วให้ตรวจสอบกฎ Firewall บนกฎขาเข้าแท็บ
เคล็ดลับ:ด้านล่างนี้คุณสามารถดูตัวอย่างวิธีตั้งค่าตัวแปรนี้ผ่าน Cloud Scripting:
yaml
jpsType: install
name: OPEN_INBOUND_PORTS env variable
nodes:
nodeType: apache2
nodeGroup: cp
env:
OPEN_INBOUND_PORTS: 3306, 33061, 33062
การจัดการกฎเกณฑ์
แถบเครื่องมือเหนือรายการกฎมีให้เพิ่ม,แก้ไข,ลบ,ปิดการใช้งาน(เปิดใช้งาน), และRefreshปุ่มสำหรับจัดการกฎที่มีอยู่และเพิ่มกฎใหม่
เมื่อเพิ่มกฎ Firewall ใหม่ควรกำหนด Parameter ต่อไปนี้:
- Node- เพื่อเลือก Layer Environment ที่ต้องการ
- ชื่อ- เพื่อระบุชื่อบันทึกนี้ (สามารถขยายเพื่อเลือกจากค่าที่ตั้งไว้ที่ใช้กันทั่วไปได้)
- Protocol- เพื่อกำหนดประเภท Protocol ที่ต้องการ (TCP,ยูดีพีหรือTCP/UDP)
- ช่วง Port- เพื่อกำหนด Port เฉพาะ (เช่น80) หรือช่วงของมัน (เช่น1024-2048) เพื่อเปิด/ปิดเพื่อเชื่อมต่อ; เว้นช่องนี้ว่างไว้เพื่อใช้กฎกับทั้งหมดPort
-
แหล่งที่มา- เพื่อเลือกแหล่งที่มาของคำขอ:
- ที่อยู่ IP ที่กำหนดเอง- รายการที่คั่นด้วยเครื่องหมายจุลภาคของที่อยู่ IPv4 หรือ IPv6 และบล็อก CIDR (เช่น10.0.0.1,10.0.0.0/24หรือ2001:db8::1,2001:db8::/32); ไม่รองรับการผสมที่อยู่ IPv4 และ IPv6 ภายในกฎเดียวกัน
- ช่วงที่กำหนดไว้ล่วงหน้า -ทั้งหมด,IPv4 ทั้งหมด,IPv6 ทั้งหมด,เครือข่ายท้องถิ่น,อินเทอร์เน็ต (การเข้าถึงสาธารณะ)
- NodeEnvironment- ประเภท Node (Layer) จาก Environment ใดๆในบัญชี (ต่อจากนั้นกฎนี้จะถูกเสริม/ลดขนาดโดยอัตโนมัติด้วย IP ที่จำเป็นเมื่อมีการปรับขนาด Layer ที่เหมาะสมเข้า/ออก)
-
ลำดับความสำคัญ- เพื่อกำหนดลำดับความสำคัญของกฎ (โดยจะใช้กฎที่มีค่าต่ำกว่าก่อน)
- การกระทำ- เพื่อกำหนดการดำเนินการที่จำเป็นเมื่อได้รับคำขอที่ตรงกัน (อย่างใดอย่างหนึ่งอนุญาตหรือปฏิเสธ)
ถึงแก้ไขกฎเริ่มต้นหรือกฎที่กำหนดเองคุณสามารถปรับ Parameter ทั้งหมดที่อธิบายไว้ข้างต้นได้ยกเว้นNode(Layer เป้าหมายไม่สามารถเปลี่ยนแปลงได้) สำหรับการทดสอบให้ปิดการใช้งานกฎชั่วคราวด้วยปิดการใช้งาน/เปิดใช้งานและเปิดใช้งานอีกครั้งในภายหลังคลิกRefreshเพื่ออัปเดตรายการกฎหลังจาก Server เปลี่ยนแปลง (เช่นการเปลี่ยนแปลง Topology) โดยไม่ต้อง RestartServer
กรณีการใช้งาน Firewall
คุณสามารถควบคุมการเข้าถึง Node ตาม Parameter คำขอเช่นที่อยู่ IP ต้นทาง Protocol และ Port ตัวอย่างด้านล่างบล็อกการเข้าถึง Container จากที่อยู่ IP เฉพาะโดยใช้:
บันทึก:ก่อนที่จะปฏิบัติตามคำแนะนำนี้ตรวจสอบให้แน่ใจว่าได้จัดเตรียม Container ที่เหมาะสมพร้อมกับPublic IPที่อยู่.
เมื่อคุณทำให้งานวงจรการใช้งาน Container เป็นแบบอัตโนมัติคุณสามารถนำการเปลี่ยนแปลง Firewall ไปใช้ผ่านทางAPI ของ Platform. ดูวิธีการที่เกี่ยวข้องในข้อมูลอ้างอิงที่เชื่อมโยง
จำกัดการเข้าถึงผ่านทางส่วนต่อประสานผู้ใช้
- คลิกการตั้งค่าถัดจาก Environment ที่ต้องการแล้วเปิดFirewallส่วน. เลือกกฎขาเข้าแท็บแล้วคลิกเพิ่ม. หากต้องการจัดการ TrafficContainer ขาออกแทนให้เปลี่ยนไปใช้กฎขาออกแท็บ; Parameter กฎเหมือนกับที่อธิบายไว้ด้านล่าง
2. ในเพิ่มกฎขาเข้ากำหนดค่าวิธีที่ Container ประมวลผลคำขอที่เข้ามา
หากต้องการปฏิเสธการเชื่อมต่อจาก IP ใดโดยเฉพาะให้กรอกข้อมูลในช่องดังต่อไปนี้:
- Node- เลือก Container ที่จะจำกัด (Tomcatในตัวอย่างนี้)
- ชื่อ- ป้อนชื่อกฎ (เช่นกฎของฉัน)
- Protocol- เลือก Protocol ที่ต้องการ (TCP)
- ช่วง Port- เว้นช่องนี้ว่างไว้เพื่อปฏิเสธการเข้าถึง Port ทั้งหมด
- แหล่งที่มา- เลือกที่อยู่ IP ที่กำหนดเองและกรอก IP ในช่วงที่อยู่ IPสนาม (111.111.111.111)
- ลำดับความสำคัญ- กำหนดลำดับความสำคัญของกฎ (เช่น900เพื่อนำไปใช้ก่อนกฎเริ่มต้น)
- การกระทำ- เลือกปฏิเสธ
คลิกเพิ่มเพื่อบันทึกและใช้กฎของคุณโดยอัตโนมัติ
- เมื่อคุณเชื่อมต่อกับ Node จาก111.111.111.111คุณจะเห็นหน้าต่อไปนี้:
คุณสามารถใช้แนวทางเดียวกันนี้ในการปฏิเสธการเข้าถึงจากที่อยู่ IP ใดๆ
จำกัดการเข้าถึงผ่าน SSH
หรือคุณสามารถกำหนดค่ากฎ Firewall สำหรับ Container ของคุณผ่านทางเทอร์มินัลเมื่อเข้าถึง Node ผ่านประตูเอสเอสเอช.
บันทึก:แม้ว่าการกำหนดค่า Firewall ส่วนใหญ่สามารถทำได้ผ่าน Interface ผู้ใช้เฉพาะแต่การจัดการผ่าน SSH นั้นมีความยืดหยุ่นมากกว่า (เช่นอนุญาตให้กำหนดค่าการเปลี่ยนเส้นทาง NAT) อย่างไรก็ตามกฎดังกล่าวจะไม่แสดงในรายการ UI แต่จะมีลำดับความสำคัญสูงกว่า
- เปิดเว็บ SSHจาก Dashboard โดยคลิกปุ่มชื่อเดียวกันถัดจาก Node ที่ต้องการเมื่อเชื่อมต่อแล้วให้ตรวจสอบ/etc/Ruk-Com PaaS/metainf.confเพื่อยืนยันว่าเปิดใช้งาน Container Firewall แล้ว:
เปลือก
cat /etc/jelastic/metainf.conf
ที่Firewall_เปิดใช้งานแล้วควรตั้งค่า Parameter เป็น “1” หากไม่เป็นเช่นนั้นโปรดติดต่อผู้ให้บริการ Host ของคุณและขอให้เปิดใช้งานการป้องกัน Firewall สำหรับบัญชีของคุณ
- ถัดไปคุณต้องแก้ไขไฟล์/etc/nftables/ผู้ใช้กำหนด.nftไฟล์ (เช่นด้วย aเป็นกลุ่มแก้ไข) และประกาศกฎ Firewall โดยใช้การเขียน Script nftableรูปแบบ
เปลือก
vim /etc/nftables/user-defined.nft
ตัวอย่างเช่นหากต้องการปฏิเสธการเข้าถึงจาก IP เฉพาะ (111.111.111.111):
เปลือก
insert rule ip filter INPUT ip saddr 111.111.111.111 ct state new tcp dport 1111 counter drop
3. ใช้การตั้งค่า Firewall ที่คุณกำหนดเองกับกฎเริ่มต้นของ Container:
เปลือก
sudo /usr/bin/jem firewall fwstart
4. แสดงรายการกฎ Firewall ที่ใช้งานอยู่สำหรับ Container ของคุณ:
เปลือก
sudo jem firewall list \;
กฎที่คุณกำหนดเองปฏิเสธการเข้าถึง111.111.111.111ปรากฏในเอาต์พุตใช้แนวทางเดียวกันเพื่อจำกัดการเข้าถึงจากที่อยู่ IP ใดๆ
การตั้งกฎผ่าน Platform API
สำหรับ Script ที่กำหนดเองระบบอัตโนมัติและงานที่คล้ายกันให้กำหนดค่ากฎ Firewall ผ่านEnvironment > ความปลอดภัยวิธีการในเอกสารประกอบ API ของ Platform:
- เพิ่มกฎ- สร้างกฎใหม่
- เพิ่มกฎ- เพิ่มกฎหลายข้อ
- แก้ไขกฎ- เปลี่ยน Parameter ของกฎที่มีอยู่
- รับกฎ- แสดงรายการกฎเกณฑ์ด้าน Environment
- ลบกฎ- ลบกฎ
- ลบกฎ- ลบกฎหลายข้อ
- ตั้งค่า Firewall เปิดใช้งานแล้ว- เปิด Firewall
- ตั้งค่ากฎเปิดใช้งานแล้ว- เปิดใช้งานกฎที่มีอยู่
- ตั้งกฎ- แทนที่กฎที่มีอยู่




