关于TCP的三次握手
在建立连接之前,客户端先发送一个带有syn标示的数据包给服务器,这个数据包就是连接请求包,服务器应答一个带有syn及ack的包给客户端,表示服务器已经做好了准备,接着客户端再发送一个ack表标记的数据包给服务器端,完成以上流程后,TCP正式连接
这就是传说中的3次握手
上边说了建立链接的时候,那么终止链接的时候呢?
当客户端完成数据传书之后,客户端会对服务器送出一个“链接终止”的信息,这个信号就是一个带有fin标记的数据包,当服务器收到这个数据包之后,就会告诉客户端我收到你的结束信号了,返回一个ack标记的数据包,然后又送出一个带又fin的数据包给客户端,客户收到这个这个fin的数据包后,会返回给服务器一个ack标记的数据包,这个时候,4个数据包完成结束的过程
iptables -A INPUT -p tcp –syn –dport 22 -m state –state NEW -j ACCEPT
如果客户端发送的第一个数据包就带有fin标记(这是不合理的,因为tcp链接还没有建立),我们要drop掉,反过来说,也就是第一个包必须是包含syn标记
iptables -A INPUT -p tcp –tcp-flags ALL SYN,FIN -j DROP
检查所有的TCP-FLAG,只有syn, fin 同时为1的时候会DROP掉
UDP的高级匹配
想对于TCP, UDP的请求就简单了
–sport: 匹配数据包的来源的端口
–dport: 匹配数据包的目的端口
iptables -A FORWARD -i eth0 -p udp –dport 53 -j ACCEPT
允许局域网中的主机通过防火墙使用互联网上的DNS解析服务
Latest posts by Zhiming Zhang (see all)
- aws eks node 自动化扩展工具 Karpenter - 8月 10, 2022
- ReplicationController and ReplicaSet in Kubernetes - 12月 20, 2021
- public key fingerprint - 5月 27, 2021