스팸을 막기위한 노력 두번째


얼마전 “스팸을 막기 위한….” 글을 등록한적이 있습니다.

그 후로 몇달동안 Akismet+ 에서 잡아낸 스팸은 트랙백을 이용한 것들 몇개가 전부였는데, 근 이틀동안 갑작스럽게 60여개의 스팸이 들어와 있더군요.

우선 결론부터 말하자면, Akismet 하나면 쓸데없는 스팸들이 블로그에 등록되지는 않는다는 것입니다. Akismet을 사용하면서 스팸으로 분류되지 않고 블로그에 등록된 스팸은 두개 였습니다. 그 두개의 스팸을 통계DB에서 IP로 살펴본 결과 User_Agent에서도, 나머지 조건들에서도 스팸으로 의심할 여지가 없는 것들이었습니다. 그 중 하나는 초고속 통신에대한 광고였고, 나머지 하나는 몇일전 등록된 서적관련 사이트(링크를 클릭해보지 않아 확실치 않지만) 였습니다.

어쨓든 Akismet은 그 역할을 훌류히 소화해 내고 있다는거죠. 하지만 저로서는 가끔씩 확인하는 통계를 통해 블로그 트래픽이나 히트(hits)의 70% 이상을 점유하고 있는 봇(bot)들의 활약을 좋지 않은 시선으로 접할 수 밖에 없습니다. 성격이 워낙에 그렇다보니…:|

봇(bot)들 중 일부는 확실히 저도 인정하고 원하고 있는 검색 엔진들의 접근이지만 나머지 대부분은 단순 스팸봇들로서 쓸데없이 무작위적 힛트로 글에대한 링크를 확인한 뒤 스팸을 쏴대는 활약만 보여주더군요. 이로인해서 실제 페이지를 보지도 않으면서 힛트수만 1분을 전후로 26~28회 가량 증가시켜놓고 스팸하나 남겨놓고 바로 아이피를 바꿔서 같은 과정을 몇번인가 반복하고서는 유유히 사라집니다.

그래서 생각끝에 스팸을 막기위해 수정했던 워드프레스 원본 파일들을 원래대로 돌리고 스팸관련 플러그인들을 자세히 살펴보기로 했습니다. 최종적으로 제가 원하는 결과는 “의심할 여지 없는 스팸 리퍼러의 스팸등록은 애초애 막아버리고, 스팸이 아닐 여지는 있지만 스팸으로 의심되는 댓글이나 트랙백만 “임시 대기”상태로 분류되게 하는 것이었습니다.

이 중에서 후자는 Akismet이 훌륭히 역할을 다 하고 있으니 전자의 경우만 해결하면 되겠다는 생각입니다.

이 과정을 위해서 구글의 도움은 그다지 필요치 않았습니다. 워드프레스 플러그인 문서 중 스팸관련 도구 글에 충분히 다양한 기능을 보여주는 플러그인들이 소개되어 있었으니까요.

그중에서 가장 눈에 띄는것은 세가지 였습니다.

  • Akismet : 이건 현재 사용중이니 말 할 것도 없겠죠:)
  • Spam Karma 2 : 스팸에 관심을 가지기 전부터 워드프레스 관련 검색을 하며 몇번이나 접했던 이름입니다. 소개글을 살펴보니 정말 막강한 기능을 갖추고 있더군요.
  • Bad Behavior : 저는 이번에 처음 알게 되었지만, 기능면에서나 인지도 면에서 꽤 괜찮은 평가를 받고 있더군요.
  • 각 플러그인에 대한 내용은 직접 플러그인 페이지를 방문하시셔서 확인하는게 더 확실하고 빠를겁니다

이중에서 제가 선택한것은 Bad Behavior입니다. Spam Karma의 경우가 스팸에대해 어느정도 유순한 대응을 한다면, Bad Behavior는 아주 강경합니다. 스팸이 확실하다고 판단되되는 댓글, 트랙백, 피드접근등을 사전에 차단해 버립니다. 또 하나의 장점은 단지 워드프레스에만 국한되어 있지 않다는 겁니다. 기본적으로 “DotClear“, “Drupal“, “Geeklog“, “MediaWiki“, “WordPress“를 지원하지만, PHP에대해 어느정도 지식을 가진 사람이라면 PHP기반의 모든 도구들에 적용이 가능합니다.

여기서 발생할 가능성이 있는 문제가 있겠죠… 스패머가 아닌 보통 블로거가 등록한 댓글마저 차단될 가능성이 그것인데, 대략적으로 소스 코드를 살펴본 결과로서의 제 판단은 99.9%이상 그럴 가능성이 없다는 것입니다. 이에 더불어 차단된 댓글의 사용자 정보가 DB에 저장되기 때문에 추후 그 정보를 근거로 해서 허용목록(whitelist)에 따로 추가할 수 있으며, 이유없이 차단된 사용자에게 자신이 차단된 코드를 알려주어 블로그 관리자에게 메일로 신고 할 수 있는 환경도 제공됩니다.

