컴퓨터 / IT

OpenWrt 공유기에 광고차단 설치

드라이빙필 2020. 8. 29. 12:37
반응형

가면 갈수록 심해지는 웹페이지나 유튜브의 광고 때문에 짜증 많이 나시죠? 콘텐츠를 만드는 사람들의 수고로움을 알기에 어느 정도는 감수하면서 사용하는 게 맞다고 생각은 합니다만 도가 지나치는 경우도 많이 있습니다. 그래서 광고 차단 앱을 사용하시는 분들도 많은데 저 또한 PC용 크롬에 Adblocker 확장 프로그램을 사용하고 있었습니다. 그러다가 최근에 핸드폰에서도 광고 차단을 하고 싶다는 생각이 들어 방안을 찾아보기로 했습니다. 광고 차단 앱을 설치하는 것도 한 방법이지만 은근히 배터리를 소모하는 느낌이 들더군요. 그래서 밖에 나갈 때만 앱을 사용하고 집이나 회사에서는 다른 방법을 사용하기로 했습니다.

OpenWrt 공유기에 설치할 수 있는 Ad blocker 패키지들이 있는 건 알고 있었지만 공유기에 광고차단을 걸어 두면 본의 아니게 부작용도 있는지라 미뤄왔던 것도 사실입니다. 하지만 공유기에만 한 번 설치하면 모든 디바이스들이 함께 광고 차단이 되면 건 거부할 수 없는 유혹이긴 하죠. 그래서 이 참에 설치하면서 기록을 남기고자 합니다.

OpenWrt에 사용할 수 있는 패키지는 adblock과 simple-adblock이 있는데 이 중에 simple-adblock이 이름 그대로 더 심플합니다. ^^ 하지만 기능도 단순하고 필터 추가에 제약이 있기도 해서 예전에 잠깐 써보다 말았던 기억이 있습니다. CPU 성능이 낮거나 RAM 용량이 128MB보다 적은 공유기가 아니라면 저는 개인적으로 adblock를 추천드립니다.

먼저 adblock을 설치하는 방법은 간단합니다. 

opkg update
opkg install luci-app-adblock tcpdump-mini

설치가 끝난 후 공유기 홈페이지에 접속해 보면 아래와 같이 메뉴가 추가되어 있습니다. 만약 설치하면서 에러 메시지가 나오거나 또는 홈페이지에서 에러 메시지가 나오면 공유기를 재시작한 후 다시 접속하시면 됩니다.

Services 밑에 Adblock 메뉴가 보이죠? 거길 클릭하면 adblock의 상태가 보입니다. enabled라고 되어 있고 Blocked Domains 에 4만 개 정도(글 쓰는 시점 기준)가 표시되면 정상입니다. 만약 0으로 표시된다면 필터를 다운로드하지 못한 상태이므로 오른쪽 하단에 있는 Refresh 버튼을 눌러주시면 됩니다.

그다음에 화면 아래로 이동해서 DNS Report에 체크를 해 줍니다. 이 기능을 사용하지 않아도 광고 차단에는 문제가 없지만 차단 상태를 모니터링하고 Blacklist/Whitelist를 관리하기 위해서는 필요합니다. adblock 설치할 때 tcpdump-mini를 함께 설치한 이유이기도 합니다.

위에서 본 Adblock 설정 화면을 보면 Active Sources 에 adaway, adguard, disconnect, yoyo라고 되어 있는 걸 볼 수 있습니다. 이는 광고를 차단하기 위한 필터 목록인데 성능상의 이유로 최소한으로만 구성해 놓은 듯합니다. 그런데 주로 외국 사이트 위주로 차단이 되는지라 추가가 필요합니다. adblock에서는 사용 가능한 필터(Source)가 많이 준비되어 있으며 그중에 한국 전용도 하나 있습니다.

Settings 탭에서 Blocklist Sources를 선택하고 Sources를 클릭해 보면 많은 목록이 나오는데 저는 이 중에서 reg_kr과 youtube를 추가해 줬습니다. Save&Apply 버튼을 눌러주고 잠시 기다리면 아래와 같이 바뀌는 것을 볼 수 있습니다.

Blocked Domains 수가 증가하고 Active Sources에도 추가가 되었습니다. 만약 공유기의 RAM이 256MB 또는 그 이상이라면 덩치가 큰 필터도 사용이 가능합니다.

 

openwrt/packages

