커피닉스, 시스템 엔지니어의 쉼터
  SNORT+APM+ACID ON Redhat 9.0 작성일 : 2003/11/10 11:32
 
  • 글쓴이 : DIYS
  • 조회수 : 6406
     
    본 내용은 어느정도 이해력(?)과 IDS에 대한 개념을 가진 분을 기준으로 스피디하게 설명해
    놓은 단순한 절차서입니다. 상세한 설명을 원하시면 해당 메뉴얼을 참고하세요.
    참고한 문서

    http://www.snort.org/docs/writing_rules/
    http://www.snort.org/docs/snort-rh7-mysql-ACID-1-5.pdf
    http://www.snort.org/docs/snort_acid_rh9.pdf
    http://www.snort.org/docs/FreeBSD47RELEASE-Snort-MySQLVer1-3.pdf
    http://www.snort.org/docs/snort-win2k.htm


    미리 설치되어있어야 할 패키지
    libpcap-0.7.2-1.rpm
    zlib-1.1.4-8.rpm
    libgd, libpng libjpeg-6b?

    !! 설치중 필요하다고 에러 뜨면 해당 페키지 깔아주면됨. ^^;
       자신있다면 소스로 깔아서 경로를 지정해주어도 무방함. ^^;


    다운로드 (!! 보통 /tmp 혹은 /usr/local/src 에다가 다운 받죠~? ^^)
    http://members.chello.se/jpgraph/jpgdownloads/jpgraph-1.13.tar.gz
    http://www.students.fh-sbg.ac.at/~gwalch/adodb330.tgz
    http://www.andrew.cmu.edu/~rdanyliw/snort/acid-0.9.6b23.tar.gz

    1. mysql 설치
       # tar xfz mysql-4.1.0-alpha.tar.gz
       # cd mysql-4.1.0-alpha
       # ./configure --prefix=/usr/local/mysql && make -s && make -s install
       # scripts/mysql_install_db
       # chown -R root.mysql /usr/local/mysql
       # chown -R mysql /usr/local/mysql/var
       # cp support-files/mysql-x.conf /etc/my.cnf <-- 사양에 맞는 파일 선택
       # vi /etc/ld.so.conf
         /usr/local/lib
         /usr/local/mysql/lib/mysql
         2줄 추가
       # ldconfig -v
       # cd /usr/local/mysql
       # bin/mysqld_safe --user=mysql &
       부팅시 자동 실행되게 조치를 취해놓는다.ㅋㅋㅋㅋ

    2. Apache-2.0.47 + PHP-4.3.2 설치
       # tar xfz httpd-2.1.0.tar.gz
       # cd httpd-2.0.47
       # ./configure --prefix=/usr/local/apache --enable-mods-shared=all --enable-so && make -s && make -s install

       # tar xfz php-4.3.2.tar.gz
       # cd php-4.3.2
       # ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs \
         --with-config-file-path=/usr/local/apache/conf --enable-sockets \
         --with-mysql=/usr/local/mysql --with-zlib-dir=/usr --with-gd && make -s && make -s install
       # cp php.ini-dist /usr/local/apache/conf
       # vi /usr/local/apache/conf/httpd.conf
         LoadModule php4_module modules/libphp4.so
         AddType application/x-httpd-php .ph .php .html
         적당한 위치에 추가 시켜준다.
       # vi /etc/rc.loal
         /usr/local/apache/bin/apachectl start <--- 부팅시 실행되게끔 한줄 추가.
       !! httpd.conf 파일 설정은 해당되는 페이지가 열리게끔 각자 알아서 설정을 잘하시길..

    3. SNORT-2.0.0 설치
       # tar xfz snort-2.0.0.tar.gz
       # cd snort-2.0.0
       # ./configure --prefix=/usr/local/snort && make -s && make -s install
         !! 문서상에는 prefix 지시자를 쓰지 않았지만 한곳으로 몰아서 관리하는게 편하므로
            필자는 이렇게 설치했다.
       # mkdir -p /usr/local/snort/etc/snort
       # mkdir -p /usr/local/snort/var/log   < -- 로그남길 경로 잘 기억해둘 것
       # cp -rfp rules /usr/local/snort/etc  < -- 룰파일 경로 잘 기억해둘 것
       # cp etc/* /usr/local/snort/etc/snort < -- 설정파일 복사(귀찮아서 다 복사했음.)
       # vi /usr/local/snort/etc/snort/snort.conf
        
         var HOME_NET 10.2.2.0/24            < -- 내부 네트웍 아이디 / 마스크 비트수
         ex) 192.168.1.x C 클래스를 4개의 서브넷으로 나누었을때 비트수는 2 이고
             모니터링할 네트웍이 192.168.1.192 라면 아래와 같이 한다.
             var HOME_NET 192.168.1.192/26
        
         var RULE_PATH /usr/local/snort/etc/rules  <--- 룰파일 경로

         output database : log, mysql, user="유저명" password="패스워드" dbname="디비명" host="localhost"

       # cp contrib/S99snort /etc/init.d/snort
       # chmod 750 /etc/init.d/snort
       # vi /etc/init.d/snort
        
         CONFIG=/usr/local/snort/etc/snort/snort.conf    < -- 변경
        
         LOGDIR=/usr/local/snort/var/log      <--- 추가

         #SNORT_GID=nogroup            <--- 주석처리

         $SNORT_PATH/snort -c $CONFIG -i $IFACE -g $SNORT_GID $OPTIONS
         --> $SNORT_PATH/snort -c $CONFIG -i $IFACE $OPTIONS -l $LOGDIR 로 변경

        !! 쉘스크립트를 이해한다면 자신의 구미에 맞게 수정하시길...
      
    4. MySQL 셋팅 (!! 현재 위치한 디렉터리는 snort-2.0.0 소스디렉터리이다.)
       # /usr/local/mysql/bin/mysql
       > drop database test;
       > use mysql;
       > insert into db values('localhost','디비명','디비유저','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
       > insert into user (Host,User,Password) values('localhost','유저명',password('패스워드'));
       > flush privileges;
       > exit
      
       # /usr/local/mysql/bin/mysql -u snort -p snort < ./contrib/create_mysql
       >Enter password:
       # zcat ./contrib/snortdb-extra.gz | /usr/local/mysql/bin/mysql -u snort -p snort
       >Enter password:
       !! 제대로 스키마와 데이터가 입력되어있는지 각자 확인해본다. ^^;

    5. JPGraph-1.13 + ADODB + ACID-0.9.6b23 설치
       # tar xfz jpgraph-1.13.tar.gz
       # tar xfz adodb330.tgz
       # tar xfz acid-0.9.6b23.tar.gz
       # mv jpgraph-1.13 /YOUR/HOMEPAGE/DRECTORY/jpgraph
       # mv adodb /YOUR/HOMEPAGE/DRECTORY
       # mv acid /YOUR/HOMEPAGE/DRECTORY
       # cd /YOUR/HOMEPAGE/DRECTORY/acid
       # vi acid_conf.php

         $DBlib_path = "/YOUR/HOMEPAGE/DRECTORY/adodb";
        
         $DBtype = "mysql";
        
         $alert_dbname = "디비명";
         $alert_host = "localhost";
         $alert_port = "";
         $alert_user = "유저명";
         $alert_password = "패스워드";

         $archive_dbname = "디비명";
         $archive_host = "localhost";
         $archive_port = "";
         $archive_user = "유저명";
         $archive_password = "패스워드";

         $ChartLib_path = "/YOUR/HOMEPAGE/DRECTORY/jpgraph/src";

         $chart_fileformat = "png";

    6. 확인
       브라우저창에서 http://yourhost/acid/ or http://yourip/~계정/acid

       setup 페이지가 나오면 Creat ACID AG 버튼을 클릭한다.
       이제 모든것이 끝났다.
       snort를 실행시키고 브라우져 창을 띄우면 실시간으로 분석된 내용이 나타난다.

       !! 부팅시 자동 시작되게 하는 방법은 일부러 적지 않았다.
          스스로 알아서 하시길...

    7. 덤
       실제 테스트 할수있는 환경
       snort 서버 1대 / 일반 노드용 피씨 1대 이상 / IP 2개 이상
       지능스위치(port-mirroring 지원 필수) 1대
       미러링으로 오고가는 패킷을 snort서버 포트로 복사되게끔한다.


    커피닉스, 시스템 엔지니어의 쉼터 / URL : http://coffeenix.net/board_view.php?bd_code=119