• iptables


    iptables & netfilter

     iptables是与 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。
    netfilter/iptables IP 信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信 息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。

    虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter 和 iptables 组成。

    netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。

    iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。除非您正在使用 Red Hat Linux 7.1 或更高版本,否则需要下载该工具并安装使用它。

    四链五表

    表:
    • filter表——过滤数据包
    • Nat表——用于网络地址转换(IP、端口)
    • Mangle表——修改数据包的服务类型、TTL、并且可以配置路由实现QOS
    • Raw表——决定数据包是否被状态跟踪机制处理
    链:
    • INPUT链——进来的数据包应用此规则链中的策略
    • OUTPUT链——外出的数据包应用此规则链中的策略
    • FORWARD链——转发数据包时应用此规则链中的策略
    • PREROUTING链——对数据包作路由选择前应用此链中的规则(所有的数据包进来的时侯都先由这个链处理)
    • POSTROUTING链——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)
     

    表链关系

    PREROUTING      的规则可以存在于:raw表,mangle表,nat表。

    INPUT          的规则可以存在于:mangle表,filter表,(centos7中还有nat表,centos6中没有)。

    FORWARD         的规则可以存在于:mangle表,filter表。

    OUTPUT         的规则可以存在于:raw表mangle表,nat表,filter表。

    POSTROUTING      的规则可以存在于:mangle表,nat表。

    规则

    匹配条件

    匹配条件分为基本匹配条件与扩展匹配条件

    基本匹配条件:

    源地址Source IP,目标地址 Destination IP

    上述内容都可以作为基本匹配条件。

    扩展匹配条件:

    除了上述的条件可以用于匹配,还有很多其他的条件可以用于匹配,这些条件泛称为扩展条件,这些扩展条件其实也是netfilter中的一部分,只是以模块的形式存在,如果想要使用这些条件,则需要依赖对应的扩展模块。

    源端口Source Port, 目标端口Destination Port上述内容都可以作为扩展匹配条件。

     

    动作

    处理动作在iptables中被称为target(这样说并不准确,我们暂且这样称呼),动作也可以分为基本动作和扩展动作。

    此处列出一些常用的动作,之后的文章会对它们进行详细的示例与总结:

    ACCEPT:允许数据包通过。

    DROP:直接丢弃数据包,不给任何回应信息,这时候客户端会感觉自己的请求泥牛入海了,过了超时时间才会有反应。

    REJECT:拒绝数据包通过,必要时会给数据发送端一个响应的信息,客户端刚请求就会收到拒绝的信息。

    SNAT:源地址转换,解决内网用户用同一个公网地址上网的问题。

    MASQUERADE:是SNAT的一种特殊形式,适用于动态的、临时会变的ip上。

    DNAT:目标地址转换。

    REDIRECT:在本机做端口映射。

    LOG:在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则,也就是说除了记录以外不对数据包做任何其他操作,仍然让下一条规则去匹配。

    iptables命令

    基本格式:
    iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]
    参数:
    -P 设置默认策略:iptables -P INPUT (DROP|ACCEPT)
    -F 清空规则链
    -L 查看规则链
    -A 在规则链的末尾加入新规则
    -I num 在规则链的头部加入新规则
    -D num 删除某一条规则
    -s 匹配来源地址IP/MASK,加叹号"!"表示除这个IP外。
    -d 匹配目标地址
    -i 网卡名称 匹配从这块网卡流入的数据
    -o 网卡名称 匹配从这块网卡流出的数据
    -p 匹配协议,如tcp,udp,icmp
    --dport num 匹配目标端口号
    --sport num 匹配来源端口号
     
  • 相关阅读:
    Windows安装Oracle
    MySQL索引的创建和使用
    使用TensorFlow进行中文情感分析
    gensim库word2vec使用
    软件测试理论
    产品经理
    产品经理
    产品经理
    职业规划及核心竞争力
    项目管理
  • 原文地址:https://www.cnblogs.com/HadesBlog/p/16015651.html
Copyright © 2020-2023  润新知