房产销售网站开发文档,长沙人才招聘网最新招聘2024,iis6.0建立网站,wordpress 实现 功能在信息安全领域#xff0c;拒绝服务攻击#xff08;DoS#xff09;与分布式拒绝服务攻击#xff08;DDoS#xff09;已成为企业面临的重要挑战之一。这些类型的攻击不仅能够导致服务中断#xff0c;还可能对公司的声誉及财务状况产生不利影响。本文旨在通过一个案例来深入… 在信息安全领域拒绝服务攻击DoS与分布式拒绝服务攻击DDoS已成为企业面临的重要挑战之一。这些类型的攻击不仅能够导致服务中断还可能对公司的声誉及财务状况产生不利影响。本文旨在通过一个案例来深入探讨一次拒绝服务攻击背后的原因、它所带来的具体影响以及由此触发的一系列网络优化措施。希望通过这种方式我们可以更好地理解如何预防和应对这类安全威胁。 复现环境搭建
在欧拉操作系统环境下我们将采用Docker容器化技术对Nginx服务进行部署以此来模拟实际生产环境中的业务系统运行状态。
docker run -itd --namenginx --networkhost nginx:1.27.1随后利用一台Kali Linux主机发起模拟请求。
hping3 -S -P -i u10 192.168.31.105-S参数表示设置TCP协议的SYN -p: 表示目的端口 -i表示每隔10ms发送一个网络帧 案例现象
在Kali Linux主机发起模拟请求之后目标业务服务器IP地址192.168.31.105的命令执行效率以及系统资源访问速度显著下降。 使用sar查看CPU占用
sar -n -DEV 1采用sar命令以1秒为时间间隔对每秒收发的报文数(PPS)及每秒传输的字节数(BPS)进行监控。如下图所示 使用tcpdump抓包
我们将采用tcpdump工具进行深入调查。在受影响服务器的终端上执行如下tcpdump -i ens18 port 89命令后通过观察到的Flags[S]标志可以确认这些都是SYN同步序列编号请求包。大量此类SYN包的存在强烈指示了一次正在进行中的SYN Flood攻击。 使用netstat命令检查连接状态。
通过执行如下命令发现大量的SYN_RECV状态的连接如下图所示
netstat -n -p | grep SYN_REC什么是SYN Flood
SYN Flood 是一种常见的拒绝服务DoS攻击利用 TCP 连接建立的过程中的弱点进行攻击。TCP 协议在建立连接时使用三次握手Three-Way Handshake过程其中涉及到 SYN同步和 ACK确认标志位。
三次握手
客户端向服务器发送一个SYN包请求建立连接。服务器响应一个SYNACK包表示同意建立连接。客户端再发送一个ACK包完成连接建立。 SYNFlood
攻击者向目标服务器发送大量的 SYN 请求包但不完成后续的ACK步骤。服务器在收到每个SYN请求后都会分配资源并保留一个半打开的连接等待客户端的ACK。当攻击者发送大量的SYN请求时服务器的连接表会迅速填满导致合法用户的连接请求被拒绝。
解决方案
优化内核参数
为了提高系统抵御SYN Flood攻击的能力可以通过调整TCP内核参数来优化网络设置。以下是一些关键参数和优化建议
net.ipv4.tcp_syncookies 启用SYN Cookies。启用后服务器在遭遇SYN Flood时可以通过生成SYN Cookie来保护连接表。
echo 1 /proc/sys/net/ipv4/tcp_syncookiesnet.ipv4.tcp_max_syn_backlog 增加半连接队列的大小以容纳更多的半打开连接。默认的半连接容量只有256
echo 81920 /proc/sys/net/ipv4/tcp_max_syn_backlognet.core.somaxconn 增加TCP监听队列的大小以提高连接接受能力。默认值是4096
echo 5120 /proc/sys/net/core/somaxconnnet.ipv4.tcp_fin_timeout 减少TCP连接在FIN_WAIT状态下的超时时间释放资源。默认是60S
echo 15 /proc/sys/net/ipv4/tcp_fin_timeoutnet.ipv4.tcp_tw_reuse 允许重用TIME_WAIT状态的连接以提高连接复用率。默认值是2
echo 1 /proc/sys/net/ipv4/tcp_tw_reusenet.ipv4.tcp_synack_retries
对于远端的连接请求SYN内核会发送SYNACK数据包以确认收到上一个SYN连接请求包。这是所谓的三次握手机制的第二个步骤。这里决定内核再放弃之前所发送出的SYNACK数目。不应该大于255默认值是5对应于180秒左右时间。
echo 1 /proc/sys/net/ipv4/tcp_synack_retries要使这些更改在重启后生效可以将参数添加到 /etc/sysctl.conf 文件中
net.ipv4.tcp_syncookies 1
net.ipv4.tcp_max_syn_backlog 81920
net.core.somaxconn 5120
net.ipv4.tcp_fin_timeout 15
net.ipv4.tcp_tw_reuse 1
net.ipv4.tcp_synack_retries 1然后运行以下命令以应用更改
sudo sysctl -p防火墙配置
结合内核参数优化可以使用防火墙如 iptables 或 nftables来限制SYN请求的数量。例如可以限制每个IP地址的连接速率
iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 5 -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP结论
SYNFlood攻击是利用 TCP连接建立过程中的缺陷进行的一种常见攻击方式 。通过调整TCP内核参数和结合防火墙策略可以有效提高系统抵御SYN Flood攻击的能力确保网络服务的稳定性和可用性。
推荐阅读 忘记密码一招教你轻松重设欧拉系统密码 从监控到优化掌握磁盘I/O性能工具的使用 超越top探索htop在Linux系统监控中的超强功能 网络架构大解析这五种拓扑结构将改变你对网络的认知 掌握Linux性能监控神器atop实用指南 告别繁琐操作掌握一线工作中的Shell脚本绝招 重磅消息utools工具插件现在完全免费快来享受 不可错过字节跳动打造的最新生产力工具来了 提升效率必备学习awk命令轻松搞定数据 高效传输秘籍揭秘Rsync和SCP的优劣助你做出明智选择 当你拥有一台云服务器你最想做的事情是啥 IP地址乱成一团用Shell一键搞定 Nginx日志分析编写Shell脚本进行全面日志统计 如何用find命令按文件大小快速查找并美化输出显示 不再担心数据丢失用rsync打造你的自动化备份解决方案 从繁琐到简单Python实现快速批量文件重命名攻略