Linux之Iptables防火墙相关概念和基本操作

iptables概念

一、 iptables的前身叫ipfirewall(内核1.x时代),这是一个作者从freeBSD上移植过来的,能够工作在内核当中的,对数据包进行检测的一款简易访问控制工具。但是ipfirewall工作功能极其有限(它需要将所有的规则都放进内核当中,这样规则才能够运行起来,而放进内核,这个做法一般是极其困难的)。当内核发展到2.x系列的时候,软件更名为ipchains,它可以定义多条规则,将他们串起来,共同发挥作用,而现在,它叫做iptables,可以将规则组成一个列表,实现绝对详细的访问控制功能。

二、他们都是工作在用户空间中,定义规则的工具,本身并不算是防火墙。它们定义的规则,可以让在内核空间当中的netfilter来读取,并且实现让防火墙工作。而放入内核的地方必须要是特定的位置,必须是tcp/ip的协议栈经过的地方。而这个tcp/ip协议栈必须经过的地方,可以实现读取规则的地方就叫做 netfilter.(网络过滤器)

三、内核空间的5个位置

  1. 内核空间中:从一个网络接口进来,到另一个网络接口去的
  2. 数据包从内核流入用户空间的
  3. 数据包从用户空间流出的
  4. 进入/离开本机的外网接口
  5. 进入/离开本机的内网接口

linux的防火墙iptables

netfilter(iptables)

  • netfilter --工作在内核软件,实现数据包的过滤。
  • iptables --工作应用层一个软件,用来控制netfilter。
    1.netfilter/iptables包过滤防火墙(tcp/ip四层)
    1)应用层 --通过软件为用户提供接口
    2)传输层 --提供可靠或不可靠的数据传输(TCP/UDP)使用端口来标示服务类型 sport dport
    3)网络层 --提供路由和选址(icmp) sip dip
    4)数据链路层 --传输数据帧(MAC) s _mac arp写 在局域网内泛洪 来找到我们对应的MAC
    5)物理层 --传输透明比特流 eth0 eth1
    过滤的依据: s_mac/sip/dip/sport/dport/状态(三次握手/四次断开)SYN DDOS攻击怎么防御我们DDOS 小流量
    netfilter的逻辑架构: nat 10
    image

netfilter防火墙的元素及关系:
netfilter==>表==>链==>规则

三张表:

filter 防火墙表,允许和拒绝都在这里实现
nat 地址转换
mangle 数据包整形

五条链:

INPUT 本机进站的数据流 (路由前)
OUTPUT 本机出站的数据流 (数据包流入口)
FORWARD 路由的数据流 (转发管卡)
POSTROUTING 路由后的数据流(数据包出口)
PREROUTING 路由前的数据流 (路由后)
注意:这是NetFilter规定的五个规则链,任何一个数据包,只要经过本机,必将经过这五个链中的其中一个链。

表跟链的对应关系:
  • filter: INPUT——OUTPUT——FORWARD
  • nat: OUTPUT——PREROUTING——POSTROUTING
  • mangle: INPUT——OUTPUT——FORWARD——PREROUTING——POSTROUTING
四种数据流:

本机进站的数据流:packet–>ethX–>PREROUTING–>INPUT–>本机
本机出站的数据流:packet–>OUTPUT–>POSTROUTING–>ethX–>destination
路由的数据流:
出去: packet–>eth0–>PREROUTING–>FORWARD–>POSTROUTING–>eth1–destination
回来: packet–>eth1–>PREROUTING–>FORWARD–>POSTROUTING–>eth0–destination
本机访问本机: 本机–>packet–>lo–>PREROUTING–>INPUT–>本机

  • 表的匹配顺序:mangle–>nat–>filter
  • 防火墙规则匹配顺序:
  1. 按顺序匹配,如果第一条匹配到了就直接执行这条规则的动作,不往下匹配其它规则。
  2. 如果第一条匹配不到,第二条也匹配不到,继续往下匹配直到找到匹配的规则,如果找不到匹配默认规则。

传输层:协议(tcp/udp)
端口(sport/dport)
网络层:IP地址(sip/dip/icmp) ping
数据链路层: mac地址(–mac-source)
物理层: 从哪个网卡进来 -i eth0 eth1 服务器2个地址 外网地址 一个内网地址

iptables操作命令

#iptables --help
Usage: iptables -[AD] chain rule-specification [options]
       iptables -[RI] chain rulenum rule-specification [options]
       iptables -D chain rulenum [options]
       iptables -[LFZ] [chain] [options]
       iptables -[NX] chain
       iptables -E old-chain-name new-chain-name
       iptables -P chain target [options]
       iptables -h (pri
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值