Red Hat Training

A Red Hat training course is available for Red Hat Satellite

클라이언트 설정 가이드

Red Hat Network Satellite 5.4

Red Hat Network Satellite

엮음 1

초록

Red Hat Network Satellite 클라이언트 설정 가이드에 오신것을 환영합니다.

1장. 소개

이 문서는 RHN Satellite Server 및 RHN Proxy Server 사용자가 클라이언트 시스템을 보다 쉽게 설정하게 하기 위한 가이드입니다.
기본값으로 모든 Red Hat Network 클라이언트 어플리케이션은 중앙 Red Hat Network 서버와 통신하도록 설정되어 있습니다. 클라이언트를 중앙 서버 대신 RHN Satellite Server 또는 RHN Proxy Server로 연결할 경우, 여러 설정 사항을 변경해야 합니다. 한 두대의 시스템에서 클라이언트 설정을 변경하는 것은 비교적 간단합니다. 수백, 수천대의 시스템을 운영하는 대규모 엔터프라이즈 환경에서는 이 문서에서 설명하는 대량 재설정 방법을 사용하시면 도움이 될 것입니다.
대량 재설정 작업은 다소 복잡할 수 있으므로, 사용자는 Satellite나 Proxy 서버에 접속하는데 필요한 다양한 작업을 자동화하는 스크립트를 미리 작성해놓고 사용하시는 것이 좋습니다. 5장. RHN Bootstrap 사용 에서 보다 자세한 정보를 참조하시기 바랍니다. Red Hat은 이러한 설정 변경이 매우 유용하다고 믿기 때문에 첫 장에서 이러한 대량 재설정 작업을 차례대로 설명하고 있습니다. 조직에 해당하는 솔루션을 찾아 사용하시기 바랍니다.
대부분의 경우 이 문서에서 설명된 명령어를 그대로 사용 가능하지만, 사용자의 네트워크 설정에 따라 달라질 수 도 있습니다. 따라서 Red Hat은 이 명령어를 참조하셔서 개별 설정에 맞게 이용하실 것을 권장합니다.

참고

Unix 클라이언트 설정 정보는 RHN Satellite Server 참조 가이드Unix 지원 장에서 찾아보실 수 있습니다.

2장. 클라이언트 어플리케이션

대부분의 Red Hat Network의 엔터프라이즈 급 기능 (예, RHN Satellite 등록)을 이용하기 위해서는, 최신 클라이언트 어플리케이션을 설정하셔야 합니다. Red Hat Network에 클라이언트를 등록하기 이전에, 최신 어플리케이션을 가져오는 것은 쉽지 않으며, 특히 다수의 이전 시스템을 동시에 Red Hat Network로 업그레이드할 경우 더욱 그러합니다. 이 장에서는 이러한 문제를 해결할 수 있는 방법에 대하여 다루어 보겠습니다.

중요

Red Hat은 RHN Proxy Server 또는 RHN Satellite Server에 접속하는 사용자는 보안 접속을 위해 최신 업데이트된 Red Hat Enterprise Linux를 사용하시길 권장합니다.
클라이언트의 방화벽이 설정되어 있을 경우, Red Hat Network가 올바르게 작동하게 하기 위해 포트 80 및 443을 열어 두어야 합니다.

2.1. 최신 Red Hat Network 클라이언트 RPM 설치하기

Red Hat Network가 제공하는 엔터프라이즈 급 서비스를 제대로 사용하기 위해서는 Red Hat Enterprise Linux 5 (이전 Red Hat Enterprise Linux 버전에서의 up2date) 에 있는 Package Updater (pup), yum, 및 Red Hat Network Registration Client (rhn_register)가 필요합니다. RHN Proxy Server 또는 RHN Satellite Server를 사용하기 전에 클라이언트 시스템에 이를 먼저 설치하십시오.
RHN 클라이언트 소프트웨어를 업데이트하는 방법에는 여러가지가 있습니다. 한가지 방법은 모든 클라이언트가 접근 가능한 위치에 RPM을 저장하여 간단한 명령 하나로 패키지를 설치할 수 있도록 하는 방법입니다. 어떠한 방법을 선택하시든 yum, puprhn_register (이전 Red Hat Enterprise Linux 버전의 경우 up2date)를 직접 설치하실 필요가 없습니다. 이러한 클라이언트 도구는 RHN Satellite 또는 Proxy 환경에 문제없이 접속할 것입니다. 다음 부분은 "즉시 사용 가능"한 yum, pup, rhn_register (또는 up2date)는 최신 버전이 아니며 사용자 환경에서 작동하지 않는다는 가정 하에 설명합니다.
rhn_register를 설치 또는 사용한 후 Red Hat Enterprise Linux 5를 운영하는 시스템에서만 firstboot에 있는 RHN에 등록해야 함을 기억해 두십시오. Red Hat Enterprise Linux 3 및 4를 운영 중인 시스템은 Red Hat Update Agent에 내장된 등록 기능을 사용할 수 있습니다.
이 문서는 사용자가 네트워크 상에 최소한 한개의 RHN Satellite Server 그리고/또는 RHN Proxy Server를 설치하셨다는 가정하에 설명합니다. 다음에서는 RHN이 아직 작동하지 않는 시스템에서 시스템 관리자가 처음으로 yum, pup, rhn_register (또는 up2date)를 설치하는 방법을 간단하게 예를 들어 설명해 보겠습니다. 관리자는 클라이언트 시스템에서 필요한 yum, pup, rhn_register (또는 up2date) RPM을 /var/www/html/pub/ 디렉토리에 복사한 후 rpm -Uvh 명령을 이용하여 클라이언트 시스템에 간단하게 RPM을 설치합니다. 클라이언트에서 이 명령을 실행할 경우, 이 명령은 도메인명, 경로, RPM 버전이 올바르다는 가정 하에서 이러한 RPM을 클라이언트에 설치하게 됩니다 (알림: 이 명령은 인쇄 및 PDF 용도로 여러 행으로 분리되어 있으나 쉘 프롬프트에서는 한 행으로 입력하셔야 합니다):
rpm -Uvh
http://your_proxy_or_sat.your_domain.com/pub/rhn-setup-0.4.17-8.el5.i386.rpm
http://your_proxy_or_sat.your_domain.com/pub/yum-3.2.8-9.el5.i386.rpm
http://your_proxy_or_sat.your_domain.com/pub/pirut-1.3.28-13.3l5.noarch.rpm
아키텍처 (이 예시에서는 i386)는 시스템에 따라서 달라질 수 있습니다.

2.2. 클라이언트 어플리케이션 설정

모든 사용자가 반드시 조직 내에서 RHN Satellite Server나 RHN Proxy Server에 보안 접속해야하는 것은 아닙니다. 또한 모든 사용자가 사용자 정의 패키지마다 GPG 키를 서명할 필요가 없습니다. (이 두가지 사항에 대해서는 이후에 보다 자세하게 설명되어 있습니다.) RHN Satellite Server나 RHN Proxy Server를 사용하신다면 반드시 Red Hat Network 대신 RHN Satellite Server나 RHN Proxy Server를 사용하도록 Red Hat Update Agent (up2date)와 Red Hat Network Registration Client (rhn_register)를 재설정하셔야 합니다.

중요

설정 불가능할 지라도 up2date에 의해 사용되는 포트는 HTTP의 경우 80이고 S-HTTP (HTTPS)의 경우 443임에 유의하시기 바랍니다. 기본값으로 Red Hat Enterprise Linux 5 상의 yum은 SSL만을 사용하도록 되어 있습니다. 따라서 사용자 분들께서는 방화벽 설정시 포트 443을 통한 연결이 가능한지 확인하셔야 합니다. SSL을 사용하지 않으려면, /etc/sysconfig/rhn/up2date에서 serverURL 옵션의 프로토콜을 https에서 http로 바꾸시면 됩니다. 이와 마찬가지로 RHN의 Monitoring 기능과 Red Hat Network Monitoring Daemon를 필요로 하는 프로브를 사용하시려면, 클라이언트 시스템에서 포트 4545 (또는 sshd를 사용하는 경우 포트 22)를 통한 접속이 허용되어야 합니다.
기본적으로 rhn_registerup2date는 기본 Red Hat Network 서버를 말합니다. 사용자는 RHN Satellite Server 또는 RHN Proxy Server를 서버로 사용하도록 클라이언트 시스템을 재설정하셔야 합니다.
최신 Red Hat Update Agent 버전은 여러 RHN 서버를 사용할 수 있도록 설정 가능합니다. 따라서 일차 서버에 접속할 수 없을 경우 페일오버 보안 기능을 제공할 수 있습니다. 이 기능을 활성화하는 방법에 대한 내용은 2.2.4절. “서버 페일오버 구현 방법”에서 참조하시기 바랍니다.
The next sections describe different methods of configuring the client systems to access your RHN Satellite Server or RHN Proxy Server. To see how virtually all reconfiguration can be scripted, see 6장. 직접 설정 스크립트 작성하기 .

2.2.1. 활성키를 이용하여 등록하는 방법

Red Hat은 RHN Proxy Server 또는 RHN Satellite Server에 접속할 클라이언트 시스템을 등록하고 설정하는데 활성키를 사용할 것을 권장합니다. 활성키를 이용하여 시스템 등록, 인타이틀먼트, 서브스크립션 작업을 한번에 실행할 수 있습니다. 활성키 사용 방법은 RHN Satellite Server 참조 가이드의 "활성키" 부분을 참조하시기 바랍니다.
활성키를 이용한 등록 절차는 다음과 같은 네가지 단계로 나누어집니다:
  1. 활성키 생성
  2. 사용자 정의 GPG 키 가져오기
  3. RHN Proxy Server 또는 RHN Satellite Server의 /pub/ 디렉토리에서 SSL 인증서 RPM을 다운로드하여 설치하십시오. 이를 위해 다음 명령을 입력하시면 됩니다:
    rpm -Uvh http://your-satellite-FQDN/pub/rhn-org-trusted-ssl-cert-1.0-1.noarch.rpm
    
  4. 다음과 같은 명령을 이용하여 RHN Proxy Server나 RHN Satellite Server에 시스템을 등록하십시오:
     rhnreg_ks --activationkey mykey --serverUrl https://your-satellite-FQDN/XMLRPC 
다른 방법으로 다음 행을 포함하는 쉘 스크립트에서 위의 과정을 통합하여 사용할 수 있습니다 (알림: 이 명령은 인쇄 및 PDF 용도로 여러 행으로 분리되어 있으나 쉘 프롬프트에서는 한 행으로 입력하셔야 합니다).
wget -0 - http://your-satellite-FQDN/pub/bootstrap.sh | bash
&& rhnreg_ks --activation-key my_key --serverUrl
https://your-satellite-FQDN/XMLRPC
설치 시에 생성되어 RHN Satellite Server 및 RHN Proxy Server에서 모두 사용 가능한 부트스트랩 스크립트가 이러한 스크립트입니다. 이 스크립트와 이 스크립트를 생성하는 RHN Bootstrap에 대한 내용은 5장. RHN Bootstrap 사용 에서 보다 상세하게 설명하고 있습니다.

주의

Red Hat Enterprise Linux 2.1 이나 8.0 이전 버전 Red Hat Linux를 운영 중인 시스템에서는 활성키를 이용하여 rhn_register에서 up2date로 SSL 인증서를 옮기는데 문제가 있을 수 있습니다. 따라서 이러한 시스템에서는 SSL 인증서 정보를 수동으로 설정하셔야 합니다. 그 외 다른 설정 (예, 서버 URL)은 제대로 전송될 것입니다.

2.2.2. up2date --configure 옵션

Red Hat Enterprise Linux 3 및 4에 있는 Red Hat Update Agent는 다양한 요소를 설정할 수 있는 인터페이스를 제공합니다. 모든 설정 목록을 보시려면, up2date 메뉴얼 페이지 (명령행에서 man up2date 명령 사용)를 참조하십시오.
Red Hat Update Agent를 재설정하시려면, 루트로 로그인하여 다음 명령을 입력하십시오:
 up2date --configure 
