Notice
Recent Posts
Recent Comments
Link
«   2026/09   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

나이는 지구가 태양을 도는 횟수일 뿐이다.

Suricata IDS 본문

IT

Suricata IDS

카락스의 포톤캐논 2025. 10. 20. 12:29

엔드포인트 보안 이후 네트워크에서 탐지하기 위해 구축함

  • 별도의 개발없이 사용할수 있는것
  • 추가 비용없이 사용할수 있는것

Suricata

환경 구성

  • 필자는 백본이 SFP이기 때문에 별도의 랜카드를 구매하여 장착하였다.
  • 미러포트는 네트워크 팀에서 스위치에 구성해주었음
  • 네트워크 인터페이스가 무차별 모드로 실행되야한다. ( 데몬으로 만들어서 부팅될때도 되게끔함 enable 당연히 해야함)
#/etc/systemd/system/promisc.service
[Unit]
Description=Makes interfaces run in promiscuous mode at boot
After=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/ip link set [nic dev] up
ExecStart=/usr/sbin/ip link set [nic dev] promisc on
ExecStart=/usr/sbin/ip link set [nic dev] up
ExecStart=/usr/sbin/ip link set [nic dev] promisc on
TimeoutStartSec=0
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
  • 네트워크 인터페이스의 링 버퍼 늘리기 ( 패킷 처리 향상 )
# /etc/udev/rules.d/60-nic-tuning.rules
ACTION=="add", SUBSYSTEM=="net", KERNEL=="enp1s0f0", RUN+="/usr/sbin/ethtool -G [nic dev] rx 8192 tx 8192"
ACTION=="add", SUBSYSTEM=="net", KERNEL=="enp1s0f1", RUN+="/usr/sbin/ethtool -G [nic dev] rx 8192 tx 8192"

설치

  • 필자는 Ubuntu 에서 설치하기때문에 가이드 내용대로 진행하여 패키지로설치하였다.
    https://docs.suricata.io/en/suricata-8.0.1/install/ubuntu.html
  • 웹 UI이런거 없고 엔진설치는 끝!
  • 설정은 인터페이스 및 메모리캡 등 많이 설정해줘야하므로 문서를 보거나 AI의 도움을 받길 권장
    ( 필자는 AI가 갑자기 IPS모드로 바꿔서 당황스러웠음 )
  • 나같이 보안을 모른다면 커뮤니티에서 룰을 받아서 사용할수있다.
    참조: https://docs.suricata.io/en/latest/rule-management/suricata-update.html
  • 문서의 명령어들을 보면 각종 룰과 해당 룰에 대한 라이선스를 확인할수있으니 잘 확인하여 사용하면된다.
  • 자신에게 맞는 별도의 룰은 꼭 만드는것을 추천!

수리카타 파일들

  • 설정파일
    /etc/suricata/suricata.yaml
  • 이벤트 파일 ( 이걸로 시각화됨 )
    /var/log/suricata/eve.json
  • 엔진 성능 통계 파일
    /var/log/suricata/stats.log
  • 룰 폴더
    • /var/lib/suricata/rules/

시각화 하기

  • Elastic 에 suricata 통합으로 제공되는 대시보드가 있다. ( Event,Alert )
    https://www.elastic.co/docs/reference/integrations/suricata
  • Elastic-Kibana 구성은 docker-compose로 구축함
  • suricata integration 로 구성하다면 elastic-agent 설정파일을 알려줌!
  • 설정파일을 수정해줘야함
    /opt/Elastic/Agent/elastic-agent.yml
  • 조금 기다리면 대시보드에 데이터가 보여질것 입니다.

 

엔진 성능 측정 시각화 ( 옵션 )

#/etc/systemd/system/suricata_exporter.service
[Unit]
Description=Prometheus exporter for Suricata
Wants=network-online.target
After=network-online.target suricata.service
Requires=suricata.service

[Service]
User=suricata
Group=suricata

Type=simple
Restart=always

ExecStart=/usr/local/bin/suricata_exporter -suricata.socket-path /var/run/suricata/suricata-command.socket

[Install]
WantedBy=multi-user.target
  • 서비스 실행시키면 node-exporter처럼 가져갈수있게 되있다.
    localhost:9917/metrics
  • 프로메테우스에서 가져갈수있게 셋팅후 확인 그리고 시각화
    만들어둔 대시보드같은게 없어서 자체적으로 만듬 ( 지속적으로 개선 필요 )

 

끝.