查看服务器是否被DDOS攻击的方法_宝塔服务器流量异常,如何查看出口ip

查看服务器是否被DDOS攻击的方法_宝塔服务器流量异常,如何查看出口ip检测udp端口
检测端口是否打开:nc -zuv ip 端口服务器监听端口:nc -l -u ip 端口(可以发送和接受信息

检测UDP端口

检查端口是否开放:nc -zuv ip port

服务器监听端口:nc -l -u ip端口(可以发送和接收信息)

客户端检测端口:nc -u ip端口(可以发送和接收信息)

检查监听的TUP端口:ss -ant

检查您正在侦听的UDP 端口: ss -anu

显示所有协议端口:ss -ano

第四种类型:TCP洪水攻击

A.CPU占用率很高

B. 如果运行netstat na 并观察到单个IP 有大量ESTABLISHED 连接状态(多达数十甚至数百个),这是正常现象。

检查TCP端口连接数

显示网络连接总数

# netstat -an |wc -l

显示特定IP的连接数

# netstat -an |grep 8.8.8.8 |wc -l

显示等待time_wait 状态的连接的连接数

# netstat -an |grep TIME\\_WAIT|wc -l

查看已建立的稳定连接数

# netstat -an |grep 已建立|wc -l

显示各种状态下的连接数

# netstat -an | awk \’/^tcp/{++y[$NF]} END {for(w in y) print w, y[w]}\’

显示每个IP与服务器建立的连接数。

# netstat -nat|awk \'{print$5}\’|awk -F : \'{print$1}\’|sort|uniq -c|sort -rn

(PS:正常分析:显示第5列,-F与:分割,显示列,排序,uniq -c在排序过程中统计重复行,sort -rn做纯数字(按相反顺序排序)

显示每个IP建立的ESTABLISHED/TIME_OUT状态的连接数。

# netstat -nat|grep ESTABLISHED|awk \'{print$5}\’|awk -F : \'{print$1}\’|sort|uniq -c|sort -rn

以下是我自己的VPS测试结果。

root:~# netstat -ntu | cut -d: -c 排序|

1 114.226.9.xx

1 174.129.237.xx

1 58.60.118.xx

1 个地址

1台服务器)

2 118.26.131.xx

3 123.125.1.x

每个IP有几个、几十个、几十个连接都比较正常,但每个IP有几百、几千个连接,如上图,肯定是不正常的。

上述决策分析将使您能够准确地确定问题是什么以及如何尽快解决它。帮助我们更好地维护我们网站的安全。

TCP洪水攻击检测

# tail -f /var/log/messages

4 月18 日11:21:56 web5 kernel: 端口80 上可能存在SYN 泛洪。发送cookie。

请注意,连接数正在增加,尤其是SYN_RECV 连接。

请注意,连接数正在增加,尤其是SYN_RECV 连接。

# netstat -n awk \’/^tcp/{ S[$NF]} END {for(a in S) print a, S[a]}\’

时间等待16855

关闭_等待21

SYN_SENT 99

FIN_WAIT1 229

根据经验,通常检查的连接数为:

# netstat -n awk \’/^tcp/{ S[$NF]} END {for(a in S) print a, S[a]}\’

根据用netstat看到的对方IP特征,

# netstat -na grep SYN\\_RECV 详细信息

下面的配置中,第一个参数是最重要的,第二个参数是辅助的,其余参数还有其他功能。

# vi /etc/sysctl.conf

net.ipv4.tcp_synack_retries=0

#半连接队列长度

net.ipv4.tcp_max_syn_backlog=200000

#系统允许的最大文件句柄数,因为连接必须占用文件句柄

fs.文件最大=819200

#用于处理突发的大并发连接请求

net.core.somaxconn=65536

#最大TCP数据接收缓冲区(字节)

net.core.rmem_max=1024123000

#最大TCP数据传输缓冲区(字节)

net.core.wmem_max=16777216

#如果网络设备接收数据包的速度快于内核处理数据包的速度,则可以发送到队列的最大数据包数量。

net.core.netdev_max_backlog=165536

#本机主动连接其他机器时的端口分配范围

net.ipv4.ip_local_port_range=1000065535

启用设置。

#sysctl-p

如果连接的是外网,请不要打开以下参数。副作用很明显,所以要寻找具体原因。如果它已经打开,请将其显式更改为0,然后运行sysctl -p 将其关闭。因为经过测试,大量处于TIME_WAIT状态的连接并不会对系统产生明显的影响。

#如果半连接队列溢出,则发送synccookie给对方不需要增加半连接队列的大小。

net.ipv4.tcp_syncookies=0

#TIME\\_WAIT状态连接复用功能

net.ipv4.tcp_tw_reuse=0

将#Timestamp 选项与之前的net.ipv4.tcp_tw_reuse 参数相结合

net.ipv4.tcp_timestamps=0

#TIME\\_WAIT状态连接回收函数

net.ipv4.tcp_tw_recycle=0

防御TCP洪水攻击方法

调整TCP参数,防止DDOS攻击

sysctl -a grep syn 参见:SYN相关设置

net.ipv4.tcp_max_syn_backlog=1024

net.ipv4.tcp_syncookies=0

net.ipv4.tcp_synack_retries=5

net.ipv4.tcp_syn_retries=5

tcp_max_syn_backlog是SYN队列的长度,tcp_syncookies是开启SYN cookie功能的开关,可以防止一些SYN攻击。 tcp_synack_retries 和tcp_syn_retries 定义SYN 重试次数。增加SYN队列长度可以容纳更多等待连接的网络连接,而开启SYN cookie功能可以防止一些SYN攻击,减少重试次数,这也有一定的效果。

以下是调整上述设置的方法:

将SYN 队列长度增加到2048。

sysctl -w net.ipv4.tcp_max_syn_backlog=2048

打开SYN COOKIE 功能。

sysctl -w net.ipv4.tcp_syncookies=1

减少重试次数。

sysctl -w net.ipv4.tcp_synack_retries=3

sysctl -w net.ipv4.tcp_syn_retries=3

要在系统重新启动后保留上述配置,请将上述命令添加到/etc/rc.d/rc.local 文件中。

防止同步数据包泛洪(Sync Flood)

# iptables -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT

有些人在写

#iptables -A 输入-p tcp –syn -m limit –limit 1/s -j 接受

–limit 1/s 将并发同步限制为每秒一次。这可以根据需要进行更改。

防止各种端口扫描

# iptables -A FORWARD -p tcp –tcp-flags SYN,ACK,FIN,RST RST -m limit –limit 1/s -j ACCEPT

Ping 洪水攻击(Ping of Death)

# iptables -A FORWARD -p icmp –icmp-type echo-request -m limit –limit 1/s -j ACCEPT

扩展

问题1:解决time_wait连接数大量问题

如果您的查询显示太多time_wait 连接,请调整内核参数/etc/sysctl.conf。

# vim /etc/sysctl.conf

添加以下配置文件:

net.ipv4.tcp_syncookies=1

net.ipv4.tcp_tw_reuse=1

net.ipv4.tcp_tw_recycle=1

net.ipv4.tcp_fin_timeout=300

启用设置

# /sbin/sysctl -p

参数详细说明:

1.net.ipv4.tcp_syncookies=1表示开启syn cookies。如果syn等待队列溢出,启用cookies来处理它。这可以防止少量的syn \\*\\*\\* 发生。默认为0,表示关闭。

2.net.ipv4.tcp_tw_reuse=1 表示启用重用。允许为新的TCP 连接重用时间侦听套接字。默认为0,表示关闭。

3.net.ipv4.tcp_tw_recycle=1 表示启用TCP 连接上等待时间的套接字的快速回收。默认为0,表示关闭。

4.net.ipv4.tcp_fin_timeout 更改系统默认超时。

如果调整上述配置后仍对性能不满意,可以继续更改配置。

# vim /etc/sysctl.conf

net.ipv4.tcp_keepalive_time=1200 #表示启用keepalive时TCP发送keepalive消息的频率。默认是2小时,修改为20分钟。

net.ipv4.ip_local_port_range=1024 65000 #表示用于传出连接的端口范围。默认值很小:32768-61000,但已更改为1024-65000。

net.ipv4.tcp_max_syn_backlog=8192 表示#SYN队列长度。默认值为1024。您可以通过将队列长度增加到8192 来增加等待连接的网络连接数。

net.ipv4.tcp_max_tw_buckets=5000 #表示系统同时维护的TIME_WAIT套接字的最大数量。如果超过此数字,TIME_WAIT 套接字将立即清除并打印警告消息。

默认是180000,修改为5000。

对于Apache、Nginx等服务器来说,上一行的参数可以显着减少TIME_WAIT套接字的数量,但对于Squid来说,效果并不显着。该参数允许您控制TIME_WAIT套接字的最大数量,以防止您的Squid服务器被大量TIME_WAIT套接字拖累。

问题2:ESTABLISHED连接数过大问题

如何解决存在大量ESTABLISHED请求完成后仍未释放的问题。

我初步猜测是Tomcat服务器回收session时出现问题。这通常与服务器超时设置有关。

查看Tomcat配置文件server.xml。

复制

连接器端口=\’8080\’ 协议=\’HTTP/1.1\’

连接超时=\’20000\’

重定向端口=\’8443\’ URIEncoding=\’UTF-8\’ /

\\*\\*\\*\\*\\*

如果检查配置,您将看到acceptCount=“100”设置为20,000毫秒。这显然是不合理的,最大连接数太低了。

那么我们来进一步优化一下:

复制

connectionTimeout=\’20000\’更改为connectionTimeout=\’100\’

AcceptCount=\’100\’更改为acceptCount=\’5000\’。

DDoS攻击防御方法

**1.过滤不需要的服务和端口:**您可以使用Inexpress、Express、Forwarding等工具来过滤不需要的服务和端口。这意味着您可以过滤掉路由器上的虚假IP。例如,Cisco 的CEF(Cisco Express Forwarding)可以通过将数据包的源IP 与路由表进行比较来过滤数据包。例如,许多WWW 服务器的常见做法是仅打开端口80 并关闭所有其他端口或在其防火墙上实施阻止策略。

**2.异常流量清洗过滤:**通过DDOS硬件防火墙清洗过滤异常流量,通过数据包规则过滤、数据流指纹检测与过滤、数据包内容的定制过滤等顶尖技术对异常流量进行清洗过滤。检查流量是否正常,进一步防止异常流量被过滤。单次负载每秒可防御8-927万个syn攻击包。

**3.分布式集群防御:**这是目前网络安全行业防御大规模DDOS攻击最有效的方法。分布式集群防御的特点是每个节点服务器配置多个IP地址(负载均衡),每个节点可以承受10G以上的DDOS攻击,如果某个节点受到攻击而无法提供服务,系统就会执行攻击优先。级别设置自动切换到另一个节点,将攻击者的所有数据包返回到传输点,瘫痪攻击源,从更深层次的安全角度影响企业的安全执行决策。

**4.高防御智能DNS解析:**高智能DNS解析系统与DDOS防护系统的完美结合,为企业提供超强的检测能力,应对新兴的安全威胁。它颠覆了传统的一图一域名约定,根据用户的Internet路由,智能解析用户网络中服务器的DNS解析请求。同时,智能DNS解析系统还具有停机检测功能,可以随时智能地将瘫痪的服务器IP替换为正常的服务器IP,而不影响企业网络的服务状态。

参考链接:

https://www.cnblogs.com/mydomain/archive/2013/05/14/3079002.html

https://www.cnblogs.com/hello-sky/p/11598954.html

网上的学习资料很多,但如果你学的知识不系统,只学表面知识,出现问题时没有深入调查,就很难真正提高自己的技能。

一个人可以走得快,但一群人可以走得更远。无论您是从事IT行业的老手,还是对IT行业感兴趣的新人,都请加入我们的圈子(技术交流、学习资源、职场抱怨、大公司介绍、面试指导)。让我们一起成长吧!

参考链接:

https://www.cnblogs.com/mydomain/archive/2013/05/14/3079002.html

https://www.cnblogs.com/hello-sky/p/11598954.html

[正在传输外部链接图像.(img-rnzAXeT5-1719270157384)]

[外部链接图像正在传输.(img-NcbmMCO9-1719270157385)]

网上的学习资料很多,但如果你学的知识不系统,只学表面知识,出现问题时没有深入调查,就很难真正提高自己的技能。

一个人可以走得快,但一群人可以走得更远。无论您是从事IT行业的老手,还是对IT行业感兴趣的新人,都请加入我们的圈子(技术交流、学习资源、职场抱怨、大公司介绍、面试指导)。让我们一起成长吧!

#如何检查自己的服务器是否受到DDOS攻击_以上检查宝塔服务器流量异常、出口IP相关内容源网络的方法仅供参考。相关信息请参见官方公告。

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92164.html

Like (0)
CSDN的头像CSDN
Previous 2024年6月25日
Next 2024年6月25日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注