상세 컨텐츠

본문 제목

[리팩토링_19주차] Snort 환경 구성

IT/리팩토링

by 인삼밭 고구마 2024. 1. 17. 14:31

본문

스노트 설치

Snort_2_9_2_3_Installer.exe

 

Snort 2.9.2.3 버전이 자체적으로 schemas 파일을 제공해주는 마지막 버전으로

해당 버전으로 설치하고자 하며 Snort 홈페이지에서는 실행 파일을 다운로드할 수 없음.

Snort_2_9_2_3_Installer.exe

 

위 그림처럼 선택 후 진행합니다.

 

BASE 설치

BASE

 

압축을 해제한 후 C:\xampp\htdocs 위치에 base 라는 폴더 이름으로 넣어둡니다.

 

 

ADOdb 설치

ADOdb

 

압축을 해제한 후 C:\xampp\htdocs 위치에 adodb5 라는 폴더 이름으로 넣어둡니다.

 

 

 

MySQL 초기 비밀번호 셋팅

XAMPP 설치 후에 MySQL 초기 비밀번호가 설정되어 있지 않으므로 아래와 같이 명령어를 입력하여 비밀번호를 설정합니다.

 

1) mysql 라이브러리 파일 위치로 이동  cd C:\xampp\mysql\bin

2) mysql -u root -p mysql 입력 후 비밀번호 없이 엔터 치고 접속함

 

 

 

3) 비밀번호 설정 (특수문자 없이 평문으로 입력할 것!)

update user set password = password('비밀번호') where user = 'root';

4)권한테이블 업데이트

flush privileges;

5) 접속 종료

Quit

 

 

snort 데이터베이스 생성 후 mysql 전용 schemas 적용

 

1) mysql 라이브러리 파일 위치로 이동

cd C:\xampp\mysql\bin

2) snort 데이터베이스 생성

mysqladmin -u root -p create snort

3) mysql 전용 schemas 적용

mysql -D snort -u root -p < create_mysql

* 여기서 create_mysql 파일은 C:\Snort\schemas 폴더에 위치해 있으며 C:\xampp\mysql\bin 폴더에 복사해서 넣어둘 것

5)mysql 콘솔 로그인

mysql -u root -p

6) snort 데이터베이스 선택

use snort;

7) snort 데이터베이스 안에 테이블 확인

show tables;

8) 테이블이 정상적으로 적용되었는지 확인할 것

 

 

BASE 설정

 

base_action.inc.php 파일에서 빨간색 박스 부분은 Report 부분을 Mail 로 보여주는 소스 코드인데 파일이 없어서 오류가 나므로 2줄을 주석 처리한다.(해당 파일은 C:\xampp\htdocs\base\includes 폴더에 위치해 있다.)

// include_once("Mail.php"); // r.rioux added for PEAR::Mail

// include_once("Mail/mime.php"); //r.rioux added for PEAR::Mail attachments

 

 

위 그림과 같이,

인터넷 브라우저에 http://localhost/base 입력하여 BASE 설정을 시작하고 하단의 Continue 버튼 클릭한다.

 

Step 1

 

- 언어는 한글이 안되므로 English 로 선택한다.

- Path to ADODB 설정은 앞서 설치한 ADOdb 의 경로를 적어준다.

 

 

Step 2

 

- Pick a Database type 설정은 MySQL 를 선택한다.

- Database Name 설정은 앞서 생성한 DB 명을 넣어준다.

- Database Host 설정은 localhost 로 기재한다.

- Database User Name Database Password 설정은 MySQL 계정 정보를 입력한다.

- Archive Database 관련 설정은 할 필요 없다.

 

 

Step 3

 

 

- Use Authentication System 옵션을 체크한다. (인증 시스템 사용 여부)

- BASE 웹페이지에 접속 시 사용할 계정 정보를 입력한다.

 

 

 

Step 4-1
Step 4-2

- Create BASE AG 버튼 클릭하면 미리 Table 을 등록하였기에 DOME 이 표시된다.

 

 

 

Step 5

 

- Step 3 에서 설정한 BASE 계정 정보를 입력하여 로그인한다.

 

 

 

