ตรวจสอบความปลอดภัยอัตโนมัติบน CentOS หรือ Scientific Linux โดยอัตโนมัติ


20

เรามีเครื่องจักรที่ใช้งาน Distros ที่ใช้ RedHat เช่น CentOS หรือ Scientific Linux เราต้องการให้ระบบแจ้งเตือนเราโดยอัตโนมัติหากพบว่ามีช่องโหว่ใด ๆ FreeBSD ทำอย่างนี้กับพอร์ตบุคคล / portauditพอร์ต

RedHat ให้บริการyum-plugin-securityซึ่งสามารถตรวจสอบหาช่องโหว่ด้วย Bugzilla ID, CVE ID หรือ ID คำแนะนำ นอกจากนี้ Fedora เพิ่งเริ่มต้นที่จะสนับสนุนyum ปลั๊กอินการรักษาความปลอดภัย ฉันเชื่อว่าสิ่งนี้ถูกเพิ่มเข้ามาใน Fedora 16

วิทยาศาสตร์ลินุกซ์ 6 ไม่สนับสนุน yum ปลั๊กอินการรักษาความปลอดภัย ณ ช่วงปลายปี 2011 มันมาพร้อมกับ/etc/cron.daily/yum-autoupdateซึ่งอัพเดต RPM ทุกวัน อย่างไรก็ตามฉันไม่คิดว่าจะจัดการการปรับปรุงความปลอดภัยเท่านั้น

CentOS ไม่ได้สนับสนุนyum-plugin-security

ฉันตรวจสอบรายการส่งเมล CentOS และ Scientific Linux สำหรับการอัปเดต แต่นี่เป็นเรื่องน่าเบื่อและฉันต้องการบางสิ่งที่สามารถทำงานอัตโนมัติ

สำหรับพวกเราที่ดูแลระบบ CentOS และ SL มีเครื่องมือใดบ้างที่สามารถ:

  1. โดยอัตโนมัติ (Progamatically ผ่าน cron) แจ้งให้เราทราบหากมีช่องโหว่ที่รู้จักกับ RPM ปัจจุบันของฉัน
  2. ติดตั้งการอัปเกรดขั้นต่ำที่จำเป็นโดยอัตโนมัติเพื่อจัดการกับช่องโหว่ด้านความปลอดภัยซึ่งอาจyum update-minimal --securityอยู่ใน commandline?

ฉันได้พิจารณาที่yum-plugin-changelogจะใช้การพิมพ์ changelog สำหรับแต่ละแพ็คเกจแล้วแยกวิเคราะห์เอาต์พุตสำหรับสตริงที่แน่นอน มีเครื่องมือใดบ้างที่ทำสิ่งนี้อยู่แล้ว?


คุณมีระบบจัดการการกำหนดค่าใด ๆ หรือไม่? หุ่นกระบอก? cfengine?
ewwhite

ใช่ฉันมี Cfengine ฉันกำลังคิดเกี่ยวกับหุ่นกระบอก
Stefan Lasiewski

2
yum-updatesd ใช้ในการทำสิ่งที่คล้ายกัน (แจ้งเตือนเกี่ยวกับการปรับปรุงใหม่และพูดถึงถ้ามีการปรับปรุงความปลอดภัย) - แต่ฉันไม่เชื่อว่ามันอยู่ใน repos CentOS 6 (หรือ EPEL) คุณอาจจะสามารถปรับสคริปต์ในCentOS Wikiได้อย่างง่ายดาย
cyberx86

คำตอบ:


8

หากคุณต้องการใช้อย่างแท้จริงyum security pluginมีวิธีการทำเช่นนี้แม้จะมีความซับซ้อนเล็กน้อย แต่เมื่อคุณติดตั้งแล้วมันก็เป็นไปโดยอัตโนมัติทั้งหมด

