블로그(웹사이트) 진짜 트래픽 도둑 잡기! 트래픽 누수를 막아보자. 트래픽 절약 후기

 예전 일시적(?)으로 방문자가 많아지면서 웹호스팅 업체를 바꾸게되었습니다. 기존 업체는 트래픽을 1기가로 사용했었는데 그것도 버거워서 업체를 바꾸면서 트래픽을 5기가까지 증설(?)하였습니다. 그래서 당분간은 별 문제가 없을거라 생각했었습니다.

 그런데 트래픽이 줄기는 커녕 더욱 늘어나기 시작했습니다. 방문자가 줄어드는데도 말이죠.;;

 그래서 부랴부랴 트래픽 절약을 위한 작전에 돌입하게 되었었죠. 그 결과를 일전에 포스팅 하기도 했었습니다.

 텍스트큐브(테터툴즈) 블로그 트래픽 줄이기 과정 – 1
 텍스트큐브(테터툴즈) 블로그 트래픽 줄이기 과정 – 2
 텍스트큐브(테터툴즈) 블로그 트래픽 줄이기 과정 – 3
 텍스트큐브(테터툴즈) 블로그 트래픽 줄이기 과정 – 4

 이 과정으로 불필요한 트래픽은 잘 차단하고 있겠지 싶어서 맘편히 지내던중!! 몇일전 트래픽이 5기가가 초과되어 웹페이지가 일시적으로 중단되는 상태가 발생했습니다. 더욱 큰 문제는 방문자는 지난번보다 훨씬 줄었다는것이죠;;;

 도저히 어디서 트래픽이 새어나가는지 도통 이해할 수 없었습니다. 게다가 제가 이용중인 웹호스팅업체는 별도의 로그분석기를 제공하지 않는터라 정말 막막했었습니다. 그나마 관리자분께서 힌트를 주신것은 일부 중국발 스팸리플 시도가 많아서 몇몇 IP를 차단했다는 이야기 정도였습니다.

 그런데도 트래픽은 줄어들 기미가 보이지 않았습니다. 그래서 거의 하루를 밤새다 시피해서 고민을 하여 드디어! 트래픽이 거의~ 정상화 되었습니다. 이 방법이 혹시나 필요한 분이 없진 않을까 싶어 간략하게나마 포스팅 합니다.

 이 작업에 대단히 큰~ 공을 세운 프로그램이 있었으니 바로 TraceWatch 입니다.

사용자 삽입 이미지
 호스팅 업체 이전하기 전에는 이미 설치해 사용했었습니다. 하지만 업체를 옮기고 나서는 그냥 단하나의 블로그만 운영할 예정이었기 때문에 그닥 필요성을 느끼지 못해 설치하지 않았었죠.

 이 트레이스와치 프로그램이 사실상 거의 모든 정답을 줘서 새삼 고맙다는 생각을 했습니다.

 일단 이 트레이스 와치는 어지간한 로그 분석기보다 좋습니다. 아쉽게도 전송량은 보여주지 못합니다. 그래서 사실 이것 하나만으로 정확히 데이터누수를 찾을 수는 없었습니다.

 일단 저는 방문자 체크를 텍스트큐브 내장 방문자 분석기와 구글에서 서비스하는 Analytics, 그리고 whos.amung.us라는 간단한 카운터를 사용중입니다.

 방문자 숫자는 텍스트큐브가 제일 크게 보여주고 있었고, 구글 애널리틱스가 가장 작게 보여주고 있었습니다. 지나고보니 구글이 가장 정확한 정상적(?)방문자를 보여주고 있었더라구요.

 우선 비정상적은 트래픽을 1차적으로 감지한것은 TraceWatch를 설치한지 얼마 되지 않았을때였습니다. 새벽시간이라 일반 유저들 접속이 많지 않아 방문자수는 수백 남짓한 상황이었는데 브라우저로 구분하는 카운터는 수천을 기록하고 있었습니다. 그것도 유저들이 가장 많을법한 익스플로러나 사파리가 아닌 크롬으로 말이죠.

 이게 무슨 일인가 싶어서 방문해서 다닌 기록을 보여주는 Latest Visitors기능으로 방문자들이 어떤 페이지들을 방문했나 보니 통상 제 블로그를 방문하는 사람은 대부분 1개의 글만 읽고 창을 닫거나 많아야 2개의 포스팅을 읽는 정도인데, 수십페이지를 1초마다 왔다갔다 하며 구석구석을 헤집고 다니는 비정상 방문자가 있었습니다. 국가도 중국이 단연 압도적이긴 했으나 중국 뿐 아니라 여러 국가에서 헤집고 다니는 기록을 확인할 수 있었습니다.

 이건 단순 검색엔진의 로봇이 아니었습니다. 로봇은 자신이 로봇이라 밝히고 다니는데 이놈들은 자신을 구글 크롬이라고 속이며 헤집고 다니는것이었습니다. 아마 스팸차단을 걸어놓지 않았다면 이들에 의해 제 블로그는 스팸으로 도배되어졌을겁니다.

 구글크롬 브라우저는 대부분 사용되는 스마트폰의 기본 브라우저로도 쓰이기 때문에 무작정 크롬을 차단할 수 없었습니다. 그래서 각종 정보를 찾다다닌 끝에 User Agent Strings 라는 항목에 대한 정보가 중요하다는것을 확인한뒤 이 정보 위주로 방문 기록을 다시 정렬 해보았더니 어마어마한 내용이 나왔습니다.

 몇개의 비정상적인 User Agents가 방문의 90% 넘기는 상황이었습니다. 게다가 이들의 방문기록을 확인했더니 모두가 수십페이지를 뒤적거리며 스팸을 남길곳을 찾는듯한 기록이 있었습니다.

 간단히 대표적인 스팸성 트래픽도둑 User Agents를 알려드리겠습니다. 저의 블로그 기준이었으니 다른분의 블로그는 다를 수 있습니다.

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727 ; .NET CLR 4.0.30319)

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Ubuntu Chromium/25.0.1364.160 Chrome/25.0.1364.160 Safari/537.22

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31

ozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.63 Safari/537.36

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36

PHP/5.2.10

 위와 같은 User Agent Strings 를 가진 방문자들은 정상방문자가 아니었고 트래픽 도둑의 주범이었습니다.

 대부분이 중국발이었으나 미국, 우크라이나 등등 국가 구분없이 트래픽을 소모시키고 있었습니다.

 그래서 아파치 .htaccess 파일을 이용한 BrowserMatch 기능을 활용해서 트래픽 도둑을 원천 봉쇄하기 시작했습니다.

 제가 이용중인 .htaccess 파일을 포스팅할테니 필요하신분은 참고하시기 바랍니다.

BrowserMatch “PHP/5\.2\.10” spam_agent
BrowserMatch “Ubuntu Chromium” spam_agent
BrowserMatch “Chrome/26\.0\.1410\.63” spam_agent
BrowserMatch “Chrome/27\.0\.1453\.110” spam_agent
BrowserMatch “Chrome/28\.0\.1500\.52” spam_agent
BrowserMatch “Chrome/28\.0\.1500\.63” spam_agent
BrowserMatch “Chrome/28\.0\.1500\.71” spam_agent
BrowserMatch “MSIE 6\.0” spam_agent
BrowserMatch “Firefox/22\.0” spam_agent
Order Allow,Deny
Allow from all
Deny from env=spam_agent

그런데 이것을 하나 해두었다고 안심하면 안되겠습니다. 왜냐하면 크롬 브라우저는 버전을 종종 바꿔가며 시도하기 때문에 새로운 브라우저 정보로 시도한다면 지속적으로 추가해야겠더라구요.

사실 1500.71 버전은 오늘 새롭게 등장한 놈이라 새롭게 추가한것입니다.

비정상적인 트래픽 때문에 맘고생을 은근 많이 해서 이놈들을 정말 응징하고 싶은데 겨우 하는거라곤 차단 뿐이니 너무 소극적인 대응이라 무척이나 아쉽네요.

이 작업의 결과 텍스트큐브에서 집계되는 방문자와 구글 Analytics에서 집계되는 방문자의 숫자가 거의 비슷하게 되었으며 트래픽은 5기가를 초과하던 상황에서 1기가 남짓으로 진정되고 있습니다. 물론 언제든지 새로운 스팸성 트래픽이 발생하겠지만, 이렇게라도 방법을 찾고나니 한결 마음이 편해지더군요.

 혹시나 저와 같은 문제로 고생중인 분이라면 이 방법을 시도해보시기 바랍니다.