탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 관리: 네트워크 서비스 Oracle Solaris 11 Information Library (한국어) |
웹 서버에서 Secure Sockets Layer 프로토콜 사용
NCA 로깅을 사용으로 설정 또는 사용 안함으로 설정하는 방법
SSL 커널 프록시를 사용하여 Apache 2.0 웹 서버를 구성하는 방법
다음 절에서는 서비스의 일부를 사용으로 설정 또는 사용 안함으로 설정하기 위한 절차를 다룹니다.
자세한 내용은 Oracle Solaris 관리: 보안 서비스의 관리 권한을 얻는 방법을 참조하십시오.
/etc/nca/nca.if 파일에서 각 물리적 인터페이스의 이름을 입력합니다. 자세한 내용은 nca.if(4) 매뉴얼 페이지를 참조하십시오.
# cat /etc/nca/nca.if hme0 hme1
각 인터페이스에는 hostname.interface-name 파일 및 hostname.interface-name의 내용에 대한 /etc/hosts 파일의 항목이 있어야 합니다. 모든 인터페이스에서 NCA 기능을 시작하려면 nca.if 파일에 별표(*)를 사용합니다.
/etc/nca/ncakmod.conf에서 status 항목을 enabled로 변경합니다.
# cat /etc/nca/ncakmod.conf # # NCA Kernel Module Configuration File # status=enabled httpd_door_path=/system/volatile/nca_httpd_1.door nca_active=disabled
자세한 내용은 ncakmod.conf(4) 매뉴얼 페이지를 참조하십시오.
/etc/nca/ncalogd.conf에서 status 항목을 enabled로 변경합니다.
# cat /etc/nca/ncalogd.conf # # NCA Logging Configuration File # status=enabled logd_path_name="/var/nca/log" logd_file_size=1000000
logd_path_name 항목으로 표시된 경로를 변경하여 로그 파일의 위치를 변경할 수 있습니다. 로그 파일은 원시 장치 또는 파일이 될 수 있습니다. NCA 로그 파일 경로의 샘플에 대한 다음 예를 참조하십시오. 구성 파일에 대한 자세한 내용은 ncalogd.conf(4) 매뉴얼 페이지를 참조하십시오.
/etc/nca/ncaport.conf 파일에서 포트 번호를 추가합니다. 이 항목은 NCA가 구성된 모든 IP 주소에서 포트 80을 모니터링하도록 합니다.
# cat /etc/nca/ncaport.conf # # NCA Kernel Module Port Configuration File # . . ncaport=*/80
eeprom 명령을 사용하여 시스템의 kernelbase를 설정합니다.
# eeprom kernelbase=0x90000000 # eeprom kernelbase kernelbase=0x90000000
두번째 명령은 매개변수가 설정되었는지 확인합니다.
주 - kernelbase를 설정하여 사용자 프로세스에서 사용할 수 있는 가상 메모리의 양을 3GB 미만으로 줄입니다. 이 제한 사항은 시스템이 ABI와 호환되지 않는다는 것을 의미합니다. 시스템을 부트할 때 콘솔에서 비호환에 대한 경고 메시지가 표시됩니다. 대부분의 프로그램에서는 실제로 가상 주소 공간을 위해 3GB 전체가 필요하지 않습니다. 3GB 이상이 필요한 프로그램의 경우 NCA가 사용으로 설정되지 않은 시스템에서 프로그램을 실행해야 합니다.
예 2-1 NCA 로그 파일로 원시 장치 사용
ncalogd.conf의 logd_path_name 문자열은 NCA 로그 파일을 저장하는 위치로 원시 장치를 정의할 수 있습니다. 원시 장치 사용의 이점은 원시 장치에 액세스하는 데 오버헤드가 적게 발생하기 때문에 서비스를 더 빨리 실행할 수 있다는 것입니다.
NCA 서비스는 파일에 나열된 모든 원시 장치를 테스트하여 해당 위치에 파일 시스템이 있는지 확인합니다. 이 테스트는 실수로 활성 파일 시스템을 덮어 쓰지 않도록 합니다.
테스트에서 파일 시스템을 찾지 않도록 하려면 다음 명령을 실행하십시오. 이 명령은 파일 시스템으로 구성된 적이 있는 모든 디스크 분할에서 파일 시스템의 일부를 삭제합니다. 이 예에서 /dev/rdsk/c0t0d0s7은 이전 파일 시스템을 가지고 있는 원시 장치입니다.
# dd if=/dev/zero of=/dev/rdsk/c0t0d0s7 bs=1024 count=1
dd 명령을 실행한 후에 원시 장치를 ncalogd.conf 파일에 추가할 수 있습니다.
# cat /etc/nca/ncalogd.conf # # NCA Logging Configuration File # status=enabled logd_path_name="/dev/rdsk/c0t0d0s7" logd_file_size=1000000
예 2-2 NCA 로깅에 대해 다중 파일 사용
ncalogd.conf의 logd_path_name 문자열은 NCA 로그 파일을 저장하는 위치로 다중 대상을 정의할 수 있습니다. 첫번째 파일이 꽉차면 두번째 파일을 사용합니다. 다음 예에서는 먼저 /var/nca/log 파일에 쓴 다음 원시 분할을 사용하도록 선택하는 방법을 보여줍니다.
# cat /etc/nca/ncalogd.conf # # NCA Logging Configuration File # status=enabled logd_path_name="/var/nca/log /dev/rdsk/c0t0d0s7" logd_file_size=1000000
자세한 내용은 Oracle Solaris 관리: 보안 서비스의 관리 권한을 얻는 방법을 참조하십시오.
/etc/nca/ncakmod.conf에서 status 항목을 disabled로 변경합니다.
# cat /etc/nca/ncakmod.conf # NCA Kernel Module Configuration File # status=disabled httpd_door_path=/system/volatile/nca_httpd_1.door nca_active=disabled
자세한 내용은 ncakmod.conf(4) 매뉴얼 페이지를 참조하십시오.
/etc/nca/ncalogd.conf에서 status 항목을 disabled로 변경합니다.
# cat /etc/nca/ncalogd.conf # # NCA Logging Configuration File # status=disabled logd_path_name="/var/nca/log" logd_file_size=1000000
자세한 내용은 ncalogd.conf(4) 매뉴얼 페이지를 참조하십시오.
NCA를 사용으로 설정한 후에 필요에 따라 NCA 로깅을 켜거나 끌 수 있습니다. 자세한 내용은 웹 페이지의 캐시를 사용으로 설정하는 방법을 참조하십시오.
자세한 내용은 Oracle Solaris 관리: 보안 서비스의 관리 권한을 얻는 방법을 참조하십시오.
영구적으로 로깅을 사용 안함으로 설정하려면 /etc/nca/ncalogd.conf에서 상태를 disabled로 변경하고 시스템을 재부트해야 합니다. 자세한 내용은 ncalogd.conf(4) 매뉴얼 페이지를 참조하십시오.
웹 서버에서 AF_NCA 소켓의 고유 지원을 제공하지 않는 경우에만 다음 프로세스를 따르십시오.
웹 서버의 시작 스크립트에서 라이브러리가 미리 로드되도록 하는 행을 추가합니다. 해당 행은 다음과 같습니다.
LD_PRELOAD=/usr/lib/ncad_addr.so /usr/bin/httpd
자세한 내용은 Oracle Solaris 관리: 보안 서비스의 관리 권한을 얻는 방법을 참조하십시오.
새 포트 항목을 /etc/nca/ncaport.conf에 추가합니다. 이 예에서는 IP 주소 192.168.84.71에서 포트 8888을 추가합니다. 자세한 내용은 ncaport.conf(4)를 참조하십시오.
# cat /etc/nca/ncaport.conf # # NCA Kernel Module Port Configuration File # . . ncaport=*/80 ncaport=192.168.84.71/8888
NCA 포트 구성을 포함하는 파일에 주소가 있어야 NCA에 대한 주소를 사용할 수 있습니다. 웹 서버가 실행 중인 경우 새 주소를 정의한 후 웹 서버를 다시 시작해야 합니다.
이 절차는 Apache 2.0 웹 서버에서 SSL 패킷 프로세스의 성능 향상을 위해 사용합니다.
시작하기 전에
다음 절차에서는 설치 및 구성된 Apache 2.0 웹 서버가 필요합니다. 이 릴리스에는 Apache 2.0 웹 서버가 포함되어 있습니다.
SSL 커널 프록시를 사용하려면 단일 파일에 서버 개인 키와 서버 인증서가 있어야 합니다. ssl.conf 파일에서 SSLCertificateFile 매개변수만 지정한 경우 커널 SSL에 대해 지정한 파일을 직접 사용할 수 있습니다. SSLCertificateKeyFile 매개변수도 지정한 경우 인증서 파일과 개인 키 파일을 결합해야 합니다. 인증서와 키 파일을 결합하는 방법 중 하나는 다음 명령을 실행하는 것입니다.
# cat cert.pem key.pem >cert-and-key.pem
자세한 내용은 Oracle Solaris 관리: 보안 서비스의 관리 권한을 얻는 방법을 참조하십시오. ksslcfg 명령이 Network Security 프로파일에 포함되어 있습니다.
이 명령은 서버가 SMF를 사용하여 실행하도록 구성된 시스템에서 웹 서버를 중지합니다.
# svcadm disable svc:/network/http:apache2
서비스가 아직 변환되지 않은 경우 다음 명령 구문으로 서비스를 중지하십시오. /usr/apache2/bin/apachectl stop
모든 옵션은 ksslcfg(1M) 매뉴얼 페이지에 나와 있습니다. 정보를 가지고 있어야 하는 매개변수는 다음과 같습니다.
key-format – 인증서 및 키 형식을 정의하기 위해 -f 옵션과 함께 사용합니다. SSL 커널 프록시의 경우 값은 pem 또는 pkcs12 중 하나입니다.
key-and-certificate-file – 서버 키와 인증서를 저장하는 파일의 위치를 설정하기 위해 -i 옵션과 함께 사용합니다.
password-file – 개인 키를 암호화하는 데 사용한 암호를 포함하는 파일의 위치를 선택하기 위해 -p 옵션과 함께 사용합니다. 암호는 무인 재부트하는 데 사용합니다. 파일에 대한 사용 권한은 0400이어야 합니다.
proxy-port – SSL 프록시 포트를 설정하기 위해 -x 옵션과 함께 사용합니다. 표준 포트(80)가 아닌 다른 포트를 선택합니다. 웹 서버는 SSL 프록시 포트에서 수신 대기합니다.
ssl-port – SSL 커널 프록시에 대한 포트를 수신 대기로 선택합니다. 일반적으로 이 포트는 443으로 설정합니다.
주 - 이러한 포트는 SSL 커널 프록시에서만 사용되므로 NCA에 대해 ssl-port 및 proxy-port 값을 구성할 수 없습니다. 일반적으로 NCA에는 포트 80, proxy-port에는 8443 그리고 ssl-port에는 443이 사용됩니다.
SSL 프록시 포트 및 관련 매개변수를 지정하기 위한 ksslcfg 명령입니다.
ksslcfg create -f key-format -i key-and-certificate-file -p password-file -x proxy-port ssl-port
다음 명령에서 보고하는 서비스 상태는 “online”이어야 합니다.
# svcs svc:/network/ssl/proxy
/etc/apache2/http.conf 파일을 편집하고 SSL 프록시 포트를 정의하도록 행을 추가합니다. 서버 IP 주소를 사용하는 경우 웹 서버는 해당 인터페이스에 대해서만 수신 대기합니다. 해당 행은 다음과 같습니다.
Listen 0.0.0.0:proxy-port
웹 서버는 SSL 커널 프록시 인스턴스 후에만 시작해야 합니다. 다음 명령은 이러한 종속성을 설정합니다.
# svccfg -s svc:/network/http:apache2 svc:/network/http:apache2> addpg kssl dependency svc:/network/http:apache2> setprop kssl/entities = fmri:svc:/network/ssl/proxy:kssl-INADDR_ANY-443 svc:/network/http:apache2> setprop kssl/grouping = astring: require_all svc:/network/http:apache2> setprop kssl/restart_on = astring: refresh svc:/network/http:apache2> setprop kssl/type = astring: service svc:/network/http:apache2> end
# svcadm enable svc:/network/http:apache2
서비스가 SMF를 사용하여 시작하지 않은 경우 다음 명령을 사용하십시오. /usr/apache2/bin/apachectl startssl
예 2-3 SSL 커널 프록시를 사용하여 Apache 2.0 웹 서버 구성
다음 명령은 pem 키 형식을 사용하여 인스턴스를 만듭니다.
# ksslcfg create -f pem -i cert-and-key.pem -p file -x 8443 443
이 절차는 Sun Java System Web Server에서 SSL 패킷 프로세스의 성능 향상을 위해 사용됩니다. 이 웹 서버에 대한 정보는Sun Java System Web Server 7.0 Update 1 Administrator’s Guide 를 참조하십시오.
시작하기 전에
다음 절차에서는 설치 및 구성된 Sun Java System Web Server가 필요합니다.
자세한 내용은 Oracle Solaris 관리: 보안 서비스의 관리 권한을 얻는 방법을 참조하십시오. ksslcfg 명령이 Network Security 프로파일에 포함되어 있습니다.
관리자 웹 인터페이스를 사용하여 서버를 중지합니다. 자세한 내용은 Sun Java System Web Server 7.0 Update 1 Administrator’s Guide 에서 Starting and Stopping the Server를 참조하십시오.
모든 옵션은 ksslcfg(1M) 매뉴얼 페이지에 나와 있습니다. 정보를 가지고 있어야 하는 매개변수는 다음과 같습니다.
key-format – 인증서 및 키 형식을 정의하기 위해 -f 옵션과 함께 사용합니다.
token-label – PKCS#11 토큰을 지정하기 위해 -T 옵션과 함께 사용합니다.
certificate-label – PKCS#11 토큰의 인증서 개체에서 레이블을 선택하기 위해 -C 옵션과 함께 사용합니다.
password-file – 웹 서버에 사용되는 PKCS#11 토큰에 사용자를 로그인하기 위해 사용되는 암호가 포함된 파일의 위치를 선택하기 위해 -p 옵션과 함께 사용합니다. 암호는 무인 재부트하는 데 사용합니다. 파일에 대한 사용 권한은 0400이어야 합니다.
proxy-port – SSL 프록시 포트를 설정하기 위해 -x 옵션과 함께 사용합니다. 표준 포트(80)가 아닌 다른 포트를 선택합니다. 웹 서버는 SSL 프록시 포트에서 수신 대기합니다.
ssl-port – SSL 커널 프록시에 대한 포트를 수신 대기로 정의합니다. 일반적으로 이 값은 443으로 설정합니다.
주 - 이러한 포트는 SSL 커널 프록시에서만 사용되므로 NCA에 대해 ssl-port 및 proxy-port 값을 구성할 수 없습니다. 일반적으로 NCA에는 포트 80, proxy-port에는 8443 그리고 ssl-port에는 443이 사용됩니다.
SSL 프록시 포트 및 관련 매개변수를 지정하기 위한 ksslcfg 명령입니다.
ksslcfg create -f key-format -T PKCS#11-token -C certificate-label -p password-file -x proxy-port ssl-port
다음 명령에서 보고하는 서비스 상태는 “online”이어야 합니다.
# svcs svc:/network/ssl/proxy
자세한 내용은 Sun Java System Web Server 7.0 Update 1 Administrator’s Guide 에서 Adding and Editing Listen Sockets를 참조하십시오.
예 2-4 SSL 커널 프록시를 사용하여 Sun Java System Web Server 구성
다음 명령은 pkcs11 키 형식을 사용하여 인스턴스를 만듭니다.
# ksslcfg create -f pkcs11 -T "Sun Software PKCS#11 softtoken" -C "Server-Cert" -p file -x 8443 443
SSL 커널 프록시는 다음 제한 사항과 함께 영역에서 작동합니다.
모든 커널 SSL 관리는 전역 영역에서 이루어집니다. 전역 영역 관리자는 로컬 영역 인증서 및 키 파일에 액세스해야 합니다. 로컬 영역 웹 서버는 전역 영역에서 ksslcfg 명령을 사용하여 서비스 인스턴스를 한 번 구성하면 시작할 수 있습니다.
인스턴스를 구성하기 위해 ksslcfg 명령을 실행할 경우 특정 호스트 이름이나 IP 주소를 지정해야 합니다. 특히 인스턴스에 INADDR_ANY를 사용할 수 없습니다.
예 2-5 SSL 커널 프록시를 사용하도록 로컬 영역에서 Apache 웹 서버 구성
로컬 영역에서 먼저 웹 서버를 중지합니다. 전역 영역에서 서비스 구성에 대한 모든 단계를 수행합니다. apache-zone이라는 로컬 영역에 대한 인스턴스를 만들려면 다음 명령을 사용합니다.
# ksslcfg create -f pem -i /zone/apache-zone/root/keypair.pem -p /zone/apache-zone/root/pass \ -x 8443 apache-zone 443
로컬 영역에서 다음 명령을 실행하여 서비스 인스턴스를 사용으로 설정합니다.
# svcadm enable svc:/network/http:apache2