제작 뒷이야기
Repel의 방화벽은 VPN 자리를 차지하지 않고 어떻게 작동할까요
llcloud 팀 3분 분량
빠른 답변
Android는 한 번에 앱 하나만 VPN 서비스를 쓰게 해서, 루팅 없는 대부분의 방화벽은 개인정보 보호 VPN과 함께 쓸 수 없어요. Repel의 방화벽은 VPN을 전혀 쓰지 않아요. 무선 디버깅으로 한 번 설정하는 작은 도우미가 Android 자체의 네트워크 제어로 고른 앱의 인터넷을 꺼요. Repel의 DNS 필터는 VPN 자리를 쓰는 별도의 계층이고, 휴대폰 안에서 DNS 조회만 처리해요.
Android에는 모든 개인정보 보호 앱의 모양을 정하는 규칙이 하나 있어요. 한 번에 앱 하나만 VPN 서비스를 쓸 수 있다는 거예요. 개인정보 보호 VPN에 돈을 내고 있다면 그 VPN이 자리를 차지하고 있고, 루팅 없는 대부분의 방화벽도 작동하려면 같은 자리가 필요해요. 그래서 사람들은 VPN과 방화벽 중에서 골라야 해요. Repel을 시작할 때 저희가 가장 먼저 고치고 싶었던 것이 고르지 않아도 되게 하는 거였어요.
이 글에서는 Repel의 방화벽이 어떻게 그렇게 하는지, 그리고 DNS 필터는 어떻게 작동하는지 쉬운 말로 설명해요.
대부분의 방화벽은 왜 VPN 자리가 필요한가요?
루팅하지 않은 휴대폰에서 일반 앱은 다른 앱의 네트워크 트래픽에 관여할 수 없어요. Android의 VPN 서비스가 열어 주는 유일한 문이에요. VPN이 된 앱은 트래픽을 보고 어떻게 할지 정할 수 있어요. 이렇게 만든 방화벽은 내가 고른 어떤 앱의 트래픽이든 버릴 수 있어요. 영리한 설계이고 수년간 잘 작동해 왔어요. Repel vs NetGuard에서 설명하고 있어요.
대가는 자리예요. 그 방화벽이 VPN인 동안에는 다른 무엇도 VPN이 될 수 없어요. 개인정보 보호 VPN을 켜면 방화벽이 멈추고, 반대도 마찬가지예요.
Repel은 VPN 없이 어떻게 앱을 막나요?
Android 자체에 앱 하나의 네트워킹을 끄는 스위치가 있어요. 시스템의 네트워크 제어에 속하고, Android 13 이상에서는 개발자 도구와 같은 수준의 접근인 휴대폰의 셸에서 켜고 끌 수 있어요. 일반 앱은 닿을 수 없어서, Repel은 컴퓨터도 루팅도 없이 그 수준의 접근을 얻을 방법이 필요했어요.
그 방법이 파워 모드예요. 설정할 때 한 번 무선 디버깅을 켜고 휴대폰에 Android가 보여 주는 코드로 Repel을 페어링해요. 그러면 Repel이 셸 권한을 가진 작은 도우미를 직접 시작해요. 도우미는 짧게 정해진 몇 가지 일만 하고 다른 일은 하지 않아요. 임의의 명령을 받지 않고, 받은 앱 이름은 모두 검사해요.
Repel의 앱 탭에서 앱을 끄면 도우미가 Android에게 그 앱의 네트워킹을 끄라고 요청해요. 그때부터 차단은 터널이 아니라 Android 자체의 네트워크 규칙 안에 있어요. 그래서 저희가 좋아하는 점이 몇 가지 생겨요.
- VPN이 연결된 채로 있어요. 방화벽은 VPN 서비스를 건드리지 않아서 개인정보 보호 VPN이 나란히 실행될 수 있어요.
- Repel을 닫아도 규칙이 유지돼요. 차단이 시스템 안에 있어서 Repel이 실행 중이 아니어도 그대로예요.
- 다른 방화벽을 존중해요. 다른 앱 중에도 같은 시스템 제어를 쓰는 것이 있어요. Repel은 바꾸기 전에 이미 차단된 것을 읽기 때문에 다른 앱이 정한 규칙을 끄지 않아요.
Pro에서는 더 똑똑한 규칙이 추가돼요. Wi-Fi에서만 온라인, 모바일 데이터에서만, 로밍 중에는 절대 안 됨, 화면이 꺼졌을 때나 취침 시간에 차단 같은 규칙과 집, 직장, 여행 프로필이에요.
DNS 필터는 무엇을 하나요?
방화벽은 앱이 온라인에 나갈 수 있는지 자체를 정해요. DNS 필터는 더 세밀한 수준에서 앱이 어디에 닿을 수 있는지를 정해요.
앱은 서버에 연결하기 전에 이름으로 서버의 주소를 물어요. 예를 들어 추적이나 분석 도메인이에요. 그 질문이 DNS 조회예요. Repel의 필터는 휴대폰에서 DNS 조회만 처리하는 로컬 VPN을 실행해요. 조회마다 내가 고른 차단 목록과 비교해요. HaGeZi, OISD, 1Hosts, StevenBlack 같은 목록이 추적기, 악성코드, 피싱, 사기 쇼핑몰, 휴대폰 제조사 텔레메트리를 다뤄요. 차단된 조회는 답을 받지 못해서 앱이 그 도메인에 닿지 못해요. 허용된 조회는 DNS over HTTPS로 암호화되어 내가 고른 서버로 나가요.
그 밖의 트래픽은 필터를 지나가지 않고, 저희에게는 아무것도 전송되지 않아요. 어떤 앱이 어떤 도메인을 조회했고 차단됐는지 보여 주는 활동 기록은 휴대폰 안에 남아요.
이 계층은 VPN 자리를 쓰는 유일한 계층이에요. Android는 다른 앱의 DNS 조회를 자기 쪽으로 돌릴 때만 볼 수 있게 하고, 루팅 없이 그렇게 하는 방법이 VPN 서비스예요. 그래서 개인정보 보호 VPN을 하루 종일 쓴다면 현실적인 구성은 방화벽에 개인 DNS를 더하는 거예요. 둘 다 자리를 비워 둬요.
개인 DNS는 어디에 들어가나요?
Android에는 모든 조회를 내가 고른 제공업체로 암호화해서 보내는 개인 DNS 설정이 기본으로 있어요. AdGuard DNS나 Quad9 같은 필터링 제공업체를 고르면 VPN 없이도 그쪽에서 모든 앱의 추적기와 악성코드 도메인을 막아 줘요. Repel이 그 설정을 원탭으로 바꿔 줄 수 있고, Repel을 닫아도 계속 작동해요. Android 개인 DNS 가이드가 이 설정을 더 자세히 설명해요.
정확히 맞춰야 했던 부분이 하나 있어요. 개인 DNS를 특정 제공업체로 정해 두면 조회가 그쪽으로 곧장 가서 휴대폰의 필터를 건너뛰어요. 그래서 Repel의 필터가 켜져 있는 동안은 Repel이 개인 DNS 선택을 잠시 치워 두고 필터가 멈추면 되돌려 놓아요. 그 사이에 바꾼 내용은 그때까지 기다려요.
뭔가 잘못되면 어떻게 되나요?
DNS 필터는 모든 연결의 경로에 있어서 실패의 무게가 다른 기능보다 커요. Repel이 쓰는 DNS 서버가 다운되면 필터는 인터넷을 끊는 대신 비켜서요. 차단 목록을 내려받지 못하면 Repel이 알려 주고 스스로 다시 시도하며, Android가 VPN을 허용하지 않을 때는 어떻게 하면 되는지 설명해 줘요.
DNS 필터가 할 수 없는 일도 분명히 말씀드려요. 필터는 도메인 이름 단위로 작동해서, 내가 요청한 콘텐츠와 같은 곳에서 오는 것은 건드릴 수 없어요. 예를 들어 Android TV에서는 동영상 스트림 안의 광고를 없앨 수 없어요. 추적기와 악성코드 도메인을 막는 것, 저희가 설명하는 것은 그게 전부예요.
어떤 계층을 써야 할까요?
계층 하나만 써도 되고 셋 다 써도 돼요. VPN 없이 추적기 차단하기 가이드가 구성 방법을 안내하고, Repel vs RethinkDNS는 같은 문제를 푸는 다른 접근과 비교해요. 무엇을 고르든 계정은 없고 광고도 없어요. 그 이유는 우리 앱에 광고가 없는 이유에서 설명해요.
질문
Repel의 방화벽과 내 VPN을 동시에 쓸 수 있나요?
네. Repel의 앱 방화벽은 Android의 VPN 서비스를 쓰지 않아서, 고른 앱의 인터넷을 끊어도 내 VPN은 연결된 채로 있어요. Android 13 이상과 휴대폰에서 무선 디버깅으로 한 번 하는 페어링이 필요하고, 컴퓨터도 루팅도 필요 없어요. VPN 자리를 쓰는 것은 Repel의 DNS 필터뿐이에요.
Repel의 DNS 필터가 내 모든 트래픽을 보나요?
아니요. 필터는 DNS 조회, 즉 앱이 도메인 이름이 가리키는 주소를 묻는 단계만 처리해요. 그 밖의 트래픽은 필터를 지나가지 않아요. 조회마다 휴대폰에서 내가 고른 차단 목록과 비교하고, 허용된 조회는 DNS over HTTPS로 암호화해서 나가요. 저희에게는 아무것도 전송되지 않아요.
Repel이 쓰는 DNS 서버가 다운되면 어떻게 되나요?
필터는 인터넷을 끊는 대신 비켜서요. 응답을 멈춘 DNS 필터는 모든 앱이 아무 데도 닿지 못하게 만들어서 필터가 없는 것보다 나쁘기 때문이에요. 차단 목록을 내려받지 못했거나 Android가 VPN을 허용하지 않을 때도 Repel이 알려 주고 어떻게 하면 되는지 안내해요.
개인 DNS를 쓴다면 DNS 필터가 꼭 필요한가요?
꼭 그렇지는 않아요. 필터링 제공업체를 쓰는 Android의 개인 DNS는 VPN 없이 모든 앱의 추적기와 악성코드 도메인을 막아요. Repel이 원탭으로 바꿔 줄 수 있어요. 필터는 나만의 차단 목록, 앱별로 무엇을 조회했는지 보여 주는 활동 기록, 앱 하나에만 적용하는 규칙이 필요할 때를 위한 거예요.