分类:
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查看分析结果
以上!