本文共 1365 字,大约阅读时间需要 4 分钟。
马哥运维学习笔记。
iptables和netfilter,是一组工具,
前者用于定义过滤规则,后者才是真正过滤的,
对于TCP连接的状态,这次可以故事形式的讲下了,
这里假设A为链接发起者,B为。。。。非发起者,
故事肯定要从最开始讲起,
那就是A和B都是CLOSED,
B监听,所以变为LISTEN,
A要主动发起连接,所以就变为了SYN_SENT,(注意这里以及后面的SYN,)
B接收到了A的发起并回应后,当即转换为SYN_RECV,
A接收到了B的回应,A就变为ESTABLISTED,
B收到A的回应后,也变为ESTABLISTED,
A主动发送FIN信号,A等待B分手,此时A状态为TIME_WAIT1,
B呢,说,分手就分手,关闭就关闭,我也不怕你,于是回应ACK,此时B状态CLOSE_WAIT,
A收到B的ACK后,变为TIME_WAIT2,因为还要等B端也关闭,
说B,B就来了,B发送FIN信号,此时是B的最后一次关闭确认,状态变为LAST_ACK,
A端收到后,需要发送最后一个确认,同时让B有一个缓的时候,所以A暂时变为TIME_WAIT,
之后B就回到最初的CLOSED状态了,
防火墙工作在,主机or网络的边缘,
大多数成功的网络攻击,都是内贼,
默认规则,是开放还是关闭呢?
对于服务器,一般是拒绝未知报文,放行已知的报文,
网络的实现是在内核中的,
我们没法操作,
但是开放了TCP/IP的3个位置,内核出入,主机经过,
通过app命令,我们可以加载规则进去,
数据的方向有两个,一进一出,
其次,数据可能是路过本机,也可能是要进入本机内核中,
多个规则,自上而下,逐个检查,
为了高效,规则要少,
hook function,钩子函数,是5个,
input,
output,
forward,这3个是filter表,
preroutinng,
postouting,这2个是NAT表,
mangle表,
raw表,
iptalbes包含,4表5链,
这里记得把那张流程图,贴进来,
iptables命令的格式,以及用法,
iptables [-t TABLE] 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 iptables -t filter -A INPUT -s 172.16.0.0/16 -d 172.16.100.7 -j DROP添加,一条规则到,过滤表,的INPUT链中,对于源地址是xxxx,目标地址是xxx的数据报,丢弃,