防火墙和iptables

防火墙的定义

通过一些预定义的规则,分析和过滤进出网络的数据包的一种机制。

从这个定义可以看出防火墙的主要作用是隔离网络

从防火墙管理的范围来看,防火墙可以分为网络型和单一主机型。

  1. 单一主机型
    这种类型的防火墙主要有数据包过滤Netfilter和依据软件服务程序作为分析的TCP Wrappers

  2. 网络型
    Netfilter和代理服务器。

这篇文章重点小结一下数据包过滤型的防火墙软件iptables的知识。

iptables

Linux在2.6内核版本以上都提供防火墙软件iptables,因为是内核提供的功能,因此性能非常好。

iptables由最基本的3个表(table)组成

  • Filter
    主要跟进出Linux本机的数据包有关,是默认的table
    本表中包含3个chain,默认策略和过滤规则的集合。
    • INPUT
      主要与想要进入本机的数据包有关。
    • OUTPUT
      主要与本机送出数据包有关。
    • FORWARD
      与本机没有关系,传递数据包到后端计算机,与NAT相关。
  • NAT
    这个表格主要用来进行来源和目的的IP或port的转换,与本机无关。
    • PREROUTING
      在进行路由判断之前进行的规则集合。
    • POSTROUTING
      在进行路由判断之前进行的规则集合。
    • OUTPUT
      与发送出去的数据包有关。
  • Mangle
    这个表格主要与特殊的数据包的路由标志有关,这里就不讨论这个。

除了上述3个表之外,用户也可以制定自定义的table

iptables语法

  • 查看规则

    iptables [-t table_name] [-L] [-nv]
    

    如果不指定table名,则默认使用Filter

    iptables-save [-t table_name]
    
  • 清除规则

    iptables [-t table_name] [-FXZ]
    

    -F:清除所有已制定的规则
    -X:清除所有用户自定义的tables
    -Z:将所有的技术和流量统计归零

  • 定义默认策略(Policy)

    当数据包在所有规则之外时,以Policy的设置为准。

    iptables [-t table_name] -P [INPUT,OUTPUT,FORWARD] [ACCEPT,DROP]
    

    -P:定义策略,大写字母
    ACCEPT: 数据包被接受
    DROP: 数据包被丢弃,且不通知客户端丢弃原因。

  • 设置规则

    针对网卡、IP以及port的过滤规则

    iptables [-AI chain_name] [-io interface] [-p protocol] [-s source_IP/netmask] [-d destination_IP/netmask] [--sport source_port] [--dport destination_port] -j [ ACCEPT|DROP|REJECT ]
    

    针对MAC和状态的过滤规则

    iptables -A INPUT [-m state] [--state INVALID|ESTABLISHED|NEW|RELATED] -j [ ACCEPT|DROP|REJECT ]
    
    iptables -A  INPUT [-m mac] [--mac-source mac_address] -j [ ACCEPT|DROP|REJECT ]
    

你可能感兴趣的:(iptables)