---
title: "macOS 네트워크 감시 도구 Little Snitch, 리눅스 버전 출시 — eBPF 기반"
published: 2026-04-09T00:26:08.000Z
canonical: https://jeff.news/article/1635
---
# macOS 네트워크 감시 도구 Little Snitch, 리눅스 버전 출시 — eBPF 기반

macOS에서 유명한 네트워크 모니터링 도구 Little Snitch가 리눅스 버전을 출시함. eBPF 기반으로 동작하며 웹 UI를 통해 앱별 네트워크 활동 감시, 블록리스트 관리, 세밀한 규칙 설정이 가능함. 다만 eBPF의 구조적 한계로 macOS 버전 대비 패킷 추적 정확도에 차이가 있어 보안 도구가 아닌 프라이버시 도구로 포지셔닝함.

- macOS에서 네트워크 모니터링 도구로 유명한 **Little Snitch**가 드디어 리눅스 버전을 내놓음
  - 설치 후 터미널에서 `littlesnitch` 실행하거나 `http://localhost:3031/`로 접속하면 바로 사용 가능
  - PWA(Progressive Web App)로 설치도 되니까 크롬 계열 브라우저나 Firefox 확장으로 앱처럼 쓸 수 있음

### 연결 모니터링

- 핵심은 **connections 뷰** — 현재/과거 네트워크 활동을 앱별로 보여줌
  - 어떤 연결이 차단됐는지, 데이터 양은 얼마인지, 트래픽 히스토리까지 한눈에 확인
  - 정렬(최근 활동, 데이터 볼륨, 이름)과 필터링으로 수상한 트래픽을 빠르게 잡아낼 수 있음
  - 연결 차단은 **클릭 한 번**이면 끝
- 하단의 트래픽 다이어그램에서 시간 범위를 드래그하면 해당 구간의 활동만 필터링해서 보여줌

### 차단 목록과 규칙

- **블록리스트**로 원치 않는 트래픽을 카테고리 단위로 일괄 차단 가능
  - 도메인별, 호스트네임별, `/etc/hosts` 형식, CIDR 네트워크 범위 등 여러 포맷 지원
  - Hagezi, Peter Lowe, Steven Black, oisd.nl 같은 잘 알려진 목록을 바로 가져다 쓸 수 있음
  - 자동으로 원격 소스에서 다운로드하고 최신 상태로 유지해줌
  - 도메인 기반 목록이 호스트 기반보다 효율적이라 가능하면 도메인 기반 추천

> [!WARNING]
> macOS 버전의 `.lsrules` 포맷은 리눅스 버전과 **호환되지 않음**. 기존 macOS 규칙을 그대로 옮길 수 없으니 주의.

- **규칙(Rules)** 은 블록리스트보다 세밀한 제어가 가능
  - 특정 프로세스, 포트, 프로토콜을 지정해서 원하는 만큼 좁게 또는 넓게 설정

### 보안 설정

- 기본적으로 웹 UI가 로컬에서 **인증 없이 열려 있음**
  - 악성 앱이 규칙을 건드리거나 필터를 끄는 것도 이론적으로 가능
  - 걱정되면 인증 설정을 켜야 함 (Advanced configuration에서)

### 내부 동작 — eBPF 기반

- 리눅스 네트워크 스택에 **eBPF**로 훅을 걸어서 동작함
  - eBPF 프로그램이 나가는 연결을 감시하고, 데몬에 데이터를 전달
  - 데몬이 통계 추적, 규칙 처리, 웹 UI 서빙까지 담당
  - eBPF 프로그램과 웹 UI 소스코드는 GitHub에 공개되어 있음

### 고급 설정