- 아직 Snort 탐지 로그가 없는 관계로 결과값이 없다.

 

 

snort.conf 설정

snort.conf 파일은 C:\Snort\etc 폴더에 위치해 있으며 notepad++ 프로그램으로 수정한다.

위 그림과 같이, invar portvar 문자열을 전부 var 문자열로 수정한다.

 

 

위 그림과 같이, 보호할 네트워크 정보, 외부 네트워크 정보, DNS 서버 정보 등 필요한 정보에 대해서 입력한다.

(ex. 보호할 네트워크 정보에서 사설망 대역 또는 자IP만 입력)

-> 두 번째로 만든 아이피 172.30.1.131 입력

 

 

 

다음으로 룰 경로를 리눅스 형식에서 윈도우 형식으로 변경한다.

참고로 so_rules 폴더는 없는 관계로 생성할 것! (C:\Snort\so_rules)

 

 

 

동적 로드 라이브러리 경로를 리눅스 형식에서 윈도우 형식으로 변경한다.

참고로 snort_dynamicrules 폴더는 없는 관계로 생성할 것! (C:\Snort\lib\snort_dynamicrules)

 

 

IDS 모드에서는 사용할 수 없는 관계로 인라인 패킷 정규화 기능을 중지시킨다.

 

 

블랙리스트와 화이트 리스트 경로를 리눅스 형식에서 윈도우 형식으로 변경한다. (/ -> \ 수정)

참고로 white_list.rules black_list.rules 파일을 빈 파일로 생성해서 C:\Snort 폴더에 넣어둘 것.

 

 

 

DB 정보를 입력한다.

password 부분에서 특수문자가 들어가 있을 경우 snort.conf 파일 검증에서 Error 가 발생하므로 평문으로 MySQL password 를 설정해야 함.

 

 

metadata reference data 경로를 입력한다.

 

 

마지막으로 사용할 룰 파일 경로를 설정한다.

IDS를 연구용으로 테스트하고자 디폴트로 설정되어 있는 룰 설정(Step #7: Customize your rule set 옵션)을 전체 주석 처리함.

사용할 룰 파일명을 입력한 후 위치에 C:\Snort\rules 폴더에 해당 룰 파일명으로 파일을 생성한다.

(ex. C:\Snort\rules\kook_snort.rules)

 

 

IDS 테스트

 

위 그림과 같이 파일을 만들어주는 내용은 아래와 같다.

 

 

위 그림처럼 룰 파일에서 룰을 만들어준다.

참고로 Snort sid 옵션을 입력하지 않으면 에러남.

여기서 sid Snort 규칙을 구분하는 식별자임. Snort 의 모든 규칙은 식별 번호를 가지고 있으며 리포팅 프로그램에서 규칙을 구분하는데 사용되기도 함.

1000001 부터 사용자가 정의한 규칙에 대해서 식별자를 사용할 수 있음.

 

다음으로 NIC 번호 확인할껀데 아래와 같이 명령어를 입력한다.

Snort 라이브러리 파일 위치로 이동
cd C:\Snort\bin

NIC 번호 확인 명령어를 입력함. (사용할 NIC 번호가 Index 란에 표시됨)
-W 옵션은 네트워크 인터페이스 확인하는 옵션임.
snort.exe –W

-> 여기서 NIC1번을 사용한다

 

snort.conf 오류 확인

: 아래와 같이 명령어를 입력한다.

snort.exe -T -c c:\snort\etc\snort.conf -l c:\snort\log -i 1

(맨 마지막 숫자는 NIC 카드 번호이다.)

snort successfully validated the configuration!” 문자열이 나오면 오류 없이 설정이 완료된 것이다.

 

snort 실행

 

1) Snort 라이브러리 파일 위치로 이동한 후에 실행해야 에러가 나지 않는다.
cd C:\Snort\bin

2) 스노트 실행 명령어

c:\snort\etc\snort.conf -l c:\snort\log -i 1

 

내 아이피 주소로 ping보내본다. (ping 172.30.1.131)

정상적으로 진행됨을 확인함

 

 

 

 

 

19주차_Snort 환경 구성.pptx
1.75MB

관련글 더보기