科技行者

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

知识库

知识库 安全导航

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

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

  • 扫一扫
    分享文章到微信

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

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

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

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

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

  # bad_tcp_packets 规则炼的功能是:将要求重导向的联机记录起来,然后将封包丢弃(防止联机被绑架,但会档掉需要三方交谈的服务,例如:M$ Media Server)

  $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-level INFO --log-prefix "New not syn:"

  $IPTABLES -A bad_tcp_packets -p TCP ! --syn -m state --state NEW -j DROP

  # allowed chain

  # allowed 规则炼的功能是:允许要求联机封包或响应封包进入,将其余封包丢弃

  $IPTABLES -A allowed -p TCP --syn -j ACCEPT

  $IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT

  $IPTABLES -A allowed -p TCP -j DROP

  #

  # ICMP rules

  # icmp_packets 规则炼的功能是:允许 ping 封包进入,将其余封包丢弃

  $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT

  $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT

  #

  # 4.1.4 INPUT chain(过滤要到达防火墙的封包)

  #

  #

  # 进入防火墙主机的 TCP 封包必须先进行 bad_tcp_packets 过滤

  $IPTABLES -A INPUT -p tcp -j bad_tcp_packets

  # 从 WAN 进入防火墙主机的 ICMP 封包必须先进行 icmp_packets 过滤,这是为了避免骇客传送不完整的 IP 封包,系统会响应 ICMP 封包通知对方,导致主机位置被侦测出来

  $IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets

  # 从 LAN 进入防火墙主机的全部 unicast 和 broadcast 封包,通通放行;额外检查目的地 IP 可以将 multicast 封包滤除

  $IPTABLES -A INPUT -p ALL -i $LAN_IFACE -d $LAN_IP -j ACCEPT

  $IPTABLES -A INPUT -p ALL -i $LAN_IFACE -d $LAN_BROADCAST_ADDRESS -j ACCEPT

  # 从 Loopback 接口进入防火墙主机的所有封包,检查是否来自本机,若是则放行;此规则去检查来源 IP ,似乎有些画蛇添足,因为只有来自本机的封包才有机会进入 Loopback 接口

  $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT

  $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT

  $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT

  # 从 WAN 进入防火墙主机的所有封包,检查是否为响应封包,若是则予以放行

  $IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT

  # 限制过滤规则的比对频率为每分钟平均流量三个封包(超过上限的封包将暂停比对),并将瞬间流量设定为一次最多处理三个封包(超过上限的封包将丢弃不予处理),这类封包通常是骇客用来进行阻断式攻击 

  $IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level INFO --log-prefix "IPT INPUT packet died: "

  #

  # 4.1.5 FORWARD chain(过滤要通过防火墙的封包)

  #

  #

  # 通过防火墙的 TCP 封包必须先进行 bad_tcp_packets 过滤

  $IPTABLES -A FORWARD -p TCP -j bad_tcp_packets

  # 从 LAN 要到 WAN 的封包通通放行

  $IPTABLES -A FORWARD -i $LAN_IFACE -o $INET_IFACE -j ACCEPT

  # 从 WAN 要到 LAN 的封包仅放行回应封包

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

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

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