Infomation

OSSEC (Open Soure HIDS SECurity)와 MySQL 연동 - 출력 데이터 보내기

DarkSoul.Story 2016. 5. 20. 13:25
반응형

OSSEC에서 생성되는 출력 데이터를 MySQL또는 PostgreSQL로 보낼 수 있도록 지원하고 있다. 여기서는 OSSEC 출력 데이터를 MySQL로 보내는 방법에 대해서 살펴본다. 


1. 데이터베이스 지원 활성화


OSSEC에서 데이터베이스 사용할 수 있도록 사전 준비를 해야한다. 데이터베이스 지원 활성화 방법은 아래와 같다.


# cd ossec-hids-2.8.3/src # ossec-hids-2.8.3/src # make setdb


데이터베이스 지원 활성화를 하는 도중에 위와 같이 PostgreSQL 관련 에러 메시지를 출력하게된다. 해당 에러메시지는 PostgreSQL가 설치되어 있지 않아서 발생하는 에러메시지이다. 데이터 베이스 지원 활성화가 완료되었으면, ./install.sh 쉘 스크립트를 실행 시킨다. ./install.sh 쉘 스크립트를 실행 시키면 이미 OSSEC이 설치되어 있다는 메시지와 함께 update를 진행 할지 여부를 묻는다. 필자는 update를 진행 하면서, 설치를 끝냈다. 

 



2. MySQL 구성


OSSEC 출력 데이터를 MySQL로 보내기 위해서는 기본적으로 OSSEC 서버에 MySQL이 설치되어 있어야 한다. 여기서는 MySQL이 설치되어 있다는 조건하여 진행한다. 

MySQL을 구성하기 위해 MySQL을 실행 시키자. 


1) 데이터베이스 생성 및 사용자 추가

 

가장 먼저 OSSEC에서 사용할 데이터베이스를 생성한다. 데이터베이스를 생성 하기 위해서  MySQL Shell을 실행 시킨다. 


# mysql -u root -p
Enter password:


MySQL Shell이 실행되었으면, 데이터베이서를 생성한다. 여기서는 데이터베이스명을 ossec으로 만들 예정이다. 


mysql> create database ossec;


다음으로 사용자 계정 생성과 권한을 부여한다. 

(부여된 권한 : INSERT(삽입), SELECT(검색), UPDATE(수정), CREATE(생성), DELETE(삭제), EXECUTE(실행)

(ossec.* : ossec 데이터베이스의 모든 내용에 대해서 접근) 

(참고 : *.* : 서버의 모든 데이터베이스, 모든 테이블에 대해서 접근, 데이터베이스명.테이블명 : 특정 데이터베이스의 특정 테이블에 대해서 접근)

(ossec_adm : 사용자 계정)


mysql> grant INSERT,SELECT,UPDATE,CREATE,DELETE,EXECUTE on ossec.* to ossec_adm;


다음으로 앞서 생성한 사용자 계정의 패스워드를 설정한다.


mysql> set password for ossec_adm = PASSWORD('ossec@adm');


다음으로 지금까지의 내용을 MySQL에 적용 시킨다.


mysql> flush privileges;


사용자를 추가, 삭제, 사용자 권한등을 변경하였을 때, MySQL에 변경 사항을 적용하기 위해 사용하는 flush privileges는 정확히 말하면 grant 테이블을 reload 시켜 변경사항을 바로 적용해주는 명령어 이다. INSERT, UPDATE, DELETE등과 같은 SQL 문이 아닌 grant 명령어를 사용해서 사용자를 추가, 삭제, 사용자 권한등을 변경하였다면 반드시 실행할 필요는 없다.


flush privileges 명령어가 정상적으로 실행되었다면, quit; 명령어를 입력하여 MySQL Shell을 종료한다.


데이터베이스는 스키마가 필요로 하며, OSSEC은 스키마를 제공하고 있다. OSSEC 스키마는 앞서 다운로드 받은 패키지안에 존재하며, src/os_dbd 폴더에 mysql.schema파일로 제공한다.



스키마 적용은 아래와 같이 진행한다.

(ossec : OSSEC 데이터베이스명)

(~/ossec-hids-2.8.3/src/os_dbd/ : mysql.schema 파일이 존재하는 위치)


mysql -u root -p ossec < ~/ossec-hids-2.8.3/src/os_dbd/mysql.schema


3. OSSEC MySQL 설정


MySQL 구성이 끝났으면, OSSEC에서 MySQL로 출력 데이터를 보내도록 /var/ossec/etc폴더에 ossec.conf 파일에 설정값을 새로 추가해야 한다. 



ossec.conf 파일을 열어 아래와 같이 설정값을 추가한다.

 

<database_output>
  <hostname>192.168.1.160</hostname>    <- 데이터베이스 서버 IP
  <username>ossec_adm</username>        <- 데이터베이스 계정
  <password>ossec@adm</password>       <- 계정에 대한 패스워드
  <database>ossec</database>                 <- 데이터베이스 이름
  <type>mysql</type>                            <- 데이터베이스 종류 (mysql, PostgreSQL)
</database_output>


4. OSSEC과 데이터베이스 연결


모든 설정이 완료되었으면, OSSEC과 데이터베이스를 연결 후 OSSEC을 재시작 한다. 


/var/ossec/bin# ossec-control enable database
/var/ossec/bin# ossec-control restart 




반응형