First thoughts of pfSense+
OPNsense에서 pfSense로 변경 후 느낀점 요약
Key | Value |
---|---|
pfSense+ | 23.01 |
기성 공유기를 firewall + switch + 무선 AP로 분리할 때 가장 고민했던 부분 중 하나는 firewall을 OPNsense와 pfSense 중 어느 것을 사용할 것인가 였다. 최종적으로 OPNsense를 선택하였는데, 이유는 그 당시 조사해 본 결과 기능상 둘은 거의 비슷하지만 OPNsense가 Wireguard를 더 잘 지원하는 것처럼 보였고, 결정적으로 OPNsense가 오픈소스였기 때문이었다.
하지만 지난 몇 달 동안 OPNsense를 사용하며 매우 만족하였지만, 마이너한 이슈를 경험하였다. 그러면서 pfSense의 개발/상업적인 프로세스에 대해 알게 되고, 또 pfSense의 BSD 커널 contribution에 대해 알게 되면서 pfSense를 support 해주고 싶었다. 그러던 어느 날 기존에 잘 사용하던 OPNsense를 pfSense로 재설치하였고, 몇 주간 사용해 본 결과 pfSense에 매우 만족하고 있다.
pfSense와 OPNsense에 대한 경험과 사용기에 대해 자료가 없기에 여기에 간단히 개인적인 느낌을 기록해 놓는다.
pfSense CE vs pfSense+
이 토픽에 대해서는 여러 소스가 있기에 자세한 내용은 생략한다. 간단하게 pfSense CE는 오픈소스이고, pfSense+는 CE 버전에 기능 추가한 상업용 fork 버전이다.
하지만 개발 방향은 pfSense+를 먼저 개발하고, 그중 core 부분은 CE버전으로 오픈하는 형태로 진행되고 있다. 그렇기에 CE 버전과 plus 버전의 갭은 점점 벌어질 것으로 예상하고 있다.
Plus 버전의 라이센스는 기업을 타겟으로 하기에 개인이 사용하기에는 부담스럽지만, pfSense+는 개인 사용자에게는 무료 라이센스로 제공되고 있다.
설치 방법
pfSense+는 설치 파일이 제공되지 않는다. 설치를 위해서는 CE 버전을 설치한 후 CE 버전에서 Plus 버전으로 업그레이드해야 한다.
하지만 현재 (2023/5) CE 최신 버전인 2.6은 내가 사용하는 mini PC의 최신 인텔 NIC인 i226V를 지원하지 않는다 (BSD 커널에서 NIC 미지원). 그래서 CE 2.6을 설치할 수 없기에 Plus 버전을 설치할 수 없었다. 그리고 이 문제는 CE 2.7에서 해결될 예정이었다.
CE 2.7이 계속 늦어지는 가운데, 다행히 CE 2.7 23/2/15 snapshot에서 pfSense+ 23.01 업그레이드가 지원된다는 소식을 pfSense 포럼에서 보았고, 결과는 다행히 잘 설치되었다.
pfSense+ 23.01
pfSense+를 사용하면서 느낀 점은 pfSense의 완성도가 OPNsense보다 조금 더 높다는 것이다. 완성도는 아마 상업용 라이센스와 연관되었기 때문이다.
사용하면서 중요하다고 느낀 점을 요약하면 다음과 같다.
pfSense+ (23.01) | OPNsense (23.1) | ||
---|---|---|---|
기능 | Firewall | 동일 | 동일 |
기능 | Wireguard | 지원 (kernel space) | 지원 (kernel space) |
기능 | DNS 기반 광고 차단 | pfBlockerNG를 통한 더 뛰어난 block list 관리 및 자세한 리포팅 제공 | Unbound를 통한 block list 관리. OPNsense를 통한 간단한 리포팅 제공 |
기능 | Firewall GeoIP 설정 | GUI에서 maxmind ID/password 기입하면 완료. 주기적 자동 업데이트도 동작. | GUI에서 maxmind ID/password 기입하면 완료. 하지만 주기적 자동 업데이트 기능 미동작 (버그 추정) |
기능 | ntopng의 GeoIP 설정 | GUI에서 maxmind ID/password 기입하면 완료 | ssh로 들어가서 maxmind 설정 파일 수동 생성 필요 |
기능 | System Information Widget | 보다 자세한 정보 표기 | 간단한 정보 표기 |
기능 | pfBlockerNG Widget | block list로 차단된 사이트 정보 자세히 표기 | 동일 기능 없음 (차단된 사이트 정보 알기 어려움) |
안정성 | 업데이트 | 상대적으로 적은 업데이트. 아직까지는 업데이트로 인한 문제 없었음 | 상당히 자주 발생하는 업데이트. 업데이트는 좋으나 기존 업데이트로 생긴 버그 픽스하는 업데이트가 생각보다 많았음. |
안정성 | ntopng | 문제없이 24/7 실행되고 있음 | 일주일정도 실행하면 ntopng가 정지되어 있었음. Crash 등으로 서비스 중지되는 것으로 보임 |
Integration | 시스템 | 시스템과 개별 package간 integration이 더 잘되서 동작함, e.g., 하나의 System DNS 설정 | 시스템과 package간 따로 동작하는 부분이 있음, e.g., 분산된 System DNS 설정 |
pfSense+는 BSD 커널 contributor라고 한다. 또한 Wireguard kernel 모듈도 여기서 개발하였다. 이렇게 개발된 BSD 커널은 OPNsense 등 여러 곳에서 사용되고 있다. BSD 커널 개발을 위해 개발자를 hire하고 이 비용은 상업 pfSense+ 라이센스에 포함되어 있다.
몇 주간 pfSense+를 사용해 본 결과 매우 만족스럽다. 아직 안 건드려 본 기능이 많기에 계속 사용해 보며 기능을 살펴봐야겠다.