재설정 가능한 다양한 설정을 보여주는 대화창이 나타날 것입니다. 일반 (General) 탭에서 사용할 Red Hat Network 서버 선택 (Select a Red Hat Network Server to use) 밑에 나타난 기본값을 RHN Satellite Server 또는 RHN Proxy Server의 FQDN (예, https://your_proxy_or_sat.your_domain.com/XMLRPC)으로 교체하십시오.
Red Hat Update Agent GUI 설정

그림 2.1. Red Hat Update Agent GUI 설정

RHN Satellite Server 또는 RHN Proxy Server의 도메인명을 올바르게 입력하였는지 확인해 주십시오. 잘못된 도메인명을 입력하거나 빈 칸으로 남겨둘 경우 up2date --configure 명령을 실행할 수 없게될 수 도 있습니다. 그러나 up2date 설정 파일을 수정하시면 이 문제를 해결할 수 있습니다. 보다 자세한 지시 사항은 2.2.3절. “설정 파일을 직접 업데이트하는 방법 ”에서 참조하시기 바랍니다.

주의

Red Hat Enterprise Linux 3 또는 4를 운영 중인 시스템은 Red Hat Update Agent에 등록 기능이 내장되어 있으므로, Red Hat Network Registration Client를 따로 설치하실 필요가 없습니다. Red Hat Enterprise Linux 5 상의 시스템은 up2date를 사용하지 않으며 시스템을 RHN 또는 Satellite에 등록하기 위해 rhn_register가 필요하며 패키지를 업데이트하기 위해 yumpup이 있어야 합니다.

2.2.3. 설정 파일을 직접 업데이트하는 방법

앞서 설명된 GUI 인터페이스 대신, 사용자는 어플리케이션 설정 파일을 수정하여 Red Hat Update Agent를 재설정할 수 도 있습니다.
클라이언트 시스템에서 Red Hat Update Agent가 RHN Proxy Server나 RHN Satellite Server에 연결하도록 설정하시려면, 루트 사용자로 로그인하신 후 /etc/sysconfig/rhn/up2date 설정 파일에서 serverURLnoSSLServerURL 설정값을 변경하십시오. 기본 Red Hat Network URL을 RHN Proxy Server 또는 RHN Satellite Server의 FQDN으로 교체하시면 됩니다. 예:
serverURL[comment]=Remote server URL
serverURL=https://your_primary.your_domain.com/XMLRPC

noSSLServerURL[comment]=Remote server URL without SSL
noSSLServerURL=http://your_primary.your_domain.com/XMLRPC

주의

/etc/sysconfig/rhn/up2date 파일에서 httpProxy 설정은 RHN Proxy Server가 아닙니다. 이 값은 클라이언트에 사용되는 부가 HTTP 프록시를 설정하는데 사용됩니다. RHN Proxy Server가 운영 중이라면, httpProxy 값을 빈칸으로 두셔야 합니다.

2.2.4. 서버 페일오버 구현 방법

up2date-4.2.38 버전 부터 다수의 RHN 서버에서 업데이트를 받도록 Red Hat Update Agent를 설정 가능합니다. 이 기능 덕분에 일차 RHN Proxy Server 또는 RHN Satellite Server가 오프라인 상태가 되었을 경우에도, 끊기지 않고 계속적으로 업데이트를 받을 수 있어 특히 유용합니다.
이 기능을 사용하시려면, 우선 이 기능을 지원하는 버전의 up2date가 실행 중인지 확인해 주십시오. 확인하신 후 루트 사용자로서 /etc/sysconfig/rhn/up2date 설정 파일에서 serverURLnoSSLServerURL에 2차 서버를 추가하시기 바랍니다. 다음과 같이 일차 서버 바로 다음에 세미콜론 (;)을 놓고, Proxy또는 Satellite의 FQDN을 첨가하시면 됩니다:
serverURL[comment]=Remote server URL
serverURL=https://your_primary.your_domain.com/XMLRPC; 
https://your_secondary.your_domain.com/XMLRPC;

noSSLServerURL[comment]=Remote server URL without SSL
noSSLServerURL=http://your_primary.your_domain.com/XMLRPC; 
https://your_secondary.your_domain.com/XMLRPC;
이곳에 지정된 순서대로 서버에 접속 시도할 것입니다. 원하시는 만큼 여러 개의 서버를 추가하실 수 있습니다. 중앙 RHN 서버도 추가하실 수 있지만, 클라이언트 시스템이 인터넷에 연결된 경우에만 가능합니다.

2.3. 패키지 업데이터 애플릿

Red Hat Enterprise Linux 5는 RHN 또는 Satellite에서 주기적으로 업데이트를 확인하기 위해 그래픽 데스크톱 패널에서 실행되는 프로그램 기능이 있으며 새로운 업데이트가 사용 가능할 때 사용자에게 통지하게 됩니다.
패키지 업데이터 애플릿

그림 2.2. 패키지 업데이터 애플릿

패키지 업데이터 애플릿은 데스크톱 패널의 알림 트레이에 위치하여 주기적으로 새로운 업데이트를 확인합니다. 또한 애플릿은 알림 아이콘을 클릭 후 다음과 같은 작업을 선택하여 애플릿에서 여러 패키지 관리 작업을 수행하게 합니다:
  • 새로 고침 - 새로운 업데이트에 대해 RHN 또는 Satellite 확인
  • 업데이트 보기 - 패키지 업데이터 어플리케이션을 시작하여 사용 가능한 업데이트를 자세하게 살펴볼 수 있으며 사양에 따라 업데이트를 설정할 수 있음
  • 업데이트 적용 - 모든 업데이트된 패키지를 다운로드 및 설치
  • 종료 - 애플릿 종료

2.4. Satellite를 이용한 Red Hat Network Alert Notification Tool 설정 방법

Red Hat Enterprise Linux 3 또는 4 데스크탑 패널에 있는 동그란 아이콘은 Red Hat Network Alert Notification Tool로서, RHN Satellite Server 상의 사용자 정의 채널에서 사용 가능한 업데이트를 확인하기 위해 Red Hat Enterprise Linux 3 또는 이후 버전을 실행하고 있는 시스템에서 설정할 수 있습니다. RHN Satellite Server가 이 기능을 지원하도록 설정되었는지 확인하시기 바랍니다. (RHN Proxy Server는 클라이언트나 서버를 변경하지 않고서도 이 애플릿을 지원합니다.) Red Hat Network Alert Notification Tool를 설정하는 방법은 다음과 같습니다:
  1. RHN Satellite Server가 3.4 버전 또는 그 이후 버전인지와 Satellite에 rhns-applet 패키지가 설치되어 있는지를 확인해 주십시오. RHN Satellite 소프트웨어 채널에서 3.4 이후 버전 패키지를 찾으실 수 있습니다.
  2. up2date 명령을 사용하거나 Red Hat Network 도구 소프트웨어 채널을 통해서 rhn-applet-actions 패키지를 다운로드 받으십시오. 모든 Red Hat Enterprise Linux 3 또는 그 이후 버전 시스템에서 이 패키지를 설치하여 Red Hat Network Alert Notification Tool를 통해 사용자 업데이트를 통지받도록 설정하십시오. 클라이언트 시스템은 관리 (Management) 또는 프로비저닝 (Provisioning) 서비스 레벨을 사용할 수 있는 인타이틀먼트가 있어야 합니다.
  3. Satellite 버전의 RHN 웹사이트에서 각 시스템에 대한 시스템 정보 페이지로 가신 후 RHN 애플릿 링크를 클릭하여 Red Hat Network Alert Notification Tool를 Satellite로 리다이렉트하십시오.
다음에 애플릿이 시작되면, 새 설정을 적용하고 RHN Satellite Server에 연결하여 업데이트를 받기 시작할 것입니다.

3장. SSL 기반 구조

Red Hat Network 사용자에게 보안은 매우 중요한 사항입니다. Red Hat Network 강점 중 한가지는 모든 요청을 SSL (Secure Socket Layer)상에서 처리 가능하다는 점입니다. 이러한 수준의 보안을 유지하기 위해서는, Red Hat Network 설치 사용자는 기반 구조 내에 사용자 정의 SSL 키와 인증서를 반드시 생성하셔야 합니다.
SSL 키와 인증서를 직접 생성하고 설치하는 작업은 쉽지 않습니다. 따라서 RHN Proxy Server와 RHN Satellite Server는 설치시 개인 CA (Certificate Authority)에 기반하여 SSL 키와 인증서를 생성할 수 있도록 도와줍니다. 또한 별개의 명령행 유틸리티인 RHN SSL Maintenance Tool도 이러한 용도로 사용 가능합니다. 생성한 키와 인증서는 관리하고 계신 기반 구조 내의 모든 시스템에 설치하셔야 합니다. 대부분의 경우 SSL 키와 인증서 설치 작업을 자동화할 수 있습니다. 이 장에서는 이러한 작업을 효율적으로 자동화하는 방법에 대하여 설명해 보겠습니다.
이 장에서는 SSL에 대하여 그다지 깊게 다루고 있지 않습니다. 그 이유는 RHN SSL Maintenance Tool가 이러한 PKI (public-key infrastructure: 공개키 기반 구조) 설정 및 관리에 필요한 복잡한 절차를 감추도록 설계되었기 때문입니다. 보다 자세한 정보를 알고 싶으시다면, 기타 다른 많은 참고 자료를 읽어보시기 바랍니다.

3.1. SSL에 대한 간단한 소개

SSL (Secure Sockets Layer)는 클라이언트와 서버 응용 프로그램 사이에 정보 전송을 안전하게 관리하기 위해 만들어진 프로토콜입니다. SSL은 클라이언트와 서버 사이에 주고 받는 통신을 공개/개인키 시스템을 사용하여 암호화합니다. 공개 인증서는 누구나 접근할 수 있지만, 개인키는 안전한 곳에 저장해야 합니다. SSL은 디지털 서명과 같이 개인키와 공개 인증서 쌍을 이용한 암호화 시스템으로서, 이 시스템을 통해 신뢰할 수 있는 접속이 이루어집니다.

참고

이 문서에서 반복해서 SSL 개인키와 공개 인증서에 대하여 설명하고 있습니다. 기술적인 면에서 이 두가지는 키쌍 (공개키와 개인키)으로 부를 수 있습니다. 그러나 일반적으로 SSL 키쌍에서 공개키를 SSL 공개 인증서라고 부르기도 합니다.
조직의 SSL 기반 구조는 일반적으로 다음과 같은 SSL 키와 인증서로 구성되어 있습니다:
  • CA (Certificate Authority) SSL 개인키와 공개 인증서 — 한 조직 당 한 쌍만 생성됩니다. 공개 인증서는 개인키를 이용하여 디지털 서명하여, 각 시스템에 배포됩니다.
  • 웹서버 SSL 개인키와 공개 인증서 — 한 어플리케이션 서버 당 한개씩 생성됩니다. 이 공개 인증서는 개인키와 CA SSL 개인키로 디지털 서명됩니다. 종종 웹서버의 키를 한 쌍(set)이라고 부르기도 하는데, 그 이유는 중개 SSL 인증서 요청이 생성되기 때문입니다. 이 인증서 요청이 어디에 사용되는지에 대한 내용은 이 장에서 별로 중요하지 않으므로, 깊게 설명하지 않겠습니다. 세가지 (개인키, 공개 인증서 및 인증서 요청)는 모두 RHN 서버에 설치됩니다.
예를 들어 설명해보겠습니다: 사용자에게 한개의 RHN Satellite Server와 5개의 RHN Proxy Server가 있다면, 한 쌍의 CA SSL 키쌍과 6개의 웹서버 SSL 키쌍을 생성하게 됩니다. CA SSL 공개 인증서는 모든 시스템에 배포되어, 클라이언트가 각 업스트림 서버에 접속할때 사용됩니다. 각 서버는 고유의 SSL 키쌍을 가지고 있습니다. 이 키쌍은 서버의 SSL 키쌍과 CA SSL 비밀키를 함께 사용하여 생성된 것으로 서버의 호스트명에 결합되어 있습니다. 이를 통해 웹서버의 SSL 공개 인증서와 CA SSL 키쌍 및 서버의 개인키 사이에 디지털로 인증 가능한 통신이 성립됩니다. 웹서버의 키쌍은 다른 웹서버와 공유할 수 없습니다.

중요

이 시스템에서 가장 중요한 부분은 CA SSL 키쌍입니다. 이 개인키와 공개 인증서를 통해서 관리자는 웹서버의 SSL 키쌍을 재생성할 수 있습니다. 따라서 이 CA SSL 키쌍을 안전하게 보관하셔야 합니다. 전체 RHN 서버 기반 구조 설정을 마친 후 운영을 시작한 후에는, 설치 프로그램 그리고/또는 이 도구가 생성한 SSL 빌드 디렉토리를 별개의 매체에 안전하게 아카이브 저장하신 후, CA 암호를 적고 이 암호와 매체를 안전한 곳에 보관하시기 바랍니다.

3.2. RHN SSL Maintenance Tool

Red Hat Network는 보안 기반 구조를 보다 쉽게 관리할 수 있도록 도와주는 명령행 도구인 RHN SSL Maintenance Tool를 제공합니다. rhn-ssl-tool이라고도 부르는 이 도구는 rhns-certs-tools 패키지에 포함되어 있습니다. 이 패키지는 최신 RHN Proxy Server와 RHN Satellite Server의 소프트웨어 채널에서 (또한 RHN Satellite Server ISO에서도) 찾으실 수 있습니다. RHN SSL Maintenance Tool를 이용하여 웹서버 SSL 키 세트 (종종 키쌍으로도 부름) 및 CA SSL 키쌍을 생성할 수 있습니다.
이 도구는 빌드에만 사용되는 도구로서, 필요한 SSL 키와 인증서를 모두 생성합니다. 또한 파일을 RPM 형식으로 패키지하여 클라이언트 시스템에 보다 빠르게 배포할 수 있게 해줍니다. 그러나 이 파일을 설치하지는 않습니다. 설치 작업은 관리자의 몫이며, 대부분 경우 RHN Satellite Server에 의해 설치가 자동으로 수행되는 경우가 많습니다.

참고

rhn-ssl-tool을 포함한 rhns-certs-tools 패키지는 현 Red Hat Enterprise Linux 시스템에서 별문제 없이 설치하고 실행 가능합니다. 이 도구는 관리자 분들께서 자신의 워크스테이션이나 RHN 서버가 아닌 다른 시스템에서 SSL 기반 구조를 손쉽게 관리할 수 있도록 도와주는 도구입니다.
다음은 이 도구가 필요한 경우입니다:
  • CA 공개 인증서를 업데이트할 경우 - 매우 드문 예입니다.
  • 중앙 RHN 서버를 최상위 서버로 연결하는 3.6이나 이후 버전 RHN Proxy Server를 설치하는 경우 - CA SSL 키와 인증서는 사용자 조직에만 알려진 비밀이므로 이 호스팅 서비스 (중앙 RHN 서버)는 CA SSL 키와 인증서를 보관하는 리포지터리가 될 수 없습니다.
  • 이전에 SSL을 사용하지 않았던 RHN 기반 구조에 SSL을 사용하도록 재설정할 경우
  • RHN 기반 구조에 3.6 이전 버전 RHN Proxy Server를 추가할 경우
  • RHN 기반 구조에 여러개의 RHN Satellite Server를 추가할 경우 - 이러한 작업에 대한 정보는 Red Hat에 문의하시기 바랍니다.
다음은 이 도구가 필요하지 않은 경우입니다:
  • RHN Satellite Server 설치시 - 모든 SSL 설정은 설치 과정에서 설정됩니다. 또한 SSL 키와 인증서는 자동으로 빌드되어 설치됩니다.
  • 3.6 이후 버전 RHN Satellite Server를 최상위 서비스로 연결하는 3.6 이후 버전 RHN Proxy Server 설치시 - RHN Satellite Server는 설정하는데 필요한 모든 SSL 정보를 담고 있으므로, RHN Proxy Server의 SSL키와 인증서를 빌드하고 설치해줍니다.
RHN Satellite Server 및 RHN Proxy Server 설치시 CA SSL 공개 인증서가 각 서버의 /pub 디렉토리에 설치되는지 확인하시기 바랍니다. 이 공개 인증서는 클라이언트 시스템을 RHN 서버에 연결할 때 사용됩니다. 보다 상세한 정보는 3.3절. “CA SSL 공개 인증서를 클라이언트에 설치하는 방법”에서 참조하시기 바랍니다.
한마디로 요약하면, 사용자 조직의 RHN 기반 구조에서 최신 버전 RHN Satellite Server를 최상위 서비스로 사용할 경우에는 이 도구를 사용할 필요가 거의 없습니다. 그렇지 않을 경우, 이 도구 사용법을 익혀두시는 것이 좋습니다.

3.2.1. SSL 생성 정보

RHN SSL Maintenance Tool를 사용함으로서 생기는 가장 큰 이점으로 보안성(security), 유연성(flexibility), 이식성(portability) 세가지를 들 수 있습니다. 보안성이란 각 RHN 서버 당 별개의 웹서버 SSL 키와 인증서를 생성하여, 조직에서 생성한 CA SSL 키쌍으로 서명하는 것을 의미합니다. 유연성이란 rhns-certs-tools 패키지가 설치된 시스템에서는 어디서는 작동하는 도구의 특징을 말합니다. 이식성이란 어디든 저장 가능하며 필요할때마다 설치 가능한 빌드 구조를 의미합니다.
이전에도 언급했듯이 만일 기반 구조의 최상위 RHN 서버가 가장 최신 RHN Satellite Server라면, 아카이브에서 /root 디렉토리로 ssl-build 트리를 복구하신 후 RHN Satellite Server 웹사이트에서 제공한 설정 도구를 사용하시면 됩니다.
RHN SSL Maintenance Tool를 최대한 활용하기 위해서는 다음 최상위 작업을 다음과 같은 순서로 완료하시기 바랍니다. 나머지 부분에서 필요한 정보를 참조하시기 바랍니다:
  1. 조직 내 RHN Satellite Server 또는 RHN Proxy Server 혹은 다른 시스템에 rhns-certs-tools 패키지를 설치하십시오.
  2. 조직을 위한 CA SSL 키쌍을 생성 후 모든 클라이언트 시스템에 결과 RPM (공개 인증서)를 설치하십시오.
  3. 각 Proxy와 Satellite에서 사용할 웹서버 SSL 키쌍을 생성하고, 생성된 RPM을 RHN 서버에 설치하십시오. 그 후 다음과 같이 httpd 서비스를 재시작하십시오:
     /sbin/service httpd restart 
  4. 일차 빌드 디렉토리와 모든 하부 디렉토리 및 파일로 구성된 SSL 빌드 트리를 플로피 디스크와 같은 이동 매체에 아카이브 저장하십시오.
  5. 아카이브를 확인 후 Proxy나 Satellite 설치 가이드의 추가 요건 장에서 설명된 백업과 같은 안전한 곳에 아카이브를 저장하시기 바랍니다.
  6. 향후 사용을 위해서 CA 암호를 안전한 곳에 기록해 두십시오.
  7. 전체 RHN 기반 구조가 제대로 설정된 후에는 보안상 이유로 빌드 시스템에서 빌드 트리를 삭제하시기 바랍니다.
  8. 추가 웹서버 SSL 키쌍이 필요하다면, RHN SSL Maintenance Tool를 실행 중인 시스템에서 빌드 트리를 복구하신 후 3번에서 7번까지 단계를 반복하시면 됩니다.

3.2.2. RHN SSL Maintenance Tool 옵션

RHN SSL Maintenance Tool은 CA SSL 키쌍을 생성하고 서버 SSL 인증서와 키를 관리하는데 필요한 수많은 명령행 옵션을 제공합니다. 도움말 목록을 보시려면 다음 세가지 명령행 옵션을 이용하시면 됩니다: rhn-ssl-tool --help (일반 도움말), rhn-ssl-tool --gen-ca --help (CA 도움말), and rhn-ssl-tool --gen-server --help (웹서버 도움말). rhn-ssl-tool의 맨페이지 man rhn-ssl-tool 또한 매우 상세한 정보가 들어있으므로 도움이 되실 것입니다.
아래의 두가지 표에서는 CA와 웹서버 SSL 키쌍 생성 관련 작업 별로 옵션을 구분하여 설명하고 있습니다.
다음에 나온 옵션은 반드시 --gen-ca 인수 다음에 와야 합니다:

표 3.1. SSL CA (Certificate Authority) 옵션 (rhn-ssl-tool --gen-ca --help)

옵션 설명
--gen-ca CA (Certificate Authority) 키 쌍과 공개 RPM을 생성합니다. 이 옵션은 이 표에서 나온 나머지 옵션들과 함께 입력해야 합니다.
-h, --help CA를 생성하고 관리하는데 필요한 기본 옵션 목록을 보여주는 도움말 화면을 출력합니다.
-f, --force 새 CA 개인키 그리고/또는 공개 인증서를 강제 생성합니다.
-p=, --password=PASSWORD CA 암호. 암호가 없는 경우 암호를 입력하도록 요청할 것입니다. 암호를 안전하게 보관하시기 바랍니다.
-d=, --dir=BUILD_DIRECTORY 대부분 명령에서 필요한 옵션 - 인증서와 RPM을 빌드할 디렉토리로서, 기본값은 ./ssl-build 입니다.
--ca-key=FILENAME CA 개인키 파일명. 기본 파일명은 RHN-ORG-PRIVATE-SSL-KEY 입니다.
--ca-cert=FILENAME CA 공개 인증서 파일명. 기본 파일명은 RHN-ORG-TRUSTED-SSL-CERT 입니다.
--cert-expiration=CA_CERT_EXPIRE 공개 CA 인증서의 만료 날짜. 기본값은 한세기가 넘어가지 이전 하루 전날까지 이거나 또는 01-18-2038 입니다.
--set-country=COUNTRY_CODE 두자리 국가 코드. 기본은 US 입니다.
--set-state=STATE_OR_PROVINCE CA의 주나 지방명. 기본값은 '' 입니다.
--set-city=CITY_OR_LOCALITY 도시명. 기본값은 '' 입니다.
--set-org=ORGANIZATION 회사나 조직명 (예, Red Hat) 기본값은 Example Corp. Inc. 입니다.
--set-org-unit=SET_ORG_UNIT 조직내 부서명을 설정합니다. 기본값은 '' 입니다.
--set-common-name=HOSTNAME 일반적으로 CA에 사용되지 않는 옵션입니다. - 호스트명
--set-email=EMAIL 일반적으로 CA에 사용되지 않는 옵션입니다. - 이메일 주소.
--rpm-packager=PACKAGER 생성된 RPM의 패키지 만든이. 예 "RHN Admin (rhn-admin@example.com)."
--rpm-vendor=VENDOR 생성된 RPM 공급자, 예 "IS/IT Example Corp."
-v, --verbose 자세한 메시지 출력. 누적식; "v" 수를 더할 수록 더욱 자세한 메시지가 출력됩니다.
--ca-cert-rpm=CA_CERT_RPM 이 옵션값은 거의 변경되지 않습니다 - CA 인증서를 포함한 RPM 이름 (filename-version-release.noarch.rpm이 아닌 기본 파일이름).
--key-only 거의 사용하지 않는 옵션 - CA 개인키만 생성합니다. 보다 상세한 정보는 --gen-ca --key-only --help 명령을 참조하세요.
--cert-only 거의 사용하지 않는 옵션 - CA 공개 인증서만 생성합니다. 보다 상세한 정보는 --gen-ca --cert-only --help 명령을 참조하세요.
--rpm-only 거의 사용하지 않는 옵션 - 설치할 RPM만 생성합니다.보다 상세한 정보는 --gen-ca --rpm-only --help 명령을 참조하세요.
--no-rpm 거의 사용하지 않는 옵션 - RPM 생성을 제외한 모든 CA 관련 작업을 실행합니다.
다음에 나온 옵션은 반드시 --gen-server 인수 다음에 와야 합니다:

표 3.2. SSL 웹서버 옵션 (rhn-ssl-tool --gen-server --help)

옵션 설명
--gen-server 웹서버의 SSL 키쌍, RPM, tar 아카이브를 생성합니다. 이 옵션은 반드시 이 표에 나온 나머지 옵션 중 하나와 함께 사용되어야 합니다.
-h, --help 서버 키쌍을 생성하고 관리하는데 필요한 기본 옵션 목록을 보여주는 도움말 화면 출력합니다.
-p=, --password=PASSWORD CA 암호. 암호가 없는 경우 암호를 입력하도록 요청할 것입니다. 암호를 안전하게 보관하시기 바랍니다.
-d=, --dir=BUILD_DIRECTORY 대부분 명령에서 필요한 옵션 - 인증서와 RPM을 빌드할 디렉토리로서, 기본값은 ./ssl-build 입니다.
--server-key=FILENAME 웹서버의 SSL 개인키 파일명으로서, 기본 파일명은 server.key 입니다.
--server-cert-req=FILENAME 웹서버의 SSL 인증서 요청 파일명으로서, 기본 파일명은 server.csr 입니다.
--server-cert=FILENAME 웹서버의 SSL 인증서 파일명으로서 기본 파일명은 server.crt 입니다.
--startdate=YYMMDDHHMMSSZ 서버 인증서 유효기간 시작 날짜. 다음과 같은 형식으로 입력 가능합니다: 년, 월, 날짜, 시간, 분, 초 (각 2글자씩). Z은 Zulu 줄임말로서 필수 항목입니다. 기본값은 생성 일주일 전날 입니다.
--cert-expiration=SERVER_CERT_EXPIRE 서버 인증서의 만료 날짜. 기본값은 한세기가 넘어가지 이전 하루 전날까지 이거나 또는 01-18-2038 입니다.
--set-country=COUNTRY_CODE 두자리 국가 코드. 기본은 US 입니다.
--set-state=STATE_OR_PROVINCE 주나 지방명. 기본값은 North Carolina 입니다.
--set-city=CITY_OR_LOCALITY 도시나 지역명. 기본은 Raleigh 입니다.
--set-org=ORGANIZATION 회사나 조직명 (예, Red Hat) 기본값은 Example Corp. Inc. 입니다.
--set-org-unit=SET_ORG_UNIT 조직내 부서명 (예, RHN)을 설정합니다. 기본값은 unit 입니다.
--set-hostname=HOSTNAME 키를 받은 RHN 서버의 호스트명. 기본 호스트명은 동적으로 설정됩니다.
--set-email=EMAIL 인증서 관리자 이메일 주소. 기본값은 admin@example.corp 입니다.
--rpm-packager=PACKAGER 생성된 RPM의 패키지 만든이. 예 "RHN Admin (rhn-admin@example.com)."
--rpm-vendor=VENDOR 생성된 RPM 공급자, 예 "IS/IT Example Corp."
-v, --verbose 자세한 메시지 출력. 누적식; "v" 수를 더할 수록 더욱 자세한 메시지가 출력됩니다.
--key-only 거의 사용하지 않는 옵션 - 서버 개인키만 생성합니다. 보다 상세한 정보는 --gen-server --key-only --help 명령을 참조하세요.
--cert-req-only 거의 사용하지 않는 옵션 - 서버 인증서만 생성합니다. 보다 상세한 정보는 --gen-server --cert-req-only --help 명령을 참조하세요.
--cert-only 거의 사용하지 않는 옵션 - 서버 인증서만 생성합니다. 보다 상세한 정보는 --gen-server --cert-only --help 명령을 참조하세요.
--rpm-only 거의 사용하지 않는 옵션 - 설치할 RPM만 생성합니다.보다 상세한 정보는 --gen-server --rpm-only --help 명령을 참조하세요.
--no-rpm 거의 사용하지 않는 옵션 - RPM 생성을 제외한 모든 서버 관련 작업을 실행합니다.
--server-rpm=SERVER_RPM 이 옵션값은 거의 변경되지 않습니다 - 웹서버의 SSL 키쌍을 포함한 RPM 이름 (filename-version-release.noarch.rpm이 아닌 기본 파일이름).
--server-tar=SERVER_TAR 이 옵션값은 거의 변경되지 않습니다 - 웹서버의 SSL 키쌍과 CA 공개 인증서의 .tar 아카이브 파일명으로서 호스팅 RHN Proxy Server 설치시에만 사용됩니다 (파일명-버전-릴리즈.tar 가 아닌 기본 파일명만을 일컫습니다).

3.2.3. CA SSL 키쌍 생성 방법

웹서버를 위한 SSL 키쌍을 생성하기 전에, CA SSL 키쌍을 먼저 생성하셔야 합니다. CA SSL 공개 인증서는 Satellite 또는 Proxy의 클라이언트 시스템에 배포됩니다. RHN SSL Maintenance Tool를 이용하여 필요한 경우 CA SSL 키쌍을 생성하여 이후 RHN 서버에 계속적으로 설치 사용할 수 있습니다.
빌드 과정을 거치면서 클라이언트에 배포할 키쌍과 공개 RPM이 자동으로 생성됩니다. 모든 CA 요소는 명령행에서 지정된 빌드 디렉토리 (일반적으로 /root/ssl-build, 또는 이전 버전 Satellite나 Proxy의 경우 /etc/sysconfig/rhn/ssl 디렉토리)에 저장됩니다. CA SSL 키쌍을 생성하기 위해서는, 다음과 같은 명령을 입력하십시오:
rhn-ssl-tool --gen-ca --password=MY_CA_PASSWORD --dir="/root/ssl-build" \ 
--set-state="North	Carolina" --set-city="Raleigh" --set-org="Example Inc." \
--set-org-unit="SSL CA Unit"
앞의 예시값을 조직에 맞는 적절한 값으로 교체하십시오. 이 명령을 입력하시면 다음과 같은 관련 파일들이 지정된 빌드 디렉토리에 저장될 것입니다:
  • RHN-ORG-PRIVATE-SSL-KEY — CA SSL 개인키
  • RHN-ORG-TRUSTED-SSL-CERT — CA SSL 공개 인증서
  • rhn-org-trusted-ssl-cert-VER-REL.noarch.rpm — 클라이언트 시스템 배포를 위해 준비된 RPM 입니다. 이 RPM은 CA SSL 공개 인증서를 포함하고 있으며 이 인증서를 다음 디렉토리에 설치합니다: /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT
  • rhn-ca-openssl.cnf — SSL CA 설정 파일
  • latest.txt — 항상 가장 최신 버전의 관련 파일 목록을 보여줍니다.
마치셨으면 이제 클라이언트 시스템에 RPM을 배포할 준비가 되셨습니다. 3.3절. “CA SSL 공개 인증서를 클라이언트에 설치하는 방법”에서 참조하시기 바랍니다.

3.2.4. 웹서버 SSL 키쌍 생성 방법

이미 CA SSL 키쌍을 생성한 경우에도, 웹 서버 SSL 키쌍을 보다 자주 생성해야 할 것입니다. 특히 Proxy나 Satellite가 한 개 이상일 경우 더욱 그러합니다. --set-hostname 옵션은 각 서버마다 다르다는 점을 기억해두십시오. 즉, 각 RHN 서버 호스트명마다 별개의 SSL 키 쌍과 인증서를 생성하여 설치하셔야 합니다.
서버 인증서 빌드 과정은 CA SSL 키쌍 생성 절차와 유사하지만, 다음과 같은 한가지 차이점이 있습니다: /root/ssl-build/MACHINE_NAME과 같이 빌드 시스템의 장치 이름을 갖는 빌드 디렉토리의 하부 디렉토리에 모든 서버 구성 요소가 저장됩니다. 서버 인증서를 생성하려면 다음과 같은 명령을 입력하십시오:
rhn-ssl-tool --gen-server --password=MY_CA_PASSWORD --dir="/root/ssl-build" \ 
--set-state="North	Carolina" --set-city="Raleigh" --set-org="Example	Inc." \
--set-org-unit="IS/IT" --set-email="admin@example.com" \
--set-hostname="rhnbox1.example.com
앞의 예시 값을 조직에 해당하는 적절한 값으로 교체하십시오. 이 명령을 입력하시면, 빌드 디렉토리의 장치 이름으로 된 하부 디렉토리에 다음과 같은 관련 파일이 나타나게 됩니다:
  • server.key — 웹서버의 SSL 개인 서버키
  • server.csr — 웹서버의 SSL 인증 요청
  • server.crt — 웹서버의 SSL 공개 인증서
  • rhn-org-httpd-ssl-key-pair-MACHINE_NAME-VER-REL.noarch.rpm — RPM 서버 배포를 위해 준비된 RPM 입니다. 관련 src.rpm 파일 또한 생성됩니다. 이 RPM은 위 세가지 파일을 포함하며, 다음과 같은 위치에 이 파일들을 설치할 것입니다:
    • /etc/httpd/conf/ssl.key/server.key
    • /etc/httpd/conf/ssl.csr/server.csr
    • /etc/httpd/conf/ssl.crt/server.crt
  • rhn-server-openssl.cnf — 웹서버의 SSL 설정 파일
  • latest.txt — 항상 가장 최신 버전의 관련 파일 목록을 보여줍니다.
마치셨으면 이제 해당 RHN 서버에 RPM을 배포하고 설치할 준비가 되셨습니다. 설치를 마치면 다음과 같이 httpd 서비스를 재시작하십시오:
 /sbin/service httpd restart 

3.3. CA SSL 공개 인증서를 클라이언트에 설치하는 방법

RHN Proxy Server와 RHN Satellite Server 설치 과정은 자동으로 CA SSL 공개 인증서와 RPM을 생성함으로서 클라이언트 설치를 비교적 쉽게 해줍니다. 이 설치 과정을 통해 RHN 서버의 /var/www/html/pub/ 디렉토리에 이 공개 인증서와 RPM을 복사하여 공개 사용 가능하게 합니다.
웹브라우저에서 http://proxy-or-sat.example.com/pub/ 주소를 치시면 이 디렉토리 내용을 쉽게 보실 수 있습니다.
이 디렉토리에 저장된 CA SSL 공개 인증서는 다음과 같이 wget 또는 curl 명령을 사용하여 클라이언트 시스템에 다운로드할 수 있습니다:
curl -O	http://proxy-or-sat.example.com/pub/RHN-ORG-TRUSTED-SSL-CERT
wget http://proxy-or-sat.example.com/pub/RHN-ORG-TRUSTED-SSL-CERT
또는 CA SSL 공개 인증서 RPM이 /pub 디렉토리에 위치한 경우에는 클라이언트 시스템에서 바로 설치 가능합니다:
rpm -Uvh \
http://proxy-or-sat.example.com/pub/rhn-org-trusted-ssl-cert-VER-REL.noarch.rpm
이 명령을 실행하기 이전에 인증서나 RPM의 실제 이름이 맞는지 확인하시기 바랍니다.

3.4. 설정 클라이언트 시스템

RPM이나 원시 인증서 (raw certificate)가 클라이언트 시스템에 설치된 후에, 시스템 관리자는 새 CA SSL 공개 인증서 파일을 사용하고 적절한 RHN Proxy Server나 RHN Satellite Server에 연결하기 위해 Red Hat Update AgentRed Hat Network Registration Client의 설정 파일을 변경하셔야 합니다. CA SSL 공개 인증서는 일반적으로 /usr/share/rhn 디렉토리에 저장됩니다.
RHN Proxy Server와 RHN Satellite Server에는 모두 RHN Bootstrap 기본으로 설치되어 있으므로, 클라이언트 시스템을 등록하고 설정하는 절차가 매우 간단합니다. 보다 상세한 정보는 5장. RHN Bootstrap 사용 에서 참조하시기 바랍니다.

4장. 사용자 정의 GPG 키 가져오기

사용자 정의 RPM을 개발하여 안전하게 배포하시려면, 모든 사용자 정의 RPM을 GPG (GNU Privacy Guard)를 사용하여 서명하기를 적극 권장합니다. GPG 키를 생성하는 방법과 GPG 서명된 패키지를 개발하는 방법은 Red Hat Network 채널 관리 가이드에서 설명하고 있습니다.
패키지 서명을 마치면, 이 RPM을 가져오기하는 모든 시스템에 공개키를 추가하셔야 합니다. 이 작업은 두가지 단계를 거쳐야 합니다. 우선 클라이언트가 공개키를 받을 수 있도록, 공개키를 중앙 서버에 보관해야 합니다. 그 후 각 시스템의 로컬 GPG 키링에 이 키를 추가하셔야 합니다.
첫번째 단계는 RHN 클라이언트 어플리케이션을 추가하는데 권장되는 방법인 웹사이트를 이용한 방법을 사용하시면 됩니다. (2.1절. “최신 Red Hat Network 클라이언트 RPM 설치하기”참조). 웹사이트를 이용하시려면, 웹 서버에 공개 디렉토리를 생성하신 후 GPG 공개 서명을 그 디렉토리에 저장하십시오:
cp /some/path/YOUR-RPM-GPG-KEY /var/www/html/pub/
그 후 클라이언트 시스템에서 Wget을 이용하여 이 키를 다운로드 받을 수 있습니다:
wget -O- -q http://your_proxy_or_sat.your_domain.com/pub/YOUR-RPM-GPG-KEY
-O- 옵션을 사용하면 결과가 표준 출력으로 나타나며, -q 옵션은 Wget가 정숙 모드 (quiet mode)로 실행되도록 설정합니다. 여기서 YOUR-RPM-GPG-KEY 변수를 사용자의 키 파일명으로 바꾸시는 것을 잊지마십시오.
클라이언트 파일 시스템에서 키를 이용할 준비가 되었다면, 이 키를 로컬 GPG 키링에 가져오기하십시오. 각 운영 체제에 따라서 다른 방법을 사용하셔야 합니다.
Red Hat Enterprise Linux 3 또는 이후 버전에서는 다음 명령을 사용하십시오:
rpm --import /path/to/YOUR-RPM-GPG-KEY
Red Hat Enterprise Linux 2.1에서는 다음 명령을 사용하십시오:
gpg $(up2date --gpg-flags) --import /path/to/YOUR-RPM-GPG-KEY
GPG 키가 성공적으로 클라이언트에 추가되면, 시스템은 해당 키로 서명된 사용자 정의 RPM을 확인할 수 있습니다.

5장. RHN Bootstrap 사용

Red Hat Network에서는 이전 장에서 설명된 수동 설정을 대부분 자동화할 수 있는 도구인 RHN Bootstrap을 제공합니다. 이 도구는 RHN Satellite Server 설치 프로그램에서 중요한 역할을 하며, 설치 시 부트스트랩 스크립트를 생성할 수 있게 합니다.
RHN Proxy Server 사용자 및 업데이트된 Satellite 설정을 갖춘 사용자는 독자적으로 사용 가능한 부트스트랩 도구가 필요합니다. /usr/bin/rhn-bootstrap 명령으로 실행되는 RHN Bootstrap은 이러한 용도로 사용되며 RHN Satellite Server 및 RHN Proxy Server에서 기본으로 설치됩니다.
이 도구가 생성하는 스크립트를 올바르게 이용할 경우, 각 클라이언트 시스템에서 다음과 같은 작업을 수행 가능합니다:
  • 클라이언트 애플리케이션을 RHN Proxy 또는 Satellite로 리다이렉트하기
  • 사용자 정의 GPG 키 가져오기
  • SSL 인증서 설치
  • 활성키를 사용하여 RHN 및 특정 시스템 그룹과 채널에 등록
  • 다양한 설치 이후 작업 실행 가능 (예: 패키지 업데이트, 재부팅, RHN 설정 변경 등)
하지만, 사용자는 설정 시 스크립트를 사용함에 있어서 본질적인 위험 요소가 있음에 유의하셔야 합니다. SSL 인증서와 같은 보안 도구는 스트립트 자체로 설치됩니다; 따라서 이는 시스템 상에 존재하지 않으며 여러 트랜잭션 처리 시 사용될 수 없습니다. 이로 인하여 제 3자가 Satellite인 것처럼 위장하고 잘못된 자료를 전송할 가능성이 있습니다. 그러나 모든 Satellite와 클라이언트 시스템은 사용자 방화벽 뒤에서 운영되며 외부 트래픽을 제한하므로 이러한 위험은 줄어듭니다. 등록 절차는 SSL을 통해 이루어지므로 시스템이 보호됩니다.
부트스트랩 스크립트 bootstrap.sh 파일은 RHN 서버의 /var/www/html/pub/bootstrap/ 디렉토리에 자동으로 저장됩니다. 이 위치에서 다운로드받아 클라이언트 시스템에서 실행할 수 있습니다. 다음 부분에서 설명하듯이 일부 준비 과정 및 생성 후 편집 과정을 거치셔야 합니다. 도구 옵션 목록은 5.4절. “RHN Bootstrap 옵션 ”에서 참조하시기 바랍니다. 부록 A. 부트스트랩 스크립트 예시 에서 예시 스크립트를 보실 수 있습니다.

5.1. 준비 과정

RHN Bootstrap (rhn-bootstrap)이 클라이언트 시스템을 적절히 설정하기 위해서는 Red Hat Network 하부 구조의 다른 요소가 스크립트 생성하기 전에 미리 준비되어 있어야 합니다. 다음 목록에서는 권장되는 기초 준비 단계에 대해 알려드립니다:
  • 스크립트에 의해 호출될 활성키를 생성하십시오. 활성키를 이용하여 Red Hat Enterprise Linux 시스템을 등록하고, RHN 서비스 레벨 인타이틀먼트를 할당하면 특정 채널이나 시스템 그룹에 등록하는 작업을 한번에 수행할 수 있습니다. 활성키를 사용하시려면 관리 (Management) 인타이틀먼트가 있어야 하며, 여러 활성키를 한번에 포함하려면 프로비저닝 (Provisioning) 인타이틀먼트가 있어야 합니다. RHN 웹사이트 (Proxy의 중앙 RHN 서버 또는 Satellite의 FQDN)의 시스템 메뉴에서 활성키 페이지를 통해 활성키를 생성하실 수 있습니다. 활성키를 생성하고 사용하는 방법은 RHN 참조 가이드의 Red Hat Update Agent 및 RHN 웹사이트를 참조하시기 바랍니다.
  • Red Hat은 사용자 RPM을 사용자 정의 GPG (GNU Privacy Guard) 키로 서명하시길 권장합니다. 키를 사용 가능하도록 저장하여 이를 스크립트로 불러 사용하시기 바랍니다. RHN 채널 관리 가이드에서 설명된 지시 사항에 따라 키를 생성하신 후 4장. 사용자 정의 GPG 키 가져오기 에서 설명하듯이 RHN 서버의 /var/www/html/pub/ 디렉토리에 키를 저장하시면 됩니다.
  • 스크립트를 이용하여 CA SSL 공개 인증서를 설치하시려면, 해당 인증서를 포함한 인증서나 패키지 (RPM)를 RHN 서버에 저장하신 후 스크립트 생성시 --ssl-cert 옵션을 지정하시면 됩니다. 보다 자세한 내용은 3장. SSL 기반 구조 에서 참조하시기 바랍니다.
  • 재설정할 시스템에 따른 부트스트랩 스크립트를 작성하는데 필요한 값들을 미리 알아두십시오. RHN Bootstrap은 모든 종류의 재설정 옵션을 제공하므로, 이 옵션들을 사용하여 각 시스템 유형에 맞는 부트스트랩 스크립트를 작성하실 수 있습니다. 예를 들어, 웹 서버를 재설정하신다면 bootstrap-web-servers.sh 파일을 사용하실 수 있으며, 어플리케이션 서버를 처리하시려면 bootstrap-app-servers.sh 파일을 사용하시면 됩니다. 모든 목록을 보시려면 5.4절. “RHN Bootstrap 옵션 ”을 참조하시기 바랍니다.

5.2. 생성 과정

이제 모든 필요한 구성 요소가 준비되었으므로, RHN Bootstrap을 이용하여 필요한 스크립트를 생성하시면 됩니다. RHN Satellite Server나 RHN Proxy Server에 루트 사용자로 로그인하셔서 rhn-bootstrap 명령과 함께 원하는 옵션과 값을 입력하시기 바랍니다. 아무런 옵션도 지정하지 않으신 경우에는 서버에서 가져온 필수값 (예, 호스트명, SSL 인증서, SSL, GPG 설정, client-config-overrides.txt 파일 호출 등)을 포함한 bootstrap/ 하부 디렉토리에 bootstrap.sh 파일이 생성될 것입니다.
Red Hat은 최소한 스크립트에 다음과 같은 방법으로 활성키, GPG 키 및 고급 설정 옵션을 포함시킬 것을 적극 권장합니다:
  • 5.1절. “준비 과정 ”에서 설명된 인타이틀먼트 요건을 염두하면서 --activation-keys 옵션을 사용하여 키를 포함시키시기 바랍니다.
  • --gpg-key 옵션을 사용하여 스크립트 작성 시 키 경로 및 파일명 지정합니다. 이 옵션을 지정하지 않으시려면, --no-gpg 옵션을 사용하여 클라이언트 시스템에서 이러한 확인 기능을 중지시킵니다. Red Hat은 보안을 위해 이 옵션을 사용할 것을 권장합니다.
  • --allow-config-actions 옵션을 사용하여 스크립트가 설정하는 모든 클라이언트 시스템에서 원격 설정 관리가 가능하게 하십시오. 이 기능은 여러 시스템을 동시에 재설정할 경우 특히 유용합니다.
  • --allow-remote-commands 옵션을 사용하여 모든 클라이언트 시스템에서 원격 스크립트 사용을 활성화하십시오. 설정 관리 기능과 마찬가지로, 여러 시스템을 동시에 재설정할 경우 이 기능이 특히 유용하게 사용됩니다.
이 설정을 마치시면, 다음과 같은 결과가 나타납니다:
	rhn-bootstrap --activation-keys KEY1,KEY2 \
		--gpg-key /var/www/html/pub/MY_CORPORATE_PUBLIC_KEY \
		--allow-config-actions \
		--allow-remote-commands
물론 실제 키 이름을 넣으셔야 합니다. 모든 옵션 목록은 5.4절. “RHN Bootstrap 옵션 ”에서 찾아보실 수 있습니다.

5.3. 스크립트 사용

마지막으로 스크립트 준비를 마치셨다면 이제 스크립트를 실행할 준비가 되셨습니다. RHN Satellite Server 또는 RHN Proxy Server에 로그인하신 후 /var/www/html/pub/bootstrap/ 디렉토리로 이동하여 다음 명령을 입력하십시오. 시스템 유형에 맞는 스크립트 이름과 호스트명으로 교체하시기 바랍니다:
cat bootstrap-EDITED-NAME.sh | ssh root@CLIENT_MACHINE1 /bin/bash
wget 이나 curl을 사용하여 스크립트를 가져와서 각 클라이언트 시스템에서 실행하는 방법도 대안으로 사용할 수 있지만 보안면에서 안전한 방법은 아닙니다. 각 클라이언트 시스템에 로그인하신 후 다음 명령을 입력하시면 됩니다. 스크립트와 호스트명을 적절히 변경하시기 바랍니다:
wget -qO - \
https://your-satellite.example.com/pub/bootstrap/bootstrap-EDITED-NAME.sh \
| /bin/bash
curl을 사용할 경우:
curl -Sks \
https://your-satellite.example.com/pub/bootstrap/bootstrap-EDITED-NAME.sh \
| /bin/bash
각 클라이언트 시스템에서 이 스크립트를 실행하시면, 모두 RHN 서버를 사용하도록 설정될 것입니다.

5.4. RHN Bootstrap 옵션

RHN Bootstrap은 클라이언트 부트스트랩 스크립트를 생성하는데 필요한 다양한 명령행 옵션을 제공합니다. 아래 표에는 이러한 옵션에 대한 설명이 있습니다. RHN 서버에 설치된 도구 버전이 다음 명령어를 지원하는지 알아보시려면 rhn-bootstrap --help 명령을 입력하거나 맨페이지를 참조하시기 바랍니다.

표 5.1. RHN Bootstrap 옵션

옵션 설명
-h, --help 부트스트랩 스크립트를 생성하는데 관련된 옵션 목록 도움말 화면을 보여줍니다.
--activation-keys=ACTIVATION_KEYS RHN 웹사이트에서 정의된 활성화키. 한개 이상일 경우 빈칸 없이 콤마로 구분합니다.
--overrides=OVERRIDES 이 옵션에 정의된 파일을 무시함. 기본 파일명은 client-config-overrides.txt 입니다.
--script=SCRIPT 부트스트랩 스크립트 파일명. 기본 파일명은 bootstrap.sh 입니다.
--hostname=HOSTNAME 클라이언트 시스템이 접속할 서버의 FQDN (fully qualified domain name)
--ssl-cert=SSL_CERT 조직의 공개 SSL 인증서 (패키지 또는 원 인증서)가 저장된 위치 경로. 이 인증서는 --pub-tree 옵션 위치로 복사될 것입니다. "" 라고 지정하시면 --pub-tree를 검색합니다.
--gpg-key=GPG_KEY 조직의 공개 GPG 키 위치. --pub-tree 옵션에 의해 지정된 위치로 복사될 것입니다.
--http-proxy=HTTP_PROXY 클라이언트 시스템을 위한 HTTP 프록시 설정으로 호스트명:포트와 같은 형식으로 지정합니다. ""라고 지정하시면 이 설정을 비활성화합니다.
--http-proxy-username=HTTP_PROXY_USERNAME 인증 HTTP 프록시를 사용할 경우, 사용자명을 지정합니다. "" 값을 지정할 경우 이 설정을 비활성화합니다.
--http-proxy-password=HTTP_PROXY_PASSWORD 인증 HTTP 프록시 사용시 암호를 지정합니다.
--allow-config-actions 부울 (Boolean); 이 옵션을 포함하면 시스템이 RHN을 통한 모든 설정 작업을 허용합니다. 이 옵션을 사용하시려면 활성키를 이용하여 특정 rhncfg-* 패키지를 설치하셔야 합니다.
--allow-remote-commands 부울 (Boolean); 이 옵션을 사용하면 시스템에서 RHN을 통한 원격 명령을 허용합니다. 이 옵션을 사용하시려면 활성키를 이용하여 특정 rhncfg-* 패키지를 설치하셔야 합니다.
--no-ssl 사용을 권장하지 않는 옵션입니다 - 부울 (Boolean): 이 옵션을 사용하시면 클라이언트 시스템에서 SSL을 끕니다.
--no-gpg 사용을 권장하지 않는 옵션입니다 - 부울 (Boolean): 이 옵션을 사용하시면 클라이언트 시스템에서 GPG 확인 기능을 끕니다.
--no-up2date 사용을 권장하지 않는 옵션입니다 - 부울 (Boolean): 이 옵션을 사용하시면 시스템이 부트스트랩한 후 up2date를 실행하지 않습니다.
--pub-tree=PUB_TREE 이 옵션을 변경하는 것을 권장하지 않습니다 - CA SSL 인증서와 패키지를 저장할 공개 디렉토리 트리; 부트스트랩 디렉토리와 스크립트. 기본값은 /var/www/html/pub/ 입니다.
--force 사용을 권장하지 않는 옵션입니다 - 부울 (Boolean): 이 옵션을 사용하시면 경고에도 불구하고 부트스트랩 스크립트를 강제로 생성합니다.
-v, --verbose 자세한 메시지를 출력합니다. 누적식; -vvv 옵션을 사용하면 매우 자세한 메시지가 출력됩니다.

6장. 직접 설정 스크립트 작성하기

이 장에서는 RHN Bootstrap을 사용하지 않고 부트스트랩 스크립트를 생성하는 방법에 대하여 설명하고 있습니다. 이 지시 사항을 따르시면 직접 처음부터 부트스트랩 스크립트를 작성하실 수 있을 것입니다.
스크립팅시 기본적으로 필요한 파일을 중앙 위치에 놓고, 각 클라이언트에서 간단하고 스크립트 가능한 명령어를 사용하여 이 파일들을 가져오고 설치한다는 공통점이 있습니다. 이 장에서는 이러한 기술을 하나의 스크립트로 작성하여 조직 내 어떠한 시스템에서도 사용 가능하도록 하는 방법에 대하여 설명해보겠습니다.
앞 장에서 설명된 모든 명령어를 가장 효율적인 순서로 묶어서 다음과 같은 스크립트를 작성하였습니다. rhn_register는 Red Hat Enterprise Linux 3 또는 4에서는 존재하지 않는다는 사실을 염두해 두십시오:
# First, install the latest client RPMs to the system.
rpm -Uvh \
	http://proxy-or-sat.example.com.com/pub/rhn_register-2.8.27-1.7.3.i386.rpm \
	http://proxy-or-sat.example.com.com/pub/rhn_register-gnome-2.8.27-1.7.3.i386.rpm \
	http://proxy-or-sat.example.com.com/pub/up2date-3.0.7-1.i386.rpm \
	http://proxy-or-sat.example.com.com/pub/up2date-gnome-3.0.7-1.i386.rpm

# Second, reconfigure the clients to talk to the correct server.

perl -p -i -e 's/s/www\.rhns\.redhat\.com/proxy-or-sat\.example\.com/g' \
	/etc/sysconfig/rhn/rhn_register \
	/etc/sysconfig/rhn/up2date


# Third, install the SSL client certificate for your company's 
# RHN Satellite Server or RHN Proxy Server.
rpm -Uvh http://proxy-or-sat.example.com/pub/rhn-org-trusted-ssl-cert-*.noarch.rpm

# Fourth, reconfigure the clients to use the new SSL certificate.
perl -p -i -e 's/^sslCA/#sslCA/g;' \
	/etc/sysconfig/rhn/up2date /etc/sysconfig/rhn/rhn_register
echo "sslCACert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT" \
	>> /etc/sysconfig/rhn/up2date
echo "sslCACert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT" \
	>> /etc/sysconfig/rhn/rhn_register


# Fifth, download the GPG key needed to validate custom packages.
wget -O - -q http://proxy-or-sat.example.com.com/pub/YOUR-RPM-GPG-KEY


# Sixth, import that GPG key to your GPG keyring.
rpm --import /path/to/YOUR-RPM-GPG-KEY
6번째 단계는 Red Hat Linux 3 또는 이후 버전을 실행중인 시스템에서 사용하셔야 합니다.
이 스크립트는 Red Hat Network 클라이언트를 RHN Proxy Server 또는 RHN Satellite Server에 등록하는데 필요한 절차로 구성되어 있습니다. RHN 서버의 URL과 공개 디렉토리 및 GPG 키와 같은 중요한 값을 스크립트 내에 필요한 위치에 추가하시는 것을 잊지 마시기 바랍니다. 또한 상황에 따라서 스크립트를 추가 수정하셔야할 경우도 있습니다. 이 스크립트는 참조 자료로만 사용하시기 바랍니다.
이 스크립트도 중앙 서버에 저장하여 사용하실 수 있습니다. 이 스크립트를 서버의 /pub/ 디렉토리에 저장하신 후 wget -O- 명령을 실행하여 그 출력 결과를 쉘로 파이프하면, 각 클라이언트에서 명령어 하나로 전체 부트스트랩 과정을 실행할 수 있습니다.
wget -O - http://proxy-or-sat.example.com.com/pub/bootstrap_script | bash

주의

웹 상에서 파이프된 결과를 쉘스크립트의 입력으로 바로 사용할 경우에는 어느 정도 보안 위험이 따르게 됩니다. 따라서 이러한 경우 소스 서버의 보안을 철저히 확인하는 것이 중요합니다.
이제 네트워크 상 모든 시스템에서 이 한줄짜리 명령어를 입력하실 수 있습니다. 관리자가 모든 시스템에 SSH 접근 가능하다면, 이 시스템 목록을 작성하여 원격적으로 명령을 실행하는 것도 좋은 방법입니다. 또한 기존 킥스타트 스크립트의 %post 부분에 이 스크립트를 추가하는 것도 적극 권장합니다.

7장. 킥스타트 실행

시스템을 처음 설치할 때가 시스템 설정을 변경하기에 가장 좋은 시기입니다. 이미 킥스타트를 성공적으로 사용해보셨다면, 킥스타트 과정에 부트스트래핑 스크립트를 추가하시기 바랍니다.
모든 설정 문제가 해결된 후에는 up2date 그리고 rhn_register RPM에 포함된 rhnreg_ks 유틸리티를 이용하여 로컬 Red Hat Network 서버에 시스템을 등록 가능합니다. 이 장에서는 rhnreg_ks를 이용하여 시스템을 등록하는 방법에 대하여 설명해보겠습니다.
rhnreg_ks 유틸리티는 활성화키 (activation keys)를 사용하여 시스템을 특정 채널에 등록하고, 인타이틀먼트를 받으며, 가입합니다. 활성화키에 대한 자세한 정보를 알고 싶으시면, Red Hat Network Management 참조 가이드에서 Red Hat Update Agent 및 RHN 웹사이트 장을 참조하시기 바랍니다.
다음 주석화된 킥스타트 파일은 Red Hat Network를 이용하여 시스템 시작부터 끝까지 설정하는 방법에 대한 예를 보여줍니다.
# Generic 7.2 kickstart for laptops in the Widget Corporation (widgetco)

# Standard kickstart options for a network-based install. For an
# explanation of these options, consult the Red Hat Linux Customization 
# Guide.

lang en_US
langsupport --default en_US en_US
keyboard defkeymap
network --bootproto dhcp
install
url --url ftp://ftp.widgetco.com/pub/redhat/linux/7.2/en/os/i386
zerombr yes
clearpart --all
part /boot	 --size 128 --fstype ext3 --ondisk hda
part /			 --size 2048 --grow --fstype ext3 --ondisk hda
part /backup --size 1024 --fstype ext3 --ondisk hda
part swap		--size 512 --ondisk hda
bootloader --location mbr
timezone America/New_York
rootpw --iscrypted $1$78Jnap82Hnd0PsjnC8j3sd2Lna/Hx4.
auth --useshadow --enablemd5 --krb5realm .COM --krb5kdc auth.widgetco.com \
	--krb5adminserver auth.widgetco.com
mouse --emulthree genericps/2
xconfig --card "S3 Savage/MX" --videoram 8192	--resolution 1024x768 \
	--depth 16 --defaultdesktop=GNOME --startxonboot --noprobe \
	 --hsync 31.5-48.5 --vsync 40-70

reboot

# Define a standard set of packages.	Note: Red Hat Network client 
# packages are found in Base.	This is quite a minimal set of packages;
# your mileage may vary.

%packages
@ Base
@ Utilities
@ GNOME
@ Laptop Support
@ Dialup Support
@ Software Development
@ Graphics and Image Manipulation
@ Games and Entertainment
@ Sound and Multimedia Support


# Now for the interesting part.

%post
( # Note that we run the entire %post section as a subshell for logging.

# Remember that nifty one-line command for the bootstrap script that we
# went through? This is an ideal place for it. And assuming that the
# script has been properly configured, it should prepare the system
# fully for usage of local Red Hat Network Servers.

wget -O- http://proxy-or-sat.example.com/pub/bootstrap_script | /bin/bash

# The following is an example of the usage of rhnreg_ks, the kickstart
# utility for rhn_register. This demonstrates the usage of the 
# --activationkey flag, which describes an activation key. For example,
# this activation key could be set up in the Web interface to join this 
# system to the "Laptops" group and the local Widgetco "Laptop Software" 
# channel. Note that this section applies only to Proxy users, as this 
# step is handled by the Satellite bootstrap script. 
#
# For more information about activation keys, consult the Red Hat Network
# Management Reference Guide.

/usr/sbin/rhnreg_ks --activationkey=6c933ea74b9b002f3ac7eb99619d3374

# End the subshell and capture any output to a post-install log file.
) 1>/root/post_install.log 2>&1

부록 A. 부트스트랩 스크립트 예시

RHN Satellite Server 설치 프로그램에 의해 생성된 /var/www/html/pub/bootstrap/bootstrap.sh 스크립트를 이용하여 클라이언트 시스템이 보다 쉽게 RHN 서버에 액세스할 수 있도록 설정 가능합니다. RHN Satellite Server와 RHN Proxy Server 사용자 모두 RHN Bootstrap 도구를 이용하여 이 기능을 사용하실 수 있습니다. 개별 상황에 맞도록 스크립트를 수정한 후 각 클라이언트 시스템에서 이 스크립트를 실행하시면 됩니다.
예시 파일에서 해시 부호 (#)로 시작하는 주석 부분을 자세히 살펴보시기 바랍니다. 5장. RHN Bootstrap 사용 에서 스크립트 만드는 과정을 읽어보신 후 사용할 스크립트를 작성해보시기 바랍니다.

#!/bin/bash
echo "RHN Server Client bootstrap script v3.6"

# This file was autogenerated. Minor manual editing of this script (and
# possibly the client-config-overrides.txt file) may be necessary to complete
# the bootstrap setup. Once customized, the bootstrap script can be triggered
# in one of two ways (the first is preferred):
#
#	 (1) centrally, from the RHN Server via ssh (i.e., from the
#			 RHN Server):
#				cd /var/www/html/pub/bootstrap/
#				cat bootstrap-<edited_name>.sh | ssh root@<client-hostname> /bin/bash
#
#	 ...or...
#
#	 (2) in a decentralized manner, executed on each client, via wget or curl:
#				wget -qO-
# https://<hostname>/pub/bootstrap/bootstrap-<edited_name>.sh \
# | /bin/bash
#				 ...or...
#				curl -Sks
# https://<hostname>/pub/bootstrap/bootstrap-<edited_name>.sh \
# | /bin/bash

# SECURITY NOTE:
#	 Use of these scripts via the two methods discussed is the most expedient
#	 way to register machines to your RHN Server. Since "wget" is used
#	 throughout the script to download various files, a "Man-in-the-middle"
#	 attack is theoretically possible.
#
#	 The actual registration process is performed securely via SSL, so the risk
#	 is minimized in a sense. This message merely serves as a warning.
#	 Administrators need to appropriately weigh their concern against the
#	 relative security of their internal network.

# PROVISIONING/KICKSTART NOTE:
#	 If provisioning a client, ensure the proper CA SSL public certificate is
#	 configured properly in the post section of your kickstart profiles (the
#	 RHN Satellite or hosted web user interface).

# UP2DATE/RHN_REGISTER VERSIONING NOTE:
#	 This script will not work with very old versions of up2date and
#	 rhn_register.


echo
echo
echo "MINOR MANUAL EDITING OF THIS FILE MAY BE REQUIRED!"
echo
echo "If this bootstrap script was created during the initial installation"
echo "of an RHN Satellite, the ACTIVATION_KEYS, and ORG_GPG_KEY values will"
echo "probably *not* be set (see below). If this is the case, please do the"
echo "following:"
echo "	- copy this file to a name specific to its use."
echo "		(e.g., to bootstrap-SOME_NAME.sh - like bootstrap-web-servers.sh.)"
echo "	- on the website create an activation key or keys for the system(s) to"
echo "		be registered."
echo "	- edit the values of the VARIABLES below (in this script) as"
echo "		appropriate:"
echo "		- ACTIVATION_KEYS needs to reflect the activation key(s) value(s)"
echo "			from the website. XKEY or XKEY,YKEY"
echo "		- ORG_GPG_KEY needs to be set to the name of the corporate public"
echo "			GPG key filename (residing in /var/www/html/pub) if appropriate."
echo
echo "Verify that the script variable settings are correct:"
echo "		- CLIENT_OVERRIDES should be only set differently if a customized"
echo "			client-config-overrides-VER.txt file was created with a different"
echo "			name."
echo "		- ensure the value of HOSTNAME is correct."
echo "		- ensure the value of ORG_CA_CERT is correct."
echo
echo "Enable this script: comment (with #'s) this block (or, at least just"
echo "the exit below)"
echo
exit 1

# can be edited, but probably correct (unless created during initial install):
# NOTE: ACTIVATION_KEYS *must* be used to bootstrap a client machine.
ACTIVATION_KEYS=insert_activation_key_here
ORG_GPG_KEY=insert_org_gpg_pub_key_here

# can be edited, but probably correct:
CLIENT_OVERRIDES=client-config-overrides.txt
HOSTNAME=your_rhn_server_host.example.com

ORG_CA_CERT=RHN-ORG-TRUSTED-SSL-CERT
ORG_CA_CERT_IS_RPM_YN=0

USING_SSL=1
USING_GPG=1

REGISTER_THIS_BOX=1

ALLOW_CONFIG_ACTIONS=0
ALLOW_REMOTE_COMMANDS=0

FULLY_UPDATE_THIS_BOX=1

#
# -----------------------------------------------------------------------------
# DO NOT EDIT BEYOND THIS POINT -----------------------------------------------
# -----------------------------------------------------------------------------
#

# an idea from Erich Morisse (of Red Hat).
# use either wget *or* curl
# Also check to see if the version on the 
# machine supports the insecure mode and format
# command accordingly.
if [ -x /usr/bin/wget ] ; then
		output=`/usr/bin/wget --no-check-certificate 2>&1`
		error=`echo $output | grep "unrecognized option"`
		if [ -z "$error" ] ; then
				FETCH="/usr/bin/wget -q -r -nd --no-check-certificate"
		else
				FETCH="/usr/bin/wget -q -r -nd"
		fi
		
else
		if [ -x /usr/bin/curl ] ; then
				output=`/usr/bin/curl -k 2>&1`
				error=`echo $output | grep "is unknown"`
				if [ -z "$error" ] ; then
						FETCH="/usr/bin/curl -SksO"
				else
						FETCH="/usr/bin/curl -SsO"
				fi
		fi
fi

HTTP_PUB_DIRECTORY=http://${HOSTNAME}/pub
HTTPS_PUB_DIRECTORY=https://${HOSTNAME}/pub
if [ $USING_SSL -eq 0 ] ; then
		HTTPS_PUB_DIRECTORY=${HTTP_PUB_DIRECTORY}
fi
echo
echo "UPDATING RHN_REGISTER/UP2DATE CONFIGURATION FILES"
echo "-------------------------------------------------"
echo "* downloading necessary files"
echo "	client_config_update.py..."
rm -f client_config_update.py
$FETCH ${HTTPS_PUB_DIRECTORY}/bootstrap/client_config_update.py
echo "	${CLIENT_OVERRIDES}..."
rm -f ${CLIENT_OVERRIDES}
$FETCH ${HTTPS_PUB_DIRECTORY}/bootstrap/${CLIENT_OVERRIDES}

if [ ! -f "client_config_update.py" ] ; then
		echo "ERROR: client_config_update.py was not downloaded"
		exit 1
fi
if [ ! -f "${CLIENT_OVERRIDES}" ] ; then
		echo "ERROR: ${CLIENT_OVERRIDES} was not downloaded"
		exit 1
fi

echo "* running the update scripts"
if [ -f "/etc/sysconfig/rhn/rhn_register" ] ; then
		echo "	. rhn_register config file"
		/usr/bin/python -u client_config_update.py /etc/sysconfig/rhn/rhn_register \
		 ${CLIENT_OVERRIDES}
fi
echo "	. up2date config file"
/usr/bin/python -u client_config_update.py /etc/sysconfig/rhn/up2date \
 ${CLIENT_OVERRIDES}

if [ ! -z "$ORG_GPG_KEY" ] ; then 
		echo
		echo "* importing organizational GPG key"
		rm -f ${ORG_GPG_KEY}
		$FETCH ${HTTPS_PUB_DIRECTORY}/${ORG_GPG_KEY}
		# get the major version of up2date
		res=$(rpm -q --queryformat '%{version}' up2date | sed -e 's/\..*//g')
		if [ $res -eq 2 ] ; then
				gpg $(up2date --gpg-flags) --import $ORG_GPG_KEY
		else
				rpm --import $ORG_GPG_KEY
		fi
fi

echo
echo "* attempting to install corporate public CA cert"
if [ $USING_SSL -eq 1 ] ; then
		if [ $ORG_CA_CERT_IS_RPM_YN -eq 1 ] ; then
				rpm -Uvh ${HTTP_PUB_DIRECTORY}/${ORG_CA_CERT}
		else
				rm -f ${ORG_CA_CERT}
				$FETCH ${HTTP_PUB_DIRECTORY}/${ORG_CA_CERT}
				mv ${ORG_CA_CERT} /usr/share/rhn/
		fi
fi

echo
echo "REGISTRATION"
echo "------------"
# Should have created an activation key or keys on the RHN Server's
# website and edited the value of ACTIVATION_KEYS above.
#
# If you require use of several different activation keys, copy this file and
# change the string as needed.
#
if [ -z "$ACTIVATION_KEYS" ] ; then
		echo "*** ERROR: in order to bootstrap RHN clients, an activation key or keys"
		echo "			must be created in the RHN web user interface, and the"
		echo "			corresponding key or keys string (XKEY,YKEY,...) must be mapped to"
		echo "			the ACTIVATION_KEYS variable of this script."
		exit 1
fi

if [ $REGISTER_THIS_BOX -eq 1 ] ; then
		echo "* registering"
		/usr/sbin/rhnreg_ks --force --activationkey "$ACTIVATION_KEYS"
		echo
		echo "*** this system should now be registered, please verify ***"
		echo
else
		echo "* explicitely not registering"
fi

echo
echo "OTHER ACTIONS"
echo "------------------------------------------------------"
if [ $FULLY_UPDATE_THIS_BOX -eq 1 ] ; then
		echo "up2date up2date; up2date -p; up2date -uf (conditional)"
else
		echo "up2date up2date; up2date -p"
fi
echo "but any post configuration action can be added here.	"
echo "------------------------------------------------------"
if [ $FULLY_UPDATE_THIS_BOX -eq 1 ] ; then
		echo "* completely updating the box"
else
		echo "* ensuring up2date itself is updated"
fi
/usr/sbin/up2date up2date
/usr/sbin/up2date -p
if [ $FULLY_UPDATE_THIS_BOX -eq 1 ] ; then
		/usr/sbin/up2date -uf
fi
echo "-bootstrap complete-"

부록 B. 개정 내역

고친 과정
고침 1-3.4002013-10-31Rüdiger Landmann
Rebuild with publican 4.0.0
고침 1-32012-07-18Anthony Towns
Rebuild for Publican 3.0
고침 1-7Fri Feb 27 2009

색인

Symbols

--configure
사용, up2date --configure 옵션
설정
서버 페일오버, 서버 페일오버 구현 방법
완전히 스크립팅 작성, 직접 설정 스크립트 작성하기
직접 설정, 설정 파일을 직접 업데이트하는 방법
클라이언트 설정
Red Hat Update Agent , up2date --configure 옵션
클라이언트 어플리케이션
설정, 클라이언트 어플리케이션 설정
설치, 최신 Red Hat Network 클라이언트 RPM 설치하기
킥스타트
사용, 킥스타트 실행
활성키
등록, 활성키를 이용하여 등록하는 방법

B

bootstrap.sh
예시 파일, 부트스트랩 스크립트 예시
준비 및 사용, RHN Bootstrap 사용

R

Red Hat Network Alert Notification Tool
Satellite 설정, Satellite를 이용한 Red Hat Network Alert Notification Tool 설정 방법
Red Hat Update Agent
RHN Proxy Server 또는 RHN Satellite Server 사용을 위한 설정, 설정 파일을 직접 업데이트하는 방법
RHN Bootstrap
명령행 옵션, RHN Bootstrap 옵션
사용, RHN Bootstrap 사용
스크립트 사용, 스크립트 사용
스크립트 생성, 생성 과정
준비 과정, 준비 과정
RHN SSL Maintenance Tool
CA 생성, CA SSL 키쌍 생성 방법
rhn-ssl-tool , RHN SSL Maintenance Tool
생성 정보, SSL 생성 정보
서버 인증서 생성, 웹서버 SSL 키쌍 생성 방법
옵션, RHN SSL Maintenance Tool 옵션
rhn-ssl-tool
CA 생성, CA SSL 키쌍 생성 방법
RHN SSL Maintenance Tool , RHN SSL Maintenance Tool
생성 정보, SSL 생성 정보
서버 인증서 생성, 웹서버 SSL 키쌍 생성 방법
옵션, RHN SSL Maintenance Tool 옵션

법적 공지

Copyright © 2010 Red Hat, Inc.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.