Simple is IT, 누구나 보고 누구나 깨닫는 IT
침입 차단/탐지 시스템(IPS/IDS) Snort 대시보드 구성 본문
Snort
네트워크 침입 차단/탐지 시스템(NIPS, NIDS, Network Instrusion Prevention/Detection System)
-> 프로토콜을 분석하며 내용 검색 그리고 매칭을 수행한다.
Sniffer, Packet Logger, 침입 탐지가 주요 모드
ELK (Elasticsearch, Logstash, Kibana)
snort (Rule)
-> syslog (Log 생성)
-> elk 파일 (저장)
-> filebeat (전달)
-> logstash (변환)
-> elasticsearch
-> kibana
|
# systemctl stop firewalld
# systemctl disable firewalld
# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
# vi /etc/yum.repos.d/elasticsearch.repo
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
# yum install elasticsearch -y
# yum install logstash -y
# yum install filebeat -y
# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk/
PATH=$PATH:$JAVA_HOME/bin
!! 설치 완료 후 VMware에서 스냅샷 생성
|
|
# vi /etc/logstash/jvm.options
# /usr/share/logstash/bin/logstash-plugin install logstash-filter-dns
# wget synesis_lite_snort%2dmaster.zip (zip파일 찾아야함)
# unzip synesis_lite_snort-master.zip
# mv /elk/synesis_lite_snort-master/logstash/synlite_snort /etc/logstash/
# cat /elk/synesis_lite_snort-master/profile.d/synlite_snort.sh >> /etc/profile
# rm -rf /etc/logstash/conf.d/*
# vi /etc/logstash/pipelines.yml
- pipeline.id: synlite_snort
path.config: "/etc/logstash/synlite_snort/conf.d/*.conf"
# cp /etc/logstash/logstash-sample.conf /etc/logstash/logstash.conf
# vi /etc/filebeat/filebeat.yml
output.elasticsearch: 주석처리(hosts도 당연히)
hosts: ["127.0.0.1:5044"]
# vi /etc/elasticsearch/elasticsearch.yml
# vi /etc/kibana/kibana.yml
#server.host: "localhost"
# vi /etc/snort/snort.conf 파일의 다음 내용 변경 주석 제거
511 whitelist /etc/snort/rules/white_list.rules, \
512 blacklist /etc/snort/rules/black_list.rules
528 output alert_syslog: LOG_AUTH LOG_ALERT
# touch /etc/snort/rules/white_list.rules
# touch /etc/snort/rules/black_list.rules
# vi /etc/rsyslog.conf 다음 라인의 주석 제거
auth.alert /var/log/snort/elk
# systemctl restart rsyslog
!! 스노트 실행(snort -c /etc/snort/snort.conf -i ens37) 후 /var/log/snort/elk 파일 확인
|
각종 서비스 실행
# systemctl restart elasticsearch
# systemctl restart kibana
# systemctl restart logstash
# /usr/share/filebeat/bin/filebeat -e -c /etc/filebeat/filebeat.yml
# snort -c /etc/snort/snort.conf -i ens33
(오류 날 시 # systemctl daemon-reload, Unit을 찾지 못한다면 잘못된 설정이니 다시 설정해야함)
netstat -anlp | grep 5601
netstat -anlp | grep 9200
netstat -anlp | grep 5044
tail -f /var/log/logstash/logstash-plain.log
마무리 설정
1) 키바나 접속
[Snort_IP]:5601
왼쪽에 management 클릭
2) 대시보드 추가
[Snort_IP]:5601
왼쪽에 management 클릭
Saved Objects 오른쪽에 Import 버튼 클릭 -> 설정파일 내려받아 압축 해제 후 설정파일 import
-- 잘 되지 않을 때
rm -rf /var/lib/elasticsearch/*
systemctl restart elasticsearch