Red Hat Training

A Red Hat training course is available for RHEL 8

42장. 고성능 트래픽 필터링에 xdp-filter를 사용하여 로더 공격 방지

nftables 와 같은 패킷 필터와 비교하여 XDP(Trans Express Data Path)는 네트워크 패킷을 처리하고 네트워크 인터페이스에서 바로 삭제합니다. 따라서 XDP는 방화벽 또는 기타 애플리케이션에 도달하기 전에 패키지에 대한 다음 단계를 결정합니다. 결과적으로 XDP 필터는 적은 리소스가 필요하며, DDoS(Distributed DoS) 공격으로부터 보호하기 위해 기존 패킷 필터보다 훨씬 높은 속도로 네트워크 패킷을 처리할 수 있습니다. 예를 들어, 테스트를 수행하는 동안 Red Hat은 단일 코어에서 초당 2천 6백만 네트워크 패킷을 삭제했으며 이는 동일한 하드웨어에서 nftable의 드롭 속도보다 훨씬 높습니다.

xdp-filter 유틸리티는 XDP를 사용하여 들어오는 네트워크 패킷을 허용하거나 삭제합니다. 특정 항목으로 또는 특정 항목의 트래픽을 필터링하는 규칙을 생성할 수 있습니다.

  • IP 주소
  • MAC 주소
  • 포트

xdp-filter 에 훨씬 높은 패킷 처리 속도가 있더라도 nftables 와 같은 기능은 없습니다. XDP를 사용하여 패킷 필터링을 시연하기 위해 xdp-filter 를 개념적 유틸리티로 고려하십시오. 또한 자체 XDP 애플리케이션을 작성하는 방법을 더 잘 이해할 수 있도록 유틸리티 코드를 사용할 수 있습니다.

중요

AMD 및 Intel 64비트 이외의 아키텍처에서 xdp-filter 유틸리티는 기술 프리뷰로만 제공됩니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있으며 프로덕션에는 사용하지 않는 것이 좋습니다. 이러한 미리보기를 통해 향후 제품 기능에 조기에 액세스할 수 있어 고객이 개발 과정에서 기능을 테스트하고 피드백을 제공할 수 있습니다.

기술 프리뷰 기능에 대한 지원 범위에 대한 자세한 내용은 Red Hat 고객 포털의 기술 프리뷰 기능 지원 범위를 참조하십시오.

42.1. xdp-filter 규칙과 일치하는 네트워크 패킷 삭제

xdp-filter 를 사용하여 네트워크 패킷을 삭제할 수 있습니다.

  • 특정 대상 포트로
  • 특정 IP 주소에서
  • 특정 MAC 주소

xdp-filterallow 정책은 모든 트래픽이 허용되는 것을 정의하고 필터는 특정 규칙과 일치하는 네트워크 패킷만 삭제합니다. 예를 들어 삭제하려는 패킷의 소스 IP 주소를 알고 있는 경우 이 방법을 사용합니다.

사전 요구 사항

  • xdp-tools 패키지가 설치되어 있습니다.
  • XDP 프로그램을 지원하는 네트워크 드라이버입니다.

절차

  1. Load xdp-filter to process incoming packets on a certain interface, such as enp1s0:

    # xdp-filter load enp1s0

    기본적으로 xdp-filter허용 정책을 사용하며 유틸리티는 규칙과 일치하는 트래픽만 삭제합니다.

    필요한 경우 -f 기능 옵션을 사용하여 tcp,ipv4 또는 ethernet 과 같은 특정 기능만 활성화합니다. 필요한 기능만 로드하면 패킷 처리 속도가 향상됩니다. 여러 기능을 사용하려면 쉼표로 구분합니다.

    명령이 오류와 함께 실패하면 네트워크 드라이버에서 XDP 프로그램을 지원하지 않습니다.

  2. 해당 패킷과 일치하는 패킷 삭제에 규칙을 추가합니다. 예를 들면 다음과 같습니다.

    • 포트 22 로 들어오는 패킷을 삭제하려면 다음을 입력합니다.

      # xdp-filter port 22

      이 명령은 TCP 및 UDP 트래픽과 일치하는 규칙을 추가합니다. 특정 프로토콜과만 일치시키려면 -p protocol 옵션을 사용합니다.

    • 192.0.2.1 으로부터 수신되는 패킷을 삭제하려면 다음을 입력합니다.

      # xdp-filter ip 192.0.2.1 -m src

      xdp-filter 는 IP 범위를 지원하지 않습니다.

    • MAC 주소 00:53:00:AA:07:BE 에서 수신되는 패킷을 삭제하려면 다음을 입력합니다.

      # xdp-filter ether 00:53:00:AA:07:BE -m src

검증

  • 삭제 및 허용된 패킷에 대한 통계를 표시하려면 다음 명령을 사용합니다.

    # xdp-filter status

추가 리소스

  • XDP-filter(8) 매뉴얼 페이지
  • 개발자가 xdp-filter 코드에 관심이 있다면 Red Hat 고객 포털에서 해당 소스 RPM(SRPM)을 다운로드하여 설치하십시오.