2012-09-13

FreeBSD] ntop 설치 및 설정


이번에 ntop 설치와 설정에 관한 내용입니다.. 참조하세요..^^;;

참조한 문서들이 있으니.. 부족하다 생각되시면 해당 문서들은 보시기 바랍니다..

(세부 설명은 해당 문서들을 그대로 카피했음을 미리 알려드립니다.. 제가 설명한것보다 잘 되어 있는 것 같아서요..^^)


#############################################################
ntop은 네트워크에서 관련 호스트들과의 관계를 네트워크 트래픽을 통해 모니터링하는 프로그램이다.

사용 방법은 터미널 방식과 웹 방식이 있는데 웹 방식이 보다 관리하기 편하다. 그리고 ntop에서 보고되는 결과 값은 서브네트에서 발생하는 트래픽을 보여주며 적어도 아래와 같은 내용을 체크 할 수 있다.


1) 네트워크의 모든 프로토콜에 대한 송수신
2) 사용되는 프로토콜의 통계 제공
3) 트래픽 통계 제공
4) IP 트래픽
5) 현재 사용되는 세션(TCP)
6) 트래픽 사용 형태(지역 및 원격여부)
7) 패킷 필터링을 통해서 서버쪽에 연결된 세션(session)을 쉽게 확인

#############################################################



참조 문서 : http://tunelinux.pe.kr/tune/tunning-pse/pse-02.html (설명 위주)
http://kltp.kldp.org/stories.php?story=02/04/25/5169083 (설치 위주)

다운 http://snapshot.ntop.org/ 에서 ntop-2.0-src.tgz (안정 버전) 다운


[root@kan ntop]# ./configure
[root@kan ntop]# mkdir /usr/local/man/man1/intop

-----------------------------------------------------------

이것은 make 후 make install시 redhat7.2 에서는 컴파일 과정 automake 때문에 man 페이지를 생성하지 못해 에러가 발생해서 직접 생성한것임


