免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 34317 | 回复: 35
打印 上一主题 下一主题

snort 学习之一(for RedHatLinux9 acid,php安装) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-26 17:56 |只看该作者 |倒序浏览
要搞IDS,便先装了个snort玩玩,几遍下来觉得安装过程已经比较顺畅,所以今天又用半天时间在自己的虚拟机上重装了一遍。
现在把整个过程记录下来,在CU做个备份,也为大家提供可能的参考,因为我也是参考官方文档和CU的精华贴的,但在安装过程中也出现了一些问题,而且现在有些老的安装包也找不到了,所以,对原来的文档进行整理和适当的版本更新,出一个新的安装手册。
感觉好像不应该发在白金的这个板块,但是我希望后面能把自己整理的攻击消息模拟程序也能分享出来,所以觉得跟安全防护还是有关系的,勉强把帖子放在此处。

(1):环境以及安装包
    操作系统: RedHat Linux9.0 kernel-2.4.20
    软件包:
            1): acid-0.9.6b23.tar.gz
            2): adodb330.tar
            3): httpd-2.0.45.tar.gz
            4): snort-2.0.0.tar.gz
            5): zlib-1.1.4.tar.gz
            6): php-4.3.1.tar.gz
            7): jpgraph-1.21b.tar.gz
            8): libpcap-0.7.2.tar.gz
            9): mysql-4.0.27.tar.gz
   附注:有些软件包,比如 zlib,libpcap, httpd等,在安装系统的时候一般默认都要安装的,所以如果你要从装系统
        开始做的话,最好不要安装这些包,以免发生冲突。至于软件包的下载,谷歌基本都能帮你搞定
(2):软件安装(最好以root身份进行安装,如果有身份切换的话会特别说明的)
     首先将安装包拷贝至Linux系统下的一个目录中,你可以用ssh或者Ftp将这些安装包拷贝到linux系统,或者用U盘或者Wget直接下载
     (前提是你的Linux能直接连接到万维网上)。我在自己的机子上建了一个目录 mkdir /root/snortinstall
      1):安装 zlib-1.1.4.tar.gz
  1.          
  2.          # cd /root/snortinstall
  3.          # tar -zxvf zlib-1.1.4.tar.gz
  4.          # cd zlib-1.1.4
  5.          # ./configure
  6.          # make test
  7.          # make install
  8.          # cd ..
  9.    
复制代码
2):安装libpcap-0.7.2.tar.gz
  1.          # tar -zxvf libpcap-0.7.2.tar.gz
  2.          # cd libpcap-0.7.2
  3.          # ./configure
  4.          # make
  5.          # make install
  6.          # cd ..
  7.       
复制代码
3):安装  mysql-4.0.27.tar.gz
        首先添加mysql用户组
     

  1.             #groupadd mysql
  2.             #useradd -g mysql mysql
复制代码

         然后,需要添加mysql的bin目录到path环境变量中,这样在每次执行mysql命令时你就没有必要敲全部的路径了
      
  1. # vi /home/mysql/.bash_profile
复制代码

          最后一行添加
      
  1. export PATH=$PATH:/usr/local/mysql/bin
复制代码

        安装mysql
         
  1. # tar -zxvf mysql-4.0.27.tar.gz
复制代码

       这里我们要指定mysql的安装目录
     

  1.         #cd mysql-4.0.27
  2.         #./configure  --prefix=/usr/local/mysql
  3.         
复制代码
如果若干秒后你看到提示“Thank you for choosing MySQL!”的话,说明一切正常,如果有提示其它错误的话,去网上搜索
     错误信息,直到没有问题为止。
  1.       
  2.         #make
  3.         #make install
复制代码

       然后我们需要lib库的路径加到配置文件中去
     在/etc/ld.so.conf中添加两行
  1.       
  2.           /usr/local/mysql/lib/mysql
  3.           /usr/local/lib
复制代码

        保存,然后执行

  1.       ldconfig -v
复制代码

      

  1.          #./scripts/mysql_install_db
  2.          #chown -R root /usr/local/mysql/
  3.          #chown -R mysql /usr/local/mysql/var/
  4.          #chgrp -R mysql /usr/local/mysql/
  5.          # cp support-files/my-medium.cnf /etc/my.cnf
复制代码

          然后我们尝试启动 mysql

  1.           #/usr/local/mysql/bin/mysqld_safe &
  2.           # ps -ef | grep mysql
复制代码

         看到

  1.          root     12815  1943  0 23:52 pts/0    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe
  2.          mysql    12836 12815  0 23:52 pts/0    00:00:00 [mysqld]
  3.          
