(본 게시글은 과거의 내가 미래의 나를 위해 설명해둔 정보로, 굉장히 불친절하다.)
(2016.02.28)
snort 를 설치해보자
시작하기에 앞서 인터넷이 연결되어 있는 Linux를 준비한다.
우선 공식 홈페이지에 방문한다.
www.snort.org
snort 뿐만 아니라 daq도 받아야한다. daq는 snort 전용 라이브러리다.
공식홈페이지에서 받는 것 이외에 부가적으로 필요한 것들이 있다.
snort는 의존성오류가 매우 많기 때문에 (실행, 동작, 설치 등에 있어 의존하는 프로그램이 많기 때문에)
아래와 같은 소스들을 필요로 한다.

이 소스들 외에도 여러가지가 더 필요하지만 그것들은 yum으로 설치할 것이기 때문에 아직 사진에 안 나왔다.
(위의 다섯 프로그램들은 yum으로 설치할 수 없거나, 웹에서 패키지를 찾지 못하거나, 설치하는데 에러가 발생했다.)
또한 시간이 흐름에 따라 버전이 바뀔 수도 있다. 위의 버전을 절대적이지 않다.
소스는 리눅스에서 파이어폭스를 켜 직접 받아도 되고
윈도우에서 받아 드래그 앤 드롭으로 리눅스에 업로드해도 되고
윈도우에서 받아 telnet 등 원격접속터미널을 이용해 올려도 좋다.

나는 리눅스 바탕화면에 드래그 앤 드롭으로 올렸다.

리눅스의 바탕화면에 다섯 개의 tar.gz를 올렸으면
mv /home/admin/Desktop/옮길 파일명/root
이렇게 명령어를 쳐서
/root 디렉토리 위로 올려주자.
(명령어는 관리자 root 권한으로 실행했다.)
옮겼으면 천천히 진행해보자.

옮긴 파일들이 연두색으로 표시된다. 이것은 실행 권한이 있다는 색깔 표시다.
chmod 644 파일명으로 권한을 내려주자.
실행 권한이 있는 파일들은 해커의 공격대상이 되기 때문이다. (파일 소유자가 root면 더 위험하다.)

빨간색이 되었으면 이제 압축을 해제해보자.
tar -xvzf 파일명
위와 같은 명령어로 압축을 해제하다보니 어디선가 오류가 떴다.
그래서 찾아보니 zlib 관련 오류라고 한다.
그래서 z 옵션을 빼고 'tar -xvf 파일명'으로 해보니 잘 풀렸었다.

(보기 편하려고 불필요한 파일들과 압축된 기존의 소스들을 지웠다.)
결론적으로 이렇게 다섯 가지가 준비되어야 한다.
이제 snort를 깔아보자.
위 사진에 나온 snort 디렉토리로 이동한다.
무엇을 설치하든 설명서를 보는 건 기본이다.
snort같은 경우엔 설치 설명서가 /snort-x.x.x.x/doc/INSTALL 에 있다.
vi로 열었다.

설명서인 INSTALL 파일을 열어서 살펴보면 1번 항목에 딱 봐도 설치와는 관계없는 uninstall 이야기가 나온다.
따라서 2번 항목으로 넘어가면 위처럼 설명이 되어 있다.
대략 해석해보면
"인스톨하기 위해선 libdnet, libpcap, libpcre가 필요하다. 또한 그것들을 make하기 위해선 dnet-config, pcre-config, daq-modules-config가 패치되어 있어야 한다. 너는 which를 사용할 수 있어야 한다."
당시에는 이게 무슨 말인지 이해하느라 시간을 좀 썼다.
->
아무튼 *-config 파일들을 준비하고 나서 which라는 명령어로 패치가 됐는지 안 됐는지 확인하고
멀쩡하게 패치가 됐으면 snort를 인스톨하기 위한 libdnet, libpcap, libpcre를 설치할 수 있다는 말이며
그 3개의 소스까지 전부 설치하고나면 최종적으로 snort를 인스톨 할 수 있다는 이야기다.
즉, snort는 굉장히 많은 프로그램에 의존하고 있다.
snort에 쓰이는 전용 라이브러리인 daq부터 해결하자.
설치를 위해 daq 디렉토리에 들어가 README 라는 문서를 열어주면

