1. iptables 基础

1.什么是防火墙,防火墙的种类有哪些

防火墙: 古人用来隔绝失火后的高墙,阻挡外来的火势,起到了隔离的手段。
在互联网上,我们会采用类似于防火墙的方法,来保护我们的网络不受外来攻击,为此我们需要设定一些防火墙的规则,确定哪些数据允许通过,哪些不能通过,具有这种功能的设备或软件,我们将其称为防火墙

防火墙的种类:
  逻辑层面:
    主机防火墙:针对单个主机进行防护,例如Windows防火墙   一般是软件
    网络防火墙:处于网路入口的边缘,针对网络入口进行防护  一般是硬件,也可以用软件
  物理层面:
    硬件防火墙:一个实体的硬件,嵌入软件,实现防火墙的功能,性能高,成本高
    软件防火墙:通过软件的方式,模拟防火墙的功能,运行在操作系统上面,性能低,成本低

2.iptables介绍

1.什么是iptables?
  iptables可以理解为是一个代理程序,用户通过代理程序,将安全规则添加到安全框架中 net filter(内核空间)
  netfilter/iptables 是Linux中的包过滤型防火墙,是免费的,可以代替昂贵的商业防火墙解决方案,可以实现数据包的过滤,实现数据包的转换。

2.什么是包过滤防火墙?
  包过滤型防火墙在我们网络层拦截网络数据包的包头(header),可以针对数据包的包头,与我们事先准备好的防火墙规则进行比对,与规则相匹配的包放行,不匹配的包丢弃或者执行一些复杂的动作,包过滤型防火墙一般作用在我们的网络层,故也称为网络型防火墙。 
  通常header中带有 客户端来源IP,源端口,目标IP,目标端口,协议类型:tcp udp icmp,根据这些状态信息来判断,是否符合我们的IP tables的过滤规则,符合通过,不然拒绝。

3.包过滤型防火墙是怎么实现的?
  是基于net filter安全框架实现的,是内核的一部分,如果我们想要让防火墙达到防火的目的,需要我们在内核中,设定一些关卡,所有进出的报文,根据设定的这些关卡进行检查,将符合条件的放行,不符合的阻止,
  在net filter中,这些关卡就是链

3.iptables链的概念

1.什么是链?
  防火墙的作用就是在于将经过的报文与设定的规则进行比对,然后执行响应的动作,报文经过链时,必须匹配链的规则,在链上不止一条规则,存在着很多规则,当我们将这些规则穿在一起的时候就形成了链 
  链的匹配规则,如下图所示,当有报文经过时,会以此往下匹配规则,如果匹配成功,则执行相对于的动作,如果匹配不成功,就以此往下匹配,直到最后一条规则还是没有匹配成功,会执行链的默认规则。

1. iptables 基础

2. iptables 有哪些链?
    我们从A点到达B点时,途中会经过很多的高速路,不同的高速路有不通的关卡设定,比如说,过路费,查酒驾,查超载,查超速等等,这些都可以理解为一些关卡
    在iptables中,数据流入本机,经过防火墙,会经过五个关卡,也就是五个链
    PREROUTING: 
    input:
    output:
    forward:
    postrouting:

    数据流入本机:当数据经过prerouting,会判断是否是请求本机,请求本机,送往input链,经过input 发送到我们用户空间的process进程
    数据流出本机:process进程发送给output,由我们的output发送给postrouting,由postrouting选择最优路线,回传给用户
    数据经过本机:当用户请求防火墙时,数据报文要传给后端的服务器,这时数据报文是经过本机,而不是到达本机,首先会经过prerouting链,由于不是请求本机,所以不会送往input,会送往forward,通过postrouting选择接口,转给后端主机。

4.什么是表?

  对每个链上面会放很多规则比如:
    A:IP地址或端口过滤
    B:修改数据报文
  我们把具有相同功能规则的集合叫做表,不通功能的规则,可以放置在不同的表中进行管理
iptables中的表:
  filter:负责做过滤功能 管理的链
    input:
    output:
    forward:
  nat:  网络地址转换   
    PREROUTING: 
    input:
    output: 
    postrouting:
  mangle: 负责修改数据包的内容
    PREROUTING: 
    input:
    output:
    forward:
    postrouting:
  raw:  关闭nat表中的追踪机制(用的较少)

操作不同表中的不同的链实现的功能不一样,
上一篇:怎么才能让访客依恋你的网站


下一篇:Linux 服务器防火墙开放端口命令(iptables、firewalld和ufw)