Linux:网络防火墙
netfilter:Frame
iptables: 数据报文过滤,NAT,mangle等规则生成的工具
网络:IP报文首部,TCP报文首部
防火墙:硬件,软件:规则(匹配标准,处理办法)
Framework:
默认规则:
开放: 堵
关闭: 通
规则:匹配标准
IP:源IP,目标IP
TCP:源端口,目标端口
tcp三次握手: SYN=1,FIN=0,RST=0,ACK=0;
SYN=1,ACK=1,FIN=0,RST=0;
ACK=1,SYN=0.RST=0,FIN=0(ESTABLISHED);
UDP:源端口,目标端口
ICMP:icmp-type
数据报文过滤:
Linux2.0
ipfw/firwall
Linux2.2
ipc
Linux2.4
iptables/netfilter
hook function:钩子函数
prerouting
input
output
forward
postrouting
规则链:
filter(过滤):表
INPUT
OUTPUT
FORWARD
nat(地址转换):表
PREROUTING
OUTPUT
POSTROUTING
mangle(修改报文首部,拆开,修改,封装):表
prerouting
input
output
forward
postrouting
raw():
PREROUTING
OUTPUT
iptables:
自定义链:只能在被调用时才能发挥作用,而且如果没有被自定义链中任何一条规则匹配到,还应该有返回机制
用户可以删除自定义的空链
默认链不能被删除
每个规则都有内置的计数器
被匹配到的报文个数
被匹配到的报文大小之和
规则:匹配标准,处理动作
iptables [-t TABLES] COMMAND CHAIN [num] 匹配标准 -j 处理办法
匹配标准:
通用匹配:
-s ,--src 指定原地址
-d , --dst 指定目标地址
-p , {tcp|udp|icmp}:指定协议
-i , INTERFACE: 指定数据报文流入的接口
可用于定义的链:PREROUTING,INPUT,FORWARD
-o , INTERFACE: 指定数据报文的流出接口
可用于标准定义的链OUTPUT,POSTROUTING,FORWARD
扩展匹配:
隐含扩展:不用特别指明由哪个模块进行的扩展,因为此时使用-p {tcp|udp|icmp}
显示扩展:必须指明由哪个模块进行的扩展,在iptables中使用-m选项可完成此功能
-j TARGET
ACCEPT
DROP
REJECT