어쨓든 그런 선의의 피해자 발생을 완전하게 막는것은 Akismet만을 이용하는 것이겠지만, 저는 강경대응쪽을 선택했습니다. 이것 또한 제 개인적인 성격으로 부터 나온 결론이겠죠..:roll:

이 글을 쭉 읽어보셨다면 이미 아실테지만, 기본적으로는 Akismet 이나 Spam Karma 하나면 거의 모든 스팸을 처리 할 수 있습니다. 다만 요즘처럼 광고성 글 등록기(스패머?)들이 대량 물량공세로 나오는 시점에서는 많은 분들이 저와 같은 생각을 가지게 되지 않을까 합니다. “스팸으로 분류되어 있는것 조차 보기 싫다.. 아예 접근을 막아버리고 싶다..”;)

마지막으로 Bad Behavior의 간단한 사용법입니다.
  • 플러그인 다운로드, 소개 : http://www.homelandstupidity.us/software/bad-behavior/
  • 다운받은 파일의 압축을 풀어 나오는 “Bad-Behavior” 폴더를 플러그인 경로(wp-content/plugins)에 업로드하신 뒤 플러그인 페이지에서 활성화 시키세요.
  • 설정 화면에서(Wp Admin > Options > Bad Behavior)에서 자신에맞는 선택을 해주시면 됩니다.
  • Statistics: 블로그의 하단에 차단된 스팸정보를 표시해 줍니다. 사용하지 않으려면 체크해제 하면 됩니다.
  • Logging: 체크 하면 모든 접근에대한 정보를 저장하게 됩니다. 기본적으로 차단되는 정보가 저장되므로 아주 특별한 경우가 아니라면 체크 해제 하시는게 좋습니다.
  • Strict Mode: 체크하시면 기업 네트워크나 정부 네트워크에 속해있는 사람들의 댓글까지 스팸으로 인식해서 차단하게 됩니다. 대신에 스팸 대처는 더욱 확실하게 되죠. 사용 여부는 블로그의 성격이나 블로그 관리자의 판단에 따라야겠죠.
  • 플러그인 사용이후 방문객으로부터 자신의 댓글이나 방문이 이유없이 스팸처리 되었다는 신고가 메일로 들어올 경우 신고자가 제공한 처리코드를 참고해서 플러그인 폴더 안에 있는 “whitelist.inc.php“에 방문객의 아이피를 등록하면 됩니다.
  • 허용목록(whitelist)등록법에 대한 간단한 설명입니다.

    아이피 맨뒤의 슬래쉬"/"는 범위를 지정할때 사용합니다. 위의 예를 보자면 "192.168.0.0 ~ 192.168.0.16"범위 내의 아이피를 허용하게 됩니다. 아이피 하나만을 지정할때는 위 코드에서 보여지듯이 "172.16.0.0" 처럼 슬래쉬 없이 적어주면 됩니다.


8 responses to “스팸을 막기위한 노력 두번째”

  1. 그렇군요;; 그렇다면 저도 Akismet과 bad-behavior 두 개를 같이 써봐야겠네요. ^^ 좋은 거 알려주셔서 고맙습니다.

  2. cheeky//
    오히려 권장되고 있어요. 세가지를 동시에 사용하는것에 대해서는 잘 모르겠지만 제 경우도 Akismet 과 Bad-Behaviour 두개를 같이 사용중이에요:-)

  3. trendon// 스팸… 정말 짜증나죠:|trendon님도 건강 조심하세요~

    roy// ready.com 이 주소인줄 잘못알았군요 헤헤. ‘준비중’이란 의미로 적으신 거였군요;)

  4. 감사 합니다. 지금 워드프레스로 전환 하루되어서 이것 저것 설정중인데요.

    너무 감사 드려요. 완성되면 인사 드리러 오겠습니다.

    참 그리고 혹시 코멘트 플러그인 소개해주실만 한것은 없을까요?

  5. 저도 요즘 부쩍 스팸 댓글이 마구 달리고 있네요.
    워드프레스 관리자 페이지에 접속하여 보면 코멘트가 달렸다는 (숫자) 표시를 보고 반갑게 클릭을 하면 영문으로 이해할 수 없는 알파벳의 나열이 쭈욱 이어진 것을 보곤 합니다. 저도 성격이 강경한 입장이라 Bad Behavior 를 운영하기로 하였답니다. 좋은 정보 감사합니다. 현재 댓글을 승인해주는 구조를 사용하고 있기는 하지만 그 조차도 귀찮네요. ^^ 날씨 추운데 감기 조심하세요.