如何使用Ksplice在Oracle Linux上启用实时内核修补?

How To Enable Live Kernel Patching on Oracle Linux Using Ksplice?

基本上,Linux内核更新将要求系统重新启动。 重新启动系统后,新内核才会生效。

平均而言,Linux内核每个月最多都会收到一次安全更新和错误修复。

对于关键系统,我们无法安排每个月的停机时间,因为停机时间可能有很多依赖性,我们也不会得到管理层的批准。

如何克服呢? 是的,我们在Oracle Premier Support中提供了选项。 它称为Ksplice。

  • 如何在Oracle Linux中安装/升级牢不可破的企业内核(UEK)?

  • 什么是Ksplice

    Oracle Ksplice通过允许您使用最新的内核安全性勘误和其他重要更新来更新系统,从而使您的系统保持安全和高可用性。

    它无需重启就可以更新正在运行的内核映像。 它会更新您正在运行的内存中的内核。 Ksplice更新在应用后立即生效。 这不是磁盘上的更改,仅在随后的重新引导后才生效。

  • 如何在Ubuntu LTS系统上启用Canonical Kernel Livepatch服务?

  • kpatch允许Red Hat,CentOS和Fedora用户安装内核安全补丁而无需重启

  • 确保您的系统应该在Unbreakable Linux Network(ULN)中注册才能使用Ksplice。 如果您有Oracle Linux Premier支持帐户,则可以选择使用Oracle Ksplice。

    请参考以下URL向Unbreakable Linux Network(ULN)注册系统。

  • 如何在坚不可摧的Linux网络(ULN)中注册Oracle Linux系统?

  • 在Unbreakable Linux Network(ULN)中完成注册后,然后将系统订阅Ksplice for Oracle Linux频道并在其上安装Ksplice Uptrack软件。

    如何在ULN上注册系统以使用Oracle Ksplice

    如果您已经在ULN上拥有一个帐户,则可以注册系统以使用Ksplice Uptrack。

    登录到ULN @ http://linux.oracle.com。
     width= 单击ULN主页中的Ksplice升级注册按钮,然后选择要使用的客户支持标识符(CSI),然后单击注册。

    屏幕上显示确认已创建Ksplice帐户以及包含Ksplice访问密钥的电子邮件。

    通过ULN门户已验证了相同的内容。
     width=

    使用Oracle SSO帐户登录https://status-ksplice.oracle.com/的Ksplice Web界面并注册系统。
     width=

    到目前为止,尚未注册任何系统。 在下面的屏幕截图中已经验证了相同的内容。
     width=

    如何安装Ksplice Uptrack

    只需运行以下命令来安装Ksplice Uptrack。 确保必须以root用户身份运行以下命令。该命令提供了安装程序脚本,因此,以root用户身份运行以下命令,并用访问密钥替换YOUR_ACCESS_KEY

    如果要启用自动更新,请在安装后在/etc/uptrack/uptrack.conf文件中设置autoinstall = yes

    1
    2
    # wget -N https://www.ksplice.com/uptrack/install-uptrack
    # sh install-uptrack YOUR_ACCESS_KEY

    或者,我们可以在install-uptrack命令中添加--autoinstall选项。

    1
    # sh install-uptrack YOUR_ACCESS_KEY --autoinstall

    默认情况下,Ksplice Uptrack将在引导过程中重新安装无需重新引导的更新,因此即使重新引导后您也将保持安全。 您可以通过更改/etc/uptrack/uptrack.conf中的install_on_reboot选项来配置此行为。

    1
    2
    # vi /etc/uptrack/uptrack.conf
    install_on_reboot = [no or yes]

    是的,现在我们可以看到已注册系统的列表。
     width=

    查看可用的更新和已安装的更新。
     width=

    AllowDeny系统上使用以下页面来使用ksplice uptrack。
     width=

    要列出可用的Ksplice更新,请使用以下uptrack-upgrade命令。

    1
    2
    3
    4
    5
    6
    # uptrack-upgrade -n
    or
    # uptrack-show --available
    Available updates:
    [fiq04xbb] CVE-2013-2237: Information leak on IPSec key socket.
    [9q4luou3] CVE-2014-3687: Remote denial-of-service in SCTP stack.

    安装所有可用的Ksplice更新。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # uptrack-upgrade -y
    The following steps will be taken:
    Install [guclwyc2] CVE-2012-0957: Information leak in uname syscall.
    Install [j4d07e02] Kernel panic in IPv4 ARP and IPv6 Neighbor Discovery.
    Install [r8og1ec4] CVE-2013-1979: Privilege escalation with UNIX socket credentials.
    Install [fiq04xbb] CVE-2013-2237: Information leak on IPSec key socket.
    Install [9q4luou3] CVE-2014-3687: Remote denial-of-service in SCTP stack.
    Installing [guclwyc2] CVE-2012-0957: Information leak in uname syscall.
    Installing [j4d07e02] Kernel panic in IPv4 ARP and IPv6 Neighbor Discovery.
    Installing [r8og1ec4] CVE-2013-1979: Privilege escalation with UNIX socket credentials.
    Installing [fiq04xbb] CVE-2013-2237: Information leak on IPSec key socket.
    Installing [9q4luou3] CVE-2014-3687: Remote denial-of-service in SCTP stack.
    Your kernel is fully up to date.
    Effective kernel version is 3.8.13-118.20.3.el6uek

    查看已安装的更新。

    1
    2
    3
    4
    5
    # uptrack-show
    Installed updates:
    [guclwyc2] CVE-2012-0957: Information leak in uname syscall.
    [j4d07e02] Kernel panic in IPv4 ARP and IPv6 Neighbor Discovery.
    [r8og1ec4] CVE-2013-1979: Privilege escalation with UNIX socket credentials.

    运行uptrack-upgrade命令后,我们可以看到一台机器正在运行的有效内核。 Ksplice Uptrack不会更改uname的输出。 运行uptrack-uname以查看机器上更新的正在运行的内核。

    1
    2
    3
    4
    5
    # uname -r
    3.8.13-68.2.2.el6uek

    # uptrack-uname -r
    3.8.13-118.20.3.el6uek

    从内核中删除所有更新。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # uptrack-remove -y
    or
    # uptrack-remove --all
    The following steps will be taken:
    Remove [guclwyc2] CVE-2012-0957: Information leak in uname syscall.
    Remove [j4d07e02] Kernel panic in IPv4 ARP and IPv6 Neighbor Discovery.
    Remove [r8og1ec4] CVE-2013-1979: Privilege escalation with UNIX socket credentials.
    Remove [fiq04xbb] CVE-2013-2237: Information leak on IPSec key socket.
    Remove [9q4luou3] CVE-2014-3687: Remote denial-of-service in SCTP stack.

    卸载Uptrack。

    1
    # yum -y remove uptrack