Snort 설치 및 구동 방법 - Kali Linux (Debian)
제가 운영 중인 Kali Linux(Debian) VM에 snort 테스트를 하기 위해 snort 설치를 진행하였습니다.
Snort는 Network 보안에서 IPS, IDS의 중요한 부분을 차지하고 있습니다.
이론적인 부분뿐만 아니라 실습을 진행하기 위해 snort 설치는 반드시 필요로 합니다.
심도 있는 학습 및 테스트를 진행하기 위해 아래 가이드를 확인하시기 바랍니다.
(참고로 root 계정으로 설치를 진행하였습니다.)
source.list backup
apt-get 패키지 다운로드 서버를 변경하기 위해 우선 default로 설정되어 있는 source.list 파일을 백업합니다.
mv /etc/apt/sources.list /etc/apt/sources.list.bak
아래와 같이 파일명을 변경합니다.
Remove updates
설치된 kali 업데이트를 제거합니다.
find /var/lib/apt/lists -type f -exec rm {} \;
Change source.list content
sources.list 에 update source.list를 추가합니다.
vi /etc/apt/sources.list
아래 리스트를 붙여 넣습니다.
deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://archive.canonical.com/ubuntu focal partner
deb-src http://archive.canonical.com/ubuntu focal partner
※ 참고
위에 방법은 직접 리스트를 작성하는 가이드이고 혹시라도 정상적으로 apt update 가 안된다면 아래 방법으로는 wget을 통해 sources.list를 다운로드할 수 있습니다. 아래 명령어를 참고하시고 진행 부탁드립니다.
wget https://gist.githubusercontent.com/ishad0w/788555191c7037e249a439542c53e170/raw/3822ba49241e6fd851ca1c1cbcc4d7e87382f484/sources.list -O /etc/apt/sources.list
apt update
apt update 명령어를 통해 update를 진행합니다.
다음과 같이 정상 업데이트가 진행되는지 확인해 주세요.
apt update
specified public key 추가
apt update 업데이트를 시도 시 위 이미지와 같이 오류가 발생하는 경우가 있습니다.
GPG 에러가 발생한다면 에러 메시지의 Key 값인 공개키(PUBKEY)를 등록해야 합니다.
※ 에러 메시지 (뒷부분의 NO_PUBKEY 값을 확인)
W: GPG error: http://archive.ubuntu.com trusty-updates Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 3B4FE6ACC0B21F32 NO_PUBKEY 871920D1991BC93C
위 에러 메시지의 NO_PUBKEY 값을 아래와 같이 각각 등록합니다.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 871920D1991BC93C
등록 완료 후 다시 apt update를 수행하여 정상적으로 업데이트가 진행되는지 확인합니다.
apt update
snort install
이제 snort를 설치합니다. 아래 명령어를 사용합니다.
apt install -y snort
websnort install
Web UI로 제공되는 pcap 파일 분석을 위한 웹 서비스가 있어 추가로 설치하였습니다.
websnort 이며 자세한 내용은 하기 링크를 참조 부탁드리겠습니다.
https://github.com/shendo/websnort
websnort 를 설치하기 위해 아래 명령어를 입력합니다.
service snort stop
update-rc.d snort disable
chmod a+r /etc/snort/snort.conf
pip install websnort
websnort service start
websnort을 호출하여 websnort를 구동합니다.
해당 web은 아래와 같이 8080 포트를 사용함을 확인할 수 있습니다.
websnort
websnort access
이제 8080 Port를 통해 websnort에 접속할 수 있습니다.
websnort Web Page가 정상 구동되어야 합니다.
http://<kali_linux_ip>:8080
참고로, kali Linux VM 내에서는 http:127.0.0.1:8080으로 접속하시면 됩니다.
/etc/snort/rules/ 경로에 snort rule이 존재합니다.
사용자 Rule 추가 시 local.rules 파일에 추가 및 서비스 재시작 필요로 합니다.
snort 사용방법
ifconfig 명령어를 통해 탐지하려는 interface name을 확인합니다.
ifconfig
저의 kali linux는 eth0을 사용하네요. 확인된 인터페이스를 아래 명령어에서 수정((ethx -> eth0)하여 입력합니다.
snort -i eth0 -A console -c /etc/snort/snort.conf
# eth0 을 사용하는 interface로 변경하세요.
- -A console 옵션: 탐지 결과 출력
- local.rules에 rule 추가/변경 시 : ctrl+c or ctrl+z로 snort 종료 후 재 실행 필요
아래와 같이 snort가 구동됨을 확인합니다.
snort 종료
ctrl+c or ctrl+z로 snort를 종료할 수 있습니다.
끝으로 백업했던 sources.list를 원복 해줍니다.
cp /etc/apt/sources.list.bak /etc/apt/sources.list
참고로 snort에 대해 알아보시려면 아래 작성한 포스팅을 참고 바랍니다.
[Snort Overview 바로가기]
'IT > Snort' 카테고리의 다른 글
[Snort] #4 Payload Option - content, nocase / rule test (0) | 2023.07.27 |
---|---|
[Snort] #3 Payload Option - Snort Rule OTN (0) | 2023.07.19 |
[Snort] #2 Snort Rule 기초 - RTN, OTN, General Option (0) | 2023.07.17 |
[Kali Linux] 칼리 리눅스 설치 가이드(Oracle VM VirtualBox) 및 초기 설정 팁 (0) | 2023.07.14 |
[Snort] 1. 스노트(Snort) 개요 및 동작 방식 (0) | 2023.02.28 |
댓글