扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
安装数据表:
这个套件解压缩后,可以看到有一个数据夹叫做 sql,数据夹内有一个 sql 的指令稿叫做 db.sql,这个指令稿是用来建立摆放联机纪录所需的数据表,请利用以下指令来安装,如果您还不熟悉 mysql 的指令,请自行阅读 man mysql 文件。
root@firewall sql# mysql -u root -p(以 root 身分登入 MySql 主控台)
mysql> create database iptables;(建立一个数据库叫做 iptables,数据库也可以自行命名,但是要记得修改相关程序)
mysql> grant create,select,insert on iptables.* to iptables_admin@localhost identified by 'xx';(将 iptables 数据库新建、读取和写入权限授权给 iptables_admin 这个账号,并限制只能从本机联机,密码为 xx,请自行修改上述指令中之账号与密码)
mysql> grant create,select on iptables.* to iptables_user@localhost identified by 'xx';(将 iptables 数据库读取权限授权给 iptables_user 这个账号,并限制只能从本机联机,密码为 xx,请自行修改上述指令中之账号与密码)
root@firewall sql# cat db.sql | mysql -u iptables_admin -p iptables(以 iptables_admin 身分来执行 db.sql,如果你改了数据库的名字,请记得修改 db.sql)
修改 iptables 指令稿:
由于这支 Log 分析程序是以读取系统 LOG 加以分析后才汇入到数据库的方法,来处理联机纪录,并非使用 ULOG 直接由 iptables 将纪录写入 mysql 数据库,感觉上效能比较差,但在 ULOG 机制尚未被实体化之前,这也不失为一个好的解决方案。
原则上只要在 iptables 指令稿中有产生 LOG 的动作,这些信息就会被分析汇入到数据表(由 feed_db.pl 负责这个工作),特别要注意的是 LOG 产生时会加入一个标头(prefix),程序是透过标头来分析这笔 LOG 的意义,请将 LOG 标头取名为 IPTABLES DROP 或 IPTABLES ACCEPT,以方便事后的统计。范例如下:
首先建立一个新的规则炼 LOG_DROP,这个规则炼用来将要丢弃的封包先 LOG 到系统日志文件,然后再丢弃。
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 规则炼,例如:
$IPTABLES -A bad_tcp_packets -p TCP ! --syn -m state --state NEW -j DROP
改为
$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 程序:
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。