리눅스 커널 보안 업데이트, 일반 PC·노트북에서 바로 확인하는 방법

Photo of author

By 요담

리눅스 커널 보안 업데이트는 PC와 노트북에서 패키지를 설치한 다음 재부팅해야 적용됩니다. 디스크에 새 커널이 있어도 실행 중인 버전은 재부팅 전까지 바뀌지 않으므로 uname -r로 확인하십시오. Ubuntu 보안 공지 USN-8729-1도 일반 업데이트 후 재부팅이 필요하다고 명시합니다.

Ubuntu 16.04 LTS 이후에는 unattended-upgrades가 보안 업데이트를 자동으로 받습니다. 커널 패치는 설치 후에도 재부팅이 필요하므로 아래 배포판별 확인과 재부팅 점검을 순서대로 따라가시면 됩니다.

리눅스 커널 보안 업데이트가 필요한 이유

리눅스 커널 보안 업데이트 관련 화면
(사진 출처: Microsoft)

커널은 하드웨어와 프로그램을 잇는 핵심이라 취약점이 남으면 권한 상승이나 정보 유출로 이어질 수 있습니다. Ubuntu 보안 공지 USN-8729-1은 리눅스 커널의 여러 보안 문제를 고쳤고 일반 시스템 업데이트 뒤에 재부팅이 필요하다고 밝힙니다.

Canonical Livepatch는 일부 이슈를 재부팅 없이 완화할 수 있으나 모든 보안 이슈를 막지는 않습니다. 자동 패치만 믿고 재부팅을 미루면 실행 중인 커널은 예전 상태로 남습니다. 가정용 PC와 노트북도 인터넷에 붙는 순간 같은 점검이 필요합니다. 공용 PC라도 커널 패치 주기는 미루지 않는 편이 안전합니다.

배포판별 커널 업데이트 확인 방법

우분투와 데비안 계열은 apt, 페도라와 RHEL 계열은 dnf로 커널 패키지와 보안 패치를 확인합니다. 명령이 달라도 목적은 같습니다. 저장소 목록을 갱신한 뒤 커널 관련 패키지가 대기 중인지 보고 설치 후에는 재부팅 여부를 따로 점검하면 됩니다.

배포판 이름을 섞어 명령을 넣으면 패키지를 찾지 못하므로 본인 배포판 절만 따라가십시오. 같은 계열 안에서도 버전마다 메타패키지 이름이 다를 수 있으니 설치 목록에 linux-image 또는 kernel 패키지가 보이는지 먼저 확인하는 것이 안전합니다. 확인이 끝나면 설치와 재부팅 시점을 먼저 정하십시오.

우분투·데비안 apt로 확인하기

터미널에서 sudo apt update && sudo apt upgrade를 실행하면 커널을 포함한 보안 패키지를 받습니다. Ubuntu 권고도 이 순서 뒤에 sudo reboot를 권합니다. ABI가 바뀌면 새 버전 번호가 붙고 서드파티 커널 모듈은 다시 컴파일해야 합니다.

linux-generic 같은 표준 메타패키지를 지우지 않았다면 일반 업그레이드가 이 작업을 자동으로 처리합니다. 데스크톱에서도 소프트웨어 업데이트 앱으로 받을 수 있으나 적용 여부는 터미널 확인이 더 분명합니다. 메타패키지 이름을 지웠다면 커널 이미지가 따라오지 않을 수 있습니다.

페도라·RHEL dnf로 확인하기

페도라와 RHEL 계열은 sudo dnf upgrade로 커널과 보안 패치를 같이 받습니다. 대기 중인 커널만 보려면 dnf list kernel –available 또는 dnf check-update kernel을 쓰면 됩니다. RHEL은 구독 저장소가 켜져 있어야 보안 커널이 내려옵니다.

설치가 끝나도 실행 중 커널은 바뀌지 않으므로 재부팅 전까지는 새 패치가 실행 중 커널에 반영되지 않습니다. 워크스테이션이면 그래픽 업데이트 도구와 명령을 중복으로 실행하지 마십시오. 커널 패키지 이름은 kernel-core와 kernel-modules로 나뉘는 경우가 많습니다.

업데이트 전 백업과 호환성 점검

