zoukankan      html  css  js  c++  java
  • iptable防火墙原理

    iptable防火墙原理

    简介

    Linux 2.0 ipfs/firewalld
    Linux 2.2 ipchain/firewall
    Linux 2.4 iptables/netfilter (iptables 是在用户空间写规则的,neifilter工作在内核空间放置规则的位置)
    netfilter是内核的一个数据包处理模块,具有如下功能:
    网络地址转换
    数据包内容修改
    数据包过滤的防火墙功能

    表和钩子函数

    五个钩子函数:input output,forward,pre_routing,post_routing
    表:
    Mangle表:对数据进行修改,包含5条链
    Raw表:,prerouting,output
    Filter表:过滤 input,output,forward
    Nat表:prerouting,postouting
    目标地址转换是发生在路由决策前,刚进入本机的时候,源地址转换是在出去的时候。

    防火墙处理数据包的方式
    ACCEPT,DROP,REJECT,SNAT,DNAT

    数据包路由的原理

    网络数据包由底层数据包的网卡接收,通过数据链路层的捷报之后(去除数据链路层帧头),就进入了TCP/IP协议栈(本质上就是一个处理网络数据包的内核驱动)和netfilter混合的数据包的处理流程中了。
    总结一下规律:
    1)当一个数据包进入网卡的时候,数据包首先进入PREROUTING链,在PREROUTING链中我们有机会修改数据包的目的IP,然后内核的路由模块根据数据包的目的IP判断是否需要转出去
    2)如果数据包就是进入本机的,数据包就会沿着图向下移动,到达INPUT链,数据包到达INPUT链后。任何进程都会收到它
    3)本机上运行的程序发送数据包经过OUTPUT链,然后经过POSTROUTING链输出
    4)如果数据包是要转发出去的,且内核允许转发,数据包就会香油移动,经过FORWARD链,然后到达POSTROUTING链输出。

    iptable编写规则

    -F 清除规则
    -X 清除链
    -t filter 指定表
    -p tcp/udp
    -j DROP/REJECT/ACCEPT/
    -s源地址
    -d 目的地址
    -i eth0 从网络接口eth0进来
    -o eth0 从网络接口eth0出去
    --sport 源端口
    --dportz 目的端口

  • 相关阅读:
    web复制到剪切板js
    thinkphp 级联菜单实现
    一次$.getJSON不执行的记录
    php实现ppt转图片,php调用com组件问题
    模拟生成一天温度数据,精确到秒
    ffmpeg推rtmp流到crtmpserver直播
    博客新窝CSDN站
    Android开源框架Afinal第二篇——庖丁解牛,深入调查
    Android开源框架Afinal第一篇——揭开圣女的面纱
    AndroidのListView之加载说
  • 原文地址:https://www.cnblogs.com/hanfei-1005/p/5695399.html
Copyright © 2011-2022 走看看