|
各位大虾:最近老师要我做一个防御syn flood的firewall。好多问题不懂。问几个弱弱的问题,我现在第一步要实现一个基于syn cookie的6次握手的firewall(用于防御syn flood)。即这个firewall充当一个proxy的功能。对于从client来的一个syn包,我们截获它,然后修改source address,以server的名义给client发syn+ack。syn+ack包的sequences我们通过加密产生的一个cookie。然后通过检验ack包,看其中的sequences是不是我们加密的cookie。如果是,那么我们再模拟client和server建立三次握手,这样client和server都认为握手成功就开始穿越firewall传输数据包了。
我的问题是:
1.其中几次握手中间的源和目的地址改变是不是可以直接用netfilter—iptable中的nat表来做?
2.截获syn包以后,如何产生有cookie的syn+ack包?我的想法是修改syn包的目的地址为firewall的ip地址,这样firewall就会给client回应一个带有cookie的syn+ack包,请问我的想法可行吗?
3.还有一个前三次握手的sequences和后三次握手的sequences不同的问题,所以握手完成之后传输数据包的时候每次经过防火墙的时候要修改一下sequences的值,请问如何修改?netfilter提供了这种扩展功能吗?
小弟刚刚接触网络和linux,对包的流程和linux还很不清楚,请大虾们不吝赐!如果我的想法不对后者有更好的想法请一定告诉我! |
|