웹사이트 검색

Linux 서버에서 자동 재부팅 없는 커널 업데이트를 설정하는 방법


이 페이지에서

  1. 라이브 패칭이란 무엇이며 어떻게 작동합니까?\n
  2. Linux 서버에서 재부팅이 필요 없는 자동 커널 업데이트 설정\n

Linux 서버에서 커널을 패치하는 것은 간단해 보입니다. dpkg, apt-get 또는 kexec와 같은 일반적인 도구를 사용하여 수행할 수 있습니다. 그러나 이러한 방법은 조직이 수백 또는 수천 대의 서버를 실행하는 경우 복잡해집니다. 많은 서버는 패치할 여러 배포판을 의미하며 각 배포판에는 시스템 관리자나 엔지니어의 개인적인 주의가 필요합니다.

이러한 수동 패치 방법은 재부팅이 필요하다는 점에서 위험합니다. 재부팅에는 항상 문제가 되는 서버 다운타임이 포함되므로 일반적으로 재부팅 주기에 수행됩니다. 이러한 주기 동안 수동 패치가 수행되기 때문에 해커에게 서버 인프라를 공격할 수 있는 "시간 창\을 제공합니다.

몇 대 이상의 서버를 실행하는 조직의 경우 라이브 패칭이 더 나은 옵션입니다. 서버가 실행되는 동안 Linux 커널을 패치하는 자동화된 방법으로 수동 방법보다 더 효율적이고 안전합니다. Canonical, Oracle, Red Hat 및 CloudLinux에서 가장 널리 사용되는 라이브 패치 시스템 4개를 설정하는 방법을 알아보겠습니다.

라이브 패칭이란 무엇이며 어떻게 작동합니까?

궁극적으로 커널 및 라이브러리에 대한 라이브 패치에는 임시 및 영구의 두 가지 방법이 있습니다. 임시 방법은 재부팅 없이 패치를 적용하지만 실제로는 나중에 서버를 재부팅해야 합니다. 지속적인 라이브 패치는 재부팅이 필요하지 않습니다.

임시 방법