./configure -> make -> make install 순으로 설치를 진행하면 될 것 같다. (sudo는 관리자 권한을 위한 접두사이다.)
daq 디렉토리에서 ./configure 해보면 에러가 발생할 것이다.
flex나 libpcap (또는 둘 다)가 없어서 인스톨을 할 수 없다는 에러다.
(그래서 libpcap를 깔려고 하니 또 flex가 없다고 에러가 났다ㅠㅠ)
여기서부터 의존성의 의존성이 꼬리를 달고 오류가 난다. 그것도 아주 단순한 이유로...
삽질하지 않고 설명을 생략하겠다.
yum -y install byacc
이것은 yacc라는 것인데 flex를 까는데 필요하다.
yum -y install flex
flex 디렉토리에서 ./configure && make && make install
와 이제 됐구나 싶어서 libpcap을 설치하려고 하지마라. 아직 또 남았다.
bison이다. 그냥 이것도 단순한 의존성 오류다...
yum -y install bison
이제 정말로 libpcap 디렉토리로 가서 ./configure && make && make install
이러면 libpcap 설치가 끝난다.
daq 디렉토리에 가서 ./configure &&make && make install
daq도 설치가 끝난다.
그럼이제 libpcre와 libdnet이 남았다.
yum -y install pcre-devel
libpcre는 yum으로 단번에 깔린다.
설명서가 시키는대로 진행해보자.
dnet-config를 깐다.
구글링해보니 libdnet-devel 이라는 것이 이 설명서에서 말하는 *dnet 종류인가보다.
이 글의 첫 부분에 나온 사진에 libdnet*.tar.gz가 포함된 것을 확인할 수 있다.
libdnet설치 파일은 구글링해서 쉽게 구할 수 있다.
해당 파일의 압축을 풀고 그 디렉토리 안에서 INSTALL 이라는 문서를 vi로 열어 확인해보면


시키는대로 설치하면 C++에러가 뜰 것이다.
이것 역시 구글링해보니 gcc-c++이 없어서 안 된다는 말이다.
가볍게 yum -y install gcc-c++ 로 깔아주고
./configure && make 해주자. 아마 에러 없이 설치될 것이다.
최종적으로
rpm -qa | grep libpcre
rpm -qa | grep libpcap
두 가지를 확인하고
which dnet-config
which pcre-config
which daq-modules-config
세 가지를 확인.
이제 snort 설치에 필요한 의존성 문제를 해결했다.
snort 디렉토리로 간다. (네가 너무 많은 작업 때문에 까먹을까봐 적는다. 작업 위치는 기본적으로 /root 다.)
./configure 해서 snort를 설치한다.
기분좋게 깔리는가 싶더니 또 에러가 난다. 이번에도 의존성 오류다. 으앙ㄴㄹㅇㅁ날으ㅏㅇ
만약 여기까지 모든 프로그램을 설치했는데 뜨는 에러라면 zlib 이라는게 없어서 그런 것이 확실하다.
yum -y install zlib zlib-devel 이렇게 해도 된다는데 안 되면 그냥 처음에 준비한 zlib*.tar.gz를 수동설치하자.
압축 풀고 그 속에 있는 README 문서를 열어보면 설치법이 나오는데
앞서 나왔던 설치법과 명령어가 조금 다르므로 주의하자.
zlib은
./configure; make test
./make install
이렇게 설치하자.
다행히 zlib은 시킨대로만 하면 에러 없이 설치된다.
이제 진짜로 snort 디렉토리로 가서 ./configure 해보면 막힘 없이 진행된다. (5분 이내로 끝났다.)
나머지 과정인
./make && make install
두 명령어도 입력해주면 역시 조금의 시간이 지난 뒤 설치가 완료된다.
snort는 그냥 snort 치면 켜진다. 기본적으로 sniffer 모드이기 떄문에 패킷을 계속 캡처하고 있다.
snort를 켜보면
''----
O )~
'' ''
이런게 보인다. 정말로 설치가 끝났다.
-TIP-
linux OS에서 제공하는 터미널창으로 보면 너무 빠르게 캡처되는 패킷 때문에 확인할 수가 없다.
마치 정지하거나 렉걸린 듯이 보이다가 글자가 확 넘어가고를 반복할 것이다.
putty같은 원격접속터미널로 snort를 실행하면 패킷이 캡처되는 게 육안으로 확인된다.
종료는 컨트롤+c다. 이때 캡처된 패킷의 정보를 통계화하여 보여주므로 유용하다.
네가 다음에 또 snort를 설치할 일이 있다면 더 쉬운 길을 찾아내길 바란다..
'IT > 지식' 카테고리의 다른 글
버프스위트(BurpSuite) 공부1_설치, 설정 (0) | 2022.06.24 |
---|---|
네트워크 패킷 수집&분석 툴 종류 (0) | 2022.05.26 |
티스토리 이미지 우클릭(마우스 오른쪽 클릭) 무력화 (0) | 2022.05.25 |
XAMPP의 Apache 작동 에러 (0) | 2022.05.24 |
VMware의 물리적 주소와 리눅스의 물리적 주소 매칭 (0) | 2022.05.24 |
댓글