Iptables使用方法

Iptables使用方法


Iptables的组成

iptables由四个表和五个链以及一些规则组成

四张表

四张表及其功能简介

表名 功能
filter表 过滤规则表,根据预定义的规则过滤符合条件的数据包
nat表 地址转换规则表
mangle表 修改数据标记位规则表
raw表 关闭nat表上启用的连接追踪功能,加快封包穿越防火墙的速度

四张表按优先级由高到低的顺序为: raw–>mangle–>nat–>filter

五个链

五个内置链(chain)及其所在位置

链名 位置
PREROUTING 报文进入本机的路由前的位置
INPUT 到达本机内部的报文的位置
FORWARD 由本机转发的报文的位置
OUTPUT 由本机内部发出的报文的位置
POSTROUTING 报文路由后流出本机的位置

数据报文流向

  • 跟本机内部进程通信:

    • 流入 : –> PREROUTING –> INPUT
    • 流出 : –> OUTPUT –> POSTROUTING
  • 经由本机转发:

    • 请求: –> PREROUTING –> FORWARD –> POSTROUTING
    • 响应: –> PREROUTING –> FORWARD –> POSTROUIING

表和链的对应关系

表名
filter INPUT, FORWARD, OUTPUT
nat PREROUTING(SNAT),POSTROUTING(DNAT),OUTPUT
mangle PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING
raw PREROUTING, OUTPUT
添加规则的要点

iptables添加规则时的考量点

  1. 要实现哪种功能:判断添加在哪张表上
  2. 报文流经的路径:判断添加在哪个链上
  3. 报文的流向:判断源和目的地
  4. 匹配规则:根据业务需要
  5. 客户端端口是随机的,因此大多数场景下无须限定

链上规则的次序,即为检查的次序

  1. 切记:先添加放行自己的规则
  2. 同类规则(访问同一应用),匹配范围小的放上面
  3. 不同类规则(访问不同应用),匹配到报文频率较大的放上面
  4. 将那些可由一条规则描述的多个规则合并为一个
  5. 设置默认策略,允许所有或拒绝所有

Iptables的使用

基本语法:

iptables [-t 表名] <-A|-I|-D|-R> 链名 [规则编号] [-i|-o 网卡名称] [-p 协议类型] [-s 源IP地址|源子网] [-sport 源端口号] [-d 目标IP地址|目标子网] [-dport 目标端口号] [-m 模式 [模式选项]] -j 动作 [动作选项]

对表进行的操作
  • -t TABLE
    • nat
    • mangle
    • raw
    • filter

默认为filter表
示例:

    ~]#iptables -t filter -A INPUT -s 172.18.255.254 -j DROP
    ~]#iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 172.18.255.254
对链进行的操作
  • -N:new,新建一条链
  • -X:delete,删除一条用户自定义链(空链)
  • -F:lush,清空一条链,默认清空表中所有链
  • -P:policy,定义链的默认处理策略
    • ACCEPT 接受
    • DROP 丢弃
    • REJECT 拒绝
  • -E:rename,重命名自定义的未被引用的(计数器为0)链
对规则进行的操作
  • -L: list,列出规则
    • -n:numeric,以数字格式显示地址和端口
    • -v:verbose,详细信息,-vv, -vvv
    • -x:exactly,显示计数器的精确值
    • –line-numbers:显示链上规则的编号
  • -A:append,追加,在链的最后加一条规则
  • -I: Insert,插入一条规则,默认第一个,一般使用 -I CHAIN NUM 给规则加一个编号
  • -D:delete,删除一条规则,可以输入完整规则,或者直接指定标号加以删除
    • rule speclfication
    • rule number
  • -R:replace,替换某条规则,规则被替换并不会改变顺序,必须要指定替换的规则编号。-R CHAIN NUM
  • -Z: zero,清空计数器,iptables中每条规则默认有两个计数器
  • -S:selected,以iptables-save 命令的格式显示链上的规则

示例:

    ~]#iptables -A INPUT -s 172.18.255.254 -j DROP
    ~]#iptables -A INPUT -s 172.18.10.0 -j REJECT
    ~]#iptables -I INPUT -s 172.18.0.2 -j ACCEPT   #默认插入到的是第一条
    ~]#iptables -I INPUT 2 -s 172.18.22.100 -j ACCEPT  #指定插入位置
    ~]#iptables -D INPUT 2     #删除规则
    ~]#iptables -R INPUT 2 -s 172.18.255.254 -j ACCEPT     #替换指定规则
    ~]#iptables -F     #清空所有规则
    ~]#iptables -Z     #清空计数器
    ~]#iptables -nvL   #查看规则
    ~]#iptables -nvL --line-numbers    #显示规则编号
    ~]#iptables -S     #命令格式显示链上规则
    ~]#iptables -nvL -t nat    #查看指定的表
匹配条件
基本匹配

基本匹配:netfilter自带的匹配规则

  • -s:指定匹配数据包的源地址
  • -d:指定匹配数据包的目标地址
  • -i:指定数据包的流入接口(逻辑接口),只能用于PREROUTING 、INPUT及FORWARD
  • -o:指定数据包的流出接口,只能用于OUTPUT、FORWARD及POSTROUTING

示例:

    ~]#iptables -A INPUT -s 172.18.0.0/16 -j REJECT    #拒绝整个网段
    ~]#iptables -A INPUT -s 172.18.0.2,172.18.10.0 -j REJECT   #同时定义多个IP
    ~]#iptables -A INPUT -s 172.18.0.2,172.18.10.0 -d 192.168.10.129 -j REJECT
    ~]#iptables -A INPUT -d 192.168.10.129 -j REJECT   #拒绝访问特定目标ip
    ~]#iptables -A INPUT ! -d 192.168.10.129 -j REJECT     #取反,除访问特定地址外的数据包都拒绝
    ~]#iptables -A INPUT ! -s 172.18.10.0 -j REJECT
    ~]#iptables -A INPUT -p icmp -j REJECT     #只拒绝指定协议
    ~]#iptables -A INPUT -i ens32 -p icmp -j REJECT    #拒绝指定接口的流量
扩展匹配

扩展匹配:对某一种功能的扩展,经由扩展模块引入的匹配机制
语法:-m macth_name - -spec_options
示例:-m tcp - -dport 22

隐式扩展:对某一种协议扩展

  • -p (tcp|udp|icmp|icmpv6|ah|esp|sctp|mh|all):做协议匹配
    • tcp:隐藏了”-m tcp”的专用选项
      • [!] - -source-port, –sport port [:port] 匹配报文中TCP首部源端口,可以是端口范围;
      • [!] - -dport port [:port]:目标端口,可以是单个端口或连续多个端口;
      • [!] - -tcp-flags (SYN, ACK, FIN, RST, PSH, URG,RST,ALL,NONE)指定TCP的标志位,需要跟两个标志位列表,如:SYN,ACK,FIN,RST,SYN 第一个列表表
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值