ข้อกำหนดเพียงอย่างเดียวคือคุณจะต้องมีการสมัครสมาชิกอย่างน้อยหนึ่ง RHN ซึ่งเป็น IMO การลงทุนที่ดี แต่ให้ยึดจุด

  1. เมื่อคุณสมัครสมาชิกคุณสามารถใช้mrepoหรือreposyncเพื่อติดตั้ง Yum repo ภายในบ้านซึ่งทำหน้าที่สะท้อน repos CentOS (หรือคุณสามารถใช้ rsync)
  2. จากนั้นใช้สคริปต์ที่แนบมากับโพสต์รายชื่อผู้รับจดหมายนี้เพื่อเชื่อมต่อกับการสมัครสมาชิก RHN ของคุณเป็นระยะเพื่อดาวน์โหลดข้อมูลแพ็คเกจความปลอดภัย ตอนนี้คุณมีสองทางเลือก
    1. แตกเฉพาะชื่อแพ็กเกจจากไฟล์ "updateinfo.xml" ที่สร้างขึ้น และใช้ข้อมูลนั้นเพื่อ "ค้นหา" เซิร์ฟเวอร์ของคุณสำหรับ Rpms ที่ต้องการความปลอดภัยหรือการอัพเดทอื่น ๆ โดยใช้หุ่นเชิดหรือ cfengine หรือ ssh-in-a-for-loop ง่ายกว่านี้มอบทุกสิ่งที่คุณต้องการ แต่ไม่สามารถใช้งานyum securityได้
    2. ตัวเลือกอื่น ๆ คือการใช้modifyrepoคำสั่งตามที่แสดงไว้ที่นี่เพื่อฉีดเข้าไปupdateinfo.xml ก่อนที่จะทำเช่นนี้คุณจะต้องแก้ไขสคริปต์ perl เพื่อเปลี่ยนผลรวม Rpm MD5 ภายใน xml จาก RHN เป็นผลรวม Centos และคุณจะต้องตรวจสอบให้แน่ใจว่า CentOS repos มี Rpms ทั้งหมดที่กล่าวถึงในขณะที่พวกเขาอยู่ข้างหลัง RHN บางครั้ง แต่ไม่เป็นไรคุณสามารถเพิกเฉยต่อการอัปเดตของ CentOS ที่ไม่ได้ทำตามเพราะมีเพียงเล็กน้อยที่คุณสามารถทำได้เกี่ยวกับเรื่องนี้repomd.xmlupdateinfo.xml

ด้วยตัวเลือกที่ 2 คุณสามารถติดตั้งyum securityปลั๊กอินบนไคลเอนต์ทั้งหมดและมันจะทำงาน

แก้ไข: ยังใช้งานได้กับ Redhat RHEL 5 และ 6 เครื่อง และง่ายกว่าการใช้โซลูชันที่มีน้ำหนักมากเช่น Spacewalk หรือ Pulp


6

Scientific Linux สามารถแสดงรายการอัพเดตความปลอดภัยจาก commandline นอกจากนี้ฉันสามารถอัปเดตระบบเพื่อใช้การอัปเดตความปลอดภัยซึ่งดีกว่าค่าเริ่มต้น ("เพียงอัปเดตทุกอย่าง! รวมถึงการแก้ไขข้อบกพร่องที่คุณไม่สนใจและแนะนำการถดถอย"

ฉันได้ทดสอบสิ่งนี้ทั้งบน Scientific Linux 6.1 และ 6.4 ฉันไม่แน่ใจว่าจะมีการประกาศอย่างเป็นทางการเมื่อใด แต่ฉันจะโพสต์มากขึ้นเมื่อค้นพบ

นี่คือตัวอย่างบางส่วน.

รายการสรุปของการปรับปรุงความปลอดภัย:

[root@node1 ~]# yum updateinfo
Loaded plugins: changelog, downloadonly, fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
Updates Information Summary: available
    4 Security notice(s)
        1 important Security notice(s)
        3 moderate Security notice(s)
    2 Bugfix notice(s)
updateinfo summary done

root@node1 ~]# yum list-sec
Loaded plugins: changelog, downloadonly, fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
SLSA-2013:1459-1 moderate/Sec.  gnupg2-2.0.14-6.el6_4.x86_64
SLSA-2013:1436-1 moderate/Sec.  kernel-2.6.32-358.23.2.el6.x86_64
SLSA-2013:1436-1 moderate/Sec.  kernel-devel-2.6.32-358.23.2.el6.x86_64
SLSA-2013:1436-1 moderate/Sec.  kernel-firmware-2.6.32-358.23.2.el6.noarch
SLSA-2013:1436-1 moderate/Sec.  kernel-headers-2.6.32-358.23.2.el6.x86_64
SLSA-2013:1457-1 moderate/Sec.  libgcrypt-1.4.5-11.el6_4.x86_64
SLSA-2013:1270-1 important/Sec. polkit-0.96-5.el6_4.x86_64
SLBA-2013:1486-1 bugfix         selinux-policy-3.7.19-195.el6_4.13.noarch
SLBA-2013:1491-1 bugfix         selinux-policy-3.7.19-195.el6_4.18.noarch
SLBA-2013:1486-1 bugfix         selinux-policy-targeted-3.7.19-195.el6_4.13.noarch
SLBA-2013:1491-1 bugfix         selinux-policy-targeted-3.7.19-195.el6_4.18.noarch
updateinfo list done

