이 글은 주로 Linux 시스템이 TCP 플러드에 덜 취약한 방법에 대한 자세한 설명을 소개합니다. 공격.편집자 꽤 좋은 것 같아서 지금 공유하고 참고용으로 드리고 싶습니다. 편집기를 따라 살펴보겠습니다.
#最关键参数,默认为5,修改为0 表示不要重发 net.ipv4.tcp_synack_retries = 0 #半连接队列长度 net.ipv4.tcp_max_syn_backlog = 200000 #系统允许的文件句柄的最大数目,因为连接需要占用文件句柄 fs.file-max = 819200 #用来应对突发的大并发connect 请求 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 = 10000 65535 # ……省略其它……
참고, 외부 네트워크에 직면할 때 다음 매개변수를 열지 마십시오. 부작용이 분명하므로 구체적인 이유를 Google에 문의하십시오. 이미 켜져 있는 경우 명시적으로 0으로 변경한 다음 sysctl -p를 실행하여 닫습니다. 왜냐하면 실험 후에 많은 수의 TIME_WAIT상태 연결은 시스템에 큰 영향을 미치지 않습니다:
#当出现 半连接 队列溢出时向对方发送syncookies,调大 半连接 队列后没必要 net.ipv4.tcp_syncookies = 0 #TIME_WAIT状态的连接重用功能 net.ipv4.tcp_tw_reuse = 0 #时间戳选项,与前面net.ipv4.tcp_tw_reuse参数配合 net.ipv4.tcp_timestamps = 0 #TIME_WAIT状态的连接回收功能 net.ipv4.tcp_tw_recycle = 0 #当出现 半连接 队列溢出时向对方发送syncookies,调大 半连接 队列后没必要 net.ipv4.tcp_syncookies = 0 #TIME_WAIT状态的连接重用功能 net.ipv4.tcp_tw_reuse = 0 #时间戳选项,与前面net.ipv4.tcp_tw_reuse参数配合 net.ipv4.tcp_timestamps = 0 #TIME_WAIT状态的连接回收功能 net.ipv4.tcp_tw_recycle = 0
많은 수의 연결을 처리하기 위해 또 다른 매개변수를 변경해야 합니다:
p># vi /etc/security/limits.conf
각 사용자가 최대 409,600개의 파일 핸들(연결 포함)을 열 수 있도록 아래 줄을 추가하세요.
* – nofile 409600
위 내용은 Linux 시스템이 TCP 플러드 공격을 방지하는 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!