[z/OS]

z/OS용 IBM HTTP Server 버전 5.3: Part 4: 기본 구성

IBM® HTTP Server V5.3 for z/OS®의 다양한 기능을 IBM HTTP Server에서 사용할 수 있지만 구현 방식은 다릅니다. 두 웹 서버의 기본 구성상 주요 차이점에 대해 학습합니다.

파트 및 장은 z/OS용 IBM HTTP Server V5.3에 대한 z/OS HTTP Server Planning, Install, and Using 안내서의 서적 번호 SC34-4826-09에 있는 파트 및 장에 대응합니다.

파일 처리 방법

IBM HTTP Server는 정적 파일을 처리하거나 CGI 스크립트 파일을 실행할 수 있습니다. 이러한 파일은 기본 디렉토리 또는 사용자가 지정하는 디렉토리에 있습니다. 이러한 파일을 처리하기 위해 다양한 지시문을 사용할 수 있습니다. 디렉토리 섹션을 사용하면 지시문을 함께 그룹화하고 지시문이 특정 디렉토리에 적용되는 것으로 지정할 수 있습니다.

정적 파일은 기본적으로 install_root/htdocs 디렉토리에 있습니다. Alias 지시문에서 대체 디렉토리를 지정하여 대체 디렉토리를 웹 주소 접두부에 맵핑할 수 있습니다. 그런 다음 Directory 섹션을 작성 또는 복사하고 대체 디렉토리를 가리키도록 할 수 있습니다. 예를 들어, install_root/htdocs 기본 디렉토리를 지정하는 Directory 지시문을 복사하고 기본 디렉토리를 install_root/static 디렉토리로 변경할 수 있습니다.

CGI 스크립트는 기본적으로 install_root/cgi-bin/ 디렉토리에서 실행됩니다. ScriptAlias 지시문에서 대체 디렉토리를 지정하여 대체 디렉토리를 웹 주소 접두부에 맵핑할 수 있습니다. 그런 다음 Directory 섹션을 작성 또는 복사하고 대체 디렉토리를 가리키도록 할 수 있습니다. 예를 들어, install_root/cgi-bin/ 기본 디렉토리를 지정하는 Directory 지시문을 복사하고 기본 디렉토리를 install_root/cgi2 디렉토리로 변경할 수 있습니다.

지시문에 대한 자세한 정보는 Apache HTTP Server 문서를 참조하십시오.

디렉토리 목록 처리 방법

DirectoryIndex 지시문은 기본 httpd.conf 파일에서 index.html로 설정되므로 IBM HTTP Server는 디렉토리 요청에 대해 index.html의 디렉토리 색인 파일을 처리합니다. IBM HTTP Server를 처리하려면 DirectoryIndex 지시문을 다른 파일로 설정하면 됩니다. Indexes 인수를 포함하는 Options 지시문을 기존 또는 새 디렉토리 섹션에 추가하여 웹 서버가 해당 디렉토리에 대한 정보를 리턴하도록 할 수도 있습니다. Indexes 인수 앞에 +를 포함하면 디렉토리 섹션은 다른 Options 지시문에 설정된 인수를 상속합니다. DirectoryIndex 및 Options 지시문이 모두 설정되지 않으면 웹 서버가 403 오류를 리턴합니다.

지시문에 대한 자세한 정보는 Apache HTTP Server 문서를 참조하십시오.

서버 구성 방법

IBM HTTP Server를 관리하려면 EBCDIC 구성 파일을 반드시 업데이트해야 합니다.

기본 IBM HTTP Server 구성 파일은 install_root/conf/httpd.conf입니다. 제공된 기본값을 검토 또는 복구하려는 경우 install_root/conf/httpd.conf.default 파일에서 찾을 수 있습니다.

백업할 파일

