保存和恢复规则集

保存和恢复规则集

  • 用 iptables-save 和 iptables-restore 的一个重要原因就是他们能够加速恢复和保存大的规则。

    • 改动每个规则都要调运命令 iptables,而每一次调用 iptables,它首先要把 Netfilter 内核空间中的整个规则集都提取出来,然后再插入或附加,或做其他的改动,最后,再把新的规则集从它的内存空间插入到内核空间中。这会花费很多时间

    • 解决这个问题的武器,就是 iptables-save 和 iptables-restore。

      • iptables-save 命令用来把规则保存到一个特殊格式的文本文件中,Iptables-save 能够一次性从内核里面获取全部的规则,并且保持到一个文件里面。
      • iptables-restore 则能够加载这个文件,并且在内核中恢复规则。iptables-restore 则能够一次性把所有规则加载并且同步到内核。
      • 他们的最大优点就是对于规则的操作只需要一次请求。
      iptables-save [-c] [-t table]
      -c 参数告诉 iptables 在保存的时候保存包和字节数量。默认情况下,这个参数不被使用。
      -t 参数告诉 iptables 哪一个表的配置需要保存,没有这个参数所有表的配置都会被保存。
      
      • 以#开头表示这行是注释。
      • 每一个表都以标志,例如mangle。
      • 接着在每一个表里面,我们都有链和规则,一个链看起来像如下的格式:
        • <链名><链策略>[<报文计数>:<字节计数>]
      • 每一个表的结束都用一个 COMMIT 关键字,COMMIT 关键字表明此刻我们应该把 所有规则发送到内核。
      # Generated by iptables-save v1.2.6a on Wed Apr 24 10:19:17 2002
      *filter
      :INPUT ACCEPT [404:19766]
      :FORWARD ACCEPT [0:0]
      :OUTPUT ACCEPT [530:43376]
      COMMIT
      # Completed on Wed Apr 24 10:19:17 2002
      # Generated by iptables-save v1.2.6a on Wed Apr 24 10:19:17 2002
      *mangle
      :PREROUTING ACCEPT [451:22060]
      :INPUT ACCEPT [451:22060]
      :FORWARD ACCEPT [0:0]
      :OUTPUT ACCEPT [594:47151]
      :POSTROUTING ACCEPT [594:47151]
      COMMIT
      # Completed on Wed Apr 24 10:19:17 2002
      # Generated by iptables-save v1.2.6a on Wed Apr 24 10:19:17 2002
      *nat
      :PREROUTING ACCEPT [0:0]
      :POSTROUTING ACCEPT [3:450]
      :OUTPUT ACCEPT [3:450]
      COMMIT
      # Completed on Wed Apr 24 10:19:17 2002
      
      # Generated by iptables-save v1.2.6a on Wed Apr 24 10:19:55 2002
      *filter
      :INPUT DROP [1:229]
      :FORWARD DROP [0:0]
      :OUTPUT DROP [0:0]
      -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
      -A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
      -A FORWARD -i eth1 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
      -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
      COMMIT
      # Completed on Wed Apr 24 10:19:55 2002
      # Generated by iptables-save v1.2.6a on Wed Apr 24 10:19:55 2002
      *mangle
      :PREROUTING ACCEPT [658:32445]
      :INPUT ACCEPT [658:32445]
      :FORWARD ACCEPT [0:0]
      :OUTPUT ACCEPT [891:68234]
      :POSTROUTING ACCEPT [891:68234]
      COMMIT
      # Completed on Wed Apr 24 10:19:55 2002
      # Generated by iptables-save v1.2.6a on Wed Apr 24 10:19:55 2002
      *nat
      :PREROUTING ACCEPT [1:229]
      :POSTROUTING ACCEPT [3:450]
      :OUTPUT ACCEPT [3:450]
      -A POSTROUTING -o eth0 -j SNAT --to-source 195.233.192.1
      COMMIT
      # Completed on Wed Apr 24 10:19:55 2002
      
      • 你可能看到了,每一个命令前都有字节和报文统计值,这是因为我们用了-c 参 数。除了有计数器,其他的都和普通的脚本一样。现在的问题是怎么把输出保 存到文件中。非常简单,既然使用 linux,你应该早就知道了,用重定向就可 以了。
  • iptables-restore

iptables-restore [-c] [-n]
-c 参数表明我们要恢复我们之前保存的字节以及报文统计,这个参数还有另外一种长格式写法—counter。
-n 参数表明不会覆盖之前已经存在的配置,默认情况下 iptables-restore 会 刷新和破坏所有之前已经存在的配置。-n 参数当然也可以通过—noflush 来替 代,他们是一样的。

# 恢复方法:
cat /etc/iptables-save | iptables-restore -c
iptables-restore -c < /etc/iptables-save

转载于:https://my.oschina.net/xyh592/blog/3099512

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值