Linux之iptables详解及tcpdump

https://www.jianshu.com/p/ed001ae61c58

原文有几处写的不明白的地方加以重整:

 


可以参考这个人写的,感觉他明白的笔记透彻:

https://blog.51cto.com/13677371/2094355


  • 作者一共在内核空间中选择了5个位置
    这五个位置也被称为五个钩子函数(hook functions),也叫五个内置规则链

对应关系

 

  1.  PREROUTING(路由前)    进入/离开本机的内网接口
  2.  INPUT(数据包流流入入)     数据包从内核流入用户空间的 | 内核--->应用程序
  3.   FORWARD(转发)              从一个网络接口进来, 到另一个网络接口去的(内核里设置关卡)
  4.   OUTPUT(数据包流出)       数据包从用户空间流出的 | 应用程序-----流出----->
  5.   POSTROUTING(路由后)  进入/离开本机的外网接口


  • iptables的工作机制

从上面知道了作者选择的5个位置, 来作为控制的地方, 其实蓝色字体的三个位置已经基本上能够将路径彻底封锁了, 但是为什么已经在进出的口(指的是用户与内核之间的联系的进出)设置了关卡后还要在内部卡(指的是完全在内核中的PREROUTING & POSTROUTING)呢 ? 由于数据包尚未进行路由决策(也叫查找路由表/路由选择/路由判断(查找路由的过程在PREROUTING和FORWARD之间)),还不知道数据要走向那里, 所以在进出口是没有办法实现数据过滤的. 所以要在内核空间里设置转发的关卡. 进入用户空间的关卡,从用户空间出去的关卡,

也可以这样理解 他们没什么用 为什么还要设置他们这个问题: 因为我们要先做NAT和DNAT,做了NAT即完成目标地址转换,而这个转换必须在路由之前进行, 所以我们在外网而后内网的接口进行设置关卡.

红色字体参考最下图 :示例图 .

 

 

 图9.1-2  P308 单一网域,仅有一个路由器: 
 
防火墙除了可以作为 Linux 本机的基本防护之外,他还可以架设在路由器上面以管控整个局域网络的封包进出。 因此,在这类的防火墙上头通常至少需要有两个接口,将可信任的内部与不可信任的 Internet 分开, 所以可以分别设定两块网络接口的防火墙规则啦!简单的环境如同下列图 9.1-2 所示。 
 
在图 9.1-2 中,由于防火墙是设定在所有网络封包都会经过的路由器上头, 因此这个防火墙可以很轻易的就掌控到局域网络内的所有封包.

图9.3-4 含义: 比较简单的封包透过 iptables 而传送到后端主机的表格与链流程

Tips: 有没有发现有两个『路由判断』呢?因为网络是双向的,所以进与 出要分开来看!因此,进入的封包需要路由判断, 送出的封包当然 也要进行路由判断才能够发送出去啊!了解乎?

示例图

《鸟哥的Linux私房菜-服务器架设篇(第三版)高清晰_PDF密码解除》

当网络布线如图 9.1-2的架构,若内部 LAN 有任何一部主机想要传送封包出去时, 那么这个封包要如何透过 
Linux 主机而传送出去?他是这样的: 

1. 先经过 NAT table 的 PREROUTING 链; 
2. 经由路由判断确定这个封包是要进入本机与否,若不进入本机,则下一步; 
3. 再经过 Filter table 的 FORWARD 链; 
4. 通过 NAT table 的 POSTROUTING 链,最后传送出去。 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值