본문 바로가기

Note

[보안] SSL 설정

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