키보드

nftables
Nftables
원저작자Netfilter 프로젝트
개발자Netfilter 프로젝트
안정된 릴리스
1.0.1[1] / 2021년 11월 18일, 8개월 전(2021-11-18)
프리뷰 릴리즈
저장소
기입처C
운영 체제리눅스
플랫폼넷필터
유형패킷 필터링
면허증.GPLv2
웹 사이트

nftables는 네트워크 패킷/데이터그램/프레임 필터링 및 분류를 제공하는 Linux 커널의 서브시스템입니다.2014년 [2]1월 19일 Linux 커널 3.13이 출시된 이후 사용할 수 있습니다.

nftables는 Netfilter의 레거시 iptables 부분을 대체합니다.iptables에 비해 nftables의 장점은 코드 중복이 적고 새로운 프로토콜로의 확장이 용이하다는 것입니다.nftables는 사용자 공간 유틸리티 nft를 통해 구성되며 레거시 도구는 유틸리티 iptables, ip6tables, arptablesebtables 프레임워크를 통해 구성됩니다.

nftables는 네트워킹스택에 대한 기존 후크, 접속 추적 시스템, 사용자 공간 큐잉 컴포넌트, 로깅 서브시스템 등 Netfilter 인프라스트럭처의 구성 요소를 사용합니다.

nft

명령줄 구문

수신처 IP 주소를 가지는 패킷을 폐기하는 명령어1.2.3.4:

nft add rule ip filter output ip daddr 1.2.3.4 drop

새로운 구문은 iptables의 구문과 크게 다르다는 점에 유의하십시오. iptables에는 다음과 같은 규칙이 기술되어 있습니다.

iptables - A OUTPUT - d 1.2.3.4 - j DROP

새로운 구문은 보다 상세하게 보일 수 있지만 훨씬 유연합니다.nftables는 iptables에는 존재하지 않는 사전, 지도 및 연결과 같은 고급 데이터 구조를 통합한다.이러한 기능을 사용하면 특정 패킷필터링 설계를 표현하기 위해 필요한 체인 및 규칙의 수를 대폭 줄일 수 있습니다.

iptables-translate 도구를 사용하여 많은 기존 iptables 규칙을 동등한 nftables [3][4]규칙으로 변환할 수 있습니다.Debian 10(Buster)은 다른 Linux 디스트리뷰션과 함께 nftables를 사용합니다.iptables-translate디폴트 패킷필터링 [5]백엔드로 사용됩니다.

역사

이 프로젝트는 Netfilter 핵심 [6]팀의 Patrick McHardy에 의해 Netfilter Workshop 2008에서 처음 공개되었습니다.커널 및 사용자 공간 구현의 첫 번째 프리뷰 릴리스는 2009년 [7]3월에 제공되었습니다.이 툴은 "2001년 iptables가 도입된 이후 Linux 방화벽의 가장 큰 변화"라고 불리고 있지만 언론의 주목을 [8]거의 받지 못했습니다.유명한 해커인 Fyodor Vaskovich(Gordon Lyon)는 "주류 Linux [8]커널에서의 일반 출시를 기대하고 있다"고 말했다.

이 프로젝트는 알파 단계에 머물렀고, 2009년에 공식 웹사이트가 삭제되었다.2010년 3월, 프로젝트 메일링 리스트에 기재된 작성자의 이메일에 의하면, 이 프로젝트는 아직 유효하고, 베타 [9][10]릴리스에 가까워지고 있는 것을 알 수 있었습니다.그러나, 베타 릴리스는 정식으로 출하된 적이 없습니다.2012년 10월, Pablo Neira Ayuso는 iptables의[11] 호환성 계층을 제안하고 프로젝트를 메인스트림 커널에 포함시킬 수 있다고 발표했습니다.

2013년 10월 16일, Pablo Neira Ayuso는 Linux 커널 메인라인 [12]트리에 nftables 코어요청을 제출했습니다.2014년 1월 19일 리눅스 커널 버전 3.13이 [2]출시되면서 커널 메인라인으로 통합되었습니다.

개요

