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

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

RUK-COM PAAS / LOAD BALANCERS

คู่มือ App Security with NGINX Balancer สำหรับ Load Balancer

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

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

คู่มือภาษาไทย

คำสั่ง ชื่อเมนู พารามิเตอร์ และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง

Image 42: app security with NGINX balancer

เนื่องจากปริมาณข้อมูลที่แบ่งปันผ่านอินเทอร์เน็ตเพิ่มขึ้นทุกปีเช่นเดียวกับการนำเว็บมาใช้เป็นเครื่องมือในการดำเนินธุรกิจการป้องกันเว็บไซต์และแอปพลิเคชันเว็บจึงกลายเป็นปัญหาด้านความปลอดภัยทางอินเทอร์เน็ตที่สำคัญปัญหาหนึ่งการตอบสนองที่ชัดเจนต่อสิ่งนี้คือการใช้เครื่องมือป้องกันมากมายแต่ก่อนที่จะเร่งรีบในการบูรณาการโซลูชันการป้องกันที่ซับซ้อนและ/หรือมีราคาแพงให้พิจารณาวิธีการรักษาความปลอดภัยทั่วไปสองสามวิธีเนื่องจากบางครั้งการรักษาความปลอดภัยขั้นพื้นฐานที่สุดจะกลายเป็นวิธีที่มีประสิทธิภาพมากที่สุด

ดังนั้นในคู่มือนี้เราจะแสดงให้คุณเห็นถึงวิธีการตั้งค่ากลไกการป้องกันง่ายๆสองสามอย่างซึ่งมีให้สำหรับแอปพลิเคชันใดๆที่ใช้บาลานเซอร์ NGINXเป็นส่วนหน้าและการสมัครใดไม่จำเป็นต้องมีค่าใช้จ่ายเพิ่มเติม

โดยพื้นฐานแล้วเซิร์ฟเวอร์โหลดบาลานเซอร์ NGINX มีวัตถุประสงค์เพื่อดำเนินการกระจายคำขออัจฉริยะระหว่าง Node เซิร์ฟเวอร์แอปพลิเคชันหลายตัวดังนั้นจึงรับประกันความพร้อมใช้งานและความน่าเชื่อถือของระบบในระดับสูงนอกจากนี้ยังสามารถใช้ในการประมวลผลทั้งประเภทการรับส่งข้อมูล HTTP และ TCP (รายละเอียดสามารถพบได้ในไฟล์HTTP โหลดบาลานซ์และการปรับสมดุลการโหลด TCPเอกสาร)

Node การปรับสมดุลโหลดจะถูกเพิ่มลงใน Environment โดยอัตโนมัติหากคุณรับ Node เซิร์ฟเวอร์แอปพลิเคชันมากกว่าหนึ่ง Node และนอกจากนี้ยังสามารถเพิ่มได้ด้วยตนเองแม้กระทั่งสำหรับเซิร์ฟเวอร์เดียวเมื่อต้องการทำเช่นนี้เพียงเลือกการปรับสมดุลตัวช่วยสร้างบล็อกเหนือแอปพลิเคชันเซิร์ฟเวอร์ที่เลือกในโทโพโลยี Environmentหน้าต่าง.

Image 43: NGINX balancer security env wizตอนนี้เมื่อ Environment พร้อมแล้วคุณสามารถดำเนินการกำหนดค่าวิธีการป้องกันที่ต้องการได้โดยใช้คำแนะนำด้านล่าง:

เราจะใส่ใจกับวิธีการด้วยการรวมกันวิธีการดังกล่าวข้างต้นเพื่อใช้พร้อมกันมาดูวิธีนำสิ่งนี้ไปใช้กับ Environment ของคุณกันดีกว่าเอาล่ะ!

การรับรองความถูกต้อง