复制代码

         说明一切正常。
      然后我们设置mysql的开机自启动

  1.           # cp support-files/mysql.server /etc/init.d/mysql
复制代码

          为了方便系统以等级3或者5启动时mysql都能启动,我们添加如下文件

  1.            # cd /etc/rc3.d
  2.            # ln -s ../init.d/mysql S85mysql
  3.            # ln -s ../init.d/mysql K85mysql
  4.            # cd ../rc5.d/
  5.            # ln -s ../init.d/mysql S85mysql
  6.            # ln -s ../init.d/mysql K85mysql
  7.            # cd ../init.d
  8.            # chmod 755 mysql
复制代码

          然后你可以做个测试,reboot你的系统,再次启动后用ps 命令进行查看,检测mysql是否自动启动。
      4): 安装  httpd-2.0.45.tar.gz 和 php4.3.1

  1.           # tar -zxvf httpd-2.0.45.tar.gz
  2.           # cd httpd-2.0.45
  3.           # ./configure --prefix=/www --enable-so
  4.           # make
  5.           # make install
复制代码

          添加中文支持

  1.           #vi /www/conf/httpd.conf
复制代码

          将

  1.           AddDefaultCharset ISO-8859-1
复制代码

           改为

  1.           AddDefaultCharset gb2312
复制代码

          保存.

  1.           # cd ..
  2.           # tar -zxvf php-4.3.1.tar.gz
  3.           # cd php-4.3.1
  4.           #  ./configure --prefix=/www/php --with-apxs2=/www/bin/apxs --with-config-file-path=/www/php --enable-sockets --with-mysql=/usr/local/mysql --with-zlib-dir=/usr/local(一行,没有换行)
复制代码

          当你看到"Thank you for using PHP"时,表示一切正常

  1.           #make
  2.           #make install
  3.           #cp php.ini-dist  /www/php/php.ini
复制代码

          然后需要编辑httpd.conf文件

  1.           #vi /www/conf/httpd.conf
复制代码

          找到注释

  1.            # AddType allows you to add to or override the MIME configuration
  2.            # file mime.types for specific file types
复制代码

          在下面添加一行

  1.           LoadModule php4_module modules/libphp4.so
复制代码

          然后在两个AddType后添加一行

  1.           AddType application/x-httpd-php .php
复制代码

          最后的情形大概就是

  1.           # AddType allows you to add to or override the MIME configuration
  2.           # file mime.types for specific file types.
  3.           #
  4.           LoadModule php4_module modules/libphp4.so
  5.           AddType application/x-tar .tgz
  6.           AddType image/x-icon .ico
  7.           AddType application/x-httpd-php .php
复制代码

         ( 一定要注意不要把空格写错,我当时在这个地方就疏忽了点,多亏ThatDay提示,所以再次特别提示一下大家。)
      现在apache已经安装成功了,我们然后去设置httpd服务的开机自启动.

  1.          # cp /www/bin/apachectl  /etc/init.d/httpd
复制代码

          如果提示是否要覆盖原来的文件,确认覆盖
      如果原来的httpd被覆盖了,我们要进行删除工作

  1.           #cd /etc/rc3.d
  2.           #rm -fr K15httpd
  3.           #cd /etc/rc5.d
  4.           #rm -fr K15httpd
复制代码

          然后要设置新的httpd服务的链接,象mysql的自启动一样

  1.           #cd /etc/rc3.d
  2.           #ln -s ../init.d/httpd  K85httpd
  3.           #ln -s ../init.d/httpd  S85httpd
  4.           #cd /etc/rc5.d
  5.           #ln -s ../init.d/httpd  K85httpd
  6.           #ln -s ../init.d/httpd  S85httpd
  7.           #chmod 755 /etc/init.d/httpd
复制代码

          我们这个时候可以象检测mysql的自启动一样重启机器检测看httpd服务是否会随着系统的启动而自启动

  1.           #reboot
复制代码

          机器启动后

  1.           #ps -ef | grep httpd
复制代码

          我们看到
        root      1788     1  0 11:12 ?        00:00:00 /www/bin/httpd -k start
            nobody    1814  1788  0 11:12 ?        00:00:00 [httpd]
            nobody    1815  1788  0 11:12 ?        00:00:00 [httpd]
            nobody    1816  1788  0 11:12 ?        00:00:00 [httpd]
            nobody    1817  1788  0 11:12 ?        00:00:00 [httpd]
            nobody    1818  1788  0 11:12 ?        00:00:00 [httpd]
            root      2033  1992  0 11:13 pts/0    00:00:00 grep httpd
           说明一切正常,如果有问题的话,你在仔细盘查,直到成功就可以继续往下走了。
        下来测试一下php是否已经安装成功

  1.             #vi /www/htdocs/test.php