임시 방법(또는 "스택\ 패칭)은 패키지 관리 소프트웨어(예: YUM 플러그인)로 실행됩니다. 패치는 리포지토리로 전달되고 사용자가 지정한 업데이트 워크플로우에 따라 적용됩니다.

"스택\ 패치는 서버 재부팅 및 중단 시간과 동일합니다. 패치를 설치한 직후 재부팅이 필요하지 않을 수 있지만 이러한 유형의 라이브 업데이트 아키텍처로 인해 보안 패치는 시간이 지남에 따라 서로 쌓입니다. , 잠재적으로 성능 및 안정성 저하 이 문제에 대한 유일한 해결책은 서버를 재부팅하여 새로운 커널을 메모리에 로드하는 것입니다.

임시 패치를 제공하는 공급업체는 다음과 같습니다.

  • 표준 Livepatch\n
  • k그래프\n
  • Amazon Linux 2 커널 라이브 패치

지속적인 방법

영구 방식의 경우 서버가 최신 패치를 저장하고 이러한 패치는 이전 패치를 포함하므로 \모놀리식\이라고 합니다. 서버를 업데이트하기 위해 에이전트 프로그램이 백그라운드에서 실행되어 패치 서버에서 패치를 확인합니다. 패치 서버에 커널에 대한 패치가 있고 에이전트는 패치 모듈을 호출하여 패치를 적용합니다.

영구 패칭에는 다음과 같은 다른 중요한 이점이 있습니다.

  • 지속적인 방법을 사용하는 서버는 Spectre, Meltdown 및 Zombieload와 같이 일반적으로 패치를 위해 재부팅해야 하는 하드웨어 취약점이 있는 경우에도 계속 가동되어 실행됩니다.\n
  • 완벽한 패치 프로세스 자동화로 서버 관리에 필요한 시간과 노력을 줄여줍니다.\n
  • 서버가 한 번에 몇 년 동안 가동 상태를 유지할 수 있습니다.\n

영구 패치 방법에는 일반적으로 공급업체 수수료가 포함되며 대부분의 공급업체에서 무료 평가판 기간을 사용할 수 있습니다.

  • Ksplice
  • K패치
  • KernelCare

Linux 서버에서 자동 재부팅 없는 커널 업데이트 설정

아래에서는 Livepatch, Kpatch, Ksplice 및 KernelCare 서비스를 사용하여 Linux 서버에서 재부팅 없는 커널 업데이트를 설정하는 방법을 보여줍니다.

참고: 이 지침을 실행하기 전에 시스템이 최신 상태이고 백업되었는지 확인하십시오.

1. Canonical Livepatch 설정

Canonical Livepatch Service는 설치 중 또는 설치 후에 설정할 수 있습니다. apt-get upgrade 명령을 실행할 때만 커널 보안 패치를 설치합니다(따라서 반자동).

장점: 간단합니다. 반자동. 재부팅이 필요하지 않습니다.

단점: 4개 이상의 호스트에 비용이 많이 듭니다(그러나 Ubuntu 커뮤니티의 구성원인 경우 모든 시스템에 대해 최대 3개의 호스트와 최대 50개의 시스템을 무료로 제공). 패치 롤백이 없습니다.

서버당 요금: 매월(사용할 수 없음), 연간($225).

Ubuntu 20.04 LTS 서버(16.04 LTS, 14.04 LTS 및 18.04 LTS 버전에서도 작동)에 Livepatch를 설치하려면 터미널을 열고 다음 두 명령을 실행하십시오.

sudo snap install canonical-livepatch
sudo canonical-livepatch enable <your key>

서버 등록을 취소하려면 다음 명령을 사용하십시오.

sudo canonical-livepatch disable <your key>

서비스 상태를 확인하려면 다음 명령을 사용하십시오.

sudo canonical-livepatch status --verbose

2. Oracle Ksplice 설정

Oracle Cloud 내에서 Ksplice 인스턴스를 실행하지 않는 한 이를 설치하려면 액세스 키가 필요합니다. 이것은 Unbreakable Linux Network에 로그인하고 안내에 따라 시스템을 Ksplice에 등록하면 얻을 수 있습니다.

Ksplice를 설치하려면 시스템이 인터넷에 액세스할 수 있어야 합니다. 프록시를 사용하는 경우 셸에서 프록시를 설정합니다.

# export http_proxy=http://proxy.example.com:port
# export https_proxy=http://proxy.example.com:port

프록시는 HTTPS 연결을 지원해야 하며 프록시 문자열은 다음 형식이어야 합니다.

[protocol://][username:]<host>[:port]

  • protocol은 프록시(http 또는 https)에 연결하기 위한 프로토콜입니다.\n
  • 사용자 이름과 암호는 프록시(있는 경우)를 사용하는 데 필요한 인증 정보입니다.\n
  • host 및 port는 프록시에 연결하는 데 사용되는 호스트 이름/ip 주소 및 포트 번호입니다.\n

다음 지침을 루트로 실행하여 YOUR_ACCESS_KEY를 이전 단계에서 받은 액세스 키로 바꿉니다.

오라클 클라우드 내부

커널 업데이트가 자동으로 설치되도록 Oracle Cloud 내부에 Ksplice를 설치하려면 다음 명령을 실행합니다.

# wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc
# sh install-uptrack-oc --autoinstall

커널 업데이트를 자동으로 설치하는 애플리케이션인 Uptrack에 사용 가능한 업데이트를 적용하려면 다음 명령을 실행합니다.

# uptrack-upgrade -y

이미 Uptrack을 설치한 경우 Ksplice를 설치한 후 /etc/uptrack/uptrack.conf에서 autoinstall = yes를 설정하여 켤 수 있습니다.

업데이트가 수동으로 적용되도록 Ksplice를 설치하려면 다음 명령을 실행합니다.

# wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc
# sh install-uptrack-oc

오라클 클라우드 외부

커널 업데이트가 자동으로 설치되도록 Oracle Cloud 외부에 Ksplice를 설치하려면 다음 명령을 실행합니다.

# wget -N https://ksplice.oracle.com/uptrack/install-uptrack
# sh install-uptrack YOUR_ACCESS_KEY --autoinstall

업데이트가 수동으로 적용되도록 Ksplice를 설치하려면 다음 명령을 실행합니다.

# wget -N https://ksplice.oracle.com/uptrack/install-uptrack
# sh install-uptrack YOUR_ACCESS_KEY

참고: Debian 또는 Ubuntu 서버에 Ksplice를 설치하는 경우 먼저 ca-certificates 패키지와 함께 apt-get install ca-certificates를 설치해야 할 수 있습니다. 이 패키지가 없으면 "인증서 확인 오류\가 표시됩니다.

4. Red Hat Kpatch 설정

Kpatch 설치는 간단하고 간단합니다.

업데이트 명령을 실행하여 패키지 리포지토리를 업데이트하고 최신 패키지 정보를 가져옵니다.

sudo apt-get update -y

-y 플래그와 함께 설치 명령을 실행하여 패키지 및 종속성을 빠르게 설치합니다.

sudo apt-get install -y patch

5. CloudLinux KernelCare 설정

실행 중인 커널이 KernelCare에서 지원되는지 확인하려면 다음 명령 중 하나를 실행하십시오.

curl -s -L https://kernelcare.com/checker | python

또는

wget -qq -O – https://kernelcare.com/checker | python

KernelCare를 설치하려면 다음 명령 중 하나를 실행하십시오.

curl -s -L https://kernelcare.com/installer | bash

또는:

wget -qq -O - https://kernelcare.com/installer | bash

IP 기반 라이선스를 사용하는 경우 다른 것은 필요하지 않습니다. 키 기반 라이선스를 사용하는 경우 다음 명령을 실행합니다.

$ /usr/bin/kcarectl --register KEY

KEY는 KernelCare를 구입하거나 무료 평가판에 가입할 때 받은 등록 키 코드 문자열입니다. 여기서 열쇠를 얻을 수 있습니다.

서버 등록을 취소하려면 다음을 실행하십시오.

sudo kcarectl --unregister

서비스 상태를 확인하려면 다음을 실행하십시오.

sudo kcarectl --info

KernelCare는 4시간마다 새 패치를 자동으로 확인합니다. 자동이 아닌 수동으로 업데이트를 수행하려면 다음을 실행하십시오.

/usr/bin/kcarectl –update

결론

여러 라이브 패치 솔루션에 대한 이 설치 지침에는 사용자 환경에 솔루션을 설치하는 데 필요한 모든 단계가 나열되어 있습니다. 완료되면 실시간 패치 기술의 이점을 누릴 수 있습니다. 즉, 서버를 중지하지 않고 몇 달 또는 몇 년 동안 후속 재부팅이 필요하지 않고 커널을 업데이트할 수 있습니다.