ClickCease Linux에서 iptables와 nftables 비교 공개

인기 뉴스레터 구독하기

4,500명 이상의 Linux 및 오픈 소스 전문가와 함께하세요!

한 달에 두 번. 스팸이 없습니다.

Linux의 iptables와 nftables: 차이점은 무엇인가요?

by 아르템 카라세프

2024년 2월 15일 - 선임 제품 마케팅 매니저

  • nftables는 통합된 IPv4/IPv6 처리로 iptables에 대한 보다 간단하고 효율적인 대안을 제공합니다.
  • nftables의 규칙 추적 및 다중 작업 규칙과 같은 기능은 네트워크 관리를 향상시킵니다.
  • nftables로 전환하면 iptables-translate와 같은 도구가 지원하는 더 나은 성능과 단순성을 제공합니다.

리눅스 네트워크 패킷 필터링 및 방화벽 관리의 지속적인 발전은 특히 iptables와 nftables 논쟁에서 강조되고 있으며, 네트워크 보안의 중추적인 변화를 나타냅니다. iptables와 nftables는 모두 네트워크 트래픽을 제어하고 보호하는 고유한 접근 방식을 제공합니다. 이 블로그 게시물에서는 다양한 네트워크 환경에서의 뚜렷한 특징, 차이점, 실제 적용 사례를 강조하면서 iptables와 nftables에 대해 자세히 살펴봅니다.

 

기본 사항 이해

 

1990년대 후반에 도입된 이래로 iptables 은 리눅스 방화벽 솔루션의 핵심 구성 요소였습니다. Linux 방화벽 솔루션의 핵심 구성 요소로 네트워크 트래픽에 대한 유연성과 강력한 제어 기능을 제공합니다. 그러나 복잡한 구문은 부담스러울 수 있습니다. 반면 nftables은 2014년 Linux 커널 3.13과 함께 도입되었으며, iptables의 일부 한계를 해결하기 위해 설계되었습니다. iptables와 nftables를 비교해보면, nftables는 패킷 필터링 및 분류를 간소화하여 사용자 친화적인 구문, 향상된 성능, 최신 네트워크 프로토콜에 대한 더 나은 지원을 제공한다는 것을 알 수 있습니다.

 

IP테이블과 NFT테이블

 

복잡하고 장황한 것으로 알려진 iptables의 구문과 사용성은 특히 초보자에게는 가파른 학습 곡선을 그리는 경우가 많습니다. 특정 위치에서는 iptables 옵션의 구문이 매우 취약할 수 있습니다. 어떤 경우에는 쉼표 뒤에 공백을 넣을 수 있지만, 어떤 경우에는 공백을 넣을 수 없습니다. 때로는 두 옵션을 문제 없이 교체할 수 있지만 다른 경우에는 오류가 발생할 수 있습니다. 이러한 복잡성은 스크립트에서 규칙을 생성할 때 특히 테스트를 복잡하게 만듭니다.

Nftables는 규칙 작성을 간소화하고 오류 발생 가능성을 줄여 관리 효율성을 높이는 사용자 친화적인 구문으로 이 문제를 해결합니다.

예를 들어 일반적인 iptables 규칙은 다음과 같습니다:

iptables -A 입력 -p tcp --dport 22 -j 수락

이 규칙은 포트 22에서 들어오는 SSH 트래픽을 허용합니다. 

이와는 대조적으로, nftables는 다음과 같은 nftables 규칙에서 볼 수 있듯이 보다 간단한 구문을 제공합니다:

NFT 추가 규칙 IP 필터 입력 TCP DPORT 22 수락

 

아이피테이블과 엔피테이블에 대한 논의의 또 다른 요점은 IPv4 및 IPv6 처리입니다. 서버에서 이중 스택 구성이 널리 사용됨에 따라 관리자는 종종 두 개의 서로 다른 구성 파일에 규칙을 복제해야 합니다. nftables는 IPv4와 같은 기능을 통합하여 이를 극복합니다, IPv6, arp, inet 등의 기능을 단일 프레임워크에 통합하여 성능을 향상하고 중복성을 제거합니다.

또한 nftables를 사용하면 단일 규칙으로 여러 작업을 수행할 수 있습니다. 예를 들어, 10.10.1.0/24와 같은 특정 네트워크의 패킷을 동시에 로깅하고 차단하여 규칙 구성을 간소화하고 규칙 처리 속도를 높일 수 있습니다.

 

