zoukankan      html  css  js  c++  java
  • Linux防火墙配置学习记录

    一.iptables基本原理

    1.iptables是一个管理内核包过滤的工具,包含4个表,5个链
         表
    被称为Netfilter模块的两个维度,

    表提供特定的功能
    内置四个表:

    •     filter表:用于对数据过滤(包过滤)
    •     nat表   :用于对数据包的源,目标IP地址进行修改(网络地址转换)
    •     mangle表:用于对数据包进行高级修改(包重构 )
    •     raw表   :包重构和数据跟踪处理,优先级最高,一般不做处理,一旦设置就是不再让iptables做数据包连接跟踪

    链是数据包传播途径
    iptables包含5个链,分别代表数据包在网络传输的5种状态

    •     PREROUTING(路由前):
    •     INPUT(通过路由表后,流入本机的数据
    •     FOREWARD(通过路由表后。目的不是主机,需要转发)
    •     OUTPUT(由本机流出去的数据)
    •     POSTROUTING(路由后)

    filter起作用的3条链:INPUT,FORWARD,OUTPUT
    nat 起作用的3条链  :PREROUTING OUTPUT POSTROUTING
    mangle起作用的5条链:PREROUTING INPUT FORWARD OUTPUT  POSTROUTING

    2.Linux内核集成了网络访问控制的功能是通过Netfilter进行控制管理

    Netfilter支持以下方式对数据包进行分类:

    •     源IP/目标IP 地址
    •     使用接口
    •     使用协议(TCP UDP ICMP等)
    •     端口号
    •     连接状态(new Established Related Invalid)

    3.iptables语法
    使用权限:root
    使用方式:iptables [-t 参数] 指令 条件[目标|链]
    说 明 :显示当前登录系统用户的信息,可以轻松显示登录账号,使用的终端,登录时间,来源ip等
    参数 :分为指令集,目标集,条件集
    指令集:
        -N 建立一个新的链
        -P 改变一个链的规则
        -F 清除一个链的所有规则
        -I 在链内某个位置插入一个新规则
        -D 在链内某个位置删除一条规则
        -X 删除一个空链
        -L 列出一个链的规则
        -A 在一个链的最后新增一条规则(append)
        -R 在链内某个位置替换一条规则(replace)
    目标集:
        ACCEPT:通过链检验,接受这个数据包
        DROP :未通过链检验,立即丢弃这个封包
        QUEUE:将封包重导至本机端的队列
        RETURN:通过链的检验,回到原来的链中
        TOS  :改变封包TOS字段的值
        REJECT:未通过链检验,丢弃数据包
        SNAT  :改变封包来源IP字段的值
        DNAT  :改变封包目标IP字段的值
        MASQUEUE:动态的根据路由修改Source Socket
        REDIRECT:重导封包至另外一个地址或连接端口
        TTL :改变封包TTL字段的值
     条件集:
        -i -o     网络接口匹配
        -p        匹配所属协议
        -m state  匹配联机类型
        --top-flags -icmp-type 封包类型
        -s          匹配数据包源IP
        --sport   匹配数据包的源端口
        -d          匹配数据包的目的ip
        --dport   匹配数据包的目的端口
        INPUT OUTPUT FOREARD  封包在防火墙中的流向
        -j       跳至目标或自定链

    4.追加规则:
    语法
        iptables -A chain firewall-rule
    -A chain 指定要追加的规则
    firewall-rule 为具体的规则参数

    cat    /etc/protocols       #查看协议与值对应关系

    -s 源地址(source)
        指定数据源IP地址:-s 192.168.1.101 指定IP地址  -s 192.168.1.10/24  指定网络地址
        如果不指定-s 参数,就代表所有地址

    -d 目标地址(destination)
       与-s 相同
     -j 执行目标(jump to target)
        可能的值是ACCEPT,DROP,QUEUE,RETURN
    -i 输入接口
        -i eth0 指定要处理经由eth0进入的数据包
        这些数据包即将进入 INPUT FORWARD PREROUTE
        !-i eth0 处理所有不经由eth0接口进入的数据包
        -i eth+ 处理所有经由eth开头的接口进入的数据包

    5.规则扩展参数
    (1)-sport 源端口(source port)针对"-p tcp "或者"-p  udp"
        默认情况下匹配所有端口
        可能指定端口号或端口名称 -sport 22 或者 -sport ssh
        /etc/services 文件描述了上述对应关系
        使用冒号匹配端口范围 -sport 22:100
    (2)--dport 目的端口(destination port)针对-p tcp 或者 -p udp
        与-sport类似
    (3)--tcp-flage TCP标志,针对于 -p tcp
        可以指定逗号分隔符多个参数
        有效值可以是SYN,ACK,FIN,RST,URG,PSH
        可以使用ALL或者NONE

    6.iptables应用

    (1)看系统内防火墙默认规则(默认查看的是filter表的防火墙规则,filter表对INPUT,FORWADRD,OUTPUT有效)

    1 iptables -L

    (2)查看系统内nat表的规则

    1 iptables  -t nat -L 

    1 #查看系统内mangle表的防火墙规则
    2 iptables -t mangle -L

    3.

    1 #在filter表的第3个位置插入一条规则允许TCP的22端口的所有数据进入
    2 iptables -I INPUT 3 -p tcp --dport 22 -j ACCETP

    4.

    1 #删除规则 INPUT iptables -D +链+顺序 :
    2 #删除INPUT 第三条规则:iptables -D INPUT3
    3 #删除所有规则:
    4     iptables -F 

    5.

    1 #查看iptables服务状态
    2     service iptables status

  • 相关阅读:
    【★】IT界8大恐怖预言
    ★互联网告别免费时代,准备好了吗?
    ★互联网告别免费时代,准备好了吗?
    PS小实验-去除水印
    PS小实验-去除水印
    玩转PS路径,轻松画logo!
    玩转PS路径,轻松画logo!
    玩转PS路径,轻松画logo!
    地图收敛心得170405
    地图收敛心得170405
  • 原文地址:https://www.cnblogs.com/someone9/p/8618959.html
Copyright © 2011-2022 走看看