커널을 올리기 전에 홈 폴더와 설정 파일을 외장 디스크나 별도 드라이브의 로컬 백업 도구로 복사해 두십시오. 무선 랜, GPU, VPN처럼 직접 컴파일한 모듈이 있으면 ABI 변경 후 다시 맞춰야 합니다. 듀얼 부팅 PC는 ESP와 부트로더 설정을 건드리지 않았는지 먼저 확인하는 것이 좋습니다.

노트북은 전원 어댑터를 연결한 뒤에만 업그레이드를 시작하십시오. 스냅샷이 되는 파일시스템이라면 업그레이드 직전에 루트 스냅샷을 하나 남겨 두면 부팅 실패 때 되돌리기 쉽습니다. 가상머신을 쓰는 개발 PC도 체크포인트를 찍은 다음 진행하십시오. 백업 매체는 업데이트 대상 디스크와 물리적으로 분리된 드라이브여야 복구에 쓸 수 있습니다.

보안 패치 적용 후 재부팅과 버전 확인

설치한 업데이트가 재부팅을 요구하는지는 pro system reboot-required로 확인합니다. 원인 패키지는 /var/run/reboot-required.pkgs에 남고 커널이 자주 포함됩니다. 재부팅이 필요하면 /var/run/reboot-required 파일에 System restart required 문구가 생깁니다.

확인 항목명령 또는 파일
실행 중 커널uname -r
재부팅 필요 여부pro system reboot-required
원인 패키지/var/run/reboot-required.pkgs
재부팅 안내 파일/var/run/reboot-required

적용 여부는 재부팅 후 uname -r로 실행 중 커널을 봐야 합니다. 새 패키지만 깔리고 재부팅을 건너뛰면 취약점 대응은 끝나지 않습니다. 재부팅 시각은 작업 파일을 저장한 뒤로 잡으십시오.

업데이트 실패·부팅 문제 대처법

패키지 받기 중 전원이 끊기거나 의존성이 깨지면 커널 패키지가 반만 설치된 채로 남을 수 있습니다. 우분투·데비안에서는 sudo dpkg –configure -a와 sudo apt -f install로 설치를 마무리한 뒤 다시 업그레이드하십시오. 페도라·RHEL에서는 sudo dnf check와 sudo dnf history undo로 마지막 거래를 되돌릴 수 있습니다.

그래픽이 안 뜨면 복구 모드의 루트 셸에서 같은 명령을 실행하면 됩니다. 네트워크가 죽은 상태면 이전에 받은 패키지 캐시만으로 복구를 시도하십시오. 저장소 주소가 잘못되면 패치가 내려오지 않으니 sources 목록부터 점검하십시오.

이전 커널로 부팅해 복구하기

GRUB 메뉴에서 Advanced options 또는 이전 커널 항목을 고르면 방금 설치한 버전이 아닌 커널로 부팅할 수 있습니다. 메뉴가 바로 안 보이면 부팅 초기에 Shift 또는 Esc를 눌러 목록을 여십시오.

이전 커널로 들어간 뒤에는 로그를 확인하고 문제 패키지를 제거하거나 보류한 다음 다시 패치를 적용합니다. 기본 부팅 항목이 깨진 커널로 고정돼 있으면 grub 설정을 고쳐 재생성하십시오. 노트북 펌웨어가 fast boot를 켜 두면 GRUB가 건너뛰어질 수 있으니 펌웨어에서 해당 옵션을 끄고 다시 시도하십시오. 복구 뒤에는 정상 커널이 기본 항목인지 한 번 더 확인하십시오.

리눅스 커널 보안 업데이트 정리

리눅스 커널 보안 업데이트는 패키지 설치와 재부팅이 한 세트입니다. Ubuntu는 16.04 LTS 이후 보안 업데이트를 자동으로 받지만 커널은 재부팅 전까지 바뀌지 않습니다. Livepatch가 있어도 모든 취약점을 막지 못하므로 uname -r과 reboot-required 파일을 함께 확인하십시오.

실패하면 이전 커널로 부팅한 뒤 패키지를 고치고 다시 패치를 적용하면 됩니다. 배포판 명령만 맞추고 백업과 모듈 호환성을 먼저 점검하면 가정용 PC와 노트북에서도 같은 절차로 리눅스 취약점 대응을 마칠 수 있습니다. 확인 명령은 배포판이 달라도 uname -r로 통일하면 됩니다.

요담

글쓴이

요담

정보보안 컨설턴트로 활동하며 IT 리뷰와 활용 가이드를 전합니다.