nftables의 규칙 추적

 

네트워크 관리의 일반적인 문제는 어떤 규칙이 예기치 않게 트래픽을 차단하고 있는지 파악하는 것입니다. nftables는 iptables에는 없는 추적 기능을 내장하여 이 문제를 해결합니다. 예를 들어 10.10.1.0/24와 같은 범위에서 SSH 트래픽을 차단하는 규칙이 있는 경우입니다: 

sudo nft 삽입 규칙 인넷 필터 입력 ip saddr 10.10.1.0/24 tcp dport 22 드롭

 

10.10.1.15에서 차단된 연결 문제를 해결하는 경우 이 IP에 대한 추적을 활성화하면 문제가 있는 규칙을 정확히 찾아낼 수 있습니다:

 

$ sudo nft 삽입 규칙 인넷 필터 입력 ip saddr 10.10.1.15 tcp dport 22 메타 nftrace set 1

 

nft 모니터 추적을 실행하면 차단을 유발하는 정확한 규칙을 확인할 수 있습니다.

nftables에 이 추적 기능을 도입하면 복잡한 규칙 집합을 디버깅하는 기능이 크게 향상되어 네트워크 관리자에게 네트워크 트래픽을 관리하고 문제를 해결할 수 있는 강력한 도구를 제공할 수 있습니다.

 

아이피테이블에서 엔피테이블로 전환하기

 

iptables에서 nftables로 전환하면 보다 효율적인 네트워크 관리로 전환할 수 있습니다. iptables-translate와 같은 도구를 사용하면 iptables 규칙을 nftables 형식으로 변환하여 성능 향상 및 단순성 등의 이점을 얻을 수 있습니다. 예를 들어, 웹 서버의 방화벽 규칙을 iptables에서 nftables로 전환하려면 HTTP 및 HTTPS 트래픽을 허용하는 iptables 규칙을 변환해야 할 수 있습니다:

iptables -P 입력 드롭

iptables -P FORWARD DROP

iptables -P 출력 수락

iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

 

를 nftables 규칙에 추가합니다:

NFT 추가 규칙 IP 필터 입력 TCP DPORT 80 CT 상태 신규, 설정됨 수락

NFT 추가 규칙 IP 필터 입력 TCP DPORT 443 CT 상태 신규,설정됨 수락

모든 규칙을 변환한 후 새로운 nftables 구성은 이전 iptables 설정과 동일한 수준의 보안 및 트래픽 관리를 보장하지만 nftables의 효율성과 단순성이라는 추가 이점이 있습니다.

 

올바른 도구 선택

 

iptables는 오랫동안 신뢰할 수 있는 도구로 사용되어 왔지만, nftables는 보다 효율적이고 미래 지향적인 솔루션으로 부상하고 있습니다. 기존 구성이 있는 시스템에서는 여전히 iptables가 선호될 수 있지만, 새로운 배포에서는 성능과 확장성 때문에 nftables가 선호되는 경우가 많으므로 특정 요구 사항과 환경에 따라 선택해야 합니다. 

두 시나리오 모두에서 통합 TuxCare의 Linux 보안 솔루션을 통합하면 방화벽 솔루션이 안전하고 지원되며 규정을 준수하는 Linux 커널에서 실행되도록 보장할 수 있습니다.

요약
Linux에서 iptables와 nftables 비교 공개
기사 이름
Linux에서 iptables와 nftables 비교 공개
설명
Linux에서 iptables와 nftables를 비교해보세요. 이 가이드에서는 각 기능, 효율성, 네트워크 보안 관리를 위해 nftables가 중요한 이유에 대해 설명합니다.
작성자
게시자 이름
TuxCare
게시자 로고

Kernel 재부팅, 시스템 다운타임 또는 예정된 유지 보수 기간 없이 취약성 패치를 자동화하고 싶으신가요?

TuxCare 게스트 작가 되기

메일

Linux 환경을 이해하도록
도와주세요!

오픈소스 현황에 대한 설문조사를 완료하면 최고 상금 500달러를 포함한 여러 가지 상품 중 하나를 받을 수 있습니다!

엔터프라이즈 Linux의 미래를 만들기 위해서는 여러분의 전문 지식이 필요합니다!