复制代码

            在文件中添加

  1.             <?php phpinfo();?>
复制代码

           保存,然后地址栏键入

  1.            http://192.168.0.199/test.php
复制代码

           如果一切正常的话,你将会看到关于php的信息的一个页面,如图
       (当然http://后面的地址应该是你的linux系统的IP地址或者127.0.0.1)
           如果有问题的话,请借助网络解决你的问题。

[ 本帖最后由 duanjigang 于 2007-4-27 10:21 编辑 ]

f.JPG (76.98 KB, 下载次数: 292)

f.JPG

论坛徽章:
0
2 [报告]
发表于 2007-04-26 17:57 |只看该作者
接着上面的
(5):安装snort和Snort规则

  1.            # mkdir /etc/snort
  2.            # mkdir /var/log/snort
  3.            # cd /root/snortinstall/
  4.            # tar -zxvf snort-2.0.0.tar.gz
  5.            # cd snort-2.0.0
  6.            # ./configure --with-mysql=/usr/local/mysql
  7.            # make
  8.            # make install
复制代码

           安装规则和配置文件

  1.            # cd rules/
  2.            # cp * /etc/snort/
  3.            # cd ../etc/
  4.            # cp snort.conf  /etc/snort/
  5.            # cp *.config /etc/snort/
复制代码

           接下来需要修改snort的配置文件/etc/snort/snort.conf
           从snort.conf文件说明我们大致可以知道,需要做一下4件事情
           (1): 设置网络变量
           (2): 配置处理器
           (3): 配置输出插件
           (4): 定制规则集合
       在以上四个步骤中,需要我们参与的主要就是(1),(3)和(4).
          首先修改你的网络变量

  1.           var HOME_NET 192.168.0.1/24
复制代码
(这个是我的机器所在的局域网地址范围)
          然后需要修改规则的存储路径:

  1.           var RULE_PATH  /etc/snort/
复制代码

          设置数据库的存储

  1.           output database: log, mysql, user=root password=mysql dbname=snort host=localhost
复制代码

             注意,这个密码就是我们后面要设置的密码,在页面上看不到数据很大一部分原因是由于入库错误引起的,
       而且密码错误是最常见的错误。
       设置snort自启动

  1.           # cp /root/snortinstall/snort-2.0.0/contrib/S99snort /etc/init.d/snort
复制代码

          然后编辑这个文件,修改如下内容:

  1.           CONFIG=/usr/local/share/snort/snort.conf
复制代码

          为

  1.           CONFIG=/etc/snort/snort.conf
复制代码

          注释掉

  1.           SNORT_GID=nogroup
复制代码

           这一行为:

  1.           #SNORT_GID=nogroup
复制代码

          ,最后将

  1.            $SNORT_PATH/snort -c $CONFIG -i $IFACE -g $SNORT_GID $OPTIONS
复制代码

         这一行的"-g $SNORT_GID"删掉,修改为:

  1.          $SNORT_PATH/snort -c $CONFIG -i $IFACE  $OPTIONS
复制代码

         保存退出.
      修改snort的属性

  1.          # cd /etc/init.d
  2.          # chmod 755 snort
复制代码

         添加符号链接

  1.          # cd /etc/rc3.d/
  2.          # ln -s ../init.d/snort S99snort
  3.          # ln -s ../init.d/snort K99snort
  4.          # cd /etc/rc5.d/
  5.          # ln -s ../init.d/snort S99snort
  6.          # ln -s ../init.d/snort K99snort
复制代码

         接下来,需要在mysql中建立起snort数据库
      设置数据库连接的密码

  1.           # /usr/local/mysql/bin/mysql
  2.           mysql> SET PASSWORD FOR root@localhost=PASSWORD('mysql');
  3.            mysql> create database snort;
  4.           mysql> grant INSERT, SELECT,DELETE on root.* to snort@localhost;
  5.           mysql> exit;
复制代码

          下来导入数据库表

  1.            #cd /root/snortinstall/snort-2.0.0/contrib/
  2.            # /usr/local/mysql/bin/mysql -p < create_mysql snort
复制代码

           然后下来就可以看我们的数据库是否导入成功了

  1.         [root@localhost contrib]# /usr/local/mysql/bin/mysql -p
  2.             Enter password:
  3.            Welcome to the MySQL monitor.  Commands end with ; or \g.
  4.            Your MySQL connection id is 5 to server version: 4.0.27-log

  5.            Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

  6.             mysql> show databases;
  7.            +----------+
  8.            | Database |
  9.            +----------+
  10.            | mysql    |
  11.            | snort    |
  12.            | test     |
  13.            +----------+
  14.            3 rows in set (0.00 sec)

  15.            mysql> use snort;
  16.            Database changed
  17.            mysql> show tables;
  18.            +------------------+
  19.           | Tables_in_snort  |
  20.           +------------------+
  21.          | data             |
  22.          | detail           |
  23.          | encoding         |
  24.          | event            |
  25.          | icmphdr          |
  26.          | iphdr            |
  27.          | opt              |
  28.          | reference        |
  29.          | reference_system |
  30.          | schema           |
  31.          | sensor           |
  32.          | sig_class        |
  33.          | sig_reference    |
  34.          | signature        |
  35.          | tcphdr           |
  36.          | udphdr           |
  37.          +------------------+
  38.        16 rows in set (0.00 sec)

  39.        mysql>exit;
复制代码

       一切正常。
(6): 安装JPGraph

  1.      # cd /root/snortinstall
  2.      # cp jpgraph-1.21b.tar.gz  /www/htdocs/
  3.      # cd /www/htdocs/
  4.      # tar -zxvf jpgraph-1.21b.tar.gz
  5.      # rm -fr jpgraph-1.21b.tar.gz
  6.      # cd jpgraph-1.21b/
  7.      # rm -fr README
  8.      # rm -fr QPL.txt
复制代码

(7): 安装ADODB

  1.      # cd /root/snortinstall
  2.      # cp adodb330.tar /www/htdocs/
  3.      # cd /www/htdocs/
  4.      # tar -zxvf adodb330.tar
  5.      # rm fr adodb330.tar
复制代码

(8):安装并且配置ACID

  1.     # cd /root/snortinstall
  2.     # cp acid-0.9.6b23.tar.gz /www/htdocs/
  3.     # cd /www/htdocs/
  4.     # tar -zxvf acid-0.9.6b23.tar.gz
  5.     # rm -fr acid-0.9.6b23.tar.gz
复制代码

      配置acid

  1.      # cd /www/htdocs/acid/
  2.      # vi acid_conf.php
复制代码

     修改
  1. $DBlib_path = " ";
复制代码

     为
  1. $DBlib_path = "/www/htdocs/adodb";
复制代码

     还有

  1.           $alert_dbname   = "snort";
  2.           $alert_host     = "localhost";
  3.           $alert_port     = "";
  4.           $alert_user     = "root";
  5.           $alert_password = "mysql";

  6.            /* Archive DB connection parameters */
  7.           $archive_dbname   = "snort";
  8.           $archive_host     = "localhost";
  9.           $archive_port     = "";
  10.           $archive_user     = "root";
  11.           $archive_password = "mysql";
复制代码

        这几项进行修改。
  修改
  1. $ChartLib_path = "";
复制代码
   
   为
  1. $ChartLib_path = "/www/htdocs/jpgraph-1.21b/src";
复制代码

   保存退出。
  然后在地址栏键入:
  1. http://192.168.0.199/acid/acid_main.php
复制代码

   如果一切正常的话,将能看到
“Analysis Console for Intrusion Databases”
  这个标题,下面有个
   “Use the Setup page to configure and optimize the DB”
   的链接,点击链接, 进入DB setup页面,然后点击
          “create acid ag”
会提示
       “Successfully created 'acid_ag'
            Successfully created 'acid_ag_alert'
            Successfully created 'acid_ip_cache'
            Successfully created 'acid_event'”

   这时再点击下面的
       “ Main page”
    链接,将会进入主页面
    如果这些当中有问题的话,请检查你的配置文件和数据库。
    然后就可以测试snort了
问题解答:
    (1):启动系统后或者
  1. service snort start
复制代码
后 ps看不到snort进程,这个时候很可能是配置文件的问题
        因为snort启动的命令很简单

  1.            snort -c /etc/snort/snort.conf -i eth0 -D
复制代码

     这个时候我们能够看到打印信息,一般情况下,很可能是mysql数据库连接用户名和密码的问题
     但是也要注意/etc/init.d/snort文件中的变量是否正确,比如

  1.       CONFIG=/etc/snort/snort.conf
复制代码

     一定要将默认的修改过来。

[ 本帖最后由 duanjigang 于 2007-4-27 10:13 编辑 ]

main.JPG (82.09 KB, 下载次数: 276)

main.JPG

论坛徽章:
0
3 [报告]
发表于 2007-04-26 23:35 |只看该作者
感谢分享
不过看起来有些乱,若再排版好一些就更好了

论坛徽章:
0
4 [报告]
发表于 2007-04-27 08:52 |只看该作者
好,我再调整一下。
顺便加上一个图
这是我根据ICMP的规则,用程序模拟的消息,发送出去被Snort检测到的报警。
页面被汉化了一下
后面有空会将规则的部分加上来

[ 本帖最后由 duanjigang 于 2007-4-27 10:07 编辑 ]

icmp.JPG (89.46 KB, 下载次数: 171)

icmp.JPG

论坛徽章:
0
5 [报告]
发表于 2007-04-27 09:50 |只看该作者
流水账记得不错,和我以前配置cacti一样,哈~

论坛徽章:
0
6 [报告]
发表于 2007-05-09 19:03 |只看该作者
这样的帖子  德顶    在顶 反复顶

论坛徽章:
0
7 [报告]
发表于 2007-05-10 11:32 |只看该作者

入侵检测系统Snort+Base安装

论坛徽章:
0
8 [报告]
发表于 2007-05-10 16:27 |只看该作者
昨天开始在RH8上面安装,我特意参考官方的RH8手册进行安装(附件中已经上传),在这里只对软件包的变化和安装中的一小部分修改说明一下,另外希望有人能解决我遇到的问题
(1):软件包变化对比
1):snort-1.9.1.tar.gz 无变化
2):snortrules-stable.tar.gz这个包我没有找见,就下载了snortrules-pr-2.0.tar.gz,这个在snort.org上有的
3):apache_1.3.27.tar.gz 没有变化,可以找见的
4):php-4.3.1.tar.gz 无变化
5):adodb330.tar 无变化
6):acid-0.9.6b23.tar.gz 无变化
7):zlib-1.1.4.tar.gz 无变化
8):jpgraph-1.21b.tar.gz 替代无从找见的jpgraph-1.1.11tar.gz
9): libpcap-0.7.2.tar.gz无变化,可以找到
(2):测试
     一切安装好以后 service snort start启动snort,如果ps -A能看到snort说明一切正常