การตรวจสอบสิทธิ์เป็นวิธีการที่เรียบง่ายแต่ทรงพลังในการจำกัดการเข้าถึงแอปพลิเคชันและรับรองว่าหน่วยงานที่ไม่ได้รับอนุญาตจะไม่สามารถก่อให้เกิดอันตรายใดๆต่อแอปพลิเคชันได้ในตัวอย่างนี้เราจะแสดงวิธีตั้งค่าการป้องกันชื่อผู้ใช้/รหัสผ่าน

  1. แน่นอนว่าข้อมูลรหัสผ่านไม่สามารถจัดเก็บในรูปแบบเปิดได้ดังนั้นจึงจำเป็นต้องป้องกันตัวเองเพื่อที่คุณจะต้องสร้างแฮชตามชื่อผู้ใช้และรหัสผ่านที่ต้องการโดยใช้อะไรก็ได้htpasswdเครื่องมือหรือหนึ่งในบริการออนไลน์ที่คล้ายกัน (เช่นhttp://www.htpasswdgenerator.net/).

  2. บันทึกลำดับอักขระที่คุณได้รับและเปลี่ยนกลับไปยังแดชบอร์ดแพลตฟอร์มโดยแสดง Environment ของคุณมีคลิกที่การกำหนดค่าปุ่มสำหรับบาลานเซอร์ NGINXNode

Image 45: NGINX balancer security config3. คุณจะเห็นเครื่องมือจัดการการกำหนดค่าเปิดแท็บแล้วคุณต้องสร้างไฟล์ใหม่(ใช้ปุ่มชื่อเดียวกันที่แผงเครื่องมือ) ภายในคอนเฟิร์มโฟลเดอร์ตั้งชื่อที่ต้องการแต่จำเป็นต้องปฏิบัติตาม.htpasswdส่วนขยาย (เช่นรหัสผ่าน.htpasswd).

Image 46: NGINX balancer security new file4. หลังจากเสร็จสิ้นให้วางแฮชที่คุณได้รับในขั้นตอนคำแนะนำแรกลงในเนื้อหาของไฟล์โปรดจำไว้ว่าคุณสามารถเพิ่มบัญชีได้มากเท่าที่คุณต้องการ (อย่าลืมวางบัญชีถัดไปจากบรรทัดใหม่)

Image 47: NGINX balancer security passwords บันทึกการเปลี่ยนแปลงเมื่อการตั้งค่าทั้งหมดเสร็จสิ้น

  1. จากนั้นเลือกnginx-Ruk-Com PaaS.confไฟล์ภายในการประชุมโฟลเดอร์และค้นหาไฟล์ที่ตั้งบล็อกในครั้งแรกเซิร์ฟเวอร์ส่วนรหัสวางบรรทัดต่อไปนี้เพื่อเปิดใช้งานการตรวจสอบสิทธิ์และใช้กฎการเข้าถึงที่เหมาะสม:

สำเนา nginx

auth_basic           "closed site";
auth_basic_user_file /etc/nginx/conf.d/{htpasswd_file};

ที่ไหน{htpasswd_file}- ชื่อของไฟล์ที่คุณใส่แฮชพร้อมรหัสผ่าน (ในกรณีของเราคือไฟล์นี้รหัสผ่าน.htpasswd).

Image 48: NGINX balancer security conf

บันทึก:ที่ปกติเราจะแนะนำให้แก้ไขการกำหนดค่าในnginx.confไฟล์และเก็บnginx-Ruk-Com PaaS.confเนื้อหาของตนเป็นการตั้งค่าเริ่มต้น/การสำรองข้อมูลแต่ในกรณีนี้เนื่องจากการเปลี่ยนแปลงที่จำเป็นนั้นค่อนข้างง่ายและเราค่อนข้างแน่ใจว่าเรารู้ว่ากำลังทำอะไรอยู่การทำงานโดยตรงกับnginx-รัก-คอม PaaSไฟล์.

  1. บันทึกการเปลี่ยนแปลงที่คุณได้ทำขึ้นอีกครั้งหนึ่งและรีสตาร์ทNode บาลานเซอร์ NGINX

Image 49: NGINX balancer security restart7. ตอนนี้เมื่อพยายามเปิดApplication ของคุณในเบราว์เซอร์คุณ (และไคลเอนต์อื่นๆ ) จะต้องผ่านหน้าต่างการตรวจสอบสิทธิ์ก่อนที่จะเข้าถึงแอปพลิเคชัน

Image 50: NGINX balancer security authหลังจากระบุข้อมูลประจำตัวที่เหมาะสมแล้ว (เช่นข้อมูลที่คุณสร้างแฮชมา) แอปพลิเคชันของคุณจะถูกเปิดขึ้น

ที่อยู่ IP ปฏิเสธ

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

  1. เปิดแดชบอร์ดแพลตฟอร์มพร้อมกับ Environment ของคุณแล้วคลิกการกำหนดค่าปุ่มสำหรับบาลานเซอร์ NGINXNode

Image 52: NGINX balancer security config2. คลิกที่nginx-Ruk-Com PaaS.confไฟล์ในการประชุมโฟลเดอร์ภายในที่เปิดอยู่เครื่องมือจัดการการกำหนดค่าแท็บจากนั้นค้นหาบล็อกตำแหน่งในส่วนรหัสเซิร์ฟเวอร์แรกแล้ววางบรรทัดต่อไปนี้ที่นั่น:

สำเนา nginx

deny {IP_ADDRESS};

ที่ไหน{IP_ADDRESS}- ที่อยู่ที่คุณต้องการบล็อกความสามารถในการเปิดแอปพลิเคชันของคุณอย่างชัดเจน

Image 53: NGINX balancer security conf 2

หมายเหตุ:

  • คุณยังสามารถตั้งค่าพารามิเตอร์นี้เป็นได้ทั้งหมดซึ่งหมายความว่าจะไม่มีใครสามารถเข้าถึงแอปพลิเคชันของคุณได้ในกรณีนี้อาจมีประโยชน์ที่จะระบุอีกหนึ่งรายการอนุญาตคำสั่งที่นี่ซึ่งใช้เพื่อกำหนดที่อยู่ IP (หรือช่วงที่อยู่) ที่คุณต้องการให้สิทธิ์ในการเข้าถึง
  • ในกรณีที่โครงสร้างแบบง่ายที่เสนอข้างต้นไม่ได้ผลสำหรับคุณ (เนื่องจากอาจเกิดจากการกำหนดค่าเฉพาะที่แพลตฟอร์มใดแพลตฟอร์มหนึ่ง) คุณสามารถลองใช้วิธีต่อไปนี้แทน:

สำเนา nginx

if ($http_x_forwarded_for ~* {IP_ADDRESS}) {
  return 403;
}
  1. บันทึกการเปลี่ยนแปลงและรีสตาร์ทNode NGINX ของคุณโดยใช้ปุ่มที่เหมาะสม

Image 54: NGINX balancer security restart4. เป็นผลให้ผู้ใช้ที่มีที่อยู่ IP ที่ถูกปฏิเสธจะต้องเผชิญกับ403 สิ่งต้องห้ามเกิดข้อผิดพลาดขณะพยายามเข้าถึงแอปพลิเคชันของคุณ

Image 55: NGINX balancer security forbidden

การผสมผสานวิธีการ

หากต้องการรวมการจำกัดตามที่อยู่ IP และวิธีการตรวจสอบความถูกต้องเข้าด้วยกันคุณจะต้องใช้ทำให้พึงพอใจคำสั่งตามค่าเริ่มต้น (เช่นหากไม่ได้ประกาศอย่างชัดเจนในการกำหนดค่า) จะถูกตั้งค่าเป็นทั้งหมดซึ่งหมายความว่าผู้ใช้ควรตรงตามเงื่อนไขทั้งสองประเภทจึงจะได้รับอนุญาตให้เข้าถึงได้หากคุณระบุคำสั่งนี้ภายในไฟล์การกำหนดค่าของคุณและตั้งค่าเป็นใดๆผู้ใช้จะสามารถเปิดแอปพลิเคชันได้หากตรงตามเงื่อนไขอย่างน้อยหนึ่งข้อนี่คือตัวอย่างของการกำหนดค่าดังกล่าว:

Image 57: NGINX balancer security conf 3ดังนั้นผู้ใช้ที่ไม่ผ่านการรับรองความถูกต้องจะได้รับอนุญาตให้เข้าถึงได้หากที่อยู่ IP ของเขาอยู่ในรายชื่อที่ได้รับอนุญาตหรือผู้ใช้ที่มีที่อยู่ IP ที่ถูกปฏิเสธจะยังสามารถเข้าถึงเว็บไซต์ได้หากพวกเขาป้อนชื่อผู้ใช้และรหัสผ่านที่ถูกต้อง

ตอนนี้คุณรู้วิธีพื้นฐานบางประการในการปกป้องแอปของคุณโดยให้สิทธิ์การเข้าถึงแก่ผู้ใช้ที่เชื่อถือได้เท่านั้นรวมถึงการปฏิเสธให้กับผู้ใช้ที่ไม่น่าเชื่อถือและอาจเป็นอันตรายโปรดจำไว้ว่าการใช้เวลาเพิ่มความปลอดภัยให้กับแอปพลิเคชันของคุณตอนนี้สามารถช่วยคุณประหยัดเวลาและเงินได้มากในภายหลังและจะไม่ส่งผลเสียใดๆก็ตาม