框架01--防火墙基础知识
防火墙
一、防火墙理论知识
防火墙就是防止别人恶意访问得。
1.分类
1 #从逻辑上讲。防火墙可以大体分为主机防火墙和网络防火墙。 2 3 主机防火墙:针对于单个主机进行防护。 4 5 网络防火墙:往往处于网络入口或边缘,针对于网络入口进行防护,服务于防火墙背后的本地局域网。 6 7 备注:网络防火墙和主机防火墙并不冲突,可以理解为,网络防火墙主外(集体), 主机防火墙主内(个人)。 8 9 10 11 从物理上讲,防火墙可以分为硬件防火墙和软件防火墙。 12 13 硬件防火墙:在硬件级别实现部分防火墙功能,另一部分功能基于软件实现,性能高,成本高。 14 15 软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙,性能低,成本低。
2.iptables
基本介绍
用户 ---> 调用iptables ---> ip_tables内核模块 ---> Netfilter(系统安全框架) ---> 过滤请求
3.iptables底层原理
iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理.用户通过iptables这个代理,
将用户的安全设定执行到对应的”安全框架”中,这个”安全框架”才是真正的防火墙,这个框架的名字叫netfilter
netfilter才是防火墙真正的安全框架(framework),netfilter位于内核空间
iptables其实是一个命令行工具,位于用户空间,我们用这个工具操作真正的框架。组成Linux平台下的包过滤防火墙
它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。
4.iptables规则
1 匹配条件:匹配条件分为基本匹配条件与扩展匹配条件 2 基本匹配条件:源地址Source IP,目标地址 Destination IP 3 扩展匹配条件:还有很多其他的条件可以用于匹配,这些条件泛称为扩展条件,这些扩展条件其实也是netfilter中的一部分,
只是以模块的形式存在,如果想要使用这些条件,则需要依赖对应的扩展模块。源端口Source Port, 目标端口Destination Port
5.iptables四表
filter表:负责过滤功能,防火墙;内核模块:iptables_filter
nat表:network address translation,网络地址转换功能;内核模块:iptable_nat
mangle表:拆解报文,做出修改,并重新封装 的功能;iptable_mangle
raw表:负责数据包跟踪,关闭nat表上启用的连接追踪机制;iptable_raw
6.iptables五链、
表链关系:
PREROUTING 的规则可以存在于:raw表,mangle表,nat表。
INPUT 的规则可以存在于:mangle表,filter表,(centos7中还有nat表,centos6中没有)。
FORWARD 的规则可以存在于:mangle表,filter表。
OUTPUT 的规则可以存在于:raw表mangle表,nat表,filter表。
POSTROUTING 的规则可以存在于:mangle表,nat表。
7.iptables流程图解析、
流入本机: A ---> PREROUTING ---> INPUT ---> B 流出本机:OUTPUT ---> POSTROUTING ---> B 经过本机: A ---> OUTPUT ---> POSTROUTING | ---> PREROUTING ---> FORWARD ---> POSTROUTING ---> C ---> PREROUTING ---> INPUT ---> B filter : INPUT 、OUTPUT 、FORWARD nat : PREROUTING 、 OUTPUT、 POSTROUTING raw : PREROUTING、 OUTPUT mangle : PREROUTING INPUT FORWARD OUTPUT POSTROUTING
须知:
# 优先级 iptables为我们定义了4张”表”,当他们处于同一条”链”时,优先级次序(由高而低):raw –> mangle –> nat –> filter # 拓展 为了更方便的管理,我们还可以在某个表里面创建自定义链,将针对某个应用程序所设置的规则放置在这个自定义链中, 但是自定义链接不能直接使用,只能被某个默认的链当做动作去调用才能起作用 自定义链就是一段比较”短”的链子,这条”短”链子上的规则都是针对某个应用程序制定的,但是这条短的链子并不能直接使用, 需要”焊接”在iptables默认定义链子上,才能被IPtables使用,这就是为什么默认定义的”链”需要把”自定义链”当做”动作”去引用
*酒店服务流程(帮助理解)