nftables 커널 엔진은 Linux 커널에 단순한 가상 머신을 추가합니다.이 커널에서는 바이트 코드를 실행하여 네트워크 패킷을 검사하고 해당 패킷의 처리 방법을 결정할 수 있습니다.이 가상 시스템에서 구현된 작업은 의도적으로 기본 작업으로 지정되었습니다.패킷 자체에서 데이터를 가져와 관련 메타데이터(인바운드인터페이스 등)를 확인하고 접속 추적 데이터를 관리할 수 있습니다.산술 연산자, 비트 연산자 및 비교 연산자를 사용하여 해당 데이터를 기반으로 결정을 내릴 수 있습니다.또한 가상 시스템은 데이터 집합(일반적으로 IP 주소)을 조작할 수 있으므로 여러 비교 작업을 단일 집합 [13]조회로 대체할 수 있습니다.

위에서 설명한 조직은 iptables 방화벽코드에 반하는 것입니다.iptables 방화벽코드는 IPv4, IPv6, ARP 및 이더넷브리징용으로 코드를 4회 복제해야 할 정도로 깊은 논리에 포함되어 있습니다.방화벽엔진은 너무 프로토콜 고유하기 때문에 일반적인 [13]방법으로 사용할 수 없습니다.

iptables에 비해 nftables의 주요 장점은 Linux 커널 ABI의 단순화, 코드 복제의 감소, 오류 보고의 개선, 필터링 규칙의 보다 효율적인 실행, 저장 및 증분 변경입니다.기존의 , 및 (각각 IPv4, IPv6, ARP 및 이더넷브리징의 경우)는 단일 통합 구현으로 대체되어 커널 가상 머신 위에 방화벽 구성을 제공합니다.

nftables는 또한 단일 Netlink 트랜잭션 내에서 하나 이상의 방화벽 규칙을 원자적으로 대체할 수 있는 향상된 사용자 공간 API를 제공합니다.이것에 의해, 큰 룰 세트를 가지는 설정의 파이어 월(fire wall) 설정 변경이 고속화됩니다.또, 룰 변경이 실행되는 동안, 레이스 조건을 회피할 수도 있습니다.nftables에는 이전 방화벽으로부터의 이행을 용이하게 하는 호환성 기능, iptables [14]형식의 규칙을 변환하는 명령줄 유틸리티 및 nftables [15]백엔드를 사용하는 iptables 명령어 구문 호환 버전도 포함되어 있습니다.

레퍼런스

  1. ^ "News of the netfilter/iptables project". netfilter.org. 2021-11-18. Retrieved 2021-11-20.
  2. ^ a b "nftables, the successor of iptables". Linux 3.13. kernelnewbies.org. 2014-01-19. Retrieved 2016-03-04.
  3. ^ "Moving from iptables to nftables - nftables wiki".
  4. ^ "List of available translations via iptables-translate tool - nftables wiki".
  5. ^ "Nftables - Debian Wiki".
  6. ^ "User day program – NFWS2008". workshop.netfilter.org. 2008-10-03. Retrieved 2014-02-22.
  7. ^ 첫 번째 출시 발표입니다.
  8. ^ a b Gray, Patrick (March 26, 2009). "NEWS: Linux Gets New Firewall". Risky.biz.
  9. ^ "Linux Netfilter Devel – Re: Current state of nftables". Spinics.net. Retrieved 2014-01-20.
  10. ^ "Linux Netfilter Devel – Re: Current state of nftables". Spinics.net. Retrieved 2014-01-20.
  11. ^ "Linux Netfilter Devel – [RFC] back on nf_tables (plus compatibility layer)". Spinics.net. Retrieved 2014-01-20.
  12. ^ "[PATCH 00/17] netfilter updates: nf_tables pull request". Marc.info. Retrieved 2014-01-20.
  13. ^ a b Jonathan Corbet (2013-08-20). "The return of nftables". LWN.net. Retrieved 2013-10-22.
  14. ^ Neira Ayuso, Pablo. "nftables – nft command line tool". git.netfilter.org. Retrieved 24 January 2019.
  15. ^ Arturo, Ral. "Netfilter Workshop 2018 Berlin summary". ral-arturo.org. Retrieved 24 January 2019.

외부 링크