맨위로가기

넷필터

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

넷필터(netfilter)는 리눅스 커널의 프레임워크로, 네트워크 패킷을 필터링, 수정 및 조작하는 데 사용된다. 1998년 러스티 러셀에 의해 시작되었으며, 1999년 리눅스 커널에 통합되었다. 넷필터는 패킷 필터링, 네트워크 주소 변환(NAT), 연결 추적, 패킷 조작, 로깅 등의 기능을 제공하며, iptables, ip6tables, ebtables, arptables, ipset, nftables 등의 사용자 공간 도구를 통해 방화벽 규칙을 설정하고 관리한다. 넷필터는 SYN 프록시, conntrack-tools, ipset, ulogd 등 다양한 추가 프로젝트를 지원하며, 개발자들이 모여 연구를 논의하는 연례 워크숍을 개최한다.

더 읽어볼만한 페이지

  • 방화벽 소프트웨어 - 만리방화벽
    만리방화벽은 중국 정부가 인터넷 검열과 통제를 목적으로 구축한 시스템으로, IP 주소 차단, DNS 스푸핑, URL 필터링 등의 기술을 사용하여 특정 웹사이트나 정보에 대한 접근을 차단한다.
  • 방화벽 소프트웨어 - 방화벽 (네트워킹)
    방화벽은 네트워크 보안을 위해 트래픽을 검사 및 제어하는 시스템으로, 설정된 규칙에 따라 패킷을 필터링하며, 다양한 종류와 기능을 가지고 로그를 기록 및 관리한다.
  • 리눅스 커널 특징 - 커널 기반 가상 머신
    커널 기반 가상 머신(KVM)은 리눅스 커널의 가상화 확장 기능으로, CPU와 메모리 가상화를 지원하며 QEMU와 함께 완전한 가상화 솔루션을 구성하고 다양한 관리 도구를 제공한다.
  • 리눅스 커널 특징 - AppArmor
    AppArmor는 리눅스 보안 모듈로, 프로그램의 정상적인 동작을 정의하는 프로필을 통해 비정상적인 행위를 차단하며 SELinux의 대안으로 제시되었으나 보안 취약점, 성능, 설정, 호환성 등에 대한 논란도 있다.
  • 자유 보안 소프트웨어 - 클램윈
    클램윈은 ClamAV 엔진 기반의 오픈 소스 백신 소프트웨어로, 트로이 목마, 바이러스, 멀웨어 등 다양한 악성 위협 분석 자료를 제공하며 예약 검사, 수동 검사, 컨텍스트 메뉴 통합 등의 기능을 지원하지만 실시간 감시 기능은 제공하지 않는다.
  • 자유 보안 소프트웨어 - OpenSSL
    OpenSSL은 1998년에 설립된 암호화 도구 프로젝트로, 다양한 암호화 알고리즘과 프로토콜을 지원하며, 아파치 라이선스를 채택했고, 보안 문제와 API 호환성 문제 등의 비판을 받았다.
넷필터 - [IT 관련 정보]에 관한 문서
개요

2. 역사

러스티 러셀은 1998년에 넷필터/iptables 프로젝트를 시작했으며, 그는 이전의 리눅스 방화벽 도구인 ipchains도 개발했다.[2] 1999년 8월 26일, 넷필터는 리눅스 커널 메인라인 버전 2.3.15에 병합되어 2.4.0 안정 버전에서 사용되었다.[2]

2. 1. 개발 과정

러스티 러셀은 1998년에 ''넷필터/iptables 프로젝트''를 시작했으며, 이 프로젝트의 전신인 ipchains도 개발했다.[2] 프로젝트가 성장하면서 1999년에는 ''넷필터 코어 팀''(또는 간단히 ''코어팀'')을 설립했다.[2] 이들이 제작한 소프트웨어(이하 ''넷필터''라고 함)는 GNU 일반 공중 사용 허가서(GPL) 라이선스를 사용하며, 1999년 8월 26일에 리눅스 커널 메인라인 버전 2.3.15에 병합되어 2.4.0 안정 버전에서 사용되었다.[2]

2003년 8월 하랄드 벨테가 코어팀 의장이 되었다.[2] 2004년 4월, 프로젝트에서 GPL을 준수하지 않고 프로젝트 소프트웨어를 임베디드 시스템의 라우터에 배포하는 사람들에 대한 단속이 있은 후, 독일 법원은 GPL의 조건을 따르기를 거부한 사이트컴 독일을 상대로 벨테에게 역사적인 금지 명령을 내렸다 (자세한 내용은 GPL 관련 분쟁 참조).[2] 2007년 9월, 지난 몇 년 동안 개발을 주도했던 패트릭 맥하디가 코어팀의 새로운 의장으로 선출되었다.[2]

2013년에는 SYN 프록시 기능이 넷필터에 추가되었고, 2017년에는 IPv4IPv6 플로우 오프로드 인프라가 추가되어 소프트웨어 플로우 테이블 전달 및 하드웨어 오프로드 지원 속도를 높일 수 있게 되었다.[3][4]

2. 2. 이전 기술과의 관계

러스티 러셀은 1998년에 ''넷필터/iptables 프로젝트''를 시작했으며, 이전에는 ipchains도 개발했다.[2] 1999년에는 ''넷필터 코어 팀''을 설립했다.[2] 넷필터 이전에는 리눅스 방화벽 생성을 위해 리눅스 커널 2.2.x에서 ipchains가, 리눅스 커널 2.0.x에서는 ipfwadm이 사용되었다.[2] ipfwadm은 BSD의 ipfw를 기반으로 만들어졌다.[2]

ipchains와 ipfwadm은 패킷 필터링과 NAT(특히 ''마스커레이딩'', ''포트 포워딩'', ''리디렉션'')를 결합한다. 반면 넷필터는 패킷 처리 작업을 여러 부분으로 분리한다. 넷필터는 연결 추적 및 NAT 서브시스템이 ipchains 및 ipfwadm보다 더 일반적이고 강력하다.

2017년에는 IPv4IPv6 플로우 오프로드 인프라가 추가되어 소프트웨어 플로우 테이블 전달 및 하드웨어 오프로드 지원 속도를 높일 수 있게 되었다.[3][4]

3. 구성 요소

3. 1. 커널 모듈

3. 2. 사용자 공간 도구

넷필터는 커널 모듈과 상호 작용하여 방화벽 규칙을 설정하고 관리하는 사용자 공간 도구를 제공한다. 주요 도구는 다음과 같다:

  • iptables
  • ip6tables
  • ebtables
  • arptables
  • ipset
  • nftables

iptables

4. 핵심 기능

4. 1. 패킷 필터링

넷필터는 리눅스 커널에서 제공하는 프레임워크로, 네트워크 패킷을 필터링, 수정 및 조작하는 데 사용된다. 넷필터는 다양한 기준(IP 주소, 포트, 프로토콜 등)에 따라 네트워크 패킷을 필터링할 수 있다.

`ip_tables`, `ip6_tables`, `arp_tables` (밑줄은 이름의 일부임), `ebtables`이라는 커널 모듈은 넷필터 훅 시스템의 레거시 패킷 필터링 부분을 구성하며, 이들은 패킷을 필터링하거나 변환할 수 있는 방화벽 규칙을 정의하기 위한 테이블 기반 시스템을 제공한다. 이러한 테이블은 사용자 공간 도구 `iptables`, `ip6tables`, `arptables` 및 `ebtables`를 통해 관리할 수 있다.

규칙은 체인, 즉 "규칙의 체인"으로 구성된다. 이러한 체인은 `INPUT`, `OUTPUT` 및 `FORWARD`를 포함한 미리 정의된 제목으로 명명된다. 예를 들어 패킷 수신은 `PREROUTING`에 속하는 반면, `INPUT`은 로컬로 전달된 데이터를 나타내고, 전달된 트래픽은 `FORWARD` 체인에 속한다. 로컬로 생성된 출력은 `OUTPUT` 체인을 통과하고, 전송될 패킷은 `POSTROUTING` 체인에 있다.

  • `iptable_raw` 모듈: 다른 넷필터 훅보다 먼저 호출될 훅을 등록한다. ''raw''라는 테이블을 제공하여 연결 추적과 같이 더 많은 메모리가 필요한 작업을 수행하기 전에 패킷을 필터링하는 데 사용된다.
  • `iptable_mangle` 모듈: 연결 추적 후에 실행되는 훅과 ''mangle'' 테이블을 등록하여 패킷을 수정할 수 있도록 한다.
  • `iptable_nat` 모듈: 목적지 네트워크 주소 변환 기반 변환("DNAT")은 필터 훅 전에 적용되고, 소스 네트워크 주소 변환 기반 변환("SNAT")은 그 후에 적용되는 두 개의 훅을 등록한다. NAT 매핑을 위한 "구성 데이터베이스" 역할을 하는 ''nat'' 테이블을 제공한다.
  • `iptable_filter` 모듈: 일반적인 용도의 필터링(방화벽)에 사용되는 ''filter'' 테이블을 등록한다.
  • `security_filter` 모듈: 필수 접근 제어(MAC) 네트워킹 규칙에 사용된다.


`nftables`는 넷필터의 새로운 패킷 필터링 부분이다.[5] `nft`는 `iptables`, `ip6tables`, `arptables` 및 `ebtables`를 대체하는 새로운 사용자 공간 유틸리티이다.[5] nftables 커널 엔진은 네트워크 패킷을 검사하고 해당 패킷을 처리하는 방법에 대한 결정을 내릴 수 있는 바이트코드를 실행할 수 있는 간단한 가상 머신을 리눅스 커널에 추가한다.[5]

4. 2. 네트워크 주소 변환 (NAT)

넷필터는 네트워크 주소 변환(NAT) 기능을 제공하여 사설 IP 주소를 공인 IP 주소로 변환하거나 그 반대로 변환할 수 있다. NAT는 주로 내부 네트워크의 호스트들이 인터넷에 접속할 때 사용된다. 각 연결은 처음에 동일한 ''원본 주소''와 ''응답 주소'' 세트를 갖는다. 넷필터의 NAT는 단순히 응답 주소와, 필요한 경우 포트를 변경하여 구현된다. 패킷이 수신되면 해당 연결 튜플은 응답 주소 쌍(및 포트)과 비교된다. 조각화되지 않는 것 또한 NAT의 요구 사항이다.

4. 3. 연결 추적

넷필터 프레임워크 위에 구축된 중요한 기능 중 하나는 연결 추적이다.[6] 연결 추적을 통해 커널은 모든 논리적 네트워크 연결 또는 세션을 추적하여 해당 연결을 구성할 수 있는 모든 패킷을 관련시킬 수 있다. NAT는 이 정보를 사용하여 동일한 방식으로 관련된 모든 패킷을 변환하며, `iptables`는 이 정보를 사용하여 상태 저장 방화벽으로 작동할 수 있다.[6]

연결 상태는 TCP 또는 SCTP의 상태와 같은 상위 수준 상태와는 독립적이다. 패킷을 전달할 때 TCP 엔진이 호출되지 않을 수 있으며, 비연결 모드 전송인 UDP, IPsec (AH/ESP), GRE 및 기타 터널링 프로토콜도 의사 연결 상태를 갖는다. 이러한 프로토콜에 대한 휴리스틱은 비활성에 대한 사전 설정된 시간 초과 값을 기반으로 하며, 시간 초과가 만료되면 넷필터 연결이 삭제된다.

각 넷필터 연결은 (계층 3 프로토콜, 소스 주소, 대상 주소, 계층 4 프로토콜, 계층 4 키) 튜플로 고유하게 식별된다. 계층 4 키는 전송 프로토콜에 따라 다르다. TCP/UDP의 경우 포트 번호이고, 터널의 경우 터널 ID일 수 있지만 그렇지 않으면 0이며, 튜플의 일부가 아닌 것처럼 작동한다. 모든 경우에 TCP 포트를 검사할 수 있도록 패킷은 필수로 조각 모음 해제된다.

`iptables`는 상태, 상태 등과 같은 연결의 정보를 확인하여 패킷 필터링 규칙을 더욱 강력하고 쉽게 관리할 수 있도록 사용할 수 있다. 가장 일반적인 상태는 다음과 같다.

  • `NEW`: 새 연결을 만들려고 시도
  • `ESTABLISHED`: 이미 존재하는 연결의 일부
  • `RELATED`: 새 연결을 시작하고 "예상"된 패킷에 할당된다. 예를 들어 `nf_conntrack_ftp` 모듈이 FTP "PASV" 명령을 감지할 때
  • `INVALID`: 패킷이 잘못된 것으로 확인되었다. 예를 들어 TCP 상태 다이어그램을 준수하지 않는다.
  • `UNTRACKED`: 관리자가 특정 패킷에 대한 연결 추적을 우회하기 위해 할당할 수 있는 특수 상태.


일반적인 예는 conntrack 하위 시스템이 처음으로 감지하는 패킷이 "new"로 분류되고, 응답은 "established"로 분류되며, ICMP 오류는 "related"로 분류되는 것이다. 알려진 연결과 일치하지 않는 ICMP 오류 패킷은 "invalid"가 된다.

플러그인 모듈을 사용하면, 연결 추적이 애플리케이션 계층 프로토콜에 대한 지식을 얻어 두 개 이상의 별개의 연결이 "관련"되어 있음을 이해할 수 있다. 예를 들어, FTP 프로토콜을 생각해 보자. 제어 연결이 설정되지만, 데이터가 전송될 때마다 데이터를 전송하기 위해 별도의 연결이 설정된다. `nf_conntrack_ftp` 모듈이 로드되면, FTP 데이터 연결의 첫 번째 패킷은 기존 연결의 논리적 부분이기 때문에 "새로운" 대신 "관련된"으로 분류된다.

헬퍼는 한 번에 하나의 패킷만 검사하므로, 연결 추적에 필수적인 정보가 IP 단편화 또는 TCP 분할로 인해 두 패킷으로 분할되면 헬퍼는 패턴을 인식하지 못하므로 작업을 수행하지 않는다. IP 단편화는 연결 추적 서브시스템에서 재조립을 요구하여 처리되지만, TCP 세그먼트 분할은 처리되지 않는다.

4. 4. 패킷 조작

넷필터는 패킷의 헤더나 내용을 변경하는 기능을 제공한다. 예를 들어, TTL(Time To Live) 값을 변경하거나, 패킷의 특정 필드를 수정할 수 있다.

`nf_defrag_ipv4` 모듈은 IPv4 패킷이 넷필터의 연결 추적(`nf_conntrack_ipv4` 모듈)에 도달하기 전에 단편화를 제거한다. 이는 전체 패킷에서만 안정적으로 작동하고 단편에서는 반드시 그렇지 않은 커널 내 연결 추적 및 NAT 헬퍼 모듈(일종의 "미니-ALG")에 필요하다.

IPv6 단편화 제거기는 자체적으로 모듈이 아니며 `nf_conntrack_ipv6` 모듈에 통합되어 있다.

4. 5. 로깅

5. 추가 프로젝트

넷필터 프로젝트는 핵심 기능 외에도 다음과 같은 추가적인 소프트웨어를 제공한다.


  • '''conntrack-tools''': 시스템 관리자가 연결 추적 항목 및 테이블과 상호 작용할 수 있도록 하는 리눅스용 사용자 공간 도구 모음이다. 이 패키지에는 `conntrackd` 데몬과 명령줄 인터페이스 `conntrack`이 포함되어 있다. 사용자 공간 데몬 `conntrackd`는 고가용성 클러스터 기반 상태 저장 방화벽을 활성화하고 상태 저장 방화벽 사용 통계를 수집하는 데 사용할 수 있다. 명령줄 인터페이스 `conntrack`은 구식 `/proc/net/nf_conntrack`보다 연결 추적 시스템에 더 유연한 인터페이스를 제공한다.

  • '''ipset''': IP 주소 집합을 효율적으로 관리하고 `iptables` 규칙에서 사용할 수 있도록 하는 도구이다.[7] 사용자 공간 도구로, 리눅스 커널에서 "IP 집합"을 설정, 유지 관리 및 검사하는 데 사용된다. IP 집합은 일반적으로 IP 주소 집합을 포함하지만, "유형"에 따라 다른 네트워크 번호 집합을 포함할 수도 있다. 이러한 집합은 순수한 `iptables` 규칙보다 조회 효율성이 훨씬 뛰어나지만, 더 많은 메모리를 사용할 수 있다. 사용자가 최적의 솔루션을 선택할 수 있도록 `ipset`에서는 다양한 저장 알고리즘(메모리의 데이터 구조용)을 제공한다. 하나의 집합에 있는 모든 항목은 다른 집합에 바인딩될 수 있어 정교한 일치 작업을 수행할 수 있다. 집합은 해당 집합을 참조하는 `iptables` 규칙이나 다른 집합이 없는 경우에만 제거(삭제)할 수 있다. 연결 추적(Connection Tracking)과 달리, `ipset`은 핵심 넷필터 코드보다는 `iptables`와 더 밀접한 관련이 있다.[7] 예를 들어, `ipset`은 넷필터 훅을 사용하지 않지만, 실제로 IP 집합을 일치시키고 최소한의 수정(설정/해제)을 수행하는 `iptables` 모듈을 제공한다.

  • '''SYN proxy''': `SYNPROXY` 타겟은 대규모 SYN 플러드 공격을 처리하고, 연결 추적으로 인한 성능 저하를 방지하는 기능을 제공한다.[8] 초기 `SYN` 요청을 `SYNPROXY` 타겟으로 리디렉션하면, 연결은 유효성이 검증된 최종 `ACK` 상태에 도달할 때까지 연결 추적에 등록되지 않는다. 이를 통해 잠재적으로 유효하지 않은 대량의 연결을 연결 추적에서 제외하여, 대규모 `SYN` 플러드를 효과적으로 처리할 수 있다.[8] 2013년 11월 3일, `SYN` 프록시 기능은 리눅스 커널 메인라인 버전 3.12 릴리스와 함께 넷필터에 병합되었다.[9][10]

  • '''ulogd''': 넷필터 하위 시스템에서 패킷과 이벤트 알림을 수신하고 기록하는 사용자 공간 데몬이다. `ip_tables`는 사용자 공간 큐잉 메커니즘을 통해 패킷을 `ulogd`로 전달할 수 있으며, 연결 추적은 `ulogd`와 상호 작용하여 패킷 또는 이벤트(예: 연결 종료, NAT 설정)에 대한 추가 정보를 교환할 수 있다.

  • '''사용자 공간 라이브러리''': 넷필터는 사용자 공간에서 다양한 작업을 수행하는 데 사용할 수 있는 `libnetfilter`를 접두어로 하는 라이브러리들을 제공한다. 이 라이브러리들은 GNU GPL 버전 2로 릴리스되었다.[11]
  • `libnetfilter_queue`: iptables와 함께 사용자 공간 패킷 큐잉을 수행할 수 있도록 한다. `libnfnetlink` 기반이다.
  • `libnetfilter_conntrack`: 사용자 공간에서 연결 추적 항목을 조작할 수 있도록 한다. `libnfnetlink` 기반이다.
  • `libnetfilter_log`: iptables에서 생성된 로그 메시지를 수집할 수 있도록 한다. `libnfnetlink` 기반이다.
  • `libnl-3-netfilter`: 큐, 연결 추적 및 로그에 대한 작업을 허용한다. `libnl` 프로젝트의 일부이다.[11]
  • `libiptc`: iptables 방화벽 규칙 집합에 변경 사항을 적용할 수 있도록 한다. 어떤 netlink 라이브러리에도 기반하지 않으며, 해당 API는 `iptables` 유틸리티에서 내부적으로 사용된다.
  • `libipset`: IP 집합에 대한 작업을 허용한다. `libmnl` 기반이다.

