แนวทางปฏิบัติที่ดีที่สุดสำหรับการปรับปรุงเครื่อง EC2 Ubuntu ให้ทันสมัยอยู่เสมอ


12

ตามช่องโหว่ที่รุนแรงเมื่อเร็ว ๆ นี้ของ OpenSSL ฉันต้องการให้เครื่อง EC2 ของฉันได้รับการปรับปรุงเป็นประจำ วิธีการไร้เดียงสาจะเป็นการตั้งค่างาน cron รายชั่วโมงสำหรับการปรับปรุงความปลอดภัย ( sudo apt-get update && sudo unattended-upgrade)

มีความเสี่ยงในการทำเช่นนั้นหรือไม่? มีกลไกการอัพเดทที่แนะนำสำหรับเครื่อง EC2 หรือไม่?

คำตอบ:


13

แพ็คเกจการอัพเกรดแบบอัตโนมัติเป็นวิธีมาตรฐานในการใช้การแก้ไขข้อบกพร่องที่สำคัญและโปรแกรมแก้ไขความปลอดภัยใน Ubuntu โดยอัตโนมัติ

ฉันแนะนำให้ติดตั้งสิ่งนี้ในทุกระบบของ Ubuntu:

sudo apt-get update &&
sudo apt-get install unattended-upgrades

คุณไม่จำเป็นต้องสร้างงาน cron ของคุณเอง แพคเกจติดตั้งหนึ่งสำหรับคุณ

คุณสามารถแก้ไขการกำหนดค่าเริ่มต้นหากคุณต้องการเปลี่ยนพฤติกรรม: https://help.ubuntu.com/lts/serverguide/automatic-updates.html


มีความคิดเห็นเกี่ยวกับการแนะนำให้ทำเช่นนี้บนเซิร์ฟเวอร์ที่ใช้งานจริงหรือไม่? มันทำให้ฉันกังวลที่จะมีการเปลี่ยนแปลงที่นำไปใช้อย่างเงียบ ๆ และเสี่ยงต่อความเป็นไปได้ของการอัปเดตที่ล้มเหลวหรือปัญหาที่แนะนำ
ianjs

3
โดย "ทุกคน" ฉันหมายถึงระบบการผลิตด้วย ฉันใช้โปรแกรมปรับปรุงความปลอดภัยของ Ubuntu มาหลายปีโดยอัตโนมัติและไม่สามารถจำปัญหาร้ายแรงใด ๆ ได้ มันทำให้ฉันกังวลที่จะมีเซิร์ฟเวอร์ที่ใช้งานจริงอยู่ที่นั่นโดยไม่มีการแก้ไขปัญหาด้านความปลอดภัยที่รู้จักและเสี่ยงต่อการถูกเอาเปรียบพวกเขา ที่กล่าวว่าแต่ละสถานการณ์มีความต้องการที่แตกต่างกันดังนั้นคุณอาจจะดีกว่าที่จะผ่านขั้นตอนการทดสอบอย่างเข้มงวดสำหรับแต่ละแพทช์ อย่างไรก็ตามโปรดระวังว่าพวกเขาจะเปิดตัวตลอดเวลาดังนั้นคุณจะไม่ว่าง
Eric Hammond

1
ฉันไม่แนะนำให้ทำเช่นนี้จนกว่าคุณจะมีการตั้งค่าซ้ำซ้อน / คลัสเตอร์ ขั้นตอนการอัปเดตของ Ubuntu นั้นไม่ได้รบกวนฉันได้หยุดบริการหลายครั้งและล่าสุดแม้กระทั่งบูตเซกเตอร์เสีย ... และเราไม่ทำอะไรเป็นพิเศษเลย - เพียงแค่ Apache เป็น reverse proxy และแอพพลิเคชัน Tomcat
คู่ที่

1

เราใช้งานunattended-upgradesตั้งแต่ 2558 ถึง 2563 โดยไม่มีปัญหา เรามีการตั้งค่าเล็ก ๆ (ใน DigitalOcean) ด้วย:

  • nginx
  • mysql-server
  • php5-fpm php5-curl php5-mysql

จากประสิทธิภาพที่ดีในอดีตการอัปเดตด้วยวิธีนี้ทำให้รู้สึกปลอดภัยกว่าไม่ได้ทำ แต่นั่นไม่ได้รับประกันความจำเป็นสำหรับอนาคต!

นี่อาจไม่ใช่ความคิดที่ดีที่apacheอิงจากรายงานของผู้ใช้รายอื่นและประสบการณ์apacheการอัปเดตในอดีตของฉัน [ดูด้านบนและที่นี่ ]

ด้วยunattended-upgradesการแทรกแซงคู่มือจะยังคงถูกต้องเมื่อมีการเปิดตัวแนวทางEOL


(นอกเหนือจากคำถาม: จากประสบการณ์ของฉันกับ TWiki, WordPress และ Jenkins การทำให้แอพเหล่านี้เป็นสิ่งที่น่าเป็นห่วงมากกว่าระบบปฏิบัติการแม้ว่าจริง ๆ แล้วเราควรทำทั้งสองอย่างเพื่อความสงบของจิตใจ คุณสามารถแซนด์บ็อกซ์แอพที่เข้ากับอินเทอร์เน็ตได้เนื่องจากกระบวนการที่ไม่ใช่รูททำงานอยู่ภายในคอนเทนเนอร์ Docker


แต่เมื่อคุณถามถึงแนวปฏิบัติที่ดีที่สุดแนวทางหลักที่แนะนำในเอกสาร AWSคือ:

  • สร้างและเริ่มอินสแตนซ์ใหม่เพื่อแทนที่อินสแตนซ์ออนไลน์ปัจจุบันของคุณ จากนั้นลบอินสแตนซ์ปัจจุบัน

    อินสแตนซ์ใหม่จะมีชุดความปลอดภัยล่าสุดติดตั้งระหว่างการติดตั้ง

(กุมภาพันธ์ 2020)

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

ข้อดีอื่น ๆ :

  • การทดสอบสามารถให้คำเตือนขั้นสูงแก่คุณหากจำเป็นต้องมีการเอาใจใส่จากมนุษย์ (ตรงข้ามกับunattended-upgradesเมื่อคำเตือนมาจากผู้ใช้ของคุณทันทีที่ปัญหาเกิดขึ้น!)

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

แต่แน่นอนว่าต้องมีการตั้งค่าเพิ่มเติมสำหรับวิธีนี้มากกว่าเพียงแค่ติดตั้งunattended-upgradesและมีความซับซ้อนมากขึ้นดังนั้นจึงยังมีข้อผิดพลาดอยู่


AWS ไม่ยังกล่าวถึงการแสดง "อัปเดตการอ้างอิงคำสั่งสแต็ค" unattended-upgradesซึ่งดูเหมือนว่าจะเป็นวิธีการอย่างเป็นทางการของพวกเขาในการทำสิ่งที่คล้ายกับ ดูเหมือนว่าสามารถถูกทริกเกอร์จากอินสแตนซ์อินสแตนซ์ของพวกเขา แต่ฉันไม่แน่ใจว่ามันจะเป็นแบบอัตโนมัติ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.