처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.03.27 29

OpenBSD와 pf로 우리 집 네트워크에 '취침 시간'을 만들어봤습니다

Hacker News 원문 보기

집에서 인터넷이 자동으로 꺼진다면?

밤 11시가 되면 아이들 기기에서 인터넷이 자동으로 차단되고, 아침 7시가 되면 다시 연결되는 홈 네트워크. 이런 걸 공유기 설정 몇 번으로 할 수 있으면 좋겠지만, 대부분의 가정용 공유기는 이런 세밀한 제어를 지원하지 않아요. 한 개발자가 OpenBSD와 pf(패킷 필터)를 활용해서 이 문제를 직접 해결한 이야기가 꽤 재미있어서 소개해 드릴게요.

이 프로젝트의 핵심은 간단해요. 가정용 인터넷 게이트웨이(공유기 역할)를 OpenBSD 기반으로 직접 구축하고, pf라는 방화벽 도구의 시간 기반 규칙을 활용해서 특정 기기의 인터넷 접속을 시간대별로 제어하는 거예요.

OpenBSD와 pf, 이게 뭐냐면

OpenBSD는 보안에 극도로 집중하는 운영체제예요. 리눅스와 비슷한 유닉스 계열 OS인데, "기본 설치 상태에서 20년 넘게 원격 취약점이 단 2건"이라는 전설적인 보안 기록을 가지고 있어요. 서버나 네트워크 장비에 많이 쓰이죠.

pf(Packet Filter)는 OpenBSD에 내장된 방화벽이에요. 리눅스의 iptables나 nftables와 비슷한 역할인데, 설정 문법이 훨씬 읽기 쉽고 직관적이라는 게 장점이에요. "이 IP에서 오는 트래픽을 차단해라", "이 포트로 가는 패킷을 허용해라" 같은 규칙을 텍스트 파일에 작성하면 돼요.

어떻게 구성했을까

이 개발자의 홈 네트워크 구성을 살펴보면요. ISP에서 들어오는 인터넷 회선이 OpenBSD를 설치한 미니 PC에 먼저 연결되고, 이 미니 PC가 게이트웨이(공유기) 역할을 해요. 여기서 나온 네트워크가 일반 Wi-Fi 공유기(AP 모드)로 연결되어 가족들이 Wi-Fi를 쓰는 구조예요.

pf 설정 파일(/etc/pf.conf)에서 핵심이 되는 부분은 테이블(table)스케줄 개념이에요. 먼저 취침 시간 제한 대상이 되는 기기들의 MAC 주소를 DHCP 설정에서 고정 IP로 매핑해요. 예를 들어 아이의 태블릿은 항상 192.168.1.50을 받도록 설정하는 거죠. 그 다음 pf에서 이 IP들을 테이블로 묶고, cron(정해진 시간에 명령을 실행하는 도구)을 사용해서 밤 시간에는 차단 규칙을 활성화하고 아침에는 비활성화하는 거예요.

실제 pf 규칙은 놀라울 정도로 간결해요. block drop out on egress from <bedtime_devices> 한 줄이면 해당 테이블에 속한 기기들의 외부 인터넷 접속이 완전히 차단돼요. block drop은 패킷을 조용히 버리라는 뜻인데, 이러면 기기 입장에서는 인터넷이 아예 없는 것처럼 보이거든요.

cron으로 시간 제어하기

cron 설정도 아주 심플해요. crontab에 두 줄만 추가하면 되는데요:

밤 9시에 pfctl -t bedtime_devices -T add 192.168.1.50 192.168.1.51 명령으로 대상 기기들을 차단 테이블에 추가하고, 아침 7시에 pfctl -t bedtime_devices -T flush 명령으로 테이블을 비워서 차단을 해제하는 거예요.

이게 상용 공유기의 "자녀 보호" 기능보다 나은 점이 뭐냐면, 완전한 제어권을 가진다는 거예요. 특정 기기만 골라서, 특정 시간에, 특정 종류의 트래픽만 차단하는 것도 가능하거든요. 예를 들어 유튜브는 막되 학습 사이트는 허용한다거나, 주말에는 취침 시간을 늦추는 식의 세밀한 조정이 자유로워요.

리눅스로도 할 수 있을까?

당연히 가능해요. 리눅스에서는 iptables나 nftables로 비슷한 구성을 할 수 있어요. 다만 OpenBSD의 pf가 문법이 더 깔끔하고, OpenBSD 자체가 네트워크 장비로 쓸 때 안정성이 검증되어 있다는 장점이 있죠. 반면 리눅스는 하드웨어 지원이 더 넓고, 커뮤니티 자료가 훨씬 많아서 초보자 입장에서는 진입 장벽이 낮을 수 있어요.

비슷한 목적의 프로젝트로는 pfSense(FreeBSD 기반 오픈소스 방화벽)나 OPNsense, 또는 Pi-hole(라즈베리파이 기반 DNS 광고 차단기)이 있어요. Pi-hole은 DNS 레벨에서 차단하는 방식이라 시간 기반 제어와 결합하면 이 프로젝트와 비슷한 효과를 낼 수 있죠.

한국 개발자에게 주는 시사점

이 프로젝트가 재미있는 이유는 기술적 난이도 자체보다는 "일상의 문제를 네트워크 엔지니어링으로 풀었다"는 점이에요.

홈랩(Home Lab) 입문으로 좋아요. 집에 남는 미니 PC나 라즈베리파이가 있다면, OpenBSD나 리눅스를 올려서 직접 게이트웨이를 만들어보는 건 네트워크 기초를 배우는 최고의 방법 중 하나예요. NAT, DHCP, DNS, 방화벽 규칙 같은 개념을 실제로 다뤄볼 수 있거든요.

pf 문법은 네트워크 보안 입문에 추천할 만해요. iptables보다 읽기 쉬운 pf 규칙을 먼저 배우면, 방화벽과 패킷 필터링의 개념을 더 빨리 이해할 수 있어요. 나중에 클라우드 보안 그룹이나 쿠버네티스 네트워크 정책을 다룰 때도 이 기초가 큰 도움이 되죠.

IoT 시대에 홈 네트워크 보안은 점점 중요해지고 있어요. 스마트 가전, IP 카메라, 로봇 청소기 등 집 안에 연결된 기기가 늘어날수록, 기기별로 네트워크 접근을 제어할 수 있는 능력이 보안 측면에서 굉장히 가치 있어요.

한줄 정리

OpenBSD와 pf 몇 줄이면 가정용 공유기보다 훨씬 강력한 네트워크 제어가 가능하고, 이 과정에서 배우는 네트워크 기초는 어디서든 쓸모 있어요.

여러분은 집 네트워크를 직접 관리해 본 경험이 있나요? 혹시 홈랩을 운영하고 계신다면 어떤 구성을 쓰고 계신지 궁금해요!


🔗 출처: Hacker News

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.