다음 파일은 주기적으로 백업하십시오.
  • 구성 파일(기본적으로 install_root/conf/httpd.conf 파일)
  • 환경 변수 파일(install_root/bin/envvars 파일)
  • SSL(Secure Sockets Layer) 파일(예: 다음 파일)
    • 키 데이터베이스 파일(확장자는 kdb)
    • 숨김 파일(확장자는 sth)
    • 요청 데이터베이스 파일(확장자는 rdb)
    • 인증서 폐기 목록 파일(확장자는 crl)
    • 인증서 파일(확장자는 arm)
  • 액세스 제어에 사용할 수 있는 install_root/bin/htpasswd 명령과 같은 명령의 출력
  • 수동 편집 그룹 목록
  • HTTP 요청으로 처리되는 컨텐츠(예: HTML 파일, 이미지, Java™ 스크립트, 캐스케이딩 스타일 시트, CGI 스크립트

암호화 지원

미국 정부와 미국 이외 국가 정부는 암호화에 사용되는 제품을 규제하며 키 크기가 엄격하게 제한되지 않는 한 그러한 제품의 수출을 금지합니다. 미국 정부가 관련 수출 법규를 업데이트하고 미국 이외 국가 정부 또한 수입 규정을 업데이트하므로 지원되는 키 길이와 암호 스펙은 변경될 수 있습니다.

IBM HTTP Server는 SSL 암호 스펙 주제에 나열된 SSL 암호를 지원합니다.

하드웨어 암호화

하드웨어 암호화를 사용하여 클라이언트와 서버 간 SSL 세션 성능을 향상시킬 수 있습니다. 현재까지 웹 서버 성능상의 가장 큰 이점은 SSL 핸드쉐이크에 있습니다. 핸드쉐이크는 비대칭 키와 기능을 사용합니다. 웹 서버는 RSA 기술을 사용하여 비대칭 기능을 구현합니다. 하드웨어 암호화 없이 SSL을 구현하는 경우 비대칭 기능은 대칭 기능보다 속도가 훨씬 느립니다. 따라서 웹 서버로 하드웨어 암호화를 구현하는 경우 비대칭 마스터 키를 올바르게 설정해야 합니다. ICSF(Integrated Cryptographic Services Facility) 소프트웨어를 사용하면 성능 향상 효과를 얻을 수 있습니다. 비대칭 마스터 키는 웹 서버의 RSA 키와 다릅니다.

데이터 암호화 표준(DES) 암호 스펙과 Triple-DES 암호 스펙은 데이터 전송을 처리하기 위해 대칭 키를 사용합니다. 데이터 전송은 하드웨어에서 속도가 더 빠르거나 느릴 수 있습니다. 하드웨어 또는 소프트웨어에서 데이터 전송 속도가 더 빠른지 여부는 데이터 스트림의 크기에 따라 다릅니다. SSL은 상대적으로 작은 데이터 스트림(일반적으로 4K 바이트 이하)을 보내야 합니다. 데이터 스트림이 작을수록 소프트웨어에서 속도가 더 빠른 경향이 있습니다. 중간 범위 스트림은 하드웨어 또는 소프트웨어에서 속도가 더 빠를 수 있습니다. 큰 스트림의 경우 하드웨어에서 속도가 더 빠릅니다.

하드웨어 암호화를 구현하는 경우 다음 사항에 유의하십시오.
  • 웹 서버는 SSL 핸드쉐이크에 RSA 기술을 사용합니다. 핸드쉐이크는 비대칭 기능이며 RSA 공개-개인 키 쌍을 사용합니다. RSA 키는 소프트웨어 또는 하드웨어에서 생성할 수 있습니다.
  • 소프트웨어에 RSA 키를 생성하면 RACF® 명령 또는 gskkyman 유틸리티를 사용할 수 있습니다.
  • RACF 명령을 정의하여 사용자 ID와 웹 서버 ID에 CSFSERV 일반 자원 클래스의 프로파일에 대한 액세스 권한을 허용하십시오. CSFSERV 일반 자원 클래스는 ICSF 소프트웨어 사용을 제어합니다.

하드웨어 암호화 구현 방법에 대한 정보는 해당 매뉴얼을 참조하십시오. 예를 들어, IBM 지원 센터 포털z/OS 프로세서 자원/시스템 관리 계획 안내서를 참조하십시오. 또한 z/OS 암호 서비스 ICSF 관리자 안내서z/OS 암호 서비스 ICSF 시스템 프로그래머 안내서를 참조할 수 있으며 이는 z/OS 인터넷 라이브러리에 있습니다.

웹 서버 암호화에 하드웨어 암호화 사용 여부 확인 방법

ICSF는 암호 하드웨어의 소프트웨어 인터페이스입니다. 이 체크리스트를 사용하면 웹 서버를 하드웨어 암호화에 사용할 수 있는지 여부를 판별할 수 있습니다.
  • 사용자 ID와 웹 서버 ID가 ICSF에 액세스할 수 있는지 확인하십시오.
  • ICSF 시작 태스크가 활성 상태인지 확인하십시오.
  • ICSF TSO 패널에서 다음 태스크를 모두 또는 그 중 하나를 수행하여 ICSF가 올바르게 작동하는지 확인하십시오.
    • ICSF에 PKA 마스터 키가 정의되었는지 확인하십시오.
    • PKA 마스터 키를 생성하십시오.

보안 서버 설정 체크리스트

TLS(Transport Layer Security)를 사용하도록 설정하려면 conf/httpd.conf.default 파일에서 SSL 가상 호스트 예제를 사용하십시오. 이 예제에는 TLS를 사용하는 데 필요한 요소(예: Listen 지시문, SSLEnable 지시문, mod_ibm_ssl 모듈)가 있습니다.

IBM HTTP Server는 확장자가 kdb인 CMS SSL 키 저장소 파일을 사용합니다. gskkyman 유틸리티나 RACF RACDCERT 명령을 사용하여 키 저장소 파일을 작성하고 관리할 수 있습니다.
주의: z/OS 및 분산 플랫폼 간에 이 키 저장소 파일을 공유해서는 안 됩니다.

웹 서버가 사용하는 암호화 레벨의 기본 순서를 변경하는 방법

SSLCipherSpec 지시문을 사용하여 암호화 레벨의 순서를 제어할 수 있습니다. IBM HTTP Server는 항상 우선 순서를 강제 실행합니다. SSL 지시문에 대한 주제에서 SSLCipherSpec 지시문에 대해 읽어보십시오.

서버 자원에 대한 보호 설정 방법

다음 단계는 IBM HTTP Server V5.3 for z/OS의 z/OS HTTP Server 계획, 설치, 사용 안내서에 나와 있습니다. 각 단계와 연관된 정보는 IBM HTTP Server에서 단계를 수행할 때 필요한 정보입니다.
  • 1 단계. 서버에 대한 보호를 활성화하십시오.

    IBM HTTP Server는 기본적으로 자원에 대한 액세스를 제한하는 공통 모듈을 로드하므로 이 단계에는 수행할 작업이 없습니다.

  • 2 단계. 서버에서 승인할 요청을 지정하십시오.

    구성 섹션을 사용하여 보호 관련 구성 지시문이 포함되도록 하십시오. Apache HTTP Server 문서에서 구성 섹션에 대해 읽어보십시오.

    계층 구조 파일 시스템(HFS) 내 자원의 경우 <Directory> 및 <DirectoryMatch> 지시문을 사용하여 보호 지시문을 포함하십시오. 플러그인이 제공하는 자원과 같이 HFS에 없는 다른 자원의 경우에는 <Location> 및 <LocationMatch> 지시문을 사용하십시오.

  • 3 단계. 사용할 보호 옵션을 결정하십시오.
    IBM HTTP Server는 선택할 수 있는 다음과 같은 다양한 보호 메커니즘을 제공합니다.
    • mod_authz_host 모듈을 통한 호스트 기반 액세스 제어. mod_authz_host 모듈은 개별 IP 주소 또는 서브넷을 허용하거나 거부합니다.
    • 다양한 모듈이 상호 운용되어 사용자 ID 및 비밀번호 인증을 제공합니다. 이러한 기능에는 파일 데이터베이스에 대한 HTTP 기본 인증, LDAP, HTTP 요약 인증, SSL 클라이언트 인증서 인증이 포함됩니다.
    • 다양한 모듈이 상호 운용되어 권한을 부여합니다. 이러한 기능에는 그룹, LDAP(Lightweight Directory Access Protocol), SSL 클라이언트 인증서가 포함됩니다.
    서버는 먼저 호스트 기반 액세스 제어를 확인하여 요청을 처리합니다. 그런 다음 인증과 액세스 제어를 확인합니다. Satisfy 지시문을 any로 설정할 경우 요청은 호스트 기반 액세스 제어 또는 권한 요구사항 중 하나만 충족시켜야 합니다. 일치하는 모든 Require 권한 지시문은 액세스를 허용합니다. 그러나 복수 Require 지시문 일치를 기반으로 한 액세스 부여는 가능하지 않습니다.
    경고:
    <Limit> 및 <LimitExcept> 지시문을 사용하면 보호 메소드를 개별 HTTP 요청 메소드로 제한할 수 있지만 이 접근 방법은 신중하게 테스트해야 합니다.
  • 4 단계. 보호 설정을 작성하십시오.

    사용자 및 그룹 비밀번호 파일에 대해 IBM HTTP Server 비밀번호를 확인할 수 있습니다. 그러나 로컬 시스템에 대해 IBM HTTP Server 비밀번호를 확인하려면 AuthBasicProvider SAF 지시문을 지정하십시오. SAFRunAs 지시문을 지정하여 요청을 처리할 SAF 사용자 ID를 선택적으로 변경할 수 있습니다.

    가상 호스트를 기반으로 SSL 클라이언트 인증을 요청하려면 SSLCLientAuth required 지시문을 지정하십시오. 서버가 보호된 자원에 대한 액세스를 허용하기 전에 클라이언트 인증서에 대해 유효성을 검증해야 하는 속성 값 또는 속성 값 그룹을 지정하려면 SSLClientAuthRequire 지시문을 사용하십시오.

    다음 예제는 보호 설정 작성 단계를 안내합니다.

    • Order, allow, deny 지시문을 사용하여 자원에 대한 액세스를 제어하십시오.
      Alias /my-app /opt/my-app/htdocs
      
      <Directory /opt/my-app/htdocs>
         # Allow requests that match the allow directives. Then, deny requests that match the deny directives. 
         # Then, deny requests that do not match the allow or deny directives.
         Order allow,deny
         # Allow access only to those users from the local host.
         Allow from 127.0.0.1
      </Directory>
    • order, allow, deny 지시문을 사용하여 자원에 대한 액세스를 제어하십시오. 또는 사용자가 자원에 액세스하기 위해 사용자 ID와 비밀번호를 제공하도록 기본 인증을 사용하십시오. 사용자 ID와 비밀번호를 포함하는 파일을 지정하십시오.
      <Directory /opt/my-app/htdocs/members-only>
           Order allow,deny
           Allow from 127.0.0.1
           # Add HTTP basic authentication.
           AuthType Basic
           AuthBasicProvider file
           AuthName "Login with your example.com user ID."
           # Use the htpasswd utility in the <install_root>/bin/htpasswd file to maintain the passwords.
           # Store the userid and password file in a directory other than the one that it is protecting.
           AuthUserFile /opt/my-app/users.passwd
           Require valid-user
        </Directory>
    • administrator의 사용자 ID만 자원에 액세스할 수 있도록 허용하십시오.
      <Directory /opt/my-app/htdocs/admin>
           ...
           Require user administrator
        </Directory>
    • admins 사용자 그룹만 자원에 액세스할 수 있도록 허용하십시오. 사용자 그룹을 포함하는 파일을 지정하십시오.
      <Directory /opt/my-app/htdocs/admin>
           ...
           # text file with multiple group-name: member1 member2... lines
           # Store the group file in a directory other than the one that it is protecting.
           AuthzGroupFile /auth/groups
           Require group admins
        </Directory>
    • 로컬 호스트가 관리자처럼 자원에 액세스할 수 있도록 허용하십시오.
        <Directory /opt/my-app/htdocs/admin>
           ...
           Require group admins
           Satisfy any
           Order allow,deny
           Allow from 127.0.0.1
        </Directory>
  • 5 단계. 개별 파일에 대한 액세스를 제한하십시오.

    <Directory> 지시문 또는 <DirectoryMatch> 지시문 내부에 <Files> 지시문 또는 <FilesMatch> 지시문을 중첩시켜 사용자가 액세스하는 파일을 제한할 수 있습니다.

사용자 이름, 그룹 이름, 주소 템플리트를 지정하는 규칙

사용자 이름과 주소의 조합(예: bob@192.168.1.1, steve@192.168.2.2)을 기반으로 한 액세스를 허용하려면 권한 부여를 위한 자체 Apache 모듈을 작성해야 합니다.

보호 설정에서 그룹 파일 사용

IBM HTTP Server의 그룹 파일은 그룹 이름에서 사용자 목록으로의 맵핑입니다. 중첩된 정의 또는 주소 스펙을 포함할 수 없습니다.

액세스 제어 목록 파일

IBM HTTP Server에는 액세스 제어 목록 파일이 없습니다. .htaccess 파일로 자원에 대한 액세스 권한을 제한할 수 있습니다. 그러나 .htaccess 파일을 사용하면 서버 속도가 느려지므로 httpd.conf 파일을 업데이트할 수 있는 경우에는 .htaccess 파일을 사용하지 않는 것이 좋습니다. 또는 <Directory> 지시문에 지시문을 포함하고 모든 지시문을 httpd.conf 파일에 배치하십시오.


주제 유형을 표시하는 아이콘 참조 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=ihs-dist&topic=rihs_dgwbconfig
파일 이름:rihs_dgwbconfig.html