รายการโดย CVE:

[root@node2 ~]# yum list-sec cves
Loaded plugins: changelog, downloadonly, fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
 * epel: mirrors.kernel.org
 * sl6x: ftp.scientificlinux.org
 * sl6x-security: ftp.scientificlinux.org
7404 packages excluded due to repository priority protections
 CVE-2012-6085 moderate/Sec. gnupg2-2.0.14-6.el6_4.x86_64
 CVE-2013-4351 moderate/Sec. gnupg2-2.0.14-6.el6_4.x86_64
 CVE-2013-4402 moderate/Sec. gnupg2-2.0.14-6.el6_4.x86_64
 CVE-2013-4162 moderate/Sec. kernel-2.6.32-358.23.2.el6.x86_64
 CVE-2013-4299 moderate/Sec. kernel-2.6.32-358.23.2.el6.x86_64
 CVE-2013-4162 moderate/Sec. kernel-firmware-2.6.32-358.23.2.el6.noarch
 CVE-2013-4299 moderate/Sec. kernel-firmware-2.6.32-358.23.2.el6.noarch
 CVE-2013-4242 moderate/Sec. libgcrypt-1.4.5-11.el6_4.x86_64
updateinfo list done

จากนั้นฉันสามารถใช้ชุดการเปลี่ยนแปลงขั้นต่ำที่ต้องการ

[root@node1 ~]# yum update-minimal --security

หรือเพียงแค่แก้ไขทุกอย่าง:

[root@node1 ~]# yum --quiet --security check-update

gnutls.x86_64                                      2.8.5-14.el6_5                                     sl-security
libtasn1.x86_64                                    2.3-6.el6_5                                        sl-security
[root@node1 ~]# yum --quiet --security update

=================================================================================================================
 Package                 Arch                  Version                          Repository                  Size
=================================================================================================================
Updating:
 gnutls                  x86_64                2.8.5-14.el6_5                   sl-security                345 k
 libtasn1                x86_64                2.3-6.el6_5                      sl-security                237 k

Transaction Summary
=================================================================================================================
Upgrade       2 Package(s)

Is this ok [y/N]: Y
[root@node1 ~]#

ถ้าฉันลองคำสั่งเดียวกันนี้ในกล่อง CentOS6 ฉันจะไม่ได้รับผลลัพธ์ใด ๆ ฉันรู้ว่าจริง ๆ แล้วว่า '137 แพ็คเกจที่มีอยู่' บางตัวมีการแก้ไขความปลอดภัยเนื่องจากฉันได้รับข้อความแจ้งข้อผิดพลาดเมื่อวานนี้ผ่านทางรายชื่อเมลของ CentOS

[root@node1 ~]# yum --security check-update 
Loaded plugins: downloadonly, fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: mirrors.usc.edu
 * epel: mirrors.kernel.org
 * extras: mirror.web-ster.com
 * updates: mirrors.kernel.org
Limiting package lists to security relevant ones
No packages needed for security; 137 packages available
[root@node1 ~]#

5

ผมมีปัญหาเหมือนกัน. ฉันใช้แทงที่สร้างรหัสหลามเพื่อดึง Yum Updates และคำแนะนำจากเว็บไซต์ Errata ของ steve-meier ที่กล่าวถึงข้างต้น (ฉันกรองตามแพ็คเกจที่ติดตั้ง)

ในกรณีที่ช่วยได้นี่คือที่มา: https://github.com/wied03/centos-package-cron


2

เนื่องจากคุณมี CFEngine คุณสามารถใช้การเปลี่ยนแปลงกับกลุ่มของระบบในเวลานั้นตามการปรับปรุงความปลอดภัยที่โพสต์ที่: http://twitter.com/#!/CentOS_Announce

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


ฟีด Twitter ที่กล่าวถึงข้างต้นเป็นคำแนะนำที่ไม่ดี IMO ในปี 2560+ ยังไม่ได้รับการอัปเดตตั้งแต่วันที่ 10 ตุลาคม 2012
slm

2

วิทยาศาสตร์ลินุกซ์ (อย่างน้อย 6.2 และ 6.3 ผมไม่ได้มีระบบ 6.1 จากซ้าย) ให้การสนับสนุนไม่เพียงyum-plugin-securityแต่ไฟล์การกำหนดค่าสำหรับสำหรับyum-autoupdate, /etc/sysconfig/yum-autoupdateช่วยให้คุณเปิดใช้งานเพียงติดตั้งโปรแกรมปรับปรุงการรักษาความปลอดภัย

