首页
同乐工具集
文章打赏记录
关于
更多
友情链接
Search
1
【教程】百度网盘高速下载方法 可用 最新测试
19,660 阅读
2
免流混淆收集 免流大全
12,277 阅读
3
v2ray V2免流混淆 SSR 酸酸乳免流混淆
12,131 阅读
4
网页中显示CloudFlare(CF)节点信息
11,208 阅读
5
【停更公告】
10,878 阅读
小白
网站源码
软件收集
技术教程
WAW
资源分享
登录
Search
标签搜索
活动
教程
收集
源码
宝塔
bt
资源
Linux
php
WAW
广告
脚本
免费
公告
闲谈
分享
技术
免流
mysql
破解
网小白
累计撰写
214
篇文章
累计收到
59
条评论
首页
栏目
小白
网站源码
软件收集
技术教程
WAW
资源分享
页面
同乐工具集
文章打赏记录
关于
友情链接
搜索到
1
篇与
iptables
的结果
2019-05-13
linux使用iptables 防御 SYN洪水攻击策略!
SYN Flood (SYN洪水) 是种典型的DoS (Denial of Service,拒绝服务) 攻击,属于DDos攻击的一种。遭受攻击后服务器TCP连接资源耗尽,最后停止响应正常的TCP连接请求。尽管这种攻击已经出现了十多年,但它的变种至今仍能看到。虽然能有效对抗SYN洪泛的技术已经存在,但是没有对于TCP实现的一个标准的补救方法出现。今天小编将详述这种攻击原理以及对抗SYN洪水的方法~ ![24b5349fb341d4a2085a4d9423cad44d.jpg][1] 攻击原理 正常的三次握手: 先发起一个 SYN=1 的包,并且带一个序列号( Seq ); 服务器收到这个包以后,将这个数据放入到一个队列中,这个队列叫 syn_table 。并且发送一个返回包,作为响应,这个返回包有自己的序列号( Seq ),以及一个 Ack , Ack 的值就是客户端发来的 Seq 值加一; 客户端收到返回信息以后,将服务器的 Seq 加一作为 Ack 又发给服务器; 服务器收到这第三个包,验证没问题以后,就将这个连接放入到 request_sock_queue,三次握手完成。 SYN Flood 主要是利用了TCP协议的三次握手的缺陷,在这个攻击中,Flood带有一系列的syn数据包,每个数据包都会导致服务端发送SYN-ACK响应,然后服务器等待SYN+ACK之后的第三次握手ACK,由于客户端是软件生成的虚拟IP,永远不会再发送ACK响应服务端,服务端会利用从传机制直到超时后删除,整个系统资源也会被队列积压消耗,导致服务器无法对正常的请求进行服务。 如何判断自己是否遭受 SYN 攻击? 检测SYN攻击非常的简单,当你在服务器上看到大量的半连接状态时,特别是源IP地址是随机的,基本上可以断定这是一次SYN攻击。我们使用系统自带的netstat 工具来检测SYN攻击: ``` # netstat -n -p TCP ``` 反馈如图 ![df4bcb329152c1936683ecebb27a9319.jpg][2] 防御 SYN Flood攻击 配置iptables规则 Iptables防火墙我们可以理解为Linux系统下的访问控制功能,我们可以利用Iptables来配置一些规则来防御这种攻击。强制SYN数据包检查,保证传入的tcp链接是SYN数据包,如果不是就丢弃。 ``` #iptables -A INPUT -p tcp --syn -m state --state NEW -j DROP ``` 强制检查碎片包,把带有传入片段的数据包丢弃。 ``` #iptables -A INPUT -f -j DROP ``` 丢弃格式错误的XMAS数据包。 ``` #iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP ``` 丢弃格式错误的NULL数据包。 ``` #iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP ``` 当Iptables配置完成后我们可以使用nmap命令对其验证 ``` # nmap -v -f FIREWALL IP # nmap -v -sX FIREWALL IP # nmap -v -sN FIREWALL IP ``` 例如: ![24e680389ee7aea976685b43a01514a2.jpg][3] 其他防御方式: 除此之外针对SYN攻击的几个环节,我们还可以使用以下处理方法: 方式1:减少SYN-ACK数据包的重发次数(默认是5次) ``` sysctl -w net.ipv4.tcp_synack_retries=3 sysctl -w net.ipv4.tcp_syn_retries=3 ``` 方式2:使用SYN Cookie技术 ``` sysctl -w net.ipv4.tcp_syncookies=1 ``` 方式3:增加backlog队列(默认是1024): ``` sysctl -w net.ipv4.tcp_max_syn_backlog=2048 ``` 方式4:限制SYN并发数: ``` iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT --limit 1/s ``` [1]: https://amwxb.cn/usr/uploads/2019/05/1108055860.jpg [2]: https://amwxb.cn/usr/uploads/2019/05/517402761.jpg [3]: https://amwxb.cn/usr/uploads/2019/05/1385931249.jpg
2019年05月13日
916 阅读
0 评论
0 点赞