zoukankan      html  css  js  c++  java
  • linux系统被ddos攻击识别

    通过查看dmesg日志信息,当存在大量如下 的信息,服务器开始响应缓慢并丢失正常的计数数据。这是典型的SYN Flood攻击(或开放半连接攻击)。

    [91767.569140] TCP: drop open request from 192.168.50.35/65039
    [91767.569145] TCP: drop open request from 192.168.50.35/65040
    [91767.569461] TCP: drop open request from 192.168.50.35/65041
    [91767.569465] TCP: drop open request from 192.168.50.35/65042
    [91767.570107] TCP: drop open request from 192.168.50.35/65043
    [91767.589008] TCP: drop open request from 192.168.50.35/65053
    [91768.045813] TCP: drop open request from 192.168.50.35/65196
    TCP洪水攻击(SYN Flood)dmesg log
    [260916.826952] TCP: request_sock_TCP: Possible SYN flooding on port 80. Sending cookies.  Check SNMP counters.

    简单解决办法如下:

    1、缩短SYN Timeout时间,由于SYN Flood攻击的效果取决于服务器上保持的SYN半连接数,这个值等于SYN攻击的频度 x SYN
    Timeout,所以通过缩短从接收到SYN报文到确定这个报文无效并丢弃改连接的时间,例如设置为20秒以下(过低的SYN
    Timeout设置可能会影响客户的正常访问),可以成倍的降低服务器的负荷。

    2、设置SYN Cookie,就是给每一个请求连接的IP地址分配一个Cookie,如果短时间内连续受到某个IP的重复SYN报文,就认定是

    受到了攻击,以后从这个IP地址来的包会被丢弃。但有一些参数需要协调配置,才会取到作用,否则会导致另外的问题。

    建议统一使用下面这些参数:(部分参数根据实际网口修改,本例使用eth0)

    sysctl -w net.ipv4.conf.eth0.accept_source_route=0
    sysctl -w net.ipv4.conf.lo.accept_source_route=0
    sysctl -w net.ipv4.conf.default.accept_source_route=0
    sysctl -w net.ipv4.conf.all.accept_source_route=0
    sysctl -w net.ipv4.tcp_syncookies=1
    sysctl -w net.ipv4.conf.eth0.secure_redirects=1
    sysctl -w net.ipv4.conf.lo.secure_redirects=1
    sysctl -w net.ipv4.conf.default.secure_redirects=1
    sysctl -w net.ipv4.conf.all.secure_redirects=1
    sysctl -w net.ipv4.conf.eth0.accept_redirects=0
    sysctl -w net.ipv4.conf.lo.accept_redirects=0
    sysctl -w net.ipv4.conf.default.accept_redirects=0
    sysctl -w net.ipv4.conf.all.accept_redirects=0
    sysctl -w net.ipv4.conf.eth0.send_redirects=0
    sysctl -w net.ipv4.conf.lo.send_redirects=0
    sysctl -w net.ipv4.conf.default.send_redirects=0
    sysctl -w net.ipv4.conf.all.send_redirects=0
    sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
    sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1 
    sysctl -w net.ipv4.tcp_tw_reuse=1
    sysctl -w net.ipv4.tcp_tw_recycle=1
    sysctl -w net.ipv4.tcp_fin_timeout=20
    #sysctl -w net.ipv4.tcp_fin_timeout=30
    sysctl -w net.ipv4.tcp_keepalive_time=1800
    sysctl -w net.ipv4.tcp_syn_retries1=1
    sysctl -w net.ipv4.tcp_synack_retries=1
    sysctl -w net.core.wmem_max=8388608
    sysctl -w net.core.rmem_max=8388608
    sysctl -w net.ipv4.tcp_rmem="4096 873814 8738140"
    sysctl -w net.ipv4.tcp_wmem="4096 873814 8738140"
    sysctl -w net.ipv4.tcp_max_syn_backlog=4096
    ifconfig eth0 txqueuelen 1000


    但上述的方法只能对付比较原始的SYN Flood攻击,缩短SYN
    Timeout时间仅在对方攻击频度不高的情况下生效,SYN
    Cookie更依赖于对方使用真实的IP地址,如果攻击者以数万/秒的速度发送SYN报文,同时利用SOCK_RAW随机改写IP报文中的源地址,以上的方法可能用处不大。要防御大规模,高密度的SYN攻击,一个有效的办法使用F5/Alteon等负载均衡设备,采用超过3台服务器的集群来对抗,即:
    VIP(F5/Alteon等)--REAL
    IP1,REAL IP2,REAL IP3....
    一方面,负载均衡设备的高效连接管理可以应对一些SYN
    Flood攻击,同时多台服务器的包处理能力大大增强,结合每台服务器改善的SYN Flood处理能力,完全可以应对这种大规模、高密度的SYN Flood攻击。

  • 相关阅读:
    PHP+MySQL实现海量数据导入导出的总结:is_numbric函数的坑
    【PHP开发规范】继承与扩展:PSR-2 编码风格规范
    【PHP开发规范】老生常谈的编码开发规范你懂多少?
    【PHP面试题】通俗易懂的两个面试必问的排序算法讲解:冒泡排序和快速排序
    php数组函数array_column:不用循环就能提取多维数组内容
    php使用urlencode对中文编码而引出的问题:urlencode和rawurlencode的区别
    table-tree vs stock vs whiteboard
    PDF解析
    山灵up4
    Devops之CI/CD
  • 原文地址:https://www.cnblogs.com/dpf-10/p/7649458.html
Copyright © 2011-2022 走看看