# USE_YUMSEC
#   This switches from using yum update to using yum-plugin-security
#     true  - run 'yum --security' update rather than 'yum update'
#     false - defaults to traditional behavior running 'yum update' (default)
#   + anything other than true defaults to false
#USE_YUMSEC="false"
USE_YUMSEC="true"

2

บน CentOS คุณสามารถใช้

yum list updates

แทนการ yum ปลั๊กอินการรักษาความปลอดภัยหรือบางทีคุณอาจต้องการที่จะลองสแกนสคริปต์นี้ขึ้นอยู่กับ CentOS ฟีดข่าวการรักษาความปลอดภัย: LVPS


yum list updatesจะแสดงรายการอัปเดตทั้งหมดเมื่อฉันต้องการแสดงรายการอัปเดตความปลอดภัยเท่านั้น
Stefan Lasiewski

การอัปเดตรายการ yum
ปลอดภัย

2
yum list updates --securityไม่ทำงาน (อาจต้องใช้ปลั๊กอิน)
Taha Jahangir

1

คุณสามารถลองใช้โครงการgenerate_updateinfo เป็นสคริปต์ไพ ธ อนซึ่งประมวลผลerrata.latest.xmlไฟล์ที่คอมไพล์โดยโครงการCEFSและสร้างupdateinfo.xmlไฟล์ด้วยข้อมูลเมตาการปรับปรุงความปลอดภัย จากนั้นคุณสามารถฉีดลงในที่เก็บ CentOS 6 (7) สำหรับอัพเดตของคุณ มันค่อนข้างตรงไปตรงมาที่จะรวมเข้ากับที่เก็บแบบกำหนดเอง / โลคัลที่สร้างโดยcreaterepoคำสั่ง:

  • มิเรอร์ที่เก็บพร้อมreposyncคำสั่ง
  • สร้างพื้นที่เก็บข้อมูลท้องถิ่นด้วยcreaterepoคำสั่ง
  • ดาวน์โหลดและสร้างupdateinfo.xmlไฟล์ด้วยgenerate_updateinfo.pyสคริปต์
  • ฉีดข้อมูลเมตาการปรับปรุงความปลอดภัยที่สร้างขึ้นไปยังที่เก็บในเครื่องของคุณด้วยmodifyrepoคำสั่ง

-1

บน CentOS6 คุณสามารถใช้ yum-security plugin:

yum install yum-security

ตรวจสอบกับ:

yum --security check-update

คำสั่งนี้ส่งคืนรหัส 0 หากไม่มีการปรับปรุงความปลอดภัย

เมื่อใช้ร่วมกับ yum-cron คุณจะได้รับอีเมลในการอัพเดตความปลอดภัยที่มีอยู่โดยการแก้ไขไฟล์ / etc / sysconfig / yum-cron:

YUM_PARAMETER="--security"

1
ปลั๊กอินความปลอดภัยของยัมนั้นใช้ไม่ได้กับ CentOS6 มันทำงานบน RHEL และ Scientific Linux อย่างไร
Stefan Lasiewski

มันหมายความว่าอะไร "มันไม่ทำงาน" เป็นส่วนหนึ่งของ CentOS6-Base และติดตั้งในการติดตั้งจำนวนมากที่นี่ yum-plugin-security.noarch 1.1.30-17.el6_5 @updates
Bertl

1
สิ่งที่ฉันหมายความว่าเมื่อผมทำงานผลตอบแทนคำสั่งด้วยyum --security check-update No packages needed for security; 137 packages availableฉันรู้ด้วยความจริงที่ว่าบางส่วนของการปรับปรุงที่มีอยู่มีการแก้ไขความปลอดภัย การอัพเดตมีอยู่ในที่เก็บของ 'CentOS' base แต่ไม่ได้ทำเครื่องหมายว่าเป็นการแก้ไขด้านความปลอดภัย CentOS ไม่ได้จัดให้มีพื้นที่เก็บข้อมูล yum สำหรับแพทช์รักษาความปลอดภัยซึ่งแตกต่างจาก Red Hat, Scientific Linux และ EPEL
Stefan Lasiewski

1
ถ้ามันเหมาะกับคุณคุณสามารถแสดงให้เห็นว่ามันทำงานอย่างไร
Stefan Lasiewski

1
ดูหัวข้อนี้เกี่ยวกับปัญหา: lists.centos.org/pipermail/centos-devel/2012-August/008675.html
Bertl
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.