一、 Linux 网络安全模型
1. 防火墙: 工作在主机或者网络边缘,对进出报文使用实现定义的规则进行检测,并且由匹配的规则进行处理的一组硬件或者软件。也可能两者结合。
1) 通常使用的防火墙设备
硬件防火墙:专门的一台防火墙硬件设备,工作在整个网络入口处。
软件防火墙:工作在主机中TCP/IP协议站上面的软件(工作在内核中)。
2) 防火墙工作位置
网络层:工作在网络层,类似路由器,主要拆除物理层和链路层协议,检测IP/TCP/UDP/ICMP网络层协和传输层协议首部,来进行规则定制
应用层:工作在应用层,拆除网络层和传输层首部,查看应用层内容。
2. IDS(Intrusion-detection system) 入侵检测系统
HIDS(主机入侵检测系统):OSSEC
NISC(网络入侵检测系统):snort(可以作为网络嗅探器)
Filesystem: 文件系统级别检测入侵检测
3. IPS(入侵防御系统): IDS + Firewall两者联动
4. honeypot:蜜罐系统,用于诱捕黑客,获取证据。
5. 系统安全漏洞漏洞扫描工具,进行系统安全评估:Nessus, nmap 等
6. rootkit:直接在系统层植入后门,将无法防护,只能重新安装系统 。
二、 iptables工作机制
1. iptables/netfilter:网络层防火墙,可以链接追踪状态(状态检测), 是一个规则编写工具。规则通过内核中netfilter框架产生作用。
2. 设置iptables防护的五个位置(hook_function 位置)以及允许规则(五链四表):
1) PREROUTING: 主机外报文进入位置,允许的表mangle, nat(目标地址转换,把本机地址转换为真正的目标机地址,通常指响应报文)
2) INPUT:报文进入本机用户空间位置,允许的表filter, mangle
3) OUTPUT:报文从本机用户空间出去的位置,允许filter, mangle, nat
4) FOWARD:报文经过路由并且发觉不是本机决定转发但还不知道从哪个网卡出去,允许filter, mangle
5) POSTROUTING:报文经过路由被转发出去,允许mangle,nat(源地址转换,把原始地址转换为转发主机出口网卡地址)
四表: filter, nat , mangle, raw
五链:PREROUNTING, INPUT, FORWARD, OUTPUT, POSTROUTING
3. 表与链的对应关系
1) filter: INPUT, FORWARD, OUTPUT
2) nat: PREROUTING, OUTPUT, POSTROUTING
3) mangle: PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING
4) raw:
4. 规则:匹配到后的处理机制
1) 通: 默认为堵, 只对规则匹配到的进行开放
2) 堵: 默认为同, 只对规则匹配到的堵
5. 网络层和传输层协议检查内容
1) IP:
SIP: 源IP
DIP: 目标IP
2) TCP:
SPORT: 源端口
DPORT:目标端口
Flags:标识位
3) ICMP: ICMP-TYPE (ping 命令)
6. 关于TCP协议标识位以及有限状态机图解
TCP协议通信时,伴随着标识位的相互传输,以及在各个状态之间的转换。这些标识位将成为规则检测的内容。
7. 扩展检测机制:
1)time(根据时间),
2)应用层协议(如qq)
3)string 敏感字符
4)state(connection-tracking) 连接追踪
8. 匹配到的报文处理机制:
1) DROP: 默默的丢弃
2) REJECT:拒绝,不建议使用,容易拉仇恨
3) ACCEPT:接受
4) SNAT: 源地址转换
5) DNAT:目标地址转换
6) REDIRECT: 端口映射
7) LOG:日志
8) RETURN: 返回