Snort 3는 차세대 Snort IPS(침입 방지 시스템)입니다. 이 파일은 Snort++가 제공하는 기능을 보여주고 다운로드부터 데모까지의 단계를 안내합니다. Snort에 익숙하지 않다면 먼저 Snort 문서를 살펴보아야 합니다. 우리는 다음 주제를 다룰 것입니다:
개요
종속성
다운로드
코웃음 만들기
스노트 실행
선적 서류 비치
비명
이 Snort++ 버전에는 아래 표시된 경우를 제외하고 Snort 기본 버전의 모든 Snort 2.X 기능과 버그 수정은 물론 새로운 기능이 포함되어 있습니다.
Project = Snort++ Binary = snort Version = 3.0.0 (Build 250) from 2.9.11
Snort++의 주요 기능은 다음과 같습니다.
다중 패킷 처리 스레드 지원
공유 구성 및 속성 테이블 사용
간단하고 스크립트 가능한 구성 사용
주요 구성 요소를 플러그 가능하게 만들기
포트리스 구성을 위한 서비스 자동 감지
규칙에서 고정 버퍼 지원
참조 문서 자동 생성
더 나은 크로스 플랫폼 지원 제공
구성 요소 테스트 촉진
공유 네트워크 맵 사용
로드맵의 추가 기능은 다음과 같습니다.
패킷 처리 파이프라인 지원
하드웨어 오프로드 및 데이터 플레인 통합 지원
프록시 모드 지원
윈도우 지원
이미 Snort를 구축했다면 필요한 모든 것이 갖추어져 있을 것입니다. 그렇지 않은 경우 최신 정보를 얻으세요.
소스에서 빌드하는 cmake
패킷 IO에 대한 https://github.com/snort3/libdaq의 daq
네트워크 유틸리티 기능에 대한 https://github.com/dugsong/libdnet.git의 dnet
JavaScript 구문 분석기용 https://github.com/westes/flex의 flex >= 2.6.0
g++ >= 7 또는 기타 C++17 컴파일러
CPU 선호도 관리를 위한 https://www.open-mpi.org/projects/hwloc/의 hwloc
구성 및 스크립팅을 위한 http://luajit.org의 LuaJIT
SHA 및 MD5 파일 서명, protected_content 규칙 옵션 및 SSL 서비스 감지를 위한 https://www.openssl.org/source/의 OpenSSL
tcpdump 스타일 로깅을 위한 http://www.tcpdump.org의 pcap
정규식 패턴 일치를 위한 http://www.pcre.org의 pcre
빌드 종속성을 찾기 위한 https://www.freedesktop.org/wiki/Software/pkg-config/의 pkgconfig
압축 해제를 위한 http://www.zlib.net의 zlib
추가 패키지는 선택적 기능을 제공합니다. 자세한 내용은 설명서를 확인하세요.
snort.org의 다운로드 섹션에 소스 tarball이 있습니다:
snort-3.0.0-a3.tar.gz
다음을 사용하여 코드를 얻을 수도 있습니다.
git clone https://github.com/snort3/snort3.git
추가 기능을 제공하고 플러그인 구축 방법을 보여주는 cmake용 별도의 추가 패키지가 있습니다. 추가 소스는 snort3_extra.git 저장소에 있습니다.
다음 단계를 따르세요.
소스 디렉터리를 설정합니다:
github 클론을 사용하는 경우:
CD snort3/
그렇지 않으면 다음을 수행하십시오.
tar zxf snort-tarballcd snort-3.0.0*
설정 설치 경로:
my_path 내보내기=/path/to/snorty
컴파일 및 설치:
cmake와 make로 빌드하려면,configure_cmake.sh를 실행하세요. 그러면 'build'라는 새 하위 디렉터리가 자동으로 생성되고 채워집니다.
./configure_cmake.sh --prefix=$my_pathcd 빌드 make -j $(nproc) 설치
메모 :
src/snort -V를 수행할 수 있다면 성공적으로 빌드한 것입니다.
cmake에 익숙하다면configure_cmake.sh 대신 cmake/ccmake를 실행할 수 있습니다.
cmake --help는 Xcode와 같은 사용 가능한 생성기를 나열합니다. 자유롭게 사용해도 되지만 이에 대한 도움말은 별도로 제공됩니다.
다음은 몇 가지 예입니다. Talos 규칙 및/또는 구성을 사용하는 경우 먼저 snort.lua 및 snort_defaults.lua의 상단에 필요한 변수를 설정해야 합니다.
Snort++는 다음을 포함하여 명령줄에서 많은 도움말을 제공합니다.
$my_path/bin/snort --help$my_path/bin/snort --help-module 억제$my_path/bin/snort --help-config | grep 스레드
pcap을 검사하고 덤프합니다. 다음에서 a.pcap을 원하는 것으로 바꾸십시오.
$my_path/bin/snort -r a.pcap$my_path/bin/snort -L 덤프 -d -e -q -r a.pcap
규칙이 있거나 없는 구성을 확인합니다.
$my_path/bin/snort -c $my_path/etc/snort/snort.lua$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules
IDS 모드를 실행합니다. 다음에서 pcaps/를 하나 이상의 *.pcap 파일이 있는 디렉터리 경로로 바꿉니다.
$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules -r a.pcap -A Alert_test -n 100000
1:2123을 억제해 보겠습니다. conf를 편집하거나 다음과 같이 할 수 있습니다:
$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules -r a.pcap -A Alert_test -n 100000 --lua "억제 = { { gid = 1, sid = 2123 } }"
여러 패킷 스레드가 있는 디렉토리에서 전체 돼지를 사용하십시오.
$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules --pcap-filter *.pcap --pcap-dir pcaps/ -A Alert_fast --max-packet-threads 8
추가 예제는 doc/usage.txt에 나와 있습니다.
매뉴얼을 살펴보세요. 그 중 일부는 코드에 의해 생성되어 최신 상태로 유지됩니다.
$my_path/share/doc/snort/snort_manual.pdf$my_path/share/doc/snort/snort_manual.html$my_path/share/doc/snort/snort_manual/index.html
방법과 이유에 대해서는 아직 많은 정보가 없지만 현재 사용 가능한 구성 등이 모두 포함되어 있습니다. 규칙에 대한 몇 가지 주요 변경 사항은 다음과 같습니다.
다음과 같이 쉼표로 구분된 콘텐츠 하위 옵션을 사용해야 합니다. content:"foo", nocase;
버퍼 선택자는 콘텐츠 앞에 나타나야 하며 변경될 때까지 계속 유효해야 합니다.
pcre 버퍼 선택기가 삭제되었습니다.
Snort++와 Snort에 대한 자세한 내용은 매뉴얼을 확인하세요.
매개변수 정의 방법 등을 이해하려면 매뉴얼 참조 섹션을 확인하세요.
여기에 설명되지 않은 새로운 기능도 다룹니다.
snort2lua, Snort 2.X conf 및 규칙을 새로운 형식으로 변환하는 도구
새로운 HTTP 검사기
구성을 트래픽에 매핑하기 위한 바인더
포트 독립적 구성을 위한 마법사
향상된 규칙 구문 분석 - 임의 공백, C 스타일 주석, #begin/#end 주석
로컬 및 원격 명령줄 셸
o")~
여러분도 우리만큼 Snort++에 대해 흥미를 느끼기를 바랍니다. snort-users 목록에 대한 귀하의 생각을 알려주십시오. 그 동안 우리는 주둥이를 숫돌에 고정할 것입니다.