Chinaunix首页 | 论坛 | 博客
  • 博客访问: 474945
  • 博文数量: 132
  • 博客积分: 2995
  • 博客等级: 少校
  • 技术积分: 1412
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-06 20:14
文章分类

全部博文(132)

文章存档

2010年(2)

2008年(21)

2007年(109)

我的朋友

分类:

2007-03-07 13:53:11

 

 

一、安装环境

    OS: CentOS release 4.3 (Final)

        Linux 2.6.9-34.EL

    内网IP:192.168.100.200

    外网IP:10.5.6.49

 

 

二、所需软件:

    iptables_logger_v0.4.tar.gz (iptables日志分析程序)

 

    下载位置:

            

 

八、iptables设置

    为了实现透明代理以及端口的使用限定,在这里必须配置iptables,以下以具体配置内容:

    1)网络接口分配

      eth0 addr:10.5.6.49   (外网)

      eth1 addr:192.168.100.200  (内网)

 

    2)iptables配置

      echo "1" > /proc/sys/net/ipv4/ip_forward

          

      限制192.168.100.98主机不能连接到10.4.6网段的任何主机的22端口

      [root@gw ~]# /sbin/iptables -A FORWARD -s 192.168.100.99 -p tcp -d 10.4.6.0/24 --dport 22 -j DROP

     

      限制192.168.100.98主机不能连接到任何主机的22端口

      [root@gw ~]# /sbin/iptables -A FORWARD -s 192.168.100.99 --dport 22 -j DROP

 

      限制192.168.100.98主机不能连接到任何主机的25端口

      [root@gw ~]# /sbin/iptables -A FORWARD -s 192.168.100.99 -p tcp -d 10.4.6.0/24 --dport 25 -j DROP

 

      限制192.168.100.98主机不能连接到任何主机的110端口

      [root@gw ~]# /sbin/iptables -A FORWARD -s 192.168.100.99 -p tcp -d 10.4.6.0/24 --dport 110 -j DROP

 

      ###DAT端口转发

      [root@gw ~]#iptables -t nat -A PREROUTING -d 10.5.6.49 -i eth0 -p tcp -m tcp --dport 1122 -j DNAT --to-destination

 

      192.168.100.100:22

      ####透明代理

      [root@gw ~]#iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

      [root@gw ~]#iptables -tnat  -A POSTROUTING -j MASQUERADE

 

      删除一条规则

      [root@gw ~]# iptables -L -t nat --line-numbers

      [root@gw ~]#iptables -t nat-D PREROUTING 12

    

    3)启动iptables

      /etc/init.d/iptables start

 

九、安装iptables_logger

   1)分离iptables日志

     iptables的日志(log)由syslogd纪录和管理。初始存放在 /var/log/messages里面。可以利用以下方式把iptables日志

     单独存放在指定文件中,需要修改syslog.conf文件,加入以下内容:

     

     vi /etc/syslog.conf

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

     #Save iptables.log

     kern.*            /var/log/iptables.log

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

    

     保存重起服务

     service syslog restart

    

   2)安装iptables_logger前必须条件

     - A web server running (with PHP 4 enabled)

     - A MySQL database running

     - IPTable installed (and some packets to drop)

     - Perl interpreter with Mysql access support

     - The host dns lookup utility

   

      a)安装mysql

        shell> groupadd mysql

        shell> useradd -g mysql mysql

        shell> cd /usr/local/src

        shell> tar xvzf mysql-5.1.14-beta-linux-i686-glibc23.tar[1].gz

        shell> mv mysql-5.1.14-beta-linux-i686-glibc23 /usr/local/mysql

        shell> cd /usr/local/mysql

        shell> scripts/mysql_install_db --user=mysql

        shell> chown -R root  .

        shell> chown -R mysql data

        shell> chgrp -R mysql .

        shell> bin/mysqld_safe --user=mysql &

     

      b)安装apache

        tar xvzf httpd-2.2.4.tar.gz

        cd httpd-2.2.4

        ./configure --prefix=/usr/local/apache2 --enable-module=so

        make

        make install

     

      c)安装php

        tar xjf php-5.2.0.tar.bz2

        cd php-5.2.0

        ./configure --prefix=/usr/local/php5 --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache2/bin/apxs

        make

        make install

   

   3)安装iptables_logger

     tar xvzf iptables_logger_v0.4.tar.gz

     cd iptables

 

      a)创建iptables数据库

        mysql -u root -p

        mysql> create database iptables;

 

      b)创建iptables_admin账户,用来创建表和存入数据

        mysql> grant create,select,insert on iptables.* to iptables_admin@localhost identified by 'iptables';

 

      c)创建iptables_user账户,是Web用来读取数据

        mysql> grant select on iptables.* to iptables_user@localhost identified by 'xx';

        mysql> grant create temporary tables  on iptables.* iptables_user@localhost identified by 'xx';

 

      d)导入表结构(是源包的sql/db.sql)       

        cat sql/db.sql | mysql -u iptables_admin -p iptables

     

      e)添加正确的日志规则到iptables

        iptables -N LOG_DROP

        iptables -A LOG_DROP -j LOG --log-tcp-options --log-ip-options --log-prefix '[IPTABLES DROP] : '

        iptables -A LOG_DROP -j DROP

 

        当drop包的时候,可以用LOG_DROP代替DROP,如:

        iptables -A INPUT -j LOG_DROP

       

      f)要获取ACCEPT包时,可以进行如下规则设置(可选):

        iptables -N LOG_ACCEPT

        iptables -A LOG_ACCEPT -j LOG --log-tcp-options --log-ip-options --log-prefix [IPTABLES ACCEPT] :

        iptables -A LOG_ACCEPT -j ACCEPT

 

        当ACCETP包的时候,可以用LOG_ACCEPT代替ACCEPT,如:

        iptables -A INPUT -j LOG_ACCEPT

 

         

      g)查看日志文件/var/log/iptables.log

        [root@gw src]# tail -f /var/log/iptables.log

        Jan 31 18:39:14 localhost kernel: [IPTABLES DROP] : IN=eth0 OUT= MAC=00:e0:4d:e1:9b:bd:00:e0:fc:79:be:d4:08:00

        SRC=10.5.4.160 DST=10.5.6.49 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=5848 DF PROTO=TCP SPT=32770 DPT=989 WINDOW=58

        40 RES=0x00 SYN URGP=0 OPT (020405B40402080A00A6C0AD0000000001030302)

 

      h)拷贝web目录到apache根目录下:

        cp -R web /usr/local/apache2/htdocs/iptables

        在config.php文件里设置相应与mysql连接的变量

       

      i)拷贝database feeder 

        cp scripts/feed_db.pl /usr/local/bin

        在feed_db.pl文件里设置相应与mysql连接的变量

        

      j)启动database feeder 

        cp scripts/iptablelog /etc/init.d/  

        /etc/init.d/iptablelog start

       

        注:

        1.脚本一个地方需要进行修改,否则不能正常抓取日志文件          

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

        原:

        start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON -- --background 

        改:

        start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON --background

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

        2.可能系统本身没有start-stop-daemon命令,需要格外下载一个.c源文件,进行如下编译.

        gcc -o start-stop-daemon start-stop-daemon.c

        cp start-stop-daemon /usr/local/bin/

        这样就可以正常抓取日志文件了

 

   4)通过URL查看分析结果

    

 

以上!

 

阅读(2517) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~