PF (방화벽)

PF(Packet Filter, pf)는 BSD 라이선스가 적용된 상태 보존형 패킷 필터로, 방화벽 구성을 위한 핵심 소프트웨어이다. 넷필터 (iptables), ipfw, ipfilter 등과 비교된다.

PF는 OpenBSD를 위해 개발되었으나, 이후 다른 많은 운영체제로 이식되었다.

 역사 
PF는 원래 대런 리드의 IPFilter를 대체하기 위해 설계되었으며, 규칙 구문의 많은 부분을 거기에서 따왔다. OpenBSD 개발자들은 IPFilter의 라이선스에 대한 우려로 인해 2001년 5월 30일 OpenBSD의 CVS 트리에서 IPFilter를 제거했다.

PF의 초기 버전은 다니엘 하트마이어가 작성했다. 이 버전은 2001년 12월 1일에 출시된 OpenBSD 3.0에 처음 등장했다.

이후 헤닝 브라우어와 라이언 맥브라이드에 의해 대대적으로 재설계되었으며, 대부분의 코드는 헤닝 브라우어가 작성했다. 헤닝 브라우어는 현재 PF의 주요 개발자이다.

 기능 
필터링 구문은 IPFilter와 유사하지만, 더 명확하게 일부 수정되었다. 네트워크 주소 변환 (NAT) 및 QoS (서비스 품질) 기능이 PF에 통합되었다. 장애 극복 기능 및 중복성을 위한 pfsync와 CARP, 세션 인증을 위한 authpf, 그리고 다루기 까다로운 FTP 프로토콜의 방화벽 처리를 돕는 ftp-proxy와 같은 기능들도 PF를 확장시켰다.
또한 PF는 대칭형 다중 처리 (SMP) 및 상태 추적 옵션 (STO, Stateful Tracking Options)을 지원한다.

PF의 혁신적인 기능 중 하나는 로깅이다. PF의 로깅은 pf.conf 내에서 규칙별로 설정할 수 있으며, 로그는 pflog라는 가상 네트워크 인터페이스를 통해 PF에서 제공된다. 이는 커널 수준 모드에서 사용자 수준 프로그램으로 데이터를 끌어올리는 유일한 방법이다. 로그는 Tcpdump와 같은 표준 유틸리티를 사용하여 모니터링할 수 있으며(OpenBSD에서는 이 목적을 위해 특별히 확장됨), pflogd 데몬을 사용하여 Tcpdump/Pcap 바이너리 형식으로 디스크에 저장할 수 있다.

 포트 
PF는 고향인 OpenBSD 외에도 많은 다른 운영체제로 이식되었으나, 기능 면에서는 큰 차이가 있다. 일부 포트는 수년 전의 버전에 머물러 있기도 한다. OpenBSD는 항상 가장 많은 기능을 갖춘 최신 버전을 보유하고 있다.

PF는 현재 다음 환경에서 사용된다:
 FreeBSD (버전 5.3부터)
 애플 MacOS (스노 레퍼드, Mac OS X 10.6부터)
 애플 IOS 및 IPadOS (모든 아이폰 및 아이패드에서 사용)
 NetBSD (버전 3.0부터)
 DragonFly BSD (버전 1.1부터)
 Debian GNU/kFreeBSD
 PfSense
 오라클 솔라리스
 QNX 및 이를 사용하는 다수의 블랙베리 스마트폰 모델

 같이 보기 
 인터넷 프로토콜 스위트

 각주 

 참고 문헌 






 외부 링크 



 OpenBSD PF 가이드
 Firewalling with PF: 피터 N. M. 한스틴의 PF 튜토리얼
 OpenBSD/pf Firewalling For the Less Gifted

분류:방화벽 소프트웨어
분류:OpenBSD
분류:BSD 소프트웨어
분류:BSD 라이선스 소프트웨어
분류:MacOS