3장. 보안 업데이트

보안 상 허점이 발견된다면, 적절한 소프트웨어를 업데이트하여 보안 위험을 최소화 시켜야 합니다. 해당 소프트웨어가 현재 Red Hat Enterprise Linux 배포판에 포함된 지원 가능한 패키지의 일부라면, Red Hat, Inc.은 최대한 빨리 보안 취약점을 고칠 수 있는 패키지를 업데이트하여 보내드릴 것입니다. 종종 보안 취약점을 공개시 그에 상응하는 패치 (문제를 해결할 수 있는 소스 코드)를 함께 출시합니다. Red Hat QA 팀은 이 패치를 Red Hat Enterprise Linux 패키지에 적용하여 테스팅을 마친 후 에라타 업데이트로 출시할 것입니다. 그러나 패치가 없는 보안 취약점을 공개시, Red Hat 개발자는 소프트웨어 관리자와 함께 작업하여 문제 해결책을 찾아낼 것입니다. 일단 문제가 해결되면, 패키지를 테스트한 후 에라타 업데이트로 배포합니다.

고객 시스템에 사용된 소프트웨어에 대한 에라타 업데이트가 발표된다면, 최대한 빨리 패키지를 업데이트하여 시스템 보안 위험을 최소화하시기 바랍니다.

3.1. 패키지 업데이트하기

시스템에 소프트웨어를 업데이트하실 경우, 신뢰할 수 있는 소스에서 업데이트를 다운로드 받으셔야 합니다. 누구든 문제 해결 패치와 동일한 버전 번호을 가졌지만 또 다른 보안상 허점을 제공하는 패키지를 재구축하여 인터넷에 올려놓을 가능성도 있습니다. 이러한 경우, 파일을 원래 RPM과 비교 검증하는 것과 같은 보안 대책을 사용하여도 보안 허점이 발견되지 않습니다. 따라서 Red Hat, Inc.과 같은 신뢰할 수 있는 소스에서 RPM을 다운로드 받으시는 것이 매우 중요합니다. 패키지의 무결성을 검증하기 위해 패키지의 서명을 확인하시기 바랍니다.

다음과 같은 두가지 방법을 사용하여 Red Hat 보안 에라타 업데이트를 받으실 수 있습니다:

  1. Red Hat Network에서 다운로드 받는 방법.

  2. Red Hat 에라타 웹사이트에서 다운로드 받는 방법.

3.1.1. Red Hat Network 사용하기

Red Hat Network를 사용하시면 대부분의 업데이트 과정이 자동화됩니다. 시스템에 필요한 RPM 패키지를 검색한 후 안전한 소스에서 패키지들을 다운로드 받습니다. 그 후 패키지가 제 3자에 의해 변경되지 않은 것을 확인하기 위해 RPM 서명을 검증 후 패키지를 업데이트 합니다. 패키지 설치는 즉시 시작될 수도 있고 정해진 시간에 시작되도록 계획하는 것도 가능합니다.

Red Hat Network를 통해 시스템을 업데이트하기 위해서는, 각 시스템마다 시스템 프로파일이 있어야 합니다. 시스템 프로파일에는 시스템에 대한 하드웨어와 소프트웨어 정보가 포함되어 있으며, 이 정보는 기밀로 보관되 어느 누구에게도 공개되지 않습니다. 이 프로파일은 각 시스템에 어떠한 에라타 업데이트를 적용할 것인가를 결정하는데 사용되며, 이 프로파일이 없이는 Red Hat Network는 해당 시스템이 업데이트가 필요한지 여부를 판단할 수 없습니다. 보안 에라타 (또는 다른 종류의 에라타)가 발표될 경우, Red Hat Network는 에라타에 대한 설명과 에라타가 영향을 끼치는 시스템의 목록을 함께 이메일로 보내드립니다. 업데이트를 신청하시려면, Red Hat 업데이트 에이전트를 사용하시거나 http://rhn.redhat.com 웹사이트를 통해 패키지 업데이트를 계획하실 수 있습니다.

힌트힌트
 

Red Hat Enterprise Linux에는 Red Hat Network 알림 통지 도구가 포함되어 있습니다. 이 애플릿은 Red Hat Enterprise Linux 시스템에 업데이트 가능한 패키지가 있을 경우 쉽게 알 수 있도록 보여주는 패널 아이콘 입니다. 이 애플릿에 대한 자세한 정보를 원하신다면, 다음 URL을 참조하시기 바랍니다: http://rhn.redhat.com/help/basic/applet.html

Red Hat Network를 사용하여 얻을 수 있는 혜택에 대한 보다 자세한 정보를 보시려면, http://www.redhat.com/docs/manuals/RHNetwork/에서 Red Hat Network Reference Guide를 참조하시거나 http://rhn.redhat.com 사이트를 방문하시기 바랍니다.

중요중요
 

보안 에라타를 설치하시기 전에 반드시 에라타 리포트에 포함된 특별한 지시 사항을 먼저 읽으신 후 지시 사항에 따르시기 바랍니다. 에라타 업데이트로 인한 변경 사항을 적용하는 방법에 일반적인 정보는 3.1.3 절을 참조하시기 바랍니다.

3.1.2. Red Hat 에라타 웹사이트 이용 방법

보안 에라타 리포트를 출시되면, Red Hat 에라타 웹사이트 http://www.redhat.com/apps/support/errata/에 발표됩니다. 이 페이지에서 시스템에 맞는 제품과 버전 번호를 선택해 주십시오. 그 후 페이지 상단에 위치한 security를 선택하시면 Red Hat Enterprise Linux 보안 에라타만 보실 수 있습니다. 고객 시스템에 사용된 패키지와 관련된 보안 에라타가 있다면, 보다 자세한 정보를 보기 위해 해당 에라타를 클릭하시기 바랍니다.

자세한 정보 페이지에는 보안 허점에 대한 정보와 함께 보안 상 문제점을 고치기 위한 패키지 업데이트 및 필요한 작업 실행 방법에 대한 지시 사항이 있습니다.

업데이트된 패키지(들)을 다운로드 받으시려면, 패키지 이름에 클릭하신 후 하드 드라이브에 저장하시기 바랍니다. /tmp/updates와 같이 새로운 디렉토리를 생성하신 후 다운로드 받은 모든 패키지를 그 디렉토리에 저장하시길 적극 권장합니다.

모든 Red Hat Enterprise Linux 패키지들은 Red Hat, Inc. GPG 키를 사용하여 서명되었습니다. Red Hat Enterprise Linux에 포함된 RPM 유틸리티는 RPM 패키지를 설치하기 전에 GPG 서명 검증을 시도합니다. 만일 Red Hat, Inc. GPG 키가 설치하지 않으셨다면, Red Hat Enterprise Linux 설치 CD-ROM과 같은 안전하고 정적인 위치로부터 GPG 키를 설치하시기 바랍니다.

CD-ROM이 /mnt/cdrom에 마운트 되었다고 가정하고, 키링(keyring)을 가져오기 위해 다음과 같은 명령을 사용하시기 바랍니다:

rpm --import /mnt/cdrom/RPM-GPG-KEY

RPM 검증을 위해 설치된 모든 키 목록을 보시려면, 다음 명령을 실행하십시오:

rpm -qa gpg-pubkey*

Red Hat, Inc. 키는 다음과 같이 출력됩니다:

gpg-pubkey-db42a60e-37ea5438

특정 키에 대한 자세한 정보를 보시려면, 다음 예시와 같이 rpm -qi 명령 다음에 이전 명령의 출력 결과를 함께 입력하시면 됩니다:

rpm -qi gpg-pubkey-db42a60e-37ea5438

RPM 파일들을 설치하시기 전에 반드시 파일의 서명을 검증하여 파일이 Red Hat, Inc.에서 출시한 패키지에서 변경되지 않았음을 확인하시기 바랍니다. 다운로드 받은 패키지들은 동시에 모두 검증하시려면, 다음 명령을 입력하십시오:

