콘텐츠로 이동

3. SSL 연결 관리#

SSL 관리#

이 절은 SSL 기능을 사용할 때 아래의 방법으로 모니터링을 하고, 사용자에 대한 통신 보안을 강화하는 등의 관리 방법을 설명한다.

  • TCP 접속 제한

  • SSL 모니텅링 및 관리

TCP 접속 제한#

서버와 클라이언트간의 안전한 통신을 위해 사용자의 TCP 접속을 제한하여 보안을 강화할 수 있다.

사용자에 대하여 TCP 접속을 해제하지 않으면, 원격의 사용자는 TCP는 물론 SSL을 통해서도 데이터베이스에 접근할 수 있다. 그러나 SYS 사용자가 원격 사용자에 대해 SSL 접속을 통해서만 데이터베이스에 접근하려면, TCP 접속 기능을 해제할 수 있다.

  • 사용자의 TCP 접속 제한

    ALTER USER user_name [ENABLE | DISABLE] TCP
    CREATE USER user_name IDENTIFIED BY password [ENABLE | DISABLE] TCP
    

    데이터베이스 사용자들에 대한 TCP 접속이 허용되었는지 여부는 SYSTEM_.SYS_USERS_ 메타 테이블의 DISABLE_TCP 칼럼에 SELECT 쿼리를 수행하여 확인할 수 있다.

    SELECT * FROM SYSTEM_.SYS_USERS_;
    

예제

<질의> TCP 접속이 허가되지 않는 사용자를 생성한다.

iSQL> CREATE USER user1 IDENTIFIED BY user1 DISABLE TCP;
Create success.

<질의> 생성된 사용자가 TCP 접속이 제한되었는지 확인한다.

iSQL> SELECT user_name, disable_tcp FROM SYSTEM_.SYS_USERS_;
USER_NAME                                 DISABLE_TCP
----------------------------------------------------------
SYSTEM_                                   F
SYS                                       F
USER1                                     T
3 rows selected.

<질의> TCP 접속이 허가되지 않은 사용자가 TCP로 접속할 수 있도록 변경한 후, 메타 테이블을 확인하여 접속 권한이 변경되었는지 확인한다.

iSQL> ALTER USER user1 ENABLE TCP;
Alter success.
iSQL> SELECT user_name, disable_tcp FROM SYSTEM_.SYS_USERS_;
USER_NAME                                 DISABLE_TCP
----------------------------------------------------------
SYSTEM_                                   F
SYS                                       F
USER1                                     F
3 rows selected.

SSL 모니터링 및 관리#

수행중인 데이터베이스를 모니터링하면 데이터베이스에 대한 불법 접근을 감지하는데 효과적이다.

V$SESSION 성능 뷰는 연결된 클라이언트와 접속 프로퍼티 등의 데이터베이스 접속에 대한 정보를 확인할 수 있다. 특히 COMM_NAME 칼럼은 프로토콜 타입, 클라이언트 주소와 연결된 포트 넘버를 보여준다. 성능 뷰에 대한 자세한 설명은 General Reference 매뉴얼을 참조하기 바란다.

SELECT ID, DB_USERNAME, COMM_NAME FROM V$SESSION WHERE COMM_NAME LIKE 'SSL%';
ID          DB_USERNAME        COMM_NAME
-------------------------------------------------------------
1           USER1              SSL 127.0.0.1:40328
1 row selected.

데이터베이스 서버에 대한 불법 접근을 감지하면, 관리자는 다음과 같이 강제 종료할 수 있다.

  • SYS 사용자가 SYSDBA 모드로 로그인하여, 불법 접속한 세션을 종료한다.

    $ isql -s localhost -u user_name -p password -SYSDBA
    
    ALTER DATABASE database_name SESSION CLOSE session_number;
    

  • 세션을 종료한 후에는 모니터링하여 대상 세션이 종료되었는지 확인한다.

    SELECT * FROM V$SESSION WHERE ID = session_id;
    

SYSDBA 모드는 SYS 사용자가 관리자 역할을 수행할 수 있는 권한이다. SYS 계정으로 SYSDBA 모드로 데이터베이스에 로그인하려면 iSQL에서 iSQL 사용시 -SYSDBA 옵션을 사용하거나 CONNECT 명령을 AS SYSDBA 옵션과 함께 사용한다.

$ isql -s localhost -u sys -p manager -sysdba
-----------------------------------------------------------------
     Altibase Client Query utility.
     Release Version 7.3.0.0.1
     Copyright 2000, Altibase Corporation or its subsidiaries.
     All Rights Reserved.
-----------------------------------------------------------------
ISQL_CONNECTION = UNIX, SERVER = localhost
iSQL(sysdba)> SELECT ID, DB_USERNAME, COMM_NAME FROM V$SESSION WHERE COMM_NAME LIKE 'SSL%';
ID          DB_USERNAME        COMM_NAME
-------------------------------------------------------------
1           USER1              SSL 127.0.0.1:40328
1 row selected.

iSQL(sysdba)> ALTER DATABASE mydb SESSION CLOSE 1;
Alter success.

iSQL(sysdba)> SELECT ID, DB_USERNAME, COMM_NAME FROM V$SESSION WHERE COMM_NAME LIKE 'SSL%';
ID          DB_USERNAME        COMM_NAME
-------------------------------------------------------------
No rows selected