这个时候你可以下载一个端口扫描器(比如我用的http://www.xfocus.net/tools/200502/BluesPortScan.exe)去扫描snort主机
的端口,分别用udp和tcp协议进行扫描,端口范围从1到2000,然后刷新acid页面就能看到红色的报警了。
(3):数据库使用mysql-front连接问题,求助?
为了方便数据的查看,可以下载一个mysql-front(v3.2)进行远程连接
在linux后台,执行如下命令

  1. [root@localhost Snort_RH8]# mysql -p
  2. Enter password:
  3. Welcome to the MySQL monitor.  Commands end with ; or \g.
  4. Your MySQL connection id is 9 to server version: 3.23.58-log

  5. Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

  6. mysql> GRANT ALL PRIVILEGES ON snort.* TO duanjigang IDENTIFIED BY "123456";
  7. Query OK, 0 rows affected (0.00 sec)

  8. mysql> exit
  9. Bye
复制代码

在RH9上用mysql5.1的时,在做完这个操作之后,就可以通过mysql-front从windows上连接到后台mysql数据库了
并能进行相应的操作,可是当换成RH8,数据库使用mysql-3.23.58 之后,进行相应的操作,却始终无法连接到数据库,具体现象是:
界面对话框提示"Lost connection to database server 192.168.0.168 during query"
数据库后台显示
/usr/local/mysql/bin/safe_mysqld: line 284:  3909 Segmentation fault      $NOHUP_NICENESS $ledir/$MYSQLD $defaults --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR $USER_OPTION --pid-file=$pid_file --skip-locking >>$err_log 2>&1

Number of processes running now: 1
mysqld process hanging, pid 3912 - killed
070510 16:59:56  mysqld restarted

在my.cnf文件中也没有找到关于此项的说明,我不知道是不是数据库版本不支持远端连接还是需要在mysql数据库中进行功能的开启,在网上也没能找到说法,希望能解决次问题的朋友不吝赐教,谢谢!

[ 本帖最后由 duanjigang 于 2007-5-10 17:05 编辑 ]

snort_acid_rh8.pdf

248.19 KB, 下载次数: 602

论坛徽章:
0
9 [报告]
发表于 2007-05-12 19:07 |只看该作者
这帖子必须要顶了!
正在折腾snort,真是好人啊楼主!

论坛徽章:
0
10 [报告]
发表于 2007-05-13 19:19 |只看该作者
必须要顶
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP