키보드
nftables원저작자 | Netfilter 프로젝트 |
---|---|
개발자 | Netfilter 프로젝트 |
안정된 릴리스 | 1.0.1[1] / 2021년 11월 , 전( |
프리뷰 릴리즈 | |
저장소 | |
기입처 | C |
운영 체제 | 리눅스 |
플랫폼 | 넷필터 |
유형 | 패킷 필터링 |
면허증. | GPLv2 |
웹 사이트 |
nftables는 네트워크 패킷/데이터그램/프레임 필터링 및 분류를 제공하는 Linux 커널의 서브시스템입니다.2014년 [2]1월 19일 Linux 커널 3.13이 출시된 이후 사용할 수 있습니다.
nftables는 Netfilter의 레거시 iptables 부분을 대체합니다.iptables에 비해 nftables의 장점은 코드 중복이 적고 새로운 프로토콜로의 확장이 용이하다는 것입니다.nftables는 사용자 공간 유틸리티 nft를 통해 구성되며 레거시 도구는 유틸리티 iptables, ip6tables, arptables 및 ebtables 프레임워크를 통해 구성됩니다.
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 명령어 구문 호환 버전도 포함되어 있습니다.
레퍼런스
- ^ "News of the netfilter/iptables project". netfilter.org. 2021-11-18. Retrieved 2021-11-20.
- ^ a b "nftables, the successor of iptables". Linux 3.13. kernelnewbies.org. 2014-01-19. Retrieved 2016-03-04.
- ^ "Moving from iptables to nftables - nftables wiki".
- ^ "List of available translations via iptables-translate tool - nftables wiki".
- ^ "Nftables - Debian Wiki".
- ^ "User day program – NFWS2008". workshop.netfilter.org. 2008-10-03. Retrieved 2014-02-22.
- ^ 첫 번째 출시 발표입니다.
- ^ a b Gray, Patrick (March 26, 2009). "NEWS: Linux Gets New Firewall". Risky.biz.
- ^ "Linux Netfilter Devel – Re: Current state of nftables". Spinics.net. Retrieved 2014-01-20.
- ^ "Linux Netfilter Devel – Re: Current state of nftables". Spinics.net. Retrieved 2014-01-20.
- ^ "Linux Netfilter Devel – [RFC] back on nf_tables (plus compatibility layer)". Spinics.net. Retrieved 2014-01-20.
- ^ "[PATCH 00/17] netfilter updates: nf_tables pull request". Marc.info. Retrieved 2014-01-20.
- ^ a b Jonathan Corbet (2013-08-20). "The return of nftables". LWN.net. Retrieved 2013-10-22.
- ^ Neira Ayuso, Pablo. "nftables – nft command line tool". git.netfilter.org. Retrieved 24 January 2019.
- ^ Arturo, Ral. "Netfilter Workshop 2018 Berlin summary". ral-arturo.org. Retrieved 24 January 2019.
외부 링크
- 공식 웹사이트
- nftables Git 소스 코드 저장소
- nftables HOWTO 문서
- nftables 첫 출시(2009-03-18)
- Pablo Neira Ayuso: [RFC] 다시 nf_tables (및 호환성 레이어)
- 조작 방법의 개요
- ArchWiki 및 Gentoo Wiki의 nftables 섹션
- Corbet, Jonathan (2009-03-24). "nftables: a new packet filtering engine". LWN.net.
- McHardy, Patrick (2008-09-30). nftables – a successor to iptables, ip6tables, ebtables and arptables (ODP). Netfilter Workshop 2008.
- nft_compatible 확장으로 ebtable 확장 지원(Linux 커널 4.0에 병합)