NPF(방화벽)

NPF (firewall)
NPF
원저작자민다우가스 라시우케비치우스
초기 릴리즈2012년 10월 17일, 9년 전(2012-10-17)[1]
저장소
기입처C
운영 체제넷BSD
유형패킷 필터, 방화벽
면허증.BSD 라이선스
웹 사이트www.netbsd.org/~rmind/npf/ Edit this on Wikidata

NPFBSD 라이선스스테이트패킷필터입니다방화벽용 소프트웨어의 중심 부분입니다.iptables, ipfw, ipfilter PF에 필적합니다.NPF는 NetBSD 에서 개발됩니다.

역사

NPF는 주로 Mindaugas Rasiukevicius에 의해 작성되었다.NPF는 2012년에 [1]NetBSD 6.0 릴리스에 처음 도입되었습니다.

특징들

NPF는 SMP 시스템에서의 하이 퍼포먼스와 용이한 확장성을 실현하도록 설계되어 있습니다.다양한 형식의 Network Address Translation(NAT; 네트워크주소 변환), 스테이트풀 패킷인스펙션, IP 세트의 트리 및 해시 테이블, 커스텀필터 규칙 및 기타 기능의 바이트 코드(BPF 또는n 코드)를 지원합니다.NPF에는 커스텀모듈을 지원하기 위한 확장 프레임워크가 있습니다.패킷 로깅, 트래픽 정규화, 랜덤블로킹 등의 기능은 NPF 확장으로 제공됩니다.

npf.conf 예시

# 지정된 인터페이스의 IPv4 전용 주소 할당.$ext_if = inet4(wm0) $int_if = inet4(wm1) # IP 세트를 저장하기 위한 효율적인 테이블. 테이블 <1> hash file "/etc/npf_set" table <2> type tree dynamic # 서비스 이름을 가진 변수.$services_map = { http, https, smtp, domain, 9022 } $services_map = { domain, ntp } $localnet = { 10.1.0/24 } # 다양한 형식의 NAT이 지원됩니다. map $ext_if dynamic 10.1.0/24 - ext_if map $ext 포트 22 .프로시저 "log" {log: npflog0 } # # NPF에서는 그룹이 필수입니다. # 기본 그룹이 있어야 합니다.#  group "external" on $ext_if {  # Stateful passing of all outgoing traffic.  pass stateful out final all   block in final from <1>  pass stateful in final family inet proto tcp to $ext_if port ssh apply "log"  pass stateful in final proto tcp to $ext_if port $services_tcp  pass stateful in final proto udp to $ext_if port $services_udp   # Passiv달러ext_if 포트에 EFTP와traceroute 최종 패스 원생의 tcp에 상태 유지 49151-65535달러ext_if 포트 33434-33600}그룹"내부"달러int_if{결승전에서 모든 패스에달러localnet 최종 패스에 2><>에서 으레 RFC2827. 블록#Ingress, 최종 모든 정신을 필터링}그룹 기본에{최종lo0 알에 최종 원생의 udp에 네트워크 연결 상태를 통과한다.나는 block all }

레퍼런스

  1. ^ a b Rasiukevicius, Mindaugas (2012-10-17). "Introducing NPF in NetBSD 6.0". NetBSD-Announce (Mailing list).

외부 링크