iptables基础和应用(3)
2006-04-03 12:37:24 来源:WEB开发网改为
$IPTABLES -A bad_tcp_packets -p TCP ! --syn -m state --state NEW -j LOG_DROP
至于需要进行 ACCEPT 处理的规则也如法炮制,先建立 LOG_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
接着修改所有规则,例如:
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
改为
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j LOG_ACCEPT
安装显示分析结果的 PHP 程序:
在解压缩的数据夹中,找到一个叫做 web 的子数据夹,里面就是要给人从网页浏览分析结果的 PHP 程序,如果你的 Apache 已经设定好支持 php 和 php_mysql,那么只要将此数据夹复制到 Apache 的根文件目录就行了。方法如下:
cp -R web /var/www/iptables
拷贝完成后请修改 config.php ,目的是为了让 PHP 程序执行时,能以正确的账号密码连上 MySql ,以便从数据库读取数据,请找到底下三行:
$db_host="localhost";(一般不需修改,除非数据库在另一台主机上)
$db_user="iptables_user";(修改为仅具有读取权限的账号,如果之前安装数据库有自设帐号的话)
$db_password="xxxx";(请将密码修改为自设的密码)
安装 feed_db.pl:
前面已经介绍过这支程序的作用,请务必修改这支程序中有关数据库联机的 SQL 指令,将指令中的账号密码,改成你当初所设定的账号密码,建议最好不要用 root 身分联机,以免影响防火墙的安全性。这支程序是放在解压缩后数据夹内的 scripts 子数据夹,请修改下面这三行:
my $dsn = 'DBI:mysql:iptables:localhost';(请将 iptables 改成你自订的数据库名称)
my $db_user_name = 'iptables_admin';(请将 iptables_admin 改成你自订的管理账号)
my $db_password = 'xxxx';(请将 xxxx 改成管理账号的密码)
程序修改好后,请将它拷贝到 /usr/local/bin 数据夹,接着将程序执行起来,注意:这支程序会跑一个无穷尽循环,持续分析系统 LOG,因此必须在背景执行,同时只能有一支程序执行,以避免造成 IO 过大的负载,执行方式如下:
tail --follow=name --retry /var/log/syslog | /usr/local/bin/feed_db.pl &
如果这些动作都作了,但程序并未执行成功,有可能是因为 perl_DBI:DBD 套件没安装,请自行用 rpm 补装该套件。
查看分析结果:
完成以上所有安装步骤后,就可以坐下来享受一下成果,请打开浏览器输入底下网址
http://192.xx.1.254/iptables
看到的画面,如下图所示(请点选放大):
安装 LOG 分析后的安全防范:
防火墙上安装越多套件,系统安全性也就越低,改进的方法有两个:
1. 将 apache 和 mysql 架设在内部网络的一台机器上,防火墙上仅安装 mysql client,这样可以避免 apache 和 mysql 的漏洞被骇客利用
2. 在防火墙上设定规则,仅允许来自内部的网络,进行 HTTP 和 MySql 联机,这个方法比较简单,本文所介绍的 iptables 范例也是采用此法,缺点是无法在校外查看 LOG 分析结果
更多精彩
赞助商链接