Tự động kiểm tra Cập nhật bảo mật trên CentOS hoặc Khoa học Linux?


20

Chúng tôi có các máy chạy các bản phân phối dựa trên RedHat như CentOS hoặc Science Linux. Chúng tôi muốn các hệ thống tự động thông báo cho chúng tôi nếu có bất kỳ lỗ hổng đã biết nào đối với các gói đã cài đặt. FreeBSD thực hiện điều này với cổng port-mgmt / portaudit .

RedHat cung cấp bảo mật yum-plugin , có thể kiểm tra các lỗ hổng bằng ID Bugzilla, ID CVE hoặc ID tư vấn của họ. Ngoài ra, Fedora gần đây đã bắt đầu hỗ trợ yum-plugin-security . Tôi tin rằng điều này đã được thêm vào trong Fedora 16.

Khoa học Linux 6 không hỗ trợ bảo mật yum-plugin vào cuối năm 2011 . Nó được gửi cùng với /etc/cron.daily/yum-autoupdate, cập nhật RPM hàng ngày. Tôi không nghĩ rằng điều này chỉ xử lý Cập nhật bảo mật.

CentOS không hỗ trợyum-plugin-security .

Tôi theo dõi danh sách gửi thư của CentOS và Khoa học Linux để cập nhật, nhưng điều này thật tẻ nhạt và tôi muốn một cái gì đó có thể được tự động hóa.

Đối với những người trong chúng tôi duy trì hệ thống CentOS và SL, có bất kỳ công cụ nào có thể:

  1. Tự động (Progamatically, qua cron) thông báo cho chúng tôi nếu có lỗ hổng đã biết với RPM hiện tại của tôi.
  2. Tùy chọn, tự động cài đặt nâng cấp tối thiểu cần thiết để giải quyết lỗ hổng bảo mật, có lẽ sẽ yum update-minimal --securitynằm trên dòng lệnh?

Tôi đã cân nhắc sử dụng yum-plugin-changelogđể in ra thay đổi cho mỗi gói, và sau đó phân tích đầu ra cho các chuỗi nhất định. Có công cụ nào làm việc này không?


Bạn có bất kỳ hệ thống quản lý cấu hình tại chỗ? Con rối? CFEngine?
ewwhite

Vâng, tôi có Cfengine. Tôi đang nghĩ về con rối.
Stefan Lasiewski

2
yum-Updatesd được sử dụng để làm một cái gì đó tương tự (thông báo về các bản cập nhật mới và đề cập nếu có bất kỳ bản cập nhật bảo mật nào) - nhưng tôi không tin rằng đó là trong bản repos của CentOS 6 (hoặc EPEL). Mặc dù vậy, bạn có thể điều chỉnh các tập lệnh trên CentOS Wiki khá dễ dàng.
cyberx86

Câu trả lời:


8

Nếu bạn hoàn toàn muốn sử dụng yum security plugin, có một cách để làm điều này, mặc dù một chút công phu. Nhưng một khi bạn đã thiết lập xong, tất cả sẽ tự động.

Yêu cầu duy nhất là bạn sẽ cần phải có ít nhất một đăng ký vào RHN. IMO là một khoản đầu tư tốt, nhưng hãy tập trung vào vấn đề.

  1. Khi bạn đã đăng ký, bạn có thể sử dụng mrepo hoặc reposync để thiết lập repo Yum trong nhà, phản ánh các repos của CentOS. (hoặc bạn chỉ có thể sử dụng rsync).
  2. Sau đó, sử dụng tập lệnh được đính kèm với bài đăng danh sách gửi thư này , để định kỳ kết nối với đăng ký RHN của bạn, để tải xuống thông tin gói bảo mật. Bây giờ bạn có hai lựa chọn.
    1. Chỉ trích xuất tên gói từ tệp "updateinfo.xml" đã tạo. Và sử dụng thông tin đó để "tìm kiếm" các máy chủ của bạn cho Rpms cần bảo mật hoặc các bản cập nhật khác, sử dụng con rối hoặc cengine hoặc ssh-in-a-for-loop. Điều này đơn giản hơn, cung cấp cho bạn mọi thứ bạn muốn, nhưng bạn không thể sử dụng yum security.
    2. Tùy chọn khác là sử dụng modifyrepolệnh như được hiển thị ở đây , để đưa updateinfo.xmlvào repomd.xml. Trước khi thực hiện việc này, bạn sẽ phải sửa đổi tập lệnh perl để thay đổi tổng Rpm MD5 bên trong xml, từ tổng số RHN sang Centos. Và bạn sẽ phải đảm bảo rằng các repos của CentOS thực sự có tất cả các Rpms được đề cập đến hay không updateinfo.xml, vì đôi khi chúng đứng sau RHN. Nhưng điều đó tốt, bạn có thể bỏ qua các bản cập nhật mà CentOS đã bắt kịp, vì có rất ít bạn có thể làm về nó, thiếu việc xây dựng chúng từ SRPM.

Với tùy chọn 2, bạn có thể cài đặt yum securityplugin trên tất cả các máy khách và nó sẽ hoạt động.

Chỉnh sửa: Điều này cũng hoạt động cho Redhat RHEL 5 và 6 máy. Và đơn giản hơn là sử dụng một giải pháp trọng lượng nặng như Spacewalk hoặc Pulp.


6

