1. 도입하게된 이유
정보 보안 항목 중 로그를 1년 동안 보관할 것 그리고 그 로그를 파악하여 분석 하는 사항이 있어
방화벽 , 서버 등 로그 보존 기간이 1년이 되는 경우가 없었다.
그리고 각각 로그를 관리하기에는 어려움이 있어 로그 관제 서버를 찾아 보던 중
ELK Stack , PLG Stack , GrayLog 등 여러가지 스택이 있다는 것을 파악했다 .
3개 중 보안 관련 로그 관리하기에는 GrayLog에 더 편의성이 있다는 이야기를 들어
도입하게 되었다.
2. GrayLog 란?
Graylog은 오픈 소스 로그 관리 플랫폼으로, 로그 데이터를 수집, 저장, 분석, 모니터링하는 데 사용됩니다. Graylog는 다양한 소스에서 생성된 로그 데이터를 중앙에서 효율적으로 처리하고 분석할 수 있게 해주는 프로그램 이다.
3. 구축 및 설치
로그 서버가 1년치 용량이 얼마나 될지 파악이 되지 않아 VM에 구축하여 모니터링 하기로 했다.
OS : Locky Liunx 8.10
CPU : 8 Core
Ram : 16 GB
용량 : 512 GB
구축하기 위해 공식 홈페이지 에서 먼저 확인을 해 보았다.
https://go2docs.graylog.org/current/downloading_and_installing_graylog/installing_graylog.html
VM으로 올리는 것이기 때문에
도커를 사용하여 진행하는 것보다는 직접 설치하기로 했다.
Locky Liunx 는 Red Hat 계열이며
현 시점 기준으로 6.0이 최신 버전으로 구축을 진행했다.
MongoDB Install
vi /etc/yum.repos.d/mongodb-org.repo
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
-- 위의 내용 삽입 후 저장
sudo yum install -y mongodb-org
sudo systemctl daemon-reload -- 데몬 재시작
sudo systemctl enable mongod -- 재 시작시 자동 서비스 시작
sudo systemctl start mongod -- 서비스 시작
sudo systemctl status mongod -- 서비스 상태 확인
-- 아래는 필수 항목이 아님 설치하지 않아도 설치에는 문제가 없음
sudo yum install versionlock
sudo yum versionlock add mongodb-org -- 버전 일관성을 유지하기 위해 버전 잠금
OpenSearch Install
sudo curl -SL https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/opensearch-2.x.repo -o /etc/yum.repos.d/opensearch-2.x.repo
sudo sed -i "s/^gpgcheck=.*/gpgcheck=0/g" /etc/yum.repos.d/opensearch-2.x.repo
sudo OPENSEARCH_INITIAL_ADMIN_PASSWORD=$(tr -dc A-Z-a-z-0-9_@#%^-_=+ < /dev/urandom | head -c${1:-32}) yum install 'opensearch-2.13.0'
-- 2.14 버전으로 업그레이드 진행시 사용에 문제가 있다는 경고가 있어 2.13버전으로 설치
sudo yum versionlock add opensearch.x86_64-2.13
-- 버전 잠금
Graylog Configuration for OpenSearch
sudo vi /etc/opensearch/opensearch.yml
path.data: /var/lib/opensearch -- 기본 설정 ( 설정값에 주석 풀려있음 )
path.logs: /var/log/opensearch -- 기본 설정 ( 설정값에 주석 풀려있음 )
cluster.name: graylog
node.name: ${HOSTNAME}
discovery.type: single-node
network.host: 0.0.0.0
action.auto_create_index: false
plugins.security.disabled: true
indices.query.bool.max_clause_count: 32768
-- 삽입 후 저장
sudo vi /etc/opensearch/jvm.options
## JVM configuration
################################################################
## IMPORTANT: JVM heap size
################################################################
##
## You should always set the min and max JVM heap
## size to the same value. For example, to set
## the heap to 4 GB, set:
##
## -Xms4g
## -Xmx4g
##
## See https://opensearch.org/docs/opensearch/install/important-settings/
## for more information
##
################################################################
# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space
-Xms1g
-Xmx1g
-- 기본 설정 그대로 진행
sudo sysctl -w vm.max_map_count=262144
sudo echo 'vm.max_map_count=262144' >> /etc/sysctl.conf
sudo systemctl daemon-reload
sudo systemctl enable opensearch
sudo systemctl start opensearch
sudo systemctl status opensearch
-- 위와 동일
위 부분에서 생각 없이 그대로 복붙 진행하다
path.data: /var/lib/opensearch
path.logs: /var/log/opensearch
해당 값이 중복으로 들어가 opensearch 가 실행되지 않는 현상 발생
제거하여 문제 해결 !
Graylog install
sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-6.0-repository_latest.rpm
sudo yum install graylog-server
-- 무료 버전 으로 설치 진행
sudo yum versionlock add graylog-server-6.0
Graylog Configuration File
yum install -y pwgen
-- pwgen 암호를 암호화 시키기 위한 설치 !
< /dev/urandom tr -dc A-Z-a-z-0-9 | head -c${1:-96};echo;
-- password_secret
echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
Enter Password : '설정할암호'
-- root_password_sha2:
메모장에 해당 암호키를 복사 후
sudo vi /etc/graylog/server/server.conf
-- password_secret :
-- root_password_sha2 :
-- 생성한 암호키를 넣고 저장 !
root_timezone = Asia/Seoul
http_bind_address = 서버IP:9000
sudo systemctl daemon-reload
sudo systemctl enable graylog-server.service
sudo systemctl start graylog-server.service
sudo systemctl --type=service --state=active | grep graylog
위와 같이 설치를 진행하면
admin / 설정한 비번
위와 같이 정상적으로 로그인 된다 . !
만약 접속이 안된다면
OS 방화벽을 내리고 접속 확인해 보면 된다.
위의 설치는
linux selinux , 방화벽을 내리고 진행함
차후 방화벽 설정에 대해서는 글을 작성할 예정
'2.Project > Infra' 카테고리의 다른 글
[GrayLog] 방화벽 장비 로그를 수집해보자 Fortigate (2) | 2024.07.12 |
---|