linux防御攻击
来源:互联网 发布:为什么学java 编辑:程序博客网 时间:2024/06/06 00:24
一、服务器可能遭受的攻击
1、SYN/ACK Flood攻击(半连接攻击)
主要是通过向受害主机发送大量伪造源IP和源端口的SYN或ACK包,导致主机的未连接队列被长时间占用并且资源耗尽,而正常的SYN请求被丢弃。由于源都是伪造的故追踪起来比较困难。缺点是实施起来有一定难度,需要高带宽的僵尸主机支持。
2、tcp全连接攻击
通过许多僵尸主机不断地与受害服务器建立大量TCP连接,客户端仅仅“连接”到服务器,然后再也不发送任何数据,直到服务器超时后处理或者耗尽服务器的处理进程。
缺点是需要很多僵尸主机,并且由于僵尸主机的IP是暴露的,因此此种DDOS攻击方式容易被追踪。
3、CC攻击
攻击者控制某些主机不停地发大量正常数据包给对方服务器,造成服务器资源耗尽,一直到宕机崩溃。由于这种攻击方式是正常的请求,暴露了正常的源IP地址,禁止这些ip就可以了。
4、慢速攻击
1)http服务器中,攻击者与服务器建立连接,只提交部分数据,导致服务器持续等待,通过控制僵尸主机或通过多线程进程来不断增加这样的连接,就会使服务器的资源被耗尽,导致服务器宕机或不再接受新的请求。
2)tcp服务器中,攻击者与服务器建立连接并请求数据,采用调整tcp协议中的滑动窗口的大小,来对服务器单词发送的数据大小进行控制,当tcp的window size过小或为0时,迫使服务器等待并不断发送报文探测客户端窗口大小,因此,这样的连接不断增加会使服务器无法访问。
二、防御方法
1、设置内核联网功能
net.ipv4.tcp_max_syn_backlog=102400 //设置监听队列
net.ipv4.tcp_syncookies=1 //设置syn cookies
net.ipv4.tcp_synack_retries=3 //设置syn ack重传次数
net.ipv4.tcp_syn_retries=3 //设置syn 重传次数
net.ipv4.tcp_keepalive_time=1800 //设置无数据发送的存活时间
net.ipv4.tcp_keepalive_probes=5 //tcp发送keepalive探测该链接已经断开的次数
net.ipv4.tcp_keepalive_intvl=15 //设置探测消息发送的频率(秒为单位)
net.ipv4.tcp_retries1=3 //设置tcp连接请求放弃前重传次数
net.ipv4.tcp_retries2=5 //设置tcp连接丢弃前重传次数
net.ipv4.tcp_abort_on_overflow=1 //设置进程溢出时,中断连接
设置方法如:sysctl -w net.ipv4.tcp_syncookies=1
查看方法:sysctl -a | grep tcp
2、设置iptables初始防御功能
//允许外网每个IP最多50个tcp连接,超过的丢弃
iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 50 --connlimit-mask 32 -j DROP
//每个ip每秒只能连接10次,超过的拒接
iptables -A INPUT -p tcp -m state --state NEW -m recent --name SSHPOOL --set
iptables -A INPUT -p tcp -m state --state NEW -m recent --name SSHPOOL --rcheck --seconds 1 --hitcount 10 -j DROP
//抵御DDOS ,允许外网最多5000个初始连接,然后服务器每秒新增5000个(根据服务器性能设置,在不影响正常处理的情况下)
iptables -A INPUT -p tcp --syn -m limit --limit 5000/s --limit-burst 5000 -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP
//限制icmp连接
iptables -A INPUT -p icmp -m limit --limit 100/s --limit-burst 100 -j ACCEPT
iptables -A INPUT -p icmp -j DROP
3、主动查看,根据ip限制
1)检查每个ip到服务器的连接数,并排序
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
2)检查每个ip的ESTABLISHED或SYN_RECEIVED的连接数,并排序
netstat -ntu | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort –n
netstat -ntu | grep SYN_RECEIVED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort –n
3)检查对口80的每个ip的连接数,并排序
netstat -plan | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort –n
检查到的所有连接数量异常的ip地址,可以使用一下方式屏蔽
将对方ip加入iptables进行防御($IPADDR填入实际ip)
Iptables –I INPUT –s $IPADDR –j DROP
(删除该条规则可用–D替换-I : Iptables –D INPUT –s $IPADDR –j DROP)
- Linux 防御CC攻击
- linux防御攻击
- linux下防御ddos攻击
- Linux下防御arp攻击策略
- Linux下防御arp攻击策略
- Linux下防御arp攻击策略.
- Linux服务器SYN攻击防御方法概述
- linux下防御arp攻击完美策略
- linux核心dos_ddos攻击防御算法分析
- Linux下防御/减轻DDOS攻击
- Linux下防御arp攻击的方法
- Linux防御小规模的DDoS攻击
- CCKiller:Linux 轻量级 CC 攻击防御工具
- 防御针对Linux服务器的四级攻击
- DDoS deflate - Linux下防御/减轻DDOS攻击
- DDoS deflate - Linux下防御/减轻DDOS攻击
- DDoS deflate - Linux下防御/减轻DDOS攻击
- linux下面PHP木马攻击的安全防御
- Flink学习笔记 --- WaterMark机制 and low WaterMark 保序机制
- Android常用开源项目(二十三)
- js生成二维码并下载
- 把MySQL Group Replication发挥到极致
- 利用FormData上传文件不跳转页面
- linux防御攻击
- 教你用github pages搭建个人网站
- javaScript日期工具类DateUtils
- java-反射获得泛型参数
- 利用HTML5分片上传超大文件
- 谈谈工行支付里的坑
- 域名解析中A记录、CNAME、MX记录、NS记录的区别和联系
- 敌兵布阵 HDU
- Unity Assets目录下的特殊文件夹名称(作用和是否会被打包到build中)