/bin/sh ./mkinstalldirs /usr/local/man/man1
/usr/bin/install -c -m 644 ./intop/intop.1 /usr/local/man/man1/intop/intop.1
/usr/bin/install: cannot create regular file `/usr/local/man/man1/intop/intop.1': 그런 파일이나 디렉토리가 없음


생성 안하고 make install 할 경우 나타나는 에러 문구
-----------------------------------------------------------
[root@kan ntop]# make
[root@kan ntop]# make install

-----------------------------------------------------------

Libraries have been installed in:

/usr/local/lib



If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'


See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------



[root@kan ntop]# mkdir /home/kan/html/ntop_conf
[root@kan ntop]# /usr/local/bin/ntop -W 3000 -P /home/kan/html/ntop_conf -r 180 -i eth0 -m 해당아이피 -d



Wait please: ntop is coming up...
15/Jun/2002 13:51:36 Initializing IP services...
15/Jun/2002 13:51:36 Initializing SSL...
15/Jun/2002 13:51:36 Unable to find SSL certificate 'ntop-cert.pem'. SSL support has been disabled

15/Jun/2002 13:51:36 Bye bye: I'm becoming a daemon...



SSL에서 에러가 발생하면.. ntop-cert.pem 을 카피해서 해당 디비 밑으로 이동하면 된다..

[root@kan bin]# pwd
 /usr/local/bin
[root@kan bin]# cp ntop-cert.pem /home/kan/html/ntop_conf/



다시 실행을 하면..

Wait please: ntop is coming up...

15/Jun/2002 14:02:33 Initializing IP services...
15/Jun/2002 14:02:33 Initializing SSL...
15/Jun/2002 14:02:33 SSL initialized successfully
15/Jun/2002 14:02:33 Bye bye: I'm becoming a daemon..

정상적으로 스타팅이 되는것을 볼수 있을것이다..



-w: http 프로토콜의 포트번호
-W: ssl 로 띄울 포트번호
-P: ntop 이 시작될때 생성되는 db 화일이 존재할 디렉토리..꼭 이 옵션을 줘야 함.
-r: refresh 시간입니다. default 는 3초
-m: 모니터링할 네트웍 대역폭.
-d : 는 데몬으로 띄운다는 거죠..처음에 실행하실때는 데몬으로 띄우지 마시고 그냥 띄우면서 어떻게 뜨는지 확인해 보시는 것도 좋을것



웹상에서 https://aaa.co.kr:3000 입력하면 ntop 의 막강한 기능을 웹상에서 볼수 있을 것이다..



ntop의 웹 페이지는 /usr/local/share/ntop/html 이곳에 있다.. ($NTOP_PREFIX/share/ntop/html )


-------------------------------------------------------------

텔넷 모드

ntop은 텔넷 모드를 이용하여 그 순간에 발생되는 트래픽에 대해 쉽게 트래픽을 얻을 수 있다. 터미널 모드는 관리자의 핫키를 선택함으로써 그 값을 얻을 수 있다. 'r'키를 선택하면 통계 데이타를 리셋하게 된다. 'n'키를 선택하게 되면 장비와 장비 주소(Mac address) 그리고 일반 호스트 값을 얻을 수 있으며  'p'키를 선택하면 각 인터페이스 카드에서 받은 트래픽 양을 볼 수 있다. 'l'을 선택하게 되면 현재 호스트 들의 값을 보여주며 'd'는 idle 상태에서 송수신으로 되는 비율을 나타내고 't'는 송수신량에 대해 분류하여 제공한다. 'y'는 각 컬럼을 소트하여 보여주고 일반 스페이스는 각 호스트별 네트워크 사용량을 체크 할 수 있다. 위와 같은 방법을 이용하면 쉽게 터미널 모드에서 원하는 통계 값을 얻을 수 있다.

------------------------------------------------------------


참고 rrdtool 을 사용해서 mrtg 처럼 시간대별로 그래픽화 할수 있다고 함..


[root@kan html]# ps -ax

19612 ? S 0:00 /usr/local/bin/ntop -W 3000 -P /home/kan/html/ntop_conf -r 180 -i eth0 -m 12.34.56.78 -d

19613 ? S 0:00 /usr/local/bin/ntop -W 3000 -P /home/kan/html/ntop_conf -r 180 -i eth0 -m 12.34.56.78 -d

19614 ? S 0:00 /usr/local/bin/ntop -W 3000 -P /home/kan/html/ntop_conf -r 180 -i eth0 -m 12.34.56.78 -d

19615 ? S 0:00 /usr/local/bin/ntop -W 3000 -P /home/kan/html/ntop_conf -r 180 -i eth0 -m 12.34.56.78 -d

19616 ? S 0:00 /usr/local/bin/ntop -W 3000 -P /home/kan/html/ntop_conf -r 180 -i eth0 -m 12.34.56.78 -d

19617 ? S 0:00 /usr/local/bin/ntop -W 3000 -P /home/kan/html/ntop_conf -r 180 -i eth0 -m 12.34.56.78 -d

19618 ? S 0:00 /usr/local/bin/ntop -W 3000 -P /home/kan/html/ntop_conf -r 180 -i eth0 -m 12.34.56.78 -d

19619 ? S 0:00 /usr/local/bin/ntop -W 3000 -P /home/kan/html/ntop_conf -r 180 -i eth0 -m 12.34.56.78 -d

19620 ? S 0:00 /usr/local/bin/ntop -W 3000 -P /home/kan/html/ntop_conf -r 180 -i eth0 -m 12.34.56.78 -d

19621 ? S 0:03 /usr/local/bin/ntop -W 3000 -P /home/kan/html/ntop_conf -r 180 -i eth0 -m 12.34.56.78 -d

19622 ? S 0:00 /usr/local/bin/ntop -W 3000 -P /home/kan/html/ntop_conf -r 180 -i eth0 -m 12.34.56.78 -d

19970 pts/2 R 0:00 ps -ax

[root@kan html]# kill -9 19612 <== 프로세스 죽일시 맨 위에거 하나만 죽이면 다 죽음..



[root@kan bin]# /usr/local/bin/ntop -W 3000 -P /home/kan/html/ntop_conf -r 180 -i eth0 -m 12.34.56.78 -d -u kan

Wait please: ntop is coming up...

15/Jun/2002 15:00:44 Initializing IP services...
15/Jun/2002 15:00:44 Initializing SSL...
15/Jun/2002 15:00:44 SSL initialized successfully
15/Jun/2002 15:00:44 Bye bye: I'm becoming a daemon...


[root@kan bin]# /usr/local/bin/ntop -w 3000 -P /home/kan/html/ntop_conf -r 180 -i eth0 -m 12.34.56.78 -d


-W 3000 옵션으로 https:// 를 사용하려고 하였으나 실행시

17/Jun/2002 11:48:56 listen error.

에러가 발생하여.. 사용을 안하고 -w 3000 으로 그냥 http 에서 관리하기로 함..



인증을 하려면.. admin->user에 사용자를 하나 추가하고.. urls 에 전제 경로를 해 주면 된다..



#################################################################
부연 설명
#################################################################



ㅇ Data Rcvd/Data Sent

현재 네트워크에서 주고 받은 네트워크 트래픽을 각 호스트별, 프로토콜별로 모니터링할 수 있고 각 호스트별로 총처리량을 알 수 있다. 호스트명을 클릭하면 해당 호스트에 대한 정보가 나온다. 여기에는 트래픽 일반정보, IP 프로토콜 분포, 연결되어 있는 각 호스트 정보, ip 서비스/포트 사용 현황, IP 세션 히스토리, 활성화되어 있는 TCP 세션 등에 대한 정보를 알 수 있다.



ㅇ Stats

전반적인 네트워크에 대한 통계를 볼 수 있다. 멀티캐스트 통계, 전체 트래픽 현황, 프로토콜별 현황, IP 프로토콜 현황, 호스트별 대역폭 사용량, 최근의 네트워크 평균 처리량 등에 대한 정보를 알 수 있다.



ㅇ IP Traffic/IP Protocols

IP 트래픽은 원격에서 로컬로, 로컬에서 원격으로, 로컬에서 로컬로 IP 트래픽이 어떻게 사용되었는지에 대한 내용을 보여준다. 또한 IP 서브넷별 트래픽 현황을 보여준다. IP 프로토콜은 IP 트래픽을 개별 프로토콜별로 나누어서 상세히 보여준다. 이를 통하여 트래픽 유형이 어떻게 진행되고 있는지에 대하여 상세하게 알 수 있다. 내부 트래픽이 많은지 아니면 내부와 외부 트래픽이 많은지, 각 트래픽별로 어떠한 프로토콜을 많이 사용하고 있는지 분석할 수 있다.

-------------------------------------------------------------

참고로 Data Rcvd-NetFlows 에는 위의 기본설정으로 시작하면 아무런 내용도 나오지 않을 것이다. ?F 옵션을 이용하여 특정할 룰에 맞는 패킷에 대해서 볼 수가 있다. 아래 예제는 love 또는 taejun 이라는 호스트, 그리고 db 라는 호스트에 대한 트래픽 현황을 보기 위한 것이다.



# ntop -w 3000 -F "love='host love or taejun',db='host db'"



Ntop에서 사용하는 필터 옵션은 tcpdump와 유사하며 이에 대해서는 “BPF Packet Filtering Expressions”라는 내용을 참고해야 한다. Ntop에 대한 자료가 아직은 부족한 편이고 맨 페이지도 간략하게만 나와있는데 이에 대한 문서는 ntop 사이트에서 Docs메뉴에 가면 “User's guide (draft and outdated [any volunteer out there?])” 에서 다운받아 사용하면 된다. 여러가지 예제들이 많이 있고 그나마 자세하게 ntop에 대해서 설명하고 있으므로 ntop에 관심이 있다면 많은 도움이 될 것이다.

-------------------------------------------------------------

위에서 본바와 같이 ntop은 네트워크 전반에서 발생하고 있는 트래픽 형태를 파악할 수 있으며 네트워크에 문제가 생길 경우 이에 대한 상세한 기초자료가 될 수 있다.

Ping이나 traceroute 등의 프로그램을 이용해서는 연결과 관련된 단편적인 정보만 알 수 있을 뿐이며 MRTG는 전체적인 트래픽만 확인할 수 있다.

Ntop을 이용하면 예를 들어 특정한 호스트에 백도어나 크래킹 툴이 설치되어 있는 경우 크래킹 당한 호스트를 통해 외부 공격을 하게되고 이로 인해 네트워크의 트래픽이 증가할 수 있는데 이러한 경우 주기적으로 결과를 모니터링해서 평소와 다른 트래픽 유형을 보인다면 쉽게 문제를 파악할 수 있다.

불필요하게 사용되고 있는 프로토콜은 제한을 하여 네트워크 용량을 절약할 수 있으며 이러한 트래픽 결과를 가지고 분석하여 효율적으로 네트워크를 재설계하는데 도움이 될 수 있다.

댓글 없음:

댓글 쓰기