5. 1. conntrack-tools

`conntrack-tools`는 시스템 관리자가 연결 추적 항목 및 테이블과 상호 작용할 수 있도록 하는 리눅스용 사용자 공간 도구 모음이다. 이 패키지에는 `conntrackd` 데몬과 명령줄 인터페이스 `conntrack`이 포함되어 있다. 사용자 공간 데몬 `conntrackd`는 고가용성 클러스터 기반 상태 저장 방화벽을 활성화하고 상태 저장 방화벽 사용 통계를 수집하는 데 사용할 수 있다. 명령줄 인터페이스 `conntrack`은 구식 `/proc/net/nf_conntrack`보다 연결 추적 시스템에 더 유연한 인터페이스를 제공한다.

5. 2. ipset

`ipset`은 IP 주소 집합을 효율적으로 관리하고 `iptables` 규칙에서 사용할 수 있도록 하는 도구이다.[7] 사용자 공간 도구로, 리눅스 커널에서 "IP 집합"을 설정, 유지 관리 및 검사하는 데 사용된다. IP 집합은 일반적으로 IP 주소 집합을 포함하지만, "유형"에 따라 다른 네트워크 번호 집합을 포함할 수도 있다. 이러한 집합은 순수한 `iptables` 규칙보다 조회 효율성이 훨씬 뛰어나지만, 더 많은 메모리를 사용할 수 있다. 사용자가 최적의 솔루션을 선택할 수 있도록 `ipset`에서는 다양한 저장 알고리즘(메모리의 데이터 구조용)을 제공한다.

하나의 집합에 있는 모든 항목은 다른 집합에 바인딩될 수 있어 정교한 일치 작업을 수행할 수 있다. 집합은 해당 집합을 참조하는 `iptables` 규칙이나 다른 집합이 없는 경우에만 제거(삭제)할 수 있다. 연결 추적(Connection Tracking)과 달리, `ipset`은 핵심 넷필터 코드보다는 `iptables`와 더 밀접한 관련이 있다.[7] 예를 들어, `ipset`은 넷필터 훅을 사용하지 않지만, 실제로 IP 집합을 일치시키고 최소한의 수정(설정/해제)을 수행하는 `iptables` 모듈을 제공한다.