- UI에는 기본 설정만 노출하고, 나머지는 **텍스트 파일**로 제어
  - `/var/lib/littlesnitch/config/`에 기본 설정이 있고, 수정할 파일을 `/var/lib/littlesnitch/overrides/config/`에 복사해서 편집
  - `web_ui.toml` — 주소, 포트, TLS, 인증 설정
  - `main.toml` — 규칙에 매칭 안 되는 연결의 기본 동작 (allow/deny). deny로 바꾸면 화이트리스트 방식인데, 자기 자신을 잠글 수 있으니 조심
  - `executables.toml` — 앱 그룹핑 휴리스틱. 버전 번호 제거, 셸/앱 매니저 프로세스 귀속 등
- eBPF 프로그램과 웹 UI 모두 직접 빌드한 걸로 교체 가능 — overrides 디렉토리에 넣으면 됨

### 한계점

> [!IMPORTANT]
> Little Snitch 리눅스 버전은 **프라이버시 도구이지 보안 도구가 아님**. 이 구분이 중요함.

- macOS 버전은 딥 패킷 인스펙션(DPI)으로 DNS 이름을 신뢰성 있게 추적하는데, 리눅스 버전은 그게 안 됨
  - eBPF의 구조적 한계 — 저장소 크기와 프로그램 복잡도에 엄격한 제한이 있음
  - 트래픽이 많으면 캐시 테이블이 오버플로우해서 모든 패킷을 프로세스/DNS 이름에 매핑하는 게 불가능해짐
  - IP 주소에서 원래 조회한 호스트네임을 복원하는 것도 휴리스틱에 의존
- 정상적인 소프트웨어가 몰래 어디에 접속하는지 감시하고 차단하는 용도로는 잘 맞지만, 결정적인 공격자를 막는 용도로는 부적절

---

## 기술 맥락

- Little Snitch가 리눅스에서 **eBPF**를 선택한 건 꽤 자연스러운 결정이에요. eBPF는 커널을 직접 수정하지 않고도 네트워크 스택 안에서 프로그램을 실행할 수 있거든요. 커널 모듈 방식보다 안전하고, 배포판 호환성 문제도 훨씬 적어요.

- 다만 eBPF의 한계가 곧 macOS 버전과의 격차를 만들어요. eBPF 프로그램은 커널이 허용하는 범위 안에서만 동작하기 때문에, macOS처럼 딥 패킷 인스펙션으로 DNS 요청을 직접 들여다보는 게 불가능해요. 그래서 "IP → 호스트네임" 매핑을 휴리스틱으로 추정하는 건데, 트래픽이 몰리면 캐시가 넘쳐서 정확도가 떨어지는 거예요.

- 아키텍처가 eBPF 프로그램 → 데몬 → 웹 UI 3계층으로 깔끔하게 분리되어 있어서, 각 컴포넌트를 독립적으로 교체할 수 있게 설계한 게 눈에 띄어요. 설정도 `/var/lib/littlesnitch/overrides/` 패턴을 써서 기본값은 건드리지 않고 오버라이드하는 방식인데, 리눅스 시스템 관리 관례를 잘 따르고 있어요.

- "프라이버시 도구 vs 보안 도구" 구분을 명시한 것도 중요한 포인트예요. 네트워크 모니터링 도구가 보안 솔루션으로 오해받기 쉬운데, eBPF 기반이라 완벽한 패킷 추적이 보장되지 않는다는 걸 솔직하게 인정하고 있어요.

## 핵심 포인트

- eBPF 기반으로 리눅스 네트워크 스택에 훅을 걸어 앱별 연결 모니터링
- 웹 UI(localhost:3031)로 연결 감시, 차단, 블록리스트 관리 가능
- eBPF 프로그램과 웹 UI 소스코드 GitHub 공개
- macOS 버전과 달리 DPI 불가능 — 프라이버시 도구이지 보안 도구가 아님
- 설정은 텍스트 파일 오버라이드 방식으로 고급 커스터마이징 지원

## 인사이트

리눅스 데스크톱이나 서버에서 어떤 앱이 몰래 어디에 접속하는지 궁금했던 개발자라면 바로 써볼 만한 도구. eBPF 소스도 공개되어 있어서 커스텀 네트워크 모니터링 도구를 만드는 참고 자료로도 좋음.
