블로그 > ddolteng's....... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
NetFlow 데이터 분석 관련 프로그램 설치 및 활용 (RRDTool, flow-tools, FlowScan, and CUFlow) 1. NetFlow 데이터란? Source IP와 destination IP사이에 발생하는 일련의 패킷들을 NetFlow라고 정의할 수 있는데, 여기에는 NetFlow버전에 따라 다양한 정보를 포함하고 있다. 기본적으로 source IP, destination IP, application port 번호, IP Protocol Type, Service Type, AS번호 등이다. 이런 정보를 이용해 현재 발생하고 있는 이벤트에 대한 추적이 가능하다. 참조: http://www.cisco.com/warp/public/cc/pd/iosw/ioft/neflct/tech/napps_wp.htm 기존의 MRTG가 실제 트래픽 사용률에 대한 정보를 보여 주었다면, NetFlow 데이터는 위에서 언급한 정보들을 가지고 있으므로 과다한 트래픽을 발생시키는 IP나, 바이러스에 감염된 PC, 그리고 현재 우리 네트웍에서 어떤 유형의 트래픽이 많은 지를 분석할 수 있다. 따라서 MRTG와 FlowScan을 병행하면 굳이 고가의 NMS 프로그램을 구입하지 않더라도 수준급의 보안 시스템을 구축했다고 볼 수 있지 않을까? * 실제예 : 바이러스에 감염된 전용선 가입자의 MRTG 그래프 및 FlowScan 검색
☞ 이제부터 NetFlow 데이터를 분석하는 프로그램들을 설치해보자. 2. 프로그램 설치 1) 내가 설치한 시스템 사양 [H/W] 모델명 : 인텔 ISP2150 (인텔 조립서버라고 많이 부름) CPU : PIII 800MHz *2 (듀얼CPU) Memory : 1024Gbytes DISK : 9Gbytes*1, 72Gbytes*1 (모두 SCSI방식, 72G에 NetFlow데이터 쌓임) [S/W] OS : Redhat Linux 7.2 설치패키지 : Linux설치 시 대부분의 패키지 설치(게임 관련 패키지 제외) 2) 프로그램 설치순서 및 역할
3) 설치 ① Apache는 Linux 설치 시 패키지로 설치하거나 최신버전을 다운받아 설치하면 된다. ② Perl5역시 Apache와 동일한 방법으로 설치하면 된다.
☞ 자, 이제 NetFlow데이터를 수집하고 가공하기 위해 필요한 프로그램 설치는 끝났다. 그럼 실제 라우터나 스위치에서 NetFlow 데이터를 FlowScan서버로 보내는 방법과 이를 서버에서 처리하기 위한 사전 환경설정에 대해서 알아보자. 3. NetFlow 데이터 보내기 1) 시스코 라우터 설정 (여기서는 시스코7513 라우터에서 설정) #Global-mode ip flow-export version 5 peer-as ip flow-export destination x.x.x.x y (x.x.x.x –collector’s ip주소 / y -port번호, 보통 FlowScan프로그램은 2055/UDP를 사용한다.) #Interface-mode ip route-cache flow 2) 확인 (아래 flows 개수가 증가하는 지 확인) 7513#sh ip flow export Flow export is enabled Exporting flows to x.x.x.x (y) Exporting using source IP address x.x.x.x Version 5 flow records, peer-as 439795660 flows exported in 16392366 udp datagrams 0 flows failed due to lack of export packet 4. FlowScan서버 환경구성 1) flow-tools ① flow파일 및 RRD파일이 저장될 디렉토리 생성 #mkdir –p /var/netflow/ #mkdir –p /var/netflow/ft #mkdir –p /var/netflow/rrds #mkdir –p /var/netflow/scoreboard ② /usr/local/netflow/bin 밑에 export라는 파일을 만들고 소유권한을 ‘chmod a+x export’로 준다. #cd /usr/local/netflow/bin #touch export #chmod a+w export ③ export 파일을 아래와 같이 편집한다.
④ tcpdump로 flow 데이터가 들어오는지 확인 #tcpdump –n udp port 2055 ð 라우터로부터 NetFlow데이터를 정상적으로 받는지 확인. 만일 스크롤되는 데이터가 없다면 라우터의 NetFlow 설정부터 확인 ⑤ NetFlow 캡쳐하기 #/usr/local/netflow/bin/flow-capture -w /var/netflow/ft 0/0/2055 -S5 -V5 -E1G -n 287 -N 0 -R /usr/local/netflow/bin/export * flow-capture프로그램 옵션 설명
2) flowscan ① /var/netflow/bin/flowscan.cf 파일 수정 #ReportClasses 부분 -> 어떤 보고서 형식을 사용할 지 ReportClasses CUFlow #FlowFileGlob 부분 -> 가공된 NetFlow파일 형식을 지정하는 부분. 예로들면, ‘flows.20031214_17:50:00’과 같은 형식 FlowFileGlob flows.*:*[0-9] ② CampusIO.cf와 같은 나머지 FlowScan 파일은 수정할 필요없음. 3) CUFlow ① /var/netflow/bin/CUFlow.cf 파일 수정 # Subnet 부분 : 내부에서 사용하는 IP블록, CIDR형식. 여러 줄 가능 Subnet 210.100.64.0/19 Subnet 211.12.160.0/20 # Network 부분 : 네트웍 그룹으로써 이 그룹에 대한 트래픽을 모니터링하고 싶은 경우. “Network x.x.x.x/y lable” 형식 Network 210.100.66.0/24,211.12.162.0/24 data_center # OutputDir 부분 : RRD 파일이 저장되는 장소 OutputDir /var/netflow/rrds # Scoreboard/AggregateScore 부분 : 트래픽을 많이 발생시키는 순위에 대한 html파일이 저장되는 부분. Apache에서 이 파일을 링크하도록 구성하면 웹에서 확인 가능 Scoreboard 25 /var/netflow/scoreboard /var/netflow/scoreboard/toptalkers.html AggregateScore 25 /var/netflow/rrds/agg.dat /var/netflow/scoreboard/overall.html # Router 부분 : flow를 발생시키는 라우터 리스트 Router 210.100.64.1 GSR Router 211.12.160.1 7513 ☞ 이제 모든 준비가 끝났으므로 FlowScan을 실행시켜 NetFlow데이터가 제대로 쌓이는 지 확인해 보자. 5. FlowScan 실행 1) 스크립트 작성 #touch /var/netflow/bin/fs.sh; #chmod 755 /var/netflow/bin/fs.sh #vi /var/netflow/bin/fs.sh
2) flowscan 실행하기 #/var/netflow/bin/fs.sh start #tail –f /var/log/flowscan (아래와 같이 보이면 성공) sleep 30... 3) flowdumper ① 용도 : FlowScan에 의해 가공된 파일은 RRD형식이므로 cat같은 명령으로는 읽을 수 없다. Flowdumper는 RRD파일을 텍스트로 변형시켜 보여줌으로 grep과 같은 명령어와 혼합하면 원하는 데이터를 얻을 수 있다.② 사용예#flowdumper –s flows.20031214_20:45:00 | grep 211.238.196.17 4) CUGrapher.pl ① 용도 : RRD파일을 가공해서 그래프로 보여주는 perl프로그램② CUFlow-1.4 디렉토리에서 아파치의 cgi-bin디렉토리로 복사③ http://yourserver/cgi-bin/CUGrapher.pl 로 접속④ 참고사이트o http://wwwstats.net.wisc.eduo http://flows.ikano.com6. 기타 관련 사이트 ① http://www.cisco.com/go/fn - This is the Cisco Feature Navigator ② http://httpd.apache.org/ - This is the home page for Apache. This is the web server that I recommend. ③ http://www.rrdtool.org/ - This is the RRDTool home page. ④ http://www.splintered.net/sw/flow-tools/ - This is the flow-tools home page. ⑤ http://net.doit.wisc.edu/~plonka/FlowScan/ - This is the FlowScan home page. ⑥ http://www.columbia.edu/acis/networks/advanced/CUFlow/ - This is the CUFlow home page. ⑦ http://net.doit.wisc.edu/~plonka/list/flowscan/ - This is the FlowScan mailing list home page. ⑧ http://wwwstats.net.wisc.edu - Examples of FlowScan and CUFlow. ⑨ http://flows.ikano.com - Another example web site.⑩ https://www1.columbia.edu/sec/bboard/mj/cuflow-users/ - CUFlow mailing list archive. The mailing list is cuflow-users@columbia.edu. |
engineering/Network Eng.2006. 8. 10. 14:45