Khoa học Linux hiện có thể liệt kê các cập nhật bảo mật từ dòng lệnh. Hơn nữa, tôi có thể cập nhật một hệ thống để chỉ áp dụng các cập nhật bảo mật, tốt hơn là mặc định ("Chỉ cần cập nhật mọi thứ! Bao gồm các lỗi mà bạn không quan tâm và đưa ra hồi quy."

Tôi đã thử nghiệm điều này trên cả Khoa học Linux 6.1 và 6.4. Tôi không chắc chắn khi điều này được công bố chính thức, nhưng tôi sẽ đăng thêm khi tôi tìm hiểu.

Dưới đây là một số ví dụ.

Liệt kê một bản tóm tắt các cập nhật bảo mật:

[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

Danh sách theo 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

Và sau đó tôi có thể áp dụng tập hợp thay đổi tối thiểu cần thiết cho

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

Hoặc, chỉ cần vá mọi thứ:

[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 ~]#

Nếu tôi thử lệnh tương tự trên hộp CentOS6, tôi sẽ không nhận được kết quả nào. Tôi biết rằng thực tế là một số trong số '137 gói có sẵn' có sửa lỗi bảo mật, vì tôi đã nhận được thông báo errata ngày hôm qua qua danh sách gửi thư của 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

Tôi đã từng gặp vấn đề tương tự. Tôi đã cố gắng tạo ra một số mã Python để tập hợp các Cập nhật và tư vấn của Yum từ trang web steve-meier Errata đã đề cập ở trên (tôi lọc nó dựa trên các gói đã cài đặt).

Trong trường hợp có ích, đây là nguồn: https://github.com/wied03/centos-package-cron


2

Vì bạn có CFEngine, bạn có thể áp dụng các thay đổi cho các nhóm hệ thống theo thời gian dựa trên các bản cập nhật bảo mật được đăng tại: http://twitter.com/#!/CentOS_Announce

Tôi không phải là kỹ sư bảo mật máy chủ lớn nhất ngoài kia ... nhưng tôi có xu hướng thấy rằng tôi chỉ quan tâm đến một vài gói khi nói đến bảo mật. Bất cứ điều gì phải đối mặt với công chúng (ssl, ssh, apache) hoặc khai thác chính đều được ưu tiên. Mọi thứ khác được đánh giá hàng quý. Tôi không muốn những thứ này được nâng cấp tự động vì các gói cập nhật có khả năng phá vỡ các mặt hàng khác trên hệ thống sản xuất.


Nguồn cấp dữ liệu twitter được đề cập ở trên là lời khuyên tồi IMO trong năm 2017+. Nó không nhận được bất kỳ cập nhật nào kể từ ngày 10 tháng 10 năm 2012.
slm

2

Khoa học Linux (ít nhất là 6,2 và 6,3; tôi không có bất kỳ hệ thống 6.1 trái) không chỉ hỗ trợ yum-plugin-securitynhưng các tập tin cấu hình cho cho yum-autoupdate, /etc/sysconfig/yum-autoupdatecho phép bạn kích hoạt chỉ việc cài đặt các cập nhật bảo mật.

# 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

Trên CentOS bạn có thể sử dụng

yum list updates

thay vì yum-plugin-security, hoặc có thể bạn muốn thử quét tập lệnh này dựa trên nguồn cấp tin tức bảo mật CentOS: LVPS .


yum list updatessẽ liệt kê tất cả các bản cập nhật, khi tôi chỉ muốn liệt kê các bản cập nhật bảo mật .
Stefan Lasiewski

cập nhật danh sách yum
Sirex

2
yum list updates --securitykhông hoạt động (có lẽ cần một plugin)
Taha Jahangir

1

Bạn cũng có thể thử generate_updateinfo dự án. Nó là một kịch bản python xử lý errata.latest.xmltệp được biên dịch bởi dự án CEFS và tạo updateinfo.xmltệp với siêu dữ liệu cập nhật bảo mật. Sau đó, bạn có thể đưa nó vào kho cập nhật CentOS 6 (7) cục bộ của mình. Việc tích hợp nó với các kho tùy chỉnh / cục bộ được tạo bởi createrepolệnh: khá đơn giản .

  • kho lưu trữ nhân bản với reposynclệnh
  • tạo kho lưu trữ cục bộ bằng createrepolệnh
  • tải xuống và tạo updateinfo.xmltập tin với generate_updateinfo.pytập lệnh
  • tiêm siêu dữ liệu cập nhật bảo mật được tạo vào kho lưu trữ cục bộ của bạn bằng modifyrepolệnh

-1

Trên CentOS6, bạn có thể sử dụng plugin yum-security:

yum install yum-security

Kiểm tra với:

yum --security check-update

Lệnh này trả về mã 0 nếu không có cập nhật bảo mật.

Kết hợp với yum-cron, bạn chỉ có thể nhận được email trên các bản cập nhật bảo mật có sẵn bằng cách sửa đổi tệp / etc / sysconfig / yum-cron:

YUM_PARAMETER="--security"

1
Plugin bảo mật Yum không hoạt động với tôi trên CentOS6. Tuy nhiên, nó hoạt động trên RHEL và Khoa học Linux.
Stefan Lasiewski

Điều đó có nghĩa là "nó không hoạt động". Đây là một phần của CentOS6-Base và được cài đặt trên nhiều cài đặt tại đây. yum-plugin-security.noarch 1.1.30-17.el6_5 @updates
Bertl

1
Ý tôi là khi tôi chạy yum --security check-update, lệnh sẽ trả về No packages needed for security; 137 packages available. Tôi biết một thực tế là một số bản cập nhật có sẵn có sửa lỗi bảo mật. Các bản cập nhật có sẵn trong kho 'cơ sở' của CentOS, nhưng chúng không được đánh dấu là bản sửa lỗi bảo mật. CentOS hiện không cung cấp kho lưu trữ yum cho các bản vá bảo mật, không giống như Red Hat, Science Linux và EPEL.
Stefan Lasiewski

1
Nếu nó hoạt động cho bạn, bạn có thể chỉ ra cách nó hoạt động?
Stefan Lasiewski

1
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.