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 目的端口

iptable防火墙原理的更多相关文章

  1. 基于IMD的包过滤防火墙原理与实现

    一.前言二.IMD中间层技术介绍三.passthru例程分析四.部分演示代码五.驱动编译与安装六. 总结 一.前言 前段时间,在安全焦点上看到了TOo2y朋友写的<基于SPI的数据报过滤原理与实 ...

  2. linux IPtable防火墙 禁止和开放端口(转)

    linux IPtable防火墙 禁止和开放端口源:http://hi.baidu.com/zplllm/item/f910cb26b621db57c38d5983评: 1.关闭所有的 INPUT F ...

  3. iptables防火墙原理详解

    1. netfilter与iptables Netfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架,该框架既简洁又灵活,可实现安全策略应用中的许多功能,如数据包过滤.数 ...

  4. Linux网卡驱动安装、防火墙原理

    安装网卡驱动程序: 需要检查是否安装kernel依赖包: rpm –q kernel-devel #检查kernel依赖包是否安装 yum –y install kernel-devel 检查gcc和 ...

  5. linux IPtable防火墙 禁止和开放端口

    1.关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放.下面是命令实现: iptables -P INPUT DROPiptables -P FORWARD DROPiptable ...

  6. Neutron的防火墙原理

    确切的说这是fwaas,即防火墙即是服务. 防火墙与安全组区别防火墙一般放在网关上,用来隔离子网之间的访问.因此,防火墙即服务也是在网络节点上(具体说来是在路由器命名空间中)来实现. 安全组的对象是虚 ...

  7. IPtable防火墙概念介绍

    1.iptables安全优化 1.不配外网,做代理转发或者防火墙映射 2.并发过大,不建议开启防火墙 2.防火墙的工作流程: 按照配置规则的顺序自上而下,从前到后进行过滤 如果匹配上新规则,表明是阻止 ...

  8. iptable防火墙配置

    /etc/sysconfig/iptables /etc/init.d/iptables {start|stop|restart|condrestart|status|panic|save} ipta ...

  9. iptable防火墙案例

    [root@WX020 firewall]# cat /etc/sysconfig/iptables# Firewall configuration written by system-config- ...

随机推荐

  1. Iris Classification on Keras

    Iris Classification on Keras Installation Python3 版本为 3.6.4 : : Anaconda conda install tensorflow==1 ...

  2. httpparase + httpclient 的运用

    这篇文章介绍了 HtmlParser 开源包和 HttpClient 开源包的使用,在此基础上实现了一个简易的网络爬虫 (Crawler),来说明如何使用 HtmlParser 根据需要处理 Inte ...

  3. apache域名跳转

    状态码:*301: 永久重定向,域名跳转一定要用301,对搜索引擎友好的. 302:临时重定向在虚拟主机配置文件/usr/local/apache2/conf/extra/httpd-vhosts & ...

  4. javascript-->getElementsByClass

        //通过类名获取元素    //obj->目标元素的上一层元素  cName->目标类名 tagName->目标的标签类型(可缺省)    function getEleme ...

  5. Windows客户端 Linux服务器通讯 字符编码问题

    Windows下的字符编码默认是gb2312 在Linux下需要转成utf8 才能正确的看到对应的中文编码 提供转换函数 /*------------------------------------- ...

  6. 快速安装pycharm,最详细的pycharm安装图文教程

    大家都知道python的开发工具Pycharm吧,它是由JetBrains打造的一款Python IDE,它功能强大,已经是python开发者使用最多的编辑工具.首先,它支持多平台(Linux.WIn ...

  7. 2D轮播图

    目录结构 index.html <!DOCTYPE html><html lang="en"><head> <meta charset=& ...

  8. JsonProperty 使用

    引入 依赖 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId> ...

  9. 解一元二次方程的C++实现

    一元二次方程的根的情况分为实根与虚根两种,代码如下 #include<iostream> #include<cmath> using namespace std; float ...

  10. datav轮播表使用事例

    官方事例地址: http://datav.jiaminghi.com/guide/scrollBoard.html 安装: npm install @jiaminghi/data-view 局部引入: ...