임의 IP/포트 UDP DDoS에서 높은 CPU 사용량

임의 IP/포트 UDP DDoS에서 높은 CPU 사용량

UDP무작위 IP와 포트로 인해 이러한 홍수가 발생했습니다 .

randomip:randomport -> myip:randomport

0바이트 페이로드

어떤 이유로 CPU를 많이 사용하고 있습니다. 의 결과는 다음과 같습니다 perf top -e cycles:k.

커널을 최적화할 수 있는 방법이 있습니까?

10.42%  [kernel]        [k] inet_getpeer
 7.59%  [kernel]        [k] inet_getpeer.part.4
 6.15%  [kernel]        [k] peer_avl_rebalance.isra.2
 3.38%  [kernel]        [k] fib_table_lookup
 2.77%  [ip_tables]     [k] ipt_do_table
 1.98%  [e1000e]        [k] e1000_clean_rx_irq
 1.82%  [kernel]        [k] md5_transform
 1.69%  [kernel]        [k] __ip_route_output_key
 1.36%  [kernel]        [k] check_leaf.isra.7
 1.34%  [kernel]        [k] __udp4_lib_lookup
 1.31%  [kernel]        [k] kmem_cache_free
 1.09%  [kernel]        [k] __netif_receive_skb_core
 1.01%  [kernel]        [k] __slab_free
 1.00%  [kernel]        [k] __ip_append_data.isra.38
 0.99%  [kernel]        [k] memcpy
 0.98%  [kernel]        [k] kmem_cache_alloc
 0.91%  [kernel]        [k] icmp_send
 0.89%  [xt_multiport]  [k] multiport_mt
 0.83%  [kernel]        [k] update_blocked_averages
 0.79%  [kernel]        [k] kfree
 0.79%  [kernel]        [k] __switch_to
 0.78%  [kernel]        [k] skb_release_data
 0.72%  [kernel]        [k] csum_partial_copy_generic
 0.71%  [kernel]        [k] _raw_spin_lock_irqsave
 0.67%  [kernel]        [k] ip_route_input_noref
 0.63%  [kernel]        [k] __udp4_lib_rcv
 0.61%  [kernel]        [k] dev_gro_receive
 0.59%  [kernel]        [k] __schedule
 0.59%  [kernel]        [k] __ip_make_skb
 0.57%  [kernel]        [k] __copy_skb_header
 0.56%  [kernel]        [k] sock_alloc_send_pskb
 0.55%  [kernel]        [k] nf_iterate

답변1

perf출력을 높이 net.ipv4.inet_peer_threshold거나 낮추는 것으로 판단하면 net.ipv4.inet_peer_minttl약간 net.ipv4.inet_peer_maxttl도움이 될 수 있습니다. 나는 당신이 다소 최근 커널을 사용하고 있다고 가정했습니다 3.2. inet_getpeer여기에서 님의 소스 코드를 볼 수 있습니다 .http://lxr.linux.no/#linux+v3.2.51/net/ipv4/inetpeer.c#L395

  • DDoS가 CPU에 바인딩된 경우 다음을 통해 크기가 0인 UDP 패킷을 금지해야 합니다 netfilter.

    $ iptables -I INPUT -p udp -m length --length NN -j DROP
    

    NN귀하의 경우에는 아마도 8(UDP 헤더의 크기) 실제 L3 페이로드로 대체합니다 .

  • DDoS가 인터럽트에 바인딩된 경우 을(를) 조정할 수 있습니다 e1000e. 다음을 참조하세요.

    $ modinfo e1000e | grep ^parm: 
    

    또한 매개변수 설명은 Intel의 문서를 확인하세요.http://downloadmirror.intel.com/9180/eng/README.txt

  • DDoS가 네트워크에 바인딩된 경우 ISP(데이터 센터 운영 업체)에 도움을 요청해야 합니다.

답변2

IP 주소나 포트와 같은 많은 매개변수를 처리하는 데 매우 효율적이므로 iptables와 함께 ipset을 사용할 수 있습니다.

다음은 P2P 위반자를 세트에 넣고 시간 초과를 할당하는 ipset 사용의 예입니다.P2P 시간 초과 솔루션

또는 실시간 블랙리스트 생성실시간 블랙리스트에 ipset 사용

Ipset은 값을 RAM에 저장하기 때문에 많은 IP 주소와 포트에 대해 매우 효율적입니다.

행운을 빌어요.

답변3

무엇을 최적화할 수 있다고 생각하시나요? 서버 과부하를 시도하는 DDoS 공격을 경험하고 있습니다. 서버 앞에 제로 라우팅을 수행하는 네트워크 구성 요소가 없으면 일반적으로 성공합니다.

서버에서 DDoS를 직접 방지할 수는 없으며 방지 시스템을 갖춘 우수한 네트워크 인프라를 통해서만 가능합니다.

관련 정보