科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道使用iptables建置Linux 防火墙(15)

使用iptables建置Linux 防火墙(15)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

防火墙依照其运作方式来分类,可以区分为封包过滤式防火墙、应用层网关式防火墙、电路层网关式防火墙。其中被广为采用的是封包过滤式防火墙,本文要介绍的iptables 防火墙就是属于这一种。

作者:51CTO.COM 2007年11月11日

关键字: 网络安全 防火墙 iptables Linux

  • 评论
  • 分享微博
  • 分享邮件

  安装数据表:

  这个套件解压缩后,可以看到有一个数据夹叫做 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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章