5. 3. SYN proxy

`SYNPROXY` 타겟은 대규모 SYN 플러드 공격을 처리하고, 연결 추적으로 인한 성능 저하를 방지하는 기능을 제공한다.[8] 초기 `SYN` 요청을 `SYNPROXY` 타겟으로 리디렉션하면, 연결은 유효성이 검증된 최종 `ACK` 상태에 도달할 때까지 연결 추적에 등록되지 않는다. 이를 통해 잠재적으로 유효하지 않은 대량의 연결을 연결 추적에서 제외하여, 대규모 `SYN` 플러드를 효과적으로 처리할 수 있다.[8]

2013년 11월 3일, `SYN` 프록시 기능은 리눅스 커널 메인라인 버전 3.12 릴리스와 함께 넷필터에 병합되었다.[9][10]

5. 4. ulogd

`ulogd`는 넷필터 하위 시스템에서 패킷과 이벤트 알림을 수신하고 기록하는 사용자 공간 데몬이다. `ip_tables`는 사용자 공간 큐잉 메커니즘을 통해 패킷을 `ulogd`로 전달할 수 있으며, 연결 추적은 `ulogd`와 상호 작용하여 패킷 또는 이벤트(예: 연결 종료, NAT 설정)에 대한 추가 정보를 교환할 수 있다.

5. 5. 사용자 공간 라이브러리

넷필터는 사용자 공간에서 다양한 작업을 수행하는 데 사용할 수 있는 `libnetfilter`를 접두어로 하는 라이브러리들을 제공한다. 이 라이브러리들은 GNU GPL 버전 2로 릴리스되었다.[11]

  • `libnetfilter_queue`: iptables와 함께 사용자 공간 패킷 큐잉을 수행할 수 있도록 한다. `libnfnetlink` 기반이다.
  • `libnetfilter_conntrack`: 사용자 공간에서 연결 추적 항목을 조작할 수 있도록 한다. `libnfnetlink` 기반이다.
  • `libnetfilter_log`: iptables에서 생성된 로그 메시지를 수집할 수 있도록 한다. `libnfnetlink` 기반이다.
  • `libnl-3-netfilter`: 큐, 연결 추적 및 로그에 대한 작업을 허용한다. `libnl` 프로젝트의 일부이다.[11]
  • `libiptc`: iptables 방화벽 규칙 집합에 변경 사항을 적용할 수 있도록 한다. 어떤 netlink 라이브러리에도 기반하지 않으며, 해당 API는 `iptables` 유틸리티에서 내부적으로 사용된다.
  • `libipset`: IP 집합에 대한 작업을 허용한다. `libmnl` 기반이다.

6. 넷필터 워크숍

넷필터 프로젝트는 개발자들이 모여 진행 중인 연구 및 개발 노력을 논의하는 연례 워크숍을 개최한다.[12] 2018년 넷필터 워크숍은 2018년 6월 독일 베를린에서 열렸다.[12]

7. 한국 인터넷 환경과 넷필터

8. 더 보기

참조

[1] 웹사이트 netfilter/iptables project homepage - The netfilter.org project https://www.netfilte[...] netfilter.org 2014-07-04
[2] 간행물 netfilter archeology: 18 years from 2.3 to 4.x https://netdevconf.i[...] 2017-12-05
[3] 웹사이트 Flow offload infrastructure https://lwn.net/Arti[...]
[4] 웹사이트 Flow offload infrastructure https://lwn.net/Arti[...]
[5] 웹사이트 The return of nftables https://lwn.net/Arti[...] LWN.net 2013-08-20
[6] 웹사이트 Netfilter's Connection Tracking System https://people.netfi[...] 2006-06-14
[7] 웹사이트 IP sets http://ipset.netfilt[...] ipset.netfilter.org 2014-07-04
[8] 웹사이트 netfilter: implement netfilter SYN proxy https://lwn.net/Arti[...] LWN.net 2013-08-07
[9] 웹사이트 netfilter: add SYNPROXY core/target https://git.kernel.o[...] kernel.org 2013-08-27
[10] 웹사이트 netfilter: add IPv6 SYNPROXY target https://git.kernel.o[...] kernel.org 2013-08-27
[11] 웹사이트 Netfilter Library (libnl-nf) https://www.infradea[...] infradead.org 2013-04-02
[12] 웹사이트 14th Netfilter Workshop https://workshop.net[...] workshop.netfilter.org 2018-09-26



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com