linux -- iptables
linux -- iptables
几篇写的非常好的文章:
# http://blog.chinaunix.net/uid-26495963-id-3279216.html#
# http://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646466.html
# https://wenku.baidu.com/view/8d9da6521711cc7931b716b3.html
一、firewall认知:
1. 网络层防火墙:3,4层(源地址+目标地址) {低安全,高效率 >>balance between the two}
2. 代理层防火墙:7层(all checking) {高安全,低效率 >>balance between the two}
二、iptables && netfilter:
1. iptables就是将规则组成一个列表,实现绝对详细的访问控制功能。
其实iptables只是Linux防火墙的管理工具而已,位于/sbin/iptables,
真正实现防火墙功能的是netfilter,它是Linux内核中实现包过滤的内部结构。
三、table && chain && rule:
1. table(chain 的集合) >> chain(rule的集合) >> rule(最基本的设置项)
2. table (strategy) :
>filter(包过滤): input && forward && output (kernel module:iptables_filter)
>nat(网络地址转换): prerouting && output && postrouting (kernel module:iptables_nat)
>mangle(包重构): prerouting && input && forward && output && postrouting (kernel module:iptables_mangle)
>raw(数据跟踪处理): output && prerouting (kernel module:iptables_raw)
3. chain (hook function):
>prerouting 数据包路由选择前应用此规则
>input 进来的数据包 应用此规则
>forward 转发数据包时应用此规则
>output 外出的数据包 应用此规则
>postrouting 数据包路由选择后应用此规则
# 任何一个数据包经过本机,必将经过这五个链中的一个。
# 规则链优先顺序: raw -- mangle -- nat -- filter
iptables [-t table(filter\nat\mangle\raw)] [command] [chain] [parameter] [target] [parameter] [!] [specified]
、配置文件: