zoukankan      html  css  js  c++  java
  • Linux-iptables初识

    Linux-iptables初识

    了解

    1. iptables是与Linux内核集成的IP信息包过滤系统。如果Linux系统连接到因特网或LAN、服务器或连接LAN和因特网的代理服务器,则该系统有利于在Linux系统上更好的控制IP信息包过滤和防火墙配置。
    2. netfilter/iptables IP信息包过滤系统是一种强大的工具,可用于添加、编辑和去除规则,这些规则是在做信息包过滤决定时,防火墙所遵守和组成的规则。这些规则存储在专用的信息包过滤表中,而这些表集成在Linux内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。虽然netfilter/iptables IP信息包过滤系统被称为单个实体,但它实际上由两个组建netfilter和iptables组成。
      * netfilter组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。
      * ipitables组件是一种工具,也是用户空间(userspace),它使插入、修改和除去信息包过滤表中规则变得容易。
    3. iptables包含4个表,5个链。其中表是按照对数据包的操作区分的,链是按照不同的Hook点来区分的,表和链实际上是netfilter的两个维度。
      * 四个表:filter、nat、mangle、raw,默认表是filter(没有指定表的时候就是filter表)
      filter:一般的过滤功能
      nat:端口映射、地址映射等
      mangle:用于对特定数据包的修改
      raw:优先级最高,设置raw时一般是为了不再让iptables做数据包的链接跟踪处理,提高性能
      优先级:raw>mangle>nat>filter
      * 五个链:PREROUTING、
      PREROUTING:数据包进入路由表之前
      INPUT:通过路由表后,目的地为本机
      FORWARD:通过路由表后,目的地不是本机
      OUTPUT:由本机产生,向外转发
      POSTROUTING:发送到网卡接口之前

    基本命令

    1.查看iptables的四张表

    cat /proc/net/ip_tables_names
    

    2.查看iptables表中的规则

    iptables -t nat/raw/mangle/filter –L
    

    3.查看iptables中共有哪些target

    cat /proc/net/ip_tables_targets
    

    4.清空链中的rule。清空所选链。这等于把所有规则一个个的删除

    iptables –t raw/mangle/nat/filter –F
    

    5.删除每个非内建的链

    iptables –t /raw/mangle/nat/filter –X
    

    6.查看链中的rule

    iptables –t /raw/mangle/nat/filter –L
    

    7.查看iptables的帮助文件

    iptables --help
    

    表与链

    1.Filter

    iptables -L | more
    

    当不指定表明的时候,默认指filter表。more与|连用:可用“空格”翻页,上下箭头翻行
    Filter表中的INPUT、FORWARD、OUTPUT三个链
    2.NAT
    当内网要公布web服务器时,可以使用prerouting链做dnat映射
    当内网用户想上网时,可以用postrouting链做snat映射
    该NAT表中链有PREROUTING、POSTROUTING、OUTPUT
    3.Mangle
    主要作用是修改封包的内容。修改IP包头的TTL值,这样也可以保护我们的主机,比如我们将Linux主机送出的封包内的TTL值该为128,让Cracker误以为是Windows系统。另外,TTL(生存周期,每经过一个路由器将减少1.mangle可以修改此值设定TTL要被增加的值,比如–ttl-inc 。假设一个进来的包的TTL是53,那么当它离开我们这台机子时,TTL应是多少呢?是56,原因同–ttl-dec。使用这个选项可以使我们的 防火墙更加隐蔽,而不被trace-routes发现,方法就是设置–ttl-inc 1。原因应该很简单了,包每经过一个设备,TTL就要自动减1,但在我们的防火墙里这个1又被补上了,也就是说,TTL的值没变,那么trace- routes就会认为我们的防火墙是不存在的)。修改IP包头的DSCP值,在网络应用中,有时候需要对某些特定通信协议会有特殊的需求,例如在网络电话的应用环境里,我们会希望VOIP的封包都要能在不延迟的情况下传输出去。因此就有了QOS(Quality of Service)机制
    Mangle表中有链PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING
    4.Raw
    Raw表只使用在PREROUTING、OUTPUT链上,因为优先级最高,从而可以对收到的数据包在连接跟踪前处理。一旦用户使用了RAW表,在某个链上,RAW表处理完后,将跳过NAT表和ip_conntrack处理,即不再做地址转换和数据包的链接跟踪处理了
    RAW表可以应用在那些不需要做nat的情况下,以提高性能。如大量访问web服务器,可以让80端口不再让iptables做数据包的链接跟踪处理,以提高用户的访问速度

    Filter表基本实验

    1.清空指定表中的所有规则

    iptables -F     #清空filter表中的所有链(默认不指定则表明filter表,可以使用-t参数指定表)
    

    2.不允许本机telnet到其他机子

    iptables -A OUTPUT -p tcp --dport 23 -j DROP    
    

    3.不允许别人ping通自己

    iptables -A INPUT -p icmp --icmp-type 8 -j DROP
    

    4.指定telnet禁止的具体的源与目的

    iptables -A INPUT -p tcp -s 192.168.100.20/24 -d 192.168.100.55/24 -dport 23 -j DROP
    

    往input输入链中添加一条过滤防火墙规则:凡是来源主机是192.168.100.20,telnet到目的主机192.168.100.55的数据包就丢弃
    5.保存和恢复规则集

    $iptables-save > /etc/fwdump        #保存规则集到指定文件
    $iptables-restore < /etc/fwdump    #恢复规则集
    $cat /etc/rc.local
    /sbin/iptables-restore < /etc/fwdump  
    
    勿忘初心,放得始终
  • 相关阅读:
    网络运维架构
    Q in Q
    光纤/光模块的多模和单模
    Cisco VTP
    Cisco NTP配置
    惠普/aruba交换机
    【转】交换机背板带宽
    接入交换机下所有服务器不定时丢包
    windows 2012安装不了KB2919355
    Cisco交换机密码策略设置
  • 原文地址:https://www.cnblogs.com/cherishry/p/5677108.html
Copyright © 2011-2022 走看看