Snort IDS 설치 및 설정 과정
- Snort & Pcap 라이브러리 설치
- XAMPP ( Apache Web Server, MySQL, PHP ) 설치
- Base 설치
- Adodb5 설치
- 프로그램 설정
위 순서로 Snort IDS 설치 및 설정을 진행하겠습니다.
1. Snort 설치 및 Pcap 라이브러리 설치
우선 Snort 를 설치하기 앞서 실제 네트워크로 전송되는 패킷을 탐지하기 위해 Pcap 라이브러리가 필요합니다.
Windows 환경에 설치를 하는 것이기 때문에 Winpcap 을 설치를 진행하였습니다.
Winpcap 을 정상적으로 설치가 되었다면 Snort를 설치를 진행합니다.
Snort 설치 과정
제 기준으로 설명을 진행하였습니다.
1. Snort 2.9.2.3 Ver 으로 설치를 진행 => 자체적으로 Schema 파일을 제공해주는 가장 마지막 버전
2. I Agree 를 클릭해 설치 진행
3. 우측 사진에 3가지 옵션이 나오는 단계에서 첫번째 옵션 I do not plan to log to database..... 를 선택 후 설치를 진행하여 설치 마무리 => 해당 옵션은 추후 데이터베이스로 계획할 예정인 옵션
2. XAMPP 설치
XAMPP 란 ?
크로스 플랫폼 웹 서버 자유 소프트웨어 패키지로 Apache Web Server, MySQL, PHP를 사용할 수 있는 프로그램
각각 프로그램을 설치하는 것에 비해 훨씬 시간을 단축시킬 수 있습니다.
XAMPP 설치 과정
1. Next 클릭해 설치 진행
2. 가장 우측 단계에 진입 후 SERVICE SECTION 체크 박스를 모두 체크 후 Install을 클릭해 진행하면 설치 완료
3. Base 설치
Base 란 ?
Snort 시스템의 탐지 로그를 분석하기 위한 웹 프론트 엔드를 제공해주는 파일
Base 설치 과정
1. Base 파일을 다운로드 후 압축을 해제
2. C:\xampp\htdocs\base 경로에 압축을 푼 파일을 모두 저장
※ C:\xampp\htdocs\base 경로에 파일을 저장해야 base 사이트에 접속을 할 때 편함
4. Adodb5 설치
Adodb 란 ?
PHP 데이터베이스 클래스 라이브러리로 데이터베이스 관리를 위한 기능을 제공하는 파일
Adodb5 설치 과정
1. Adodb5 파일을 다운로드
2. Adodb5 파일 압축 해제
3. C:\xampp\htdocs\adodb5 경로에 압축을 푼 파일을 모두 저장
5. 프로그램 설정
1. MySQL 비밀번호 설정
MySQL 비밀번호 설정
XAMPP 설치 후 MySQL 초기 비밀번호가 설정이 되어있지 않기 때문에 아래 명령어를 입력해 비밀번호를 설정합니다.
1. cd C:\xampp\mysql\bin => 해당 경로로 이동
2. mysql -u root -p mysql 입력 후 비밀번호 입력 없이 엔터 입력 후 접속
3. update user set password = password('비밀번호') where user = 'root'; => 비밀번호 셋팅 명령어, 비밀번호 입력란에 원하는 비밀번호 입력
※ 단 특수문자 사용 금지 => 사용할 경우 뒤에 Snort.conf 파일 검증 과정에서 에러가 발생합니다.
4. flush privileges; => 권한 테이블 업데이트
5. quit 또는 Ctrl + C 입력으로 종료
2. Snort DB 생성 후 mysql 전용 스키마 적용
1. C:\snort\schema 경로에 create_mysql 파일을 C:\xampp\mysql\bin 폴더에 복사
2. cmd 실행
3. cd c:\xampp\mysql\bin => mysql 라이브러리 파일 위치로 이동
4. mysqladmin -u root -p create snort => Snort DB 생성
5. mysql -D snort -u root -p < create_mysql => mysql 전용 스키마 적용
6. mysql -u root -p 입력 후 비밀번호 입력 => mysql console 로그인
7. use snort; => snort DB 선택
8. show tables; => snort DB 에 테이블 확인
9. 사진과 같이 테이블이 정상적으로 적용이 되었는지 확인해 같다면 완료한 것
3. Base 설정
1. c:\xampp\htdocs\base\includes 경로에 base_action.inc.php 파일을 열기
2. 29번 30번 라인앞에 // 를 입력하여 주석처리 => 해당 29번 30번 라인은 Report를 Mail로 보여주는 소스 코드이지만
해당 파일이 없어 오류가 발생하기 때문에 해당라인을 주석처리하여 사용하지 않도록 한 것
3. 웹 브라우저에 http://localhost/base 입력
4. Continue 버튼을 눌러 Base 설정 시작
5. Pick a Language 의 경우 한국어가 없기 때문에 영어로 설정하였습니다.
6. Path to ADODB 의 경우 우측 텍스트 박스에 ADODB5를 저장한 경로 입력 후 Continue
지금까지 저와 같은 방식으로 하였을 경우 C:\xampp\htdocs\adodb5 입력
7. Pick a Data type 은 사용할 DB를 설정하는 것 => 저희는 MySQL 을 사용할 것이기 때문에 Mysql 선택
Database Name 은 이전에 DB 생성 시 입력한 DB명 입력
Database Host 는 localhost 입력
Database Port 는 DB 접속 시 어떤 포트로 접속할 것인지 정하는 것인데 입력하지 않아도 무방합니다.
Database User Name, Password 는 MySQL 계정 정보 입력
8. 아래 Archive Database 관련 설정의 경우는 사용하지 않을 것 이기에 따로 체크하지 않았습니다.
9. 위 관련 설정 사항들을 모두 입력 하였다면 Continue를 클릭해 진행
10. Use Authentication System 옵션 체크 => 인증 시스템 사용 여부를 묻는 옵션
11. Admin User Name, Password, Full Name 에 Base 웹 페이지 접속 시 사용할 계정 정보를 입력 후 Continue 버튼을 눌러 진행
12. Create BASE AG 박스를 클릭하면 이전에 미리 Table 등록을 모두 완료하였기에 DONE 이 표시되며 Base 설정 완료
4. Snort.conf 파일 설정
Snort.conf 파일 설정에 앞서 파일 수정을 조금더 편하게 하기 위해 Notepad++ 프로그램을 설치해 사용하는 것을 추천합니다.
1. C:\Snort\etc 경로에 snort.conf 파일을 notepad++ 로 열기
2. Ctrl + F 를 입력 후 상단 메뉴 중 ' 바꾸기 ' 에 들어가 ipvar, portvar 문자열 모두 var 로 수정
3. 45번 라인 var HOME_NET 뒤에 보호할 네트워크 정보, 외부네트워크 정보, DNS 정보 등 필요한 정보를 입력
ex) 192.168.43.0/24
4. Rule 경로가 리눅스 형식으로 초기 설정이 모두 되어있기에 윈도우 형식으로 변경
ex) ../rules => c:\snort\rules
5. 104,105,106 번 라인 경로 형식 변경
6. 247, 250, 253 번 경로의 경우도 윈도우 형식의 경로로 변경
※ 이때 253번 라인의 Snort_dynamicrules 폴더 경우 초기 생성이 되어있지 않기 때문에 아래와 같이
C:\Snort\lib 경로에 생성
7. 265 ~ 269번 라인 앞에 # 을 입력해 주석 처리 => IDS 모드에서 사용할 수 없기 때문에 주석 처리
8. 510, 511번 라인의 경로를 윈도우 형식의 경로로 변경
※ 이때도 White_list.rules 파일과 black_list.rules 파일이 초기 생성이 되어있지 않기 때문에 아래와 같이
C:\snort\rules 경로에 빈파일로 생성
9. 534번 다음줄에 DB 정보를 위 사진과 같이 입력
ex) output database: alert, mysql, user=root password=비밀번호 dbname=snort host=localhost
output database: log, mysql, user=root password=비밀번호 dbname=snort host=localhost
※ 이때 비밀번호 입력란에 이전 MySQL 비밀번호를 입력하는데 이전 설정 시 특수문자를 넣었다면 이곳에서 에러가 발생
10. 542, 543번 라인에 metadata, reference data 경로를 입력
11. 554번 라인에 사용할 룰 파일 경로를 입력
※ 아래 defalut 설정 룰의 경우에는 저는 사용하지 않을 것 이기 때문에 전부 주석처리 하였습니다.
12. 앞서 554번 라인에서 사용할 룰 파일이 초기 생성이 되어있지 않기 때문에 C:\snort\rules 경로에 빈파일로 생성
13. Snort.conf 파일 설정 완료
이렇게 모두 진행하게 되면 Snort IDS 관련 프로그램 설치 및 설정은 완료됩니다.
Snort IDS TEST
1. 테스트 진행하기 앞서 이전에 사용할 룰 파일에 룰 입력
2. 모니터링할 NIC( Network Interface card ) 번호를 지정하기 위해 Snort 라이브러리 파일 위치로 이동
cd c:\snort\bin
3. 네트워크 인터페이스 확인 명령어 입력
Snort.exe -W
4. 1번 NIC 을 모니터링 할 것이므로 아래와 같이 명령어 입력
snort.exe -T -c c:\snort\etc\snort.conf -l c:\snort\log -i 1 입력 => -T 옵션 사용으로 우선 Snort.conf 파일 검증 테스트 진행
5. 위 사진과 같이 Snort successfully .... 이라는 문자열이 확인되면 이전 설정들이 모두 잘 진행된 것
6. 이전 설정이 모두 잘 진행이 되었다면 Snort를 실행
snort.exe -c c:\snort\etc\snort.conf -l c:\snort\log -i 1
-c 옵션 : snort 설정 파일 위치 지정
-l 옵션 : 로그 파일 저장 위치 지정
-i 옵션 모니터링할 NIC 번호 지정
7. 명령어를 입력해 위 사진과 같은 화면이 나온다면 정상적으로 Snort가 실행된 것
8. 다른 가상환경에서 해당 IP로 Ping 을 보내 정상적으로 탐지가 되는지 확인합니다.
9. 위 사진과 같이 정상적으로 ICMP 패킷이 탐지가 되는 것을 확인할 수 있습니다.
'리팩토링' 카테고리의 다른 글
악성코드 샘플 분석 실습3 (0) | 2023.10.09 |
---|---|
Snort 개요 (0) | 2023.10.09 |
악성코드 샘플 분석 실습2 (0) | 2023.10.09 |
악성코드 샘플 분석 실습 (0) | 2023.10.09 |
샘플 분석 환경 구성 (0) | 2023.03.28 |