Community maintained packages for OpenWrt. Documentation for submitting pull requests is in CONTRIBUTING.md - openwrt/packages

github.com

adblock README 정보를 보면 각 필터에 따라 메모리 용량이 어떻게 되는지 자세히 설명되어 있으니 참고하시기 바랍니다. 필터가 많으면 차단도 잘 되겠지만 CPU 부하가 커지고 RAM을 많이 사용하므로 적절한 성능과 효과를 보기 위해 잘 고려해야 됩니다.

여기까지 세팅을 마친 상태에서 제 공유기의 남은 RAM 용량을 살펴보니 176MB입니다. 필터 정보까지 다운 받은 상태이며 adblock이 동작하면서 로그를 남기게 되는데 최대 5MB 정도까지 늘어나므로 170MB 정도 남아있다고 보면 됩니다. 참고로 회사에서 사용하는 공유기는 128MB짜리다 보니 40MB 근방까지 떨어지더군요.

 

EnergizedProtection/block

Let's make an annoyance free, better open internet, altogether! - EnergizedProtection/block

github.com

용량이 큰 필터들 중에 energized_blu를 골라 봤습니다. energized 시리즈는 여러 필터를 모아서 만든 필터이며 용량별로 여러 셋을 가지고 있습니다. 큰 거 하나 사용하면 꽤 많은 차단이 가능합니다만 그만큼 자원을 많이 먹습니다. 저는 제 공유기의 성능을 고려했을 때 energized_blu 정도면 괜찮을 듯 싶더군요. Save&Apply 버튼을 누르고 나니 갱신되는데 시간이 좀 걸립니다. 그 결과는...

10만 개 증가!! 그렇다면 RAM 사용량은 어떨까요? 

20MB 정도 줄어들었습니다. 이 정도에서 쓰면 적당하지 않을까 싶네요.

이제 기본적인 설정을 마쳤으니 필터를 주기적으로 갱신하기 위해서 스케줄을 추가하고자 합니다. cron 서비스에 등록하는 절차인데 메뉴에서 간편하게 설정할 수 있게 되어 있습니다.

Refresh Timer 버튼을 누른 후 Restart를 선택하시고 적당한 시간을 적으시면 됩니다. 저는 새벽 4시로 설정했고 매일 업데이트를 하기 위해 마지막 칸에 *를 넣어주었습니다. 1주일에 한 번만 하고 싶다면 1-7(월요일-일요일 순) 중에 하나 넣으시면 됩니다. Save 버튼을 누른 후 System -> Startup 메뉴에 가서 cron을 찾은 다음 Restart 버튼 한 번 눌러 주세요.

이제 준비는 끝났으니 인터넷을 즐기시면 됩니다. 광고차단이 잘 되는지 확인하고 싶으시면 Adblock 메뉴에서 DNS Report 탭으로 이동합니다. 첫 화면에는 아무 정보도 나오지 않는데 이는 자동으로 갱신되지 않는 화면이며 로그가 많이 쌓이면 화면 업데이트하는데 시간이 조금 걸리기 때문에 수동으로만 갱신되는 듯합니다. 오른쪽에 있는 Refresh 버튼을 누른 후 나오는 화면에서 Refresh 버튼을 누른 후 잠시 기다리면 아래와 같이 자세한 정보를 볼 수 있습니다.

이때 하단부에 보이는 OK와 NX를 확인하시면 어떤 도메인들이 허용/차단되는지 알 수 있으며 필요하다면 Blacklist 또는 Whitelist에 바로 추가할 수 있습니다. 그리고 특정 도메인이 차단되는지 검색해 보고 싶다면 Refresh 버튼 왼쪽에 있는 Blocklist Query 버튼을 이용하시면 됩니다. 주소만 입력하면 어떤 Sources에 의해 차단이 되는지 볼 수 있습니다.

이상으로 adblock에 대한 설치 과정을 마치겠습니다. 집에서 사용하는 많은 장비들이 모두 광고 차단이 되니 너무 좋네요. ^^; OpenWrt 사용하시는 분들은 꼭 한 번 설치해 보시길 바랍니다.

반응형

'컴퓨터 / IT' 카테고리의 다른 글

라이젠 3800XT  (0) 2020.10.25
윈도우 디펜더 보호기록 삭제  (0) 2020.09.05
고속 충전기 Baseus Galio  (0) 2020.08.01
라이젠 4500U 노트북 Acer Swift SF314-42  (0) 2020.05.30
ROG Spotlight  (0) 2020.04.26