43장. xdp-filter를 사용하여 고성능 트래픽 필터링을 통해 DDoS 공격을 방지
nftables, Express Data Path(XDP) 프로세스와 같은 패킷 필터와 비교하고 네트워크 인터페이스에서 네트워크 패킷을 바로 삭제합니다. 따라서 XDP는 방화벽 또는 기타 애플리케이션에 도달하기 전에 패키지의 다음 단계를 결정합니다. 결과적으로 XDP 필터는 리소스가 적게 필요하며 기존 패킷 필터보다 훨씬 높은 속도로 네트워크 패킷을 처리하여 분산 서비스 거부(DDoS) 공격을 방어할 수 있습니다. 예를 들어, 테스트 중에 Red Hat은 단일 코어에서 초당 26백만 개의 네트워크 패킷을 삭제했으며, 이는 동일한 하드웨어에서 nftables 의 드롭 속도보다 훨씬 높습니다.
xdp-filter 유틸리티는 XDP를 사용하여 들어오는 네트워크 패킷을 허용하거나 삭제합니다. 규칙을 생성하여 특정 트래픽을 필터링하거나 트래픽을 필터링할 수 있습니다.
- IP 주소
- MAC 주소
- 포트
xdp-filter 가 패킷 처리 속도가 훨씬 높은 경우에도 (예: nftables )와 동일한 기능이 없습니다. XDP를 사용하여 패킷 필터링을 보여주는 개념적 유틸리티를 Xdp-filter 로 고려하십시오. 또한 고유한 XDP 애플리케이션을 작성하는 방법을 더 잘 이해하기 위해 유틸리티 코드를 사용할 수 있습니다.
AMD 및 Intel 64비트 이외의 아키텍처에서는 xdp-filter 유틸리티는 기술 프리뷰로만 제공됩니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있으며 Red Hat은 해당 기능을 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 프리뷰를 통해 향후 제품 기능에 조기 액세스할 수 있어 개발 프로세스 중에 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
43.1. xdp-filter 규칙과 일치하는 네트워크 패킷 삭제 링크 복사링크가 클립보드에 복사되었습니다!
xdp-filter 를 사용하여 네트워크 패킷을 삭제할 수 있습니다.
- 특정 대상 포트로 설정
- 특정 IP 주소에서
- 특정 MAC 주소에서
xdp-filter 의 허용 정책은 모든 트래픽이 허용됨을 정의하고 필터는 특정 규칙과 일치하는 네트워크 패킷만 삭제합니다. 예를 들어 삭제하려는 패킷의 소스 IP 주소를 알고 있는 경우 이 방법을 사용합니다.
사전 요구 사항
-
xdp-tools패키지가 설치되어 있습니다. - XDP 프로그램을 지원하는 네트워크 드라이버입니다.
프로세스
xdp-filter를 로드하여enp1s0과 같은 특정 인터페이스에서 들어오는 패킷을 처리합니다.xdp-filter load enp1s0
# xdp-filter load enp1s0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본적으로
xdp-filter는allow정책을 사용하고 유틸리티는 모든 규칙과 일치하는 트래픽만 삭제합니다.선택적으로
tcp,ipv4또는ethernet과 같은 특정 기능만 활성화하려면-f 기능옵션을 사용합니다. 대신 필요한 기능만 로드하면 패킷 처리 속도가 증가합니다. 여러 기능을 활성화하려면 쉼표로 구분합니다.명령이 오류와 함께 실패하면 네트워크 드라이버가 XDP 프로그램을 지원하지 않습니다.
규칙을 추가하여 일치하는 패킷을 삭제합니다. 예를 들면 다음과 같습니다.
들어오는 패킷을 포트
22로 삭제하려면 다음을 입력합니다.xdp-filter port 22
# xdp-filter port 22Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은 TCP 및 UDP 트래픽과 일치하는 규칙을 추가합니다. 특정 프로토콜만 일치시키려면
-p protocol옵션을 사용합니다.192.0.2.1에서 들어오는 패킷을 삭제하려면 다음을 입력합니다.xdp-filter ip 192.0.2.1 -m src
# xdp-filter ip 192.0.2.1 -m srcCopy to Clipboard Copied! Toggle word wrap Toggle overflow xdp-filter는 IP 범위를 지원하지 않습니다.MAC 주소
00:53:00:AA:07:BE에서 들어오는 패킷을 삭제하려면 다음을 입력합니다.xdp-filter ether 00:53:00:AA:07:BE -m src
# xdp-filter ether 00:53:00:AA:07:BE -m srcCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 사용하여 삭제 및 허용된 패킷에 대한 통계를 표시합니다.
xdp-filter status
# xdp-filter statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow