Suricata는 OISF에서 개발한 NIDS/IPS로, 2010년에 발표한 이후 빠르게 성장한 오픈소스 프로젝트이다.
Suricata는 오랫동안 사용된 IDS인 Snort의 단일 스레드 방식에서 벗어나, 대용량 트래픽을 실시간으로 처리 할 수 있도록 멀티 코어/멀티 스레드를 지원하며, 기존의 Snort룰을 완벽하게 호환하기 때문에 Snort 사용에 익숙하다면 Suricata를 사용하는데 무리가 없을 것이다.
Suricata : https://suricata-ids.org
1. Suricata 설치
- 필요 라이브러리 설치
$ sudo apt-get install libpcre3 libpcre3-dev libyaml-dev libpcap-dev libmagic-dev zlib1g-dev pkg-config
- Suricata 다운로드 (https://suricata-ids.org/download)
$ wget https://www.openinfosecfoundation.org/download/suricata-3.2.1.tar.gz
- Suricata 설치
$ tar xvf suricata-3.2.1.tar.gz
$ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
$ make && make install && ldconfig
$ make install-full
$ suricata --build-info
다음과 같이 Suricata에서는 다양한 기능들을 지원한다. 혹여나 필요한 라이브러리가 있다면 필요에 맞게 Configure 설정을 하여 컴파일을 하도록 한다.
- Suricata 실행
$ suricata -c /etc/suricata/suricata.yaml -i Ethernet_ID
2. Suricata 설정 및 로그
- Suricata 설정 경로 (/etc/suricata)
$ vi /etc/suricata/suricata.yaml
- Suricata 로그 경로 (/var/log/suricata)
3. Suricata를 이용한 파일 추출
Suricata에서는 파일 시그니쳐 및 파일 확장자명을 이용한 파일 추출 기능을 제공한다.
- Suricata를 이용한 네트워크 통신 파일 추출 룰 경로 (/etc/suricata/rules/files.rule)
- Suricata 설정 수정
= 추출할 파일의 룰 설정 파일 명시
= 추출할 파일 저장 기능 및 로그 활성화
= 추출할 파일의 stream 크기를 무제한 설정
- NIC offloading 설정 변경
$ ethtool -k Ethernet_ID
$ ethtool -K eth0 tx off
$ ethtool -K eth0 rxvlan off
$ ethtool -K eth0 txvlan off
- 추출된 파일 로그 확인 (/var/log/suricata/files-json.log)
- 추출된 파일 저장 경로(/var/log/suricata/files)
= file.ID 형식으로 저장되며 메타 정보는 file.ID.meta를 통하여 파일에 대한 메타 정보를 확인할 수 있다.
테스트 환경 : Ubuntu 16.04
'Network' 카테고리의 다른 글
RabbitMQ Broker Server Cluster 설치 및 테스트 (1) | 2018.11.06 |
---|---|
DNS 서버 설치 및 테스트 (0) | 2018.10.27 |
Apache Kafka 클러스터링 설치 및 테스트 (2) | 2017.05.03 |
MQTT 프로토콜을 활용한 Mosquitto Broker Server 설치 및 테스트 (0) | 2017.05.03 |