码迷,mamicode.com
首页 > 其他好文 > 详细

iptables学习笔记

时间:2016-08-19 22:27:42      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:iptables笔记

1、数据包的流向

数据包在主机上有三个流向:

a、发往本机:从本机的内核空间流向用户空间(应用程序)  

b、本机发出:从本机的用户空间流向内核空间,在经过网卡流出

c、转发:从本机的一个网卡进来,从另外一个网卡出去


2、数据链(内置):

iptables有5条链来对数据报文进行规则控制

PREROUTING:刚到达本机,在进行路由之前的报文

INPUT:进入到本机的报文

FORWARD:由本机转发的报文

OUTPUT:从本机发出的报文

POSTROUTING:进行路由之后,要离开本机的报文


技术分享



3、防火墙功能表

上面提到了防火墙有5条链可以配置规则来对数据报文进行控制,那么防火墙都有哪些功能呢?

filter:报文过滤,是否允许报文通过

nat:网络地址转换,用于修改源IP或者目标IP,也可以改端口

mangle:拆解报文,做出修改并重新封装报文。

raw:关闭nat表上启用的连接追踪功能,基本上用不着。

上面4个功能实际上是4个表。以下是各个表包含的链


  • mangle表包含以下链

    • PREROUTING

    • INPUT

    • OUTPUT

    • POSTROUTING

  • 总之该表不常用,几乎不用。

  • nat表主要用于来源地与目的地的ip或port转换,与linux本机无关主要于内网计算机有关。包含以下链

    • PREROUTING:在进行路由之前进行规则(DNAT/REDIRECT)

    • POSTROUTING:在进行路由判断后执行规则(SNAT/MASQUERADE)

    • OUTPUT:与发送出去的数据包有关

  • 关于POSTROUTING,固定ip的时候选择SNAT,非固定IP比如拨号上网的时候选择MASQUERADE链,修改目的ip地址的DNAT操作PREROUTING链

  • filter表主要跟linux本机有关,是默认的table,也是最重要的表。包含以下链

    • INPUT:主要与数据包想要进入Linux主机有关

    • OUTPUT:主要于Linux本机所要送出的数据包有关

    • FORWARD:与Linux本机没有关系,他可以将数据包转发到后段的计算机中,于nat这个table相关性很高





防火墙功能和链的对应关系

注意下图中的这些功能有优先级的关系。上面的优先级别下面高,例如在PREROUTING链上,

raw > mangle > nat

技术分享


数据包传输过程中经过的链和表

技术分享

技术分享

技术分享

技术分享




4、报文流向和链的对应关系

流入本机:PREROUTING ==> INPUT

由本机流出:OUTPUT ==> POSTROUTING

转发:PREROUTING ==> FORWARD ==> POSTROUTING


练习:如果要求拒绝192.168.1.100这台主机访问本机的web服务,该在哪条链上设置什么功能?

首先拒绝访问本机的web服务用到的是filter功能,而只有INPUT、FORWARD、OUTPUT链能做过滤功能,由于是访问本机的web服务,所以应该是在INPUT链上设置防火墙规则。


































本文出自 “zengestudy” 博客,请务必保留此出处http://zengestudy.blog.51cto.com/1702365/1840392

iptables学习笔记

标签:iptables笔记

原文地址:http://zengestudy.blog.51cto.com/1702365/1840392

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!