< 返回云服务器列表

Iptables实例、规则以及常用命令

发布时间:2020-07-09    来源: 118云vps 阅读:
    Iptables实例
 
    Iptabels是与Linux内核集成的包过滤防火墙系统,几乎所有的linux发行版本都会包含Iptables的功能。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则Iptables有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。
    netfilter/iptables过滤防火墙系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信 息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。
 
    虽然netfilter/iptables包过滤系统被称为单个实体,但它实际上由两个组件netfilter 和 iptables 组成。
 
    netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。
 
    iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。
 
    规则示例
 
    先回顾下iptables的格式:
 
    iptables [-t table] command [match] [-j target/jump]
 
    -t 参数用来指定规则表,内建的规则表有三个,分别是:nat、mangle 和 filter,当未指定规则表时,则一律视为是 filter。
 
    各个规则表的功能如下:
 
    nat此规则表拥有 Prerouting 和 postrouting 两个规则链,主要功能为进行一对一、一对多、多对多等网址转换工作(SNAT,DNAT),由于转换的特性,需进行目的地网址转换的数据包,就不需要进行来源网址转换,反之亦然,因此为了提升改写封包的效率,在防火墙运作时,每个封包只会经过这个规则表一次。如果我们把数据包过滤的规则定义在这个数据表里,将会造成无法对同一包进行多次比对,因此这个规则表除了作网址转换外,请不要做其它用途。mangle 此规则表拥有 Prerouting、FORWARD 和 postrouting 三个规则链。
 
    除了进行网址转译工作会改写封包外,在某些特殊应用可能也必须去改写数据包(TTL、TOS)或者是设定 MARK(将数据包作记号,以进行后续的过滤),这时就必须将这些工作定义在 mangle 规则表中。
 
    mangle表主要用于对指定数据包进行更改,在内核版本2.4.18 后的linux版本中该表包含的链为:INPUT链(处理进入的数据包),RORWARD链(处理转发的数据包),OUTPUT链(处理本地生成的数据包)POSTROUTING链(修改即将出去的数据包),PREROUTING链(修改即将到来的数据包)LINUX教程 centos教程
 
    filter这个规则表是预设规则表,拥有 INPUT、FORWARD 和 OUTPUT 三个规则链,这个规则表顾名思义是用来进行封包过滤的动作(例如:DROP、 LOG、 ACCEPT 或 REJECT),我们会将基本规则都建立在此规则表中。
 
    常用命令示例:
 
    1、命令 -A, —append
 
    范例:iptables -A INPUT -p tcp —dport 80 -j ACCEPT
 
    说明 :新增规则到INPUT规则链中,规则时接到所有目的端口为80的数据包的流入连接,该规则将会成为规则链中的最后一条规则。
 
    2、命令 -D, —delete
 
    范例:iptables -D INPUT -p tcp —dport 80 -j ACCEPT
 
    或 : iptables -D INPUT 1
 
    说明: 从INPUT规则链中删除上面建立的规则,可输入完整规则,或直接指定规则编号加以删除。
 
    3、命令 -R, —replace
 
    范例: iptables -R INPUT 1 -s 192.168.0.1 -j DROP
 
    说明 取代现行第一条规则,规则被取代后并不会改变顺序。
 
    4、命令 -I, —insert
 
    范例:iptables -I INPUT 1 -p tcp —dport 80 -j ACCEPT
 
    说明: 在第一条规则前插入一条规则,原本该位置上的规则将会往后移动一个顺位。
 
    5、命令 -L, —list
 
    范例: iptables -L INPUT
 
    说明:列出INPUT规则链中的所有规则。
 
    6、命令 -F, —flush
 
    范例: iptables -F INPUT
 
    说明: 删除INPUT规则链中的所有规则。
 
    7、命令 -Z, —zeroLINUX教程 centos教程
 
    范例:iptables -Z INPUT
 
    说明 将INPUT链中的数据包计数器归零。它是计算同一数据包出现次数,过滤阻断式攻击不可少的工具。
 
    8、命令 -N, —new-chain
 
    范例: iptables -N denied
 
    说明: 定义新的规则链。
 
    9、命令 -X, —delete-chain
 
    范例: iptables -X denied
 
    说明: 删除某个规则链。
 
    10、命令 -P, —policy
 
    范例 :iptables -P INPUT DROP
 
    说明 :定义默认的过滤策略。 数据包没有找到符合的策略,则根据此预设方式处理。
 
    11、命令 -E, —rename-chain
 
    范例: iptables -E denied disallowed
 
    说明: 修改某自订规则链的名称。