Linux防火墙的一些基础知识及配置实录
Linux的防火墙正确的来说并不算是防火墙,只是一种防火墙的功能体现。我们现在来讲解下Linux的这个防火墙功能的详细解释。
Linux的防火墙是由iptables与netfilter两个程序组成的,而iptables是一个单独的程序,netfilter是集成到内核中的一个程序,两个程序合作才能拥有完整的防火墙功能。
Iptables的功能是向netfiler提供规则,netfilter则是将规则执行起来。
Linux防火墙还分为主机防火墙与网络防火墙。
主机防火墙:工作在一个主机的边缘,数据报文刚刚进入网卡的时候,设定一个防火墙。
网络防火墙:工作在一个局域网边缘的防火墙。
防火墙定义:工作于主机或网络边缘,对于进出的报文根据定义的规则做检查,进而对被规则匹配到的报文作为相应处理的套件
防火墙的功能:
IDS:Intrusion Detect System,入侵检测系统
检测系统进程,如果有可疑行为就会报警
HIDS:Host IDS
NIDS:Network IDS
IPS:Intrusion Protect System,入侵防御系统
检测系统进程,如果有可疑行为就会进行相应操作,比如杀掉进程
HoneyPot:蜜罐,专门利用别人会扫描的端口,将其开放用来吸引黑客进入你准备的陷阱
bt:backtrack,专为安全应用的发行版
Nessus,nmap
防火墙拥有五个钩函数(hook function)
PREROUTING:路由前。
INPUT:到达本机内部的报文必经之路。
FORWARD:由本机转发的报文的必经之路。
OUTPUT:由本机发出的报文的必经之路。
POSTROUTING:路由后。
规则功能:优先级从左到右,从高到低
raw, mangle, net, filter
filter: 过滤,定义是否允许通过防火墙
net:地址转发,启用connection_track
SNAT
DNAT
PNAT
mangle:会修改报文首部,例如:将网络首部跳数增加
raw:目标是关闭net表上启用的连接追踪功能
四个功能四个表
五个钩子五个链
做过滤的位置:
路由前与路由后都不做过滤,都不适合,一个过早一个过晚。
表和链的对应关系:
filter: INPUT, FORWARD, OUTPUT
nat: PREROUTING(SNT,源地址转换), POSTROUTING(DNAT,目标地址转换),OUTPUT
mangle: PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING
raw:PREROUTING,OUTPUT
数据报文流程:
跟本机内部进程通信:
进入:PREROUTING,INPUT
出去:OUTPUT,POSTROUTING
由本机转发:
PREROUTING, FORWARD, POSTROUTING
数据报文的流向:
源IP和目标IP由流向决定
主机防火墙主要是用于到达主机的请求。
app head:应用层首部
tcp head: TCP首部
ip head: ip 首部
icmp:internet control messaging protocol
iptables: 用户空间的工具,写规则,并自动发往netfilter,立即生效;
netfilter:接受并生效规则