[2024.07.03]
[IDS]
01. snort 다운로드 및 설치
#yum -y install epel-release
1) snort 다운로드
#wget https://snort.org/downloads/snort/snort-2.9.20-1.centos.x86_64.rpm --no-check-certificate
#wget https://snort.org/downloads/snort/snort-openappid-2.9.20-1.centos.x86_64.rpm --no-check-certificate
2) snort 설치
#yum -y install snort-2.9.20-1.centos.x86_64.rpm --skip-broken
#yum -y install libdnet
#cd/lib64
#ln -s libdnet.so.1.0.1 libdnet.1
#mkdir -p /usr/local/lib/snort_dynamicrules
snort.conf의 경우 하나라도 틀어지게 되면,
처음부터 다시 설치해서 사용해야 되기 때문에 snort.conf의 복사본을 만든다
그 다음 libdnet으로 링크를 걸어두고
확인 시 libdnet.so.1.0.1과 같이 나타나면 성공적으로 링크가 걸린다
마지막으로 lib 디렉터리에 snort_dynamicrules라는 디렉터리를 생성해 준다
02. snort 환경 설정
> /etc/snort/snort.conf
45 ipvar HOME_NET 192.168.10.0/24
104 var RULE_PATH /etc/snort/rules
105 var SO_RULE_PATH /etc/snort/so_rules
106 var PREPROC_RULE_PATH /etc/snort/preproc_rules
113 var WHITE_LIST_PATH /etc/snort/rules
114 var BLACK_LIST_PATH /etc/snort/rules
<옵션>
:548,651s/^/#/ <-- 548번부터 651번까지 주석(#)을 삽입
왼쪽의 any 화면에서 192.168.10.0/24로 변경시켜 준다
../ 부분으로 되어 있던 곳을 다 /etc/snort로 변경시킨다
113, 114 라인도 절대 경로로 변경시켜 준다
주석(#)이 없는 상태에서 아래의 옵션을 입력해 주게 되면
548번부터 651번까지 주석(#)이 삽입된 걸 볼 수 있다
cd /etc/snort/rules로 들어간다
각각의 파일을 생성해 주면 환경 설정은 끝난다
03. snort 룰 설정
> /etc/snort/rules/local.rules
#snort -i ens33 -A console -c /etc/snort/snort.conf
해당 rules의 디렉터리로 가서 local.rules라는 파일을 생성한다
빈 화면에서 화면에 보이는 명령어와 같이 입력한다
snort로 탐지 대기 상태를 만들어 주고
Kali linux에서 Cetnos 7의 ip 주소를 넣고 ping을 돌려 본다
보시다시피 Kali linux에서는 잘 돌아가는 것을 볼 수 있다
다시 CentOS 7으로 돌아와서 확인해 보면 icmp를 감지해 이런 화면이 나타나게 된다
이렇게 CentOS 7에서 이런 화면이 나올 시 성공했다고 볼 수 있다
이번에는 ftp를 실행해 보려고 한다
해당 룰을 약간씩 수정한 다음
systemctl restart vsftpd를 실행 후
snort 공격을 시도한다
*vsftpd가 없는 경우 설치 후 시도해야 된다
다시 Kali linux에서 이번에는 ftp로 시도해 본다
정상적으로 로그인이 되는 걸 볼 수 있다
CentOS 7에서는 ftp가 성공하게 되면 또 탐지를 해서 해당 화면처럼 보여지게 된다
#yum -y install telnet-server
#systemctl restart telnet.socket
telnet을 실행하기 위해 위의 두 명령어를 실행
그 후 똑같이 룰을 수정시켜 준다
*이 화면의 경우 강사님께서 혼자 telnet도 성공시켜 보라고 해서 혼자 해 본 테스트 화면이다
CentOS 7의 탐지 대기 상태 화면
마찬가지로 Kali linux에서는 telnet도 성공한다
룰만 맞게 입력했다면 에러가 뜨지 않고도 CentOS 7에서 탐지하는 걸 확인할 수 있다
혼자 해 본 걸 성공 후에 강사님께서 가르쳐 주신 방법대로
다시 룰을 수정시킨 후 다시 진행했다
CentOS 7을 대기 상태로 만들고
Kali linux에서는 telnet 접속 시도를 한다
정상적으로 접속이 됐다면
CentOS 7에서도 telnet의 TELNET Connetion이 나온다면 성공이다
이것도 마지막에 강사님께서 ssh도 성공시켜 보라는 미션을 주셔서 혼자 시도해 봤다
똑같이 룰을 수정하고 Kali linux와 CentOS 7에서 시도 시
마지막으로 ssh도 성공한 걸 확인할 수 있다
탐지 실습을 진행 중에 있기 때문에 Kali linux에서 접속이 되어도
CentOS 7에서 탐지가 되지 않으면 무용지물이다
강의 소감
지난 시간에 이어 오늘도 snort 다운로드 및 설치부터 탐지 실습까지 진행했다
점점 응용해서 내가 생각해서 시도해 봐야 되는 부분이 늘어나서 약간 힘들지만 그래도 배우는 느낌이 들어서 좋다