คู่มือ App Security with NGINX Balancer สำหรับ Load Balancer
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
คำสั่ง ชื่อเมนู พารามิเตอร์ และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง
เนื่องจากปริมาณข้อมูลที่แบ่งปันผ่านอินเทอร์เน็ตเพิ่มขึ้นทุกปีเช่นเดียวกับการนำเว็บมาใช้เป็นเครื่องมือในการดำเนินธุรกิจการป้องกันเว็บไซต์และแอปพลิเคชันเว็บจึงกลายเป็นปัญหาด้านความปลอดภัยทางอินเทอร์เน็ตที่สำคัญปัญหาหนึ่งการตอบสนองที่ชัดเจนต่อสิ่งนี้คือการใช้เครื่องมือป้องกันมากมายแต่ก่อนที่จะเร่งรีบในการบูรณาการโซลูชันการป้องกันที่ซับซ้อนและ/หรือมีราคาแพงให้พิจารณาวิธีการรักษาความปลอดภัยทั่วไปสองสามวิธีเนื่องจากบางครั้งการรักษาความปลอดภัยขั้นพื้นฐานที่สุดจะกลายเป็นวิธีที่มีประสิทธิภาพมากที่สุด
ดังนั้นในคู่มือนี้เราจะแสดงให้คุณเห็นถึงวิธีการตั้งค่ากลไกการป้องกันง่ายๆสองสามอย่างซึ่งมีให้สำหรับแอปพลิเคชันใดๆที่ใช้บาลานเซอร์ NGINXเป็นส่วนหน้าและการสมัครใดไม่จำเป็นต้องมีค่าใช้จ่ายเพิ่มเติม
โดยพื้นฐานแล้วเซิร์ฟเวอร์โหลดบาลานเซอร์ NGINX มีวัตถุประสงค์เพื่อดำเนินการกระจายคำขออัจฉริยะระหว่าง Node เซิร์ฟเวอร์แอปพลิเคชันหลายตัวดังนั้นจึงรับประกันความพร้อมใช้งานและความน่าเชื่อถือของระบบในระดับสูงนอกจากนี้ยังสามารถใช้ในการประมวลผลทั้งประเภทการรับส่งข้อมูล HTTP และ TCP (รายละเอียดสามารถพบได้ในไฟล์HTTP โหลดบาลานซ์และการปรับสมดุลการโหลด TCPเอกสาร)
Node การปรับสมดุลโหลดจะถูกเพิ่มลงใน Environment โดยอัตโนมัติหากคุณรับ Node เซิร์ฟเวอร์แอปพลิเคชันมากกว่าหนึ่ง Node และนอกจากนี้ยังสามารถเพิ่มได้ด้วยตนเองแม้กระทั่งสำหรับเซิร์ฟเวอร์เดียวเมื่อต้องการทำเช่นนี้เพียงเลือกการปรับสมดุลตัวช่วยสร้างบล็อกเหนือแอปพลิเคชันเซิร์ฟเวอร์ที่เลือกในโทโพโลยี Environmentหน้าต่าง.
ตอนนี้เมื่อ Environment พร้อมแล้วคุณสามารถดำเนินการกำหนดค่าวิธีการป้องกันที่ต้องการได้โดยใช้คำแนะนำด้านล่าง:
- การรับรองความถูกต้องทำให้การเข้าถึงแอปพลิเคชันได้รับการป้องกันด้วยรหัสผ่าน
- ที่อยู่ IP ปฏิเสธกลไกใช้เพื่อห้ามการเข้าถึงแอปพลิเคชันจาก IP เฉพาะ
เราจะใส่ใจกับวิธีการด้วยการรวมกันวิธีการดังกล่าวข้างต้นเพื่อใช้พร้อมกันมาดูวิธีนำสิ่งนี้ไปใช้กับ Environment ของคุณกันดีกว่าเอาล่ะ!
การรับรองความถูกต้อง
การตรวจสอบสิทธิ์เป็นวิธีการที่เรียบง่ายแต่ทรงพลังในการจำกัดการเข้าถึงแอปพลิเคชันและรับรองว่าหน่วยงานที่ไม่ได้รับอนุญาตจะไม่สามารถก่อให้เกิดอันตรายใดๆต่อแอปพลิเคชันได้ในตัวอย่างนี้เราจะแสดงวิธีตั้งค่าการป้องกันชื่อผู้ใช้/รหัสผ่าน
-
แน่นอนว่าข้อมูลรหัสผ่านไม่สามารถจัดเก็บในรูปแบบเปิดได้ดังนั้นจึงจำเป็นต้องป้องกันตัวเองเพื่อที่คุณจะต้องสร้างแฮชตามชื่อผู้ใช้และรหัสผ่านที่ต้องการโดยใช้อะไรก็ได้htpasswdเครื่องมือหรือหนึ่งในบริการออนไลน์ที่คล้ายกัน (เช่นhttp://www.htpasswdgenerator.net/).
-
บันทึกลำดับอักขระที่คุณได้รับและเปลี่ยนกลับไปยังแดชบอร์ดแพลตฟอร์มโดยแสดง Environment ของคุณมีคลิกที่การกำหนดค่าปุ่มสำหรับบาลานเซอร์ NGINXNode
3. คุณจะเห็นเครื่องมือจัดการการกำหนดค่าเปิดแท็บแล้วคุณต้องสร้างไฟล์ใหม่(ใช้ปุ่มชื่อเดียวกันที่แผงเครื่องมือ) ภายในคอนเฟิร์มโฟลเดอร์ตั้งชื่อที่ต้องการแต่จำเป็นต้องปฏิบัติตาม.htpasswdส่วนขยาย (เช่นรหัสผ่าน.htpasswd).
4. หลังจากเสร็จสิ้นให้วางแฮชที่คุณได้รับในขั้นตอนคำแนะนำแรกลงในเนื้อหาของไฟล์โปรดจำไว้ว่าคุณสามารถเพิ่มบัญชีได้มากเท่าที่คุณต้องการ (อย่าลืมวางบัญชีถัดไปจากบรรทัดใหม่)
บันทึกการเปลี่ยนแปลงเมื่อการตั้งค่าทั้งหมดเสร็จสิ้น
- จากนั้นเลือกnginx-Ruk-Com PaaS.confไฟล์ภายในการประชุมโฟลเดอร์และค้นหาไฟล์ที่ตั้งบล็อกในครั้งแรกเซิร์ฟเวอร์ส่วนรหัสวางบรรทัดต่อไปนี้เพื่อเปิดใช้งานการตรวจสอบสิทธิ์และใช้กฎการเข้าถึงที่เหมาะสม:
สำเนา nginx
auth_basic "closed site";
auth_basic_user_file /etc/nginx/conf.d/{htpasswd_file};
ที่ไหน{htpasswd_file}- ชื่อของไฟล์ที่คุณใส่แฮชพร้อมรหัสผ่าน (ในกรณีของเราคือไฟล์นี้รหัสผ่าน.htpasswd).
บันทึก:ที่ปกติเราจะแนะนำให้แก้ไขการกำหนดค่าในnginx.confไฟล์และเก็บnginx-Ruk-Com PaaS.confเนื้อหาของตนเป็นการตั้งค่าเริ่มต้น/การสำรองข้อมูลแต่ในกรณีนี้เนื่องจากการเปลี่ยนแปลงที่จำเป็นนั้นค่อนข้างง่ายและเราค่อนข้างแน่ใจว่าเรารู้ว่ากำลังทำอะไรอยู่การทำงานโดยตรงกับnginx-รัก-คอม PaaSไฟล์.
- บันทึกการเปลี่ยนแปลงที่คุณได้ทำขึ้นอีกครั้งหนึ่งและรีสตาร์ทNode บาลานเซอร์ NGINX
7. ตอนนี้เมื่อพยายามเปิดApplication ของคุณในเบราว์เซอร์คุณ (และไคลเอนต์อื่นๆ ) จะต้องผ่านหน้าต่างการตรวจสอบสิทธิ์ก่อนที่จะเข้าถึงแอปพลิเคชัน
หลังจากระบุข้อมูลประจำตัวที่เหมาะสมแล้ว (เช่นข้อมูลที่คุณสร้างแฮชมา) แอปพลิเคชันของคุณจะถูกเปิดขึ้น
ที่อยู่ IP ปฏิเสธ
หากคุณสังเกตเห็นอันตรายบางอย่างต่อแอปพลิเคชันของคุณโดยผู้ใช้รายใดรายหนึ่งคุณสามารถหยุดเขาได้โดยการบล็อกคำขอใดๆที่ส่งจากที่อยู่ IP ของผู้ใช้นั้นและด้วยเหตุนี้จึงปฏิเสธการเข้าถึงแอปพลิเคชันของคุณสามารถทำได้ง่ายๆโดยทำตามขั้นตอนด้านล่างนี้
- เปิดแดชบอร์ดแพลตฟอร์มพร้อมกับ Environment ของคุณแล้วคลิกการกำหนดค่าปุ่มสำหรับบาลานเซอร์ NGINXNode
2. คลิกที่nginx-Ruk-Com PaaS.confไฟล์ในการประชุมโฟลเดอร์ภายในที่เปิดอยู่เครื่องมือจัดการการกำหนดค่าแท็บจากนั้นค้นหาบล็อกตำแหน่งในส่วนรหัสเซิร์ฟเวอร์แรกแล้ววางบรรทัดต่อไปนี้ที่นั่น:
สำเนา nginx
deny {IP_ADDRESS};
ที่ไหน{IP_ADDRESS}- ที่อยู่ที่คุณต้องการบล็อกความสามารถในการเปิดแอปพลิเคชันของคุณอย่างชัดเจน
หมายเหตุ:
- คุณยังสามารถตั้งค่าพารามิเตอร์นี้เป็นได้ทั้งหมดซึ่งหมายความว่าจะไม่มีใครสามารถเข้าถึงแอปพลิเคชันของคุณได้ในกรณีนี้อาจมีประโยชน์ที่จะระบุอีกหนึ่งรายการอนุญาตคำสั่งที่นี่ซึ่งใช้เพื่อกำหนดที่อยู่ IP (หรือช่วงที่อยู่) ที่คุณต้องการให้สิทธิ์ในการเข้าถึง
- ในกรณีที่โครงสร้างแบบง่ายที่เสนอข้างต้นไม่ได้ผลสำหรับคุณ (เนื่องจากอาจเกิดจากการกำหนดค่าเฉพาะที่แพลตฟอร์มใดแพลตฟอร์มหนึ่ง) คุณสามารถลองใช้วิธีต่อไปนี้แทน:
สำเนา nginx
if ($http_x_forwarded_for ~* {IP_ADDRESS}) {
return 403;
}
- บันทึกการเปลี่ยนแปลงและรีสตาร์ทNode NGINX ของคุณโดยใช้ปุ่มที่เหมาะสม
4. เป็นผลให้ผู้ใช้ที่มีที่อยู่ IP ที่ถูกปฏิเสธจะต้องเผชิญกับ403 สิ่งต้องห้ามเกิดข้อผิดพลาดขณะพยายามเข้าถึงแอปพลิเคชันของคุณ
การผสมผสานวิธีการ
หากต้องการรวมการจำกัดตามที่อยู่ IP และวิธีการตรวจสอบความถูกต้องเข้าด้วยกันคุณจะต้องใช้ทำให้พึงพอใจคำสั่งตามค่าเริ่มต้น (เช่นหากไม่ได้ประกาศอย่างชัดเจนในการกำหนดค่า) จะถูกตั้งค่าเป็นทั้งหมดซึ่งหมายความว่าผู้ใช้ควรตรงตามเงื่อนไขทั้งสองประเภทจึงจะได้รับอนุญาตให้เข้าถึงได้หากคุณระบุคำสั่งนี้ภายในไฟล์การกำหนดค่าของคุณและตั้งค่าเป็นใดๆผู้ใช้จะสามารถเปิดแอปพลิเคชันได้หากตรงตามเงื่อนไขอย่างน้อยหนึ่งข้อนี่คือตัวอย่างของการกำหนดค่าดังกล่าว:
ดังนั้นผู้ใช้ที่ไม่ผ่านการรับรองความถูกต้องจะได้รับอนุญาตให้เข้าถึงได้หากที่อยู่ IP ของเขาอยู่ในรายชื่อที่ได้รับอนุญาตหรือผู้ใช้ที่มีที่อยู่ IP ที่ถูกปฏิเสธจะยังสามารถเข้าถึงเว็บไซต์ได้หากพวกเขาป้อนชื่อผู้ใช้และรหัสผ่านที่ถูกต้อง
ตอนนี้คุณรู้วิธีพื้นฐานบางประการในการปกป้องแอปของคุณโดยให้สิทธิ์การเข้าถึงแก่ผู้ใช้ที่เชื่อถือได้เท่านั้นรวมถึงการปฏิเสธให้กับผู้ใช้ที่ไม่น่าเชื่อถือและอาจเป็นอันตรายโปรดจำไว้ว่าการใช้เวลาเพิ่มความปลอดภัยให้กับแอปพลิเคชันของคุณตอนนี้สามารถช่วยคุณประหยัดเวลาและเงินได้มากในภายหลังและจะไม่ส่งผลเสียใดๆก็ตาม