rpm -K /tmp/updates/*.rpm

각 패키지마다 GPG 키가 성공적으로 검색된다면, gpg OK라는 결과가 출력됩니다.

GPG 키 검색과 에라타 리포트와 관련된 모든 패키지를 다운로드 받으셨다면, 쉘 프롬프트에서 루트로 로그인 하신 후 패키지를 설치하시기 바랍니다.

다음 명령을 입력하여 대부분의 패키지를 안전하게 설치하실 수 있습니다 (커널 패키지 제외):

rpm -Uvh /tmp/updates/*.rpm

커널 패키지의 경우 다음 명령을 사용하시기 바랍니다:

rpm -ivh /tmp/updates/<kernel-package>

앞의 예시에서 <kernel-package> 부분을 커널 RPM의 이름으로 대체하시기 바랍니다.

새로운 커널을 사용하여 컴퓨터가 안전하게 재부팅한 후에는 다음 명령을 사용하여 이전 커널을 제거하셔도 됩니다:

rpm -e <old-kernel-package>

앞의 예시에서 <old-kernel-package> 부분을 이전 커널 RPM 이름으로 대체해 주십시오.

알림알림
 

이전 커널을 반드시 삭제하실 필요는 없습니다.

중요중요
 

보안 에라타를 설치하시기 전에 반드시 에라타 리포트에 포함된 특별한 지시 사항을 먼저 읽으신 후 지시 사항에 따르시기 바랍니다. 에라타 업데이트로 인한 변경 사항을 적용하는 방법에 일반적인 정보는 3.1.3 절을 참조하시기 바랍니다.

3.1.3. 변경 사항 적용하기

Red Hat Network 또는 Red Hat 에라타 웹사이트를 통해 보안 에라타를 다운로드 받고 설치하신 후, 이전 소프트웨어 사용을 중단하시고 새로운 소프트웨어를 사용하셔야 합니다. 업데이트된 소프트웨어의 종류에 따라서 이 방법이 달라집니다. 다음 목록은 일반 소프트웨어 종류와 패키지 업그레이드 후 업데이트된 버전을 사용하는 방법을 보여줍니다.

알림알림
 

일반적으로 시스템을 재부팅하시는 것이 최신 버전의 소프트웨어 패키지를 사용할 수 있는 가장 쉬운 방법입니다; 그러나 시스템 관리자가 시스템을 재부팅할 수 없는 경우도 있습니다.

응용 프로그램

사용자 공간 응용 프로그램이란 시스템 사용자가 시작할 수 있는 모든 프로그램을 의미합니다. 일반적으로 이러한 응용 프로그램은 사용자나 스크립트 또는 자동화 작업 유틸리티에 의해 시작되어 사용되며, 오랫동안 실행되지 않습니다.

이러한 사용자-공간 응용 프로그램이 업데이트되면, 시스템 상 해당 응용 프로그램의 인스턴스를 멈춘 후 프로그램을 다시 시작하여 업데이트된 버전을 사용하십시오.

커널

커널은 Red Hat Enterprise Linux 운영 체제의 핵심 소프트웨어 요소입니다. 커널은 메모리, 프로세서 및 주변 기기의 사용을 관리할 뿐만 아니라 모든 작업을 계획하고 관리합니다.

커널의 중심적인 역할 때문에, 컴퓨터를 멈추지 않고서는 커널을 재시작할 수 없습니다. 따라서 커널을 업데이트한 경우 시스템을 재부팅하지 않고서는 업데이트된 버전의 커널을 사용할 수 없습니다.

공유 라이브러리들

공유 라이브러리는 다수의 응용 프로그램과 서비스에 의해 사용되는 glibc와 같은 코드의 집합입니다. 공유 라이브러리를 사용하는 응용 프로그램은 일반적으로 초기화될 때 공유 코드를 읽어들입니다. 따라서 업데이트된 라이브러리를 사용하는 응용 프로그램은 모두 멈춘 후 다시 시작하셔야 합니다.

현재 실행 중인 응용 프로그램 중 특정 라이브러리에 연계된 프로그램을 알아보시려면, 다음 예시에서와 같이 lsof 명령을 사용하시기 바랍니다:

lsof /usr/lib/libwrap.so*

이 명령은 호스트 접근 제어에 사용되는

SysV 서비스

SysV 서비스는 부트 프로세스에서 시작되는 지속적인 서버 프로그램입니다. SysV 서비스의 예로서 sshd, vsftpd 및 xinetd가 있습니다.

이 프로그램들은 기계가 부팅된 이후에는 메모리에서 변경되지 않기 때문에, 패키지가 업그레이드된 후에는 각 업데이트된 SysV 서비스를 멈춘 후 다시 시작해야 합니다. 서비스 설정 도구를 사용하시거나 다음과 같이 쉘 프롬프트에서 루트로 로그인 하신 후 /sbin/service 명령을 입력하시면 됩니다:

/sbin/service <service-name> restart

앞의 예시에서 <service-name> 부분을 sshd와 같은 서비스 이름으로 대체하시기 바랍니다.

서비스 설정 도구에 대한 보다 자세한 정보를 원하신다면, Red Hat Enterprise Linux 시스템 관리 가이드에서 서비스 사용 제어 장을 참조하시기 바랍니다.

xinetd 서비스

xinetd 수퍼 서비스가 관리하는 서비스들은 오직 연결이 활성화되었을 때만 실행됩니다. xinetd가 관리하는 서비스들에는 Telnet, IMAP과 POP3 등이 있습니다.

새로운 요청이 들어올 때마다 이러한 서비스의 새로운 인스턴스가 xinetd에 의해 시작되기 때문에, 업그레이드 이후에 접속된 서비스는 업데이트된 소프트웨어가 처리합니다. 그러나 서비스가 접속된 상태에서 xinetd가 제어하는 서비스가 업그레이드되었다면, 이 서비스는 이전 버전 소프트웨어에 의해 서비스됩니다.

xinetd가 관리하는 서비스 중 특정 서비스의 이전 인스턴스를 종료하시려면, 서비스에 대한 패키지를 업그레이드하신 후 현재 진행 중인 모든 프로세스를 중지시켜야 합니다. 먼저 ps 명령을 사용하여 진행 중인 프로세스를 확인 후 kill이나 killall 명령을 사용하여 현재 진행중인 서비스 인스턴스를 중지시키면 됩니다.

예를 들어 보안 에라타 imap 패키지가 출시된 경우, 패키지를 업그레이드하신 후 쉘 프롬프트에 루트로 로그인하시고 다음 명령을 입력하시기 바랍니다:

ps -aux | grep imap

이 명령은 모든 활성 IMAP 세션을 보여줍니다. 이제 다음 명령을 사용하여 개별 세션을 종료시킬 수 있습니다:

kill -9 <PID>

앞의 예시에서 <PID> 부분을 IMAP 세션에 일치하는 프로세스 번호로 대체하시기 바랍니다.

모든 활성 IMAP 세션을 종료하시려면, 다음 명령을 입력하십시오:

killall imapd

xinetd와 관련된 일반적인 정보를 원하신다면, Red Hat Enterprise Linux 참조 가이드에서 TCP 랩퍼와 xinetd 장을 참조하시기 바랍니다.