[Monitoring] KALI-Snort 설치 및 기본 설정

Song·2024년 9월 30일

설치

1) 저장소 백업

mv /etc/apt/sources.list /etc/apt/sources.list.bak

2) 업데이트 제거

find /var/lib/apt/lists -type f -exec rm {} \;

3) 새 저장소 등록

/etc/apt/sources.list 파일 생성 후 아래 구문 작성

작성 후 apt update -y

4) key 등록

update 시 에러가 출력되면 에러에서 NO_PUBKEY 값 복사해서 아래 명령어 실행.

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 871920D1991BC93C

5) update & upgrade

apt update -y && apt upgrade -y

6) snort 설치

apt install -y snort

설치 중간에 위와 같은 화면이 출력되면 엔터.

7) websnort 설정

service snort stop 명령어로 snort 중지시킨 후

update-rc.d snort disable
chmod a+r /etc/snort/snort.conf
pip install websnort

서버아이피/8080 접속 시 아래와 같은 화면 출력.

8) snort 실행

돼지 그림 출력 시 성공



설정

1) 환경 설정

/etc/snort/snort.debian.conf 파일

17라인 구문 수정(snort로 보호할 대역)

/etc/default/snort 파일에서 로그 파일 위치 확인

2) 탐지 설정

/etc/snort/snort.conf

51라인 구문 수정

54라인 구문 확인

3) 서비스 실행

service snort start

4) rule 설정

/etc/snort/rules 디렉토리 안에 탐지 룰이 저장되어 있다.

telnet rule

하지만, 해당 rule을 사용하지 않고 직접 생성해서 사용한다. rule과 관련된 내용은 snort.conf 파일 579~696라인에 정의 되어 있기 때문에 전부 주석처리.

cp /etc/snort/snort.conf /etc/snort/snort.conf.bak

우선, snort.conf 파일 백업 생성

  • vi로 주석
    :시작행,마지막행s/^/#/ 명령으로 주석처리

  • sed로 주석
    sed -i "s/include \$RULE_PATH/\#include \$RULE_PATH/" /etc/snort/snort.conf"

571 라인 주석 제거

5) rule 기본 구조

snort 메뉴얼 페이지

1. alert                                    #Rule Action
   - 어떻게 처리할 것인지
   - alert, log, pass, drop, reject, sdrop 중 선택
     => alert -> IDS
     => drop, reject -> IPS
   
2. tcp                                      #Protocols
3. $EXTERNAL_NET                            #Source_IP
4. any                                      #Source_Port
5. ->                                       #Director Operator
   - 방향 지시자는 2개
   - -> 왼쪽에서 오른쪽으로 (외부 -> 내부)
   - <> 양방향 진행 (3way-Handshake)
   
6. $TELNET_SERVERS                          #Destination_IP
7. 23                                       #Destination_Port

6) Local rule 설정

/etc/snort/local.rules

  • 단일 IP일 경우 서브넷 마스크 /32
  • msg : 탐지 시 출력될 메시지.
  • sid : rule 고유 식별자.
  • rev : rule 처음 생성 시 1, 여기에 추가 케이스, 기존 룰의 향상된 버전일 경우 2 이상.

service snort restart

아래 명령어 입력 후 KALI로 핑을 보내면 아래와 같이 탐지가 되는 것을 볼 수 있다.

  • SSH, Telnet, HTTP 탐지 룰



로그

/var/log/snort 디렉토리 안을 보면 snort 로그를 확인할 수 있다.

해당 로그 파일들은 바이너리 파일이기 때문에 내용을 보려면 아래 명령어로 열어줘야 한다.

snort -de -r snort.log

명령어를 입력하면 아래 그림처럼 패킷 정보들을 확인할 수 있다.



탐지

profile
안녕하세요

0개의 댓글