zoukankan      html  css  js  c++  java
  • iptables

    工作原理:
     
    基础:
    规则(rules)其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空间的信息包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等。配置防火墙的主要工作就是添加、修改和删除这些规则。
    链(chains)是数据包传播的路径,每一条链其实就是众多规则中的一个检查清单,每一条链中可以有一条或数条规则。当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件。如果满足,系统就会根据该条规则所定义的方法处理该数据包;否则iptables将继续检查下一条规则,如果该数据包不符合链中任一条规则,iptables就会根据该链预先定义的默认策略来处理数据包。
     
    表(tables)提供特定的功能,iptables内置了4个表,即filter表、nat表、mangle表和raw表,分别用于实现包过滤,网络地址转换、包重构(修改)和数据跟踪处理。一般只用到filter表
     
     
    传输数据包的过程
     
     
    命令格式:
    iptables [-t table] 命令 [chain] [rules] [-j target]
    table——指定表明
    命令——对链的操作命令
    chain——链名
    rules——规则
    target——动作如何进行
     

    1.表选项
    表选项用于指定命令应用于哪个iptables内置表,iptables内置包括filter表、nat表、mangle表和raw表。
    2.命令选项iptables命令格式

    命令 说明
    -P或–policy <链名> 定义默认策略
    -L或–list <链名> 查看iptables规则列表
    -A或—append <链名> 在规则列表的最后增加1条规则
    -I或–insert <链名> 在指定的位置插入1条规则
    -D或–delete <链名> 从规则列表中删除1条规则
    -R或–replace <链名> 替换规则列表中的某条规则
    -F或–flush <链名> 删除表中所有规则
    -Z或–zero <链名> 将表中数据包计数器和流量计数器归零

    3.匹配选项
    匹配 说明
    -i或–in-interface <网络接口名> 指定数据包从哪个网络接口进入,如ppp0、eth0和eth1等
    -o或–out-interface <网络接口名> 指定数据包从哪块网络接口输出,如ppp0、eth0和eth1等
    -p或—proto协议类型 < 协议类型> 指定数据包匹配的协议,如TCP、UDP和ICMP等
    -s或–source <源地址或子网> 指定数据包匹配的源地址
    –sport <源端口号> 指定数据包匹配的源端口号,可以使用“起始端口号:结束端口号”的格式指定一个范围的端口
    -d或–destination <目标地址或子网> 指定数据包匹配的目标地址
    –dport目标端口号 指定数据包匹配的目标端口号,可以使用“起始端口号:结束端口号”的格式指定一个范围的端口

    4.动作选项
    动作 说明
    ACCEPT 接受数据包
    DROP 丢弃数据包
    REDIRECT 与DROP基本一样,区别在于它除了阻塞包之外, 还向发送者返回错误信息。
    SNAT 源地址转换,即改变数据包的源地址
    DNAT 目标地址转换,即改变数据包的目的地址
    MASQUERADE IP伪装,即是常说的NAT技术,MASQUERADE只能用于ADSL等拨号上网的IP伪装,也就是主机的IP是由ISP分配动态的;如果主机的IP地址是静态固定的,就要使用SNAT
    LOG 日志功能,将符合规则的数据包的相关信息记录在日志中,以便管理员的分析和排错
     
    实际例子:
     
    -A OUTPOUT  往OUTPUT链路中append一条规则
    -d 10.199.160.231 目标地址为10.199.160.231
    -p tcp --tcp--flags 指定为tcp协议
    -j DROP 丢弃数据包
     
  • 相关阅读:
    Entity SQL 初入
    ObjectQuery查询及方法
    Entity Framework 的事务 DbTransaction
    Construct Binary Tree from Preorder and Inorder Traversal
    Reverse Linked List
    Best Time to Buy and Sell Stock
    Remove Duplicates from Sorted Array II
    Reverse Integer
    Implement Stack using Queues
    C++中const限定符的应用
  • 原文地址:https://www.cnblogs.com/jwentest/p/8186756.html
Copyright © 2011-2022 走看看