NPF(방화벽)
NPF (firewall)원저작자 | 민다우가스 라시우케비치우스 |
---|---|
초기 릴리즈 | 2012년 10월 [1] | , 전(
저장소 | |
기입처 | C |
운영 체제 | 넷BSD |
유형 | 패킷 필터, 방화벽 |
면허증. | BSD 라이선스 |
웹 사이트 | www.netbsd.org/~rmind/npf |
NPF는 BSD 라이선스스테이트 풀 패킷필터입니다방화벽용 소프트웨어의 중심 부분입니다.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 }
레퍼런스
- ^ a b Rasiukevicius, Mindaugas (2012-10-17). "Introducing NPF in NetBSD 6.0". NetBSD-Announce (Mailing list).