[Image of SSL TLS handshake process]IBM HTTP Server(IHS)는 Apache 기반이지만, SSL 모듈은 별도의
mod_ibm_ssl을 사용합니다. 따라서 커뮤니티 Apache(mod_ssl)와 프로토콜 설정 문법이 상이합니다. 두 서버 간의 설정 차이를 비교하고, IHS v8.5 환경에서의 보안 강화 설정을 정리합니다.
1. Apache vs IHS 설정 차이점 (Comparison)
두 웹 서버는 SSL/TLS 핸드쉐이크를 처리하는 엔진과 모듈이 다르기 때문에, httpd.conf에 작성하는 지시어(Directive)가 다릅니다. 마이그레이션이나 운영 시 혼동하지 않도록 주의해야 합니다.
| 구분 | Apache HTTP Server (Community) | IBM HTTP Server (IHS) |
|---|---|---|
| 사용 모듈 | mod_ssl (OpenSSL 기반) |
mod_ibm_ssl (IBM GSKit 기반) |
| 프로토콜 설정 | SSLProtocol (한 줄로 제어) |
SSLProtocolDisableSSLProtocolEnable (개별 제어) |
| Cipher 설정 | SSLCipherSuite |
SSLCipherSpec |
설정 문법 비교 예시
Apache (mod_ssl)
# 모든 프로토콜에서 SSLv2, SSLv3 제외
SSLProtocol all -SSLv2 -SSLv3
# Cipher Suite 설정 (OpenSSL 명명규칙 사용)
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
IHS (mod_ibm_ssl)
# 개별적으로 활성/비활성 지정
SSLProtocolDisable SSLv2
SSLProtocolDisable SSLv3
SSLProtocolEnable TLSv12
# Cipher Spec 설정 (Long Name 사용, 초기화 후 추가 방식 권장)
SSLCipherSpec ALL NONE
SSLCipherSpec ALL +TLS_RSA_WITH_AES_128_CBC_SHA
2. IHS 보안 설정 가이드 (Configuration)
IHS v8.5 이상 환경에서 취약한 프로토콜을 차단하고 안전한 Cipher만 허용하는 설정입니다.
LoadModule ibm_ssl_module modules/mod_ibm_ssl.so
Listen 443
# IP 기반 가상 호스트 활성화 (IHS 8.5 이하 필수)
NameVirtualHost *:443
<VirtualHost *:443>
ServerName www.example.com
DocumentRoot /app/EAR/SSL
# SSL 엔진 활성화
SSLEnable
# 1. 취약 프로토콜 명시적 비활성화
# (TLS 1.0, 1.1도 보안 정책에 따라 차단 고려)
SSLProtocolDisable SSLv2
SSLProtocolDisable SSLv3
SSLProtocolDisable TLSv10
SSLProtocolDisable TLSv11
# 2. 안전한 프로토콜 활성화
SSLProtocolEnable TLSv12
# 3. Cipher Suite 화이트리스트 설정
# 중요: 'ALL NONE'으로 기존 설정 초기화
SSLCipherSpec ALL NONE
# Forward Secrecy(PFS)를 지원하는 ECDHE 계열 우선 배치
SSLCipherSpec ALL +TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 +TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
SSLCipherSpec ALL +TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 +TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
# 호환성을 위한 RSA/AES 계열 추가
SSLCipherSpec ALL +TLS_RSA_WITH_AES_256_CBC_SHA +TLS_RSA_WITH_AES_128_CBC_SHA
</VirtualHost>
KeyFile /SW/web/HTTPServer/key/key.kdb
SSLDisable
3. 설정 검증 (Verification)
설정 적용 후 IHS를 재기동하기 전, 명령어를 통해 적용된 Cipher 목록을 확인합니다.
적용된 Cipher 확인
cd [IHS_HOME]/bin
./apachectl -t -D DUMP_SSL_CONFIG
접속 테스트 (nmap)
외부에서 스캔하여 취약한 프로토콜(SSLv3 등)이 노출되지 않는지 교차 검증합니다.
nmap --script ssl-enum-ciphers -p 443 [Target_IP]
Next Step:
IHS 9.0 (Apache 2.4 기반)으로 업그레이드할 경우, SSLProtocol 지시어를 Apache 스타일로 사용할 수 있게 되지만, 기존 IHS 설정과의 호환성을 위해 IBM 문서를 반드시 참조하시기 바랍니다.