시스템 보안

[8월 4일] Suricata IDS 구축 및 운용하기

ljm 2025. 8. 4. 17:05

Suricata 설치 - 패키지 관리도구를 활용한 설치 (Rocky9)

 

dnf 업데이트 중에 에러발생

Error: SSL peer certificate or SSL remote key was not OK 

시스템시간과 현재시간이 맞지않아서 생기는 문제

sudo timedatectl set-ntp false  동기화 취소후에 sudo timedatectl set-time '2025-08-04 15:45:50' 로 시간수정

 

 

dnf update -y

dnf upgrade -y

dnf install -y epel-release

dnf install -y suricata

suricata -V

ip --brief addr   (현재 pc는 192.168.16.91/24)

vi /etc/suricata/suricata.yaml

 

HOME_NET 에서 

192.168.16.0/24

0.0/16

622번에서 interface : enp0s3 로 수정하기 

 

vi /etc/sysconfig/suricata

 

i  eth0     ->    enp0s3 으로 수정

 

suricata rules update

suricata -c /etc/suricata/suricata.yaml

 

suricata-update

systemctl status suricata   (현재 dead인 상태)

systemctl enable --now suricata  시스템 부팅후 자동으로 실행

 

 

cat /var/log/suricata/suricata.log

 

로그파일을 볼때 tail을 사용 : 실시간으로 볼수있음(-f). 알아보기쉬움

예) tail -f /var/log/suricata/stats.log 

curl http://www.google.com

curl http://testmynids.org/uid/index.html

cat /var/log/suricata/fast.log

suricata가 잘 작동되는것을 확인

 

ls -al /var/lib/suricata/rules  (내부 확인)

ls -al /var/lib/suricata/rules/

cat /var/lib/suricata/rules/suricata_rules

 

suricata-update list-sources

다양한경로로부터 위협에 관련된 룰들을 받아온다

라이센스 : MIT 무료 오픈소스

                Commercial 구독 (유료)

 

suricata-update enable-source et/open

suricata update

systemctl restart suricata.service(생략가능)

ls /etc/suricata/rules/ 에서 각각의 프로토콜별로 감지할수있는 룰을 확인

vi /etc/suricata/rules/local.rules

 

-----------

alert icmp any any -> $HOME_NET any (msg:"DDoS Attack"; sid:1; rev:1;)

-----------

 

환경설정파일

vi /etc/suricata/suricata.yaml

----------

2187번 rule-files 경로

2190번에 경로 추가하기

/etc/suricata/rules/local.rules 추가하기

---------

suricata -T -c /etc/suricata/suricata.yaml -v    테스트.체크. 자세하게 확인하기

 

 

systemctl restart suricata

tail -f /var/log/suricata/fast.log

 

 

ping 192.168.16.91 후에 suricata에서 DDoS Attack 메세지가 잘 호출되는것을 확인

 

cat /var/log/suricata/fast.log

 

 

 

dnf install -y jq  (json포맷형식으로 로그를볼때 설치)

 

tail -f /var/log/suricata/eve.json   

이것의 출력결과를 입력값으로 받고싶으면 파이프라인

tail -f /var/log/suricata/eve.json | jq

이벤트타입이 alert인것만 보겠다 :  tail -f /var/log/suricata/eve.json | jq 'select(.event_type=="alert")'

 

훨씬 더 알아보기 쉽게 화면에 표시되는것을 확인

 

 

 

다음시간에는 호스트기반 hids 구축