험한. 16 IDS 구성, Snort 규칙 작성 – (Instedo 보기)


건축 환경

CentOS 7.6 최소 – (www.centos.org)

버추얼박스 7.0 – (www.virtualbox.org)

스니플 – (www.snort.org)

알아 가다

IDS(침입탐지시스템)
공격자: 공격자
희생자: 희생자
무료 Snort를 사용하고 있다면 여전히 패턴을 등록해야 하므로 이를 관리하고 작성하고 추가해야 합니다.
그러나 유료 Snort를 사용하는 경우 Snort 사이트에서 최신 탐지 정책을 다운로드하여 적용하기만 하면 됩니다.

Network IDS(외부에서 들어오는 트래픽 감지)
호스트 IDS(내부 통신 트래픽 감지)





yum 설치 -y libdnet-devel openssl-devel pkgconfig gcc flex bison zlib* libpcap* pcre* libpcap-devel libpcre3-devel libnetfilter-queue-devel iptables-devel libdnet* tcpdump 설치
yum install -y daq daq-devel daq-modules libnghttp2설치

yum 설치 -y epel 릴리스 Epel 저장소 설치


wget https://snort.org/downloads/archive/snort/snort-2.9.16-1.centos7.x86_64.rpm

wget으로 Snort 엔진 다운로드

(snort.org 사이트를 보면 download-snort rpm은 Linux용 다운로드 파일입니다., exe는 Windows용 다운로드 파일입니다.)


rpm -ivh snort-2.9.16-1.centos7.x86_64.rpm 스노트 엔진 설치




콧김 -V snort V 명령은 snort의 버전을 확인할 수 있습니다.

그러나 이제 libdnet.1 파일이나 디렉토리가 없다는 오류가 발생합니다.


CD /lib64 /lib64로 전환

ls 파일 목록을 보면 libdnet.so.1 및 libdnet.so.1.0.1이 표시됩니다.


ln -s libdnet.so.1.0.1 libdnet.1 libdnet.so.1.0.1을 libdnet.1에 연결하는 명령

* 링크 명령 = ln에는 소프트 링크와 하드 링크가 있습니다.

콧김-V 동기화에 연결하고 snort 또는 snort -V를 입력하여 버전을 확인할 수 있습니다.

설치한 Snort 버전이 2.9.16임을 확인합니다.




권한 변경
chmod -R 700 /var/log/snort Snort 디렉터리 권한을 700으로 설정
mkdir /usr/local/lib/snort_dynamirules snort_dynamirules 디렉토리 생성
chmod -R 700 /usr/local/lib/snort_dynamirules snort_dynamirules 권한을 700으로 설정합니다.

-R: 지정된 모든 디렉토리 및 하위 디렉토리 포함
이는 검색 정책이므로 소유자만 읽고 쓸 수 있습니다(700).


파일 소유자 변경
chown -R snort.snort /etc/snort
(소유자 = snort, 그룹 = snort, /etc/snort 디렉토리에 대한 소유권 변경)
chown -R snort.snort /var/log/snort
chown -R snort.snort /usr/local/lib/snort_dynamirules


cd /etc/snort
ls

탐지 정책이 저장되는 규칙이라는 디렉터리가 있습니다.

cd /etc/snort/rules

ls

아직 정책이 설정되지 않았으므로 아무것도 없습니다.


cd /var/로그

ls

이제 생성된 Snort 디렉터리를 볼 수 있습니다.





vi /etc/snort/snort.conf → snort.conf 파일 vi 편집기 모드로 전환

45번 임의의 ipvar HOME_NET 수정 예) ipvar HOME_NET 0.0.0.0/24

☞ 원래 any로 작성되었으나 삭제되었습니다. ipvar HOME_NET 검색 및 보호할 IP 범위 또는 IP 주소를 입력합니다.


104호 변수 RULE_PATH /etc/snort/rules 다음과 같이 절대 경로를 입력해야 합니다.
105호 var SO_RULE_PATH ../so_rules 변경 var SO_RULE_PATH /etc/snort/rules
106호 var PREPROC_RULE_PATH ../reproc_rules 변경 var PREPROC_RULE_PATH /etc/snort/rules
113호 변경 var WHITE_LIST_PATH ../rules -> var WHITE_LIST_PATH /etc/snort/rules
114호 var BLACK_LIST_PATH ../rules 편집 -> var BLACK_LIST_PATH /etc/snort/rules


522호 출력 uniform2: 파일 이름 snort.log, 제한 128

출력시 Unified2 방식으로 출력되며 파일명은 snort.log 이고 메모리 제한은 128 입니다.


546호 $RULE_PATH/local.rules 포함

올바르게 입력되었는지 확인하고 맞으면 만지지 마십시오.


자동 생성된 규칙/snort를 설치할 때 자동으로 설치되는 규칙은 내가 만든 규칙인지 원래 규칙인지 구별하기 어렵기 때문에 주석 처리해야 합니다.

따라서 548번부터 651번까지 모두 주석 처리를 해야 하는데 하나하나 처리하는데 시간이 많이 걸린다.

다음 vi 편집기 명령을 사용하십시오.

:548, 651s/^/#/g → 548번부터 651번까지 코멘트 처리

:wq! 저장하고 닫습니다




앞서 113번과 114번에서 화이트리스트와 블랙리스트 경로를 설정했으므로 Hari와 Blee가 모두 생성됩니다.

/etc/snort/rules/white_list.rules를 터치합니다.
/etc/snort/rules/black_list.rules를 터치합니다.


snort -T -c /etc/snort/snort.conf 구성 파일을 확인하는 명령(-T: 테스트, -c: 확인)

또한 253행에 문제가 있어 한번에 모든 것을 보낼 수 있는 방법도 없습니다. 파일이나 디렉토리가 존재하지 않는 오류입니다.

오류를 수정하려면 숫자 253을 주석 처리하거나 적절한 경로에 디렉토리를 만드는 방법이 있습니다.


vi /etc/snort/snort.conf

방금 #253을 주석 처리했습니다.


snort -T -c /etc/snort/snort.conf 구성 파일을 확인하는 명령(-T: 테스트, -c: 확인)

아.. 방금 253번 댓글 달았는데 또 오류가 떴네요. /etc/snort//etc/snort/rules/local.rules 파일을 사용할 수 없다는 오류가 발생합니다.

cd /etc/snort/rules 규칙 디렉토리로 전환

터치 로컬 룰 현지의.규칙 파일 만들기


snort -T -c /etc/snort/snort.conf 구성 파일을 확인하는 명령(-T: 테스트, -c: 확인)

결국 오류 없이 성공


좀 큰 것 같아서 스너프 규칙은 다음 포스팅에 쓰도록 하겠습니다.

IDS가 생성되면