V9.5 까지는 OS 환경변수 설정하여 SSL을 구성하였으나, V9.7부터 DBM 구성변수로 SSL 설정 변수들이 포함되었다.
최근에 보안 사고로 인해 각종 보안 조치사항들이 취해지다 보니 DB 쪽의 SSL 구성 요건도 생기는 듯 하다.
오래된 버전에서는 SSL 관련 라이브러리를 별도 설치를 했었어야 되는 것 같은데, V9.7부터 DB2 설치 시 SSL 관련 라이브러리(IBM GSKit)들이 설치된다.
1. 설치 경로
- DB2_엔진경로/gskit
- 인스턴스_홈/sqllib/gskit
2. DB2 서버 쪽의 설정
인스턴스 경로를 /db2user/inst97로 가정한다.
(1) 환경변수 설정 (.profile)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/db2user/inst97/sqllib/gskit/bin export PATH=$PATH:/db2user/inst97/sqllib/gskit/bin |
(2) 인스턴스 홈에 SSL 디렉토리 생성
$> mkdir ~/SSL |
(3) 키 생성
$> cd ~/SSL $> gsk8capicmd_64 -keydb -create -db "key.kdb" -pw "password" –stash |
(4) 인증서 추가
$> gsk8capicmd_64 -cert -create -db "key.kdb" -pw "password" -label "DBCNI" -dn "CN=ssl.dbcni.com,O=dbcni,OU=dbcni db2,L=GANGNAM,ST=SEOUL,C=KR" |
- CN= common name
- O = organization
- OU= orgnaization unit
- L = location
- ST=state,province
- C = country
- DC= domain component
(5) 인증서 추출
$> gsk8capicmd_64 -cert -extract -db "key.kdb" -pw "password" -label "DBCNI" -target "key.arm" -format ascii -fips |
(6) 유효성 검증
$> ls key.arm, key.crl, key.kdb, key.rdb, key.sth |
(7) DBM CFG 설정
db2 update dbm cfg using SSL_SVR_KEYDB /db2user/inst97/SSL/key.kdb db2 update dbm cfg using SSL_SVR_STASH /db2user/inst97/SSL/key.sth db2 update dbm cfg using SSL_SVR_STASH /db2user/inst97/SSL/key.sth db2 update dbm cfg using SSL_SVR_LABEL DBCNI db2 update dbm cfg using SSL_SVCENAME 50602 |
(8) Registry 설정
db2set db2comm=ssl,tcpip |
2. 클라이언트 설정
(1) SSL 디렉토리 생성 (AIX 기준)
$> mkdir ~/SSL |
(주의) DB2 서버에서 생성된 key.arm 파일을 SSL 디렉토리 하위에 넣어 둘것
(2) key 디비 생성
$> cd ~/SSL $> gsk8capicmd_64 -keydb -create -db "keyclient.kdb" -pw "password" -stash |
(3) 인증서 서명
$> gsk8capicmd_64 -cert -add -db "keyclient.kdb" -pw "password" -label "DBCNI" -file key.arm -format ascii -fips |
(4) dbm cfg 설정
db2 update dbm cfg using SSL_CLNT_KEYDB /db2/instance/db2inst/SSL/keyclient.kdb db2 update dbm cfg using SSL_CLNT_STASH /db2/instance/db2inst/SSL/keyclient.sth |
(5) 카탈로스 설정
$> db2 catalog tcpip node 노드별명 remote IP server 50602 security ssl $> db2 catalog db 디비명 as 디비SSL at node 노드별명 $> db2terminate |
(참고) TCPIP 통신 설정을 위해서는 카탈로그 작업이 한번 더 진행되어야 한다.
(6) 접속 테스트
$> db2 connect to 디비SSL user ID using PWD |
DB2COMM 설정에 TCPIP도 있기 때문에 DB2 서버의 SVCENAME의 설정값을 통하여 TCPIP 방식의
DB 접속도 가능하다. (TCPIP 용 , SSL용 2가지 방식으로 통신이 됨)
참고로 V10.5의 경우 FixPack3a가 올라왔다. SSL관련하여 bug 발생으로 긴급 패치가 이뤄졌다.
이외 V10.1, V9.x 버전도 마찬가지로 보안관련 패치가 된 것으로 보인다.
SSL 설정 작업 시 각 버전의 APAR 등을 참고해야 될 것 같다.
'Note' 카테고리의 다른 글
[관리] 메모리 부족 (0) | 2014.11.21 |
---|---|
[보안] authentication 과 srvcon_auth (0) | 2014.07.14 |
[관리] db2gcf (0) | 2014.05.19 |
[복구] 경로재지정 복구 (0) | 2014.04.15 |
[관리] Backup Pending 풀기 (0) | 2014.03.31 |