웹제로 호스팅의 modsecurity 차단 해제

signpen.net이라는 도메인을 소유하고 사용하면서 몇 가지 고민 아닌 고민이 있었다. 지금은 signpen.net이라는 도메인 하나만을 사용하고 있지만 얼마 전까지만 해도 signpen.pe.kr 도메인도 함께 소유하고 사용하고 있었다. 두 개의 도메인을 소유하고 있는 동안엔 net과 pe.kr 두 개의 도메인 모두 한 개의 서버로 접속이 되도록 설정하고 사용해 왔었다. 그런데 유독 signpen.net이라는 주소는 구글검색에 노출되지 않았었다. 당시엔 signpen.pe.kr 도메인을 먼저 사용했었고 중복되는 내용이 두 개의 주소에서 검출이 되니까 중복목록으로 들어가서 net 도메인의 주소가 노출되지 않는 것으로 생각했었다. 그런데 pe.kr 도메인의 사용 기간이 만료되어서 사용되지 않는 지금, 아직도 구글검색에선 signpen.net이라는 도메인이 검색 결과에 노출되지 않고 있다.

구글 사이트맵
그동안 내 블로그는 오류투성이에다가 구글봇은 07년 신정을 마지막으로 발길을 끊어버렸다.

아무래도 signpen.net이라는 도메인의 전 소유주가 이 도메인을 이용해서 불법적인 행위를 해서 구글검색에서 제외된 도메인일 것이라는 판단이 들어서 구글사이트맵을 이용해서 새로 소유하게 된 도메인이라는 내용의 글과 함께 재등록 요청을 보냈다. 그로부터 이틀 후 구글 색인에 내 도메인이 포함되었다. 그러나 여전히 검색에는 노출되지 않고 있다. 구글사이트맵 서비스에도 ‘HTTP 406 에러’라면서 구글봇이 내 사이트에 접속되지 않는 것으로 나오고 있다. 어째서일까 라는 생각이 들어서 관련될만한 키워드로 구글링을 해 보았다.

#modsecurity

몇 시간 동안 구글을 뒤져본 결과 내가 사용하고 있는 ‘웹제로‘라는 호스팅 업체의 문제로 결론이 나왔다. 웹 제로에서는 modsecurity 라는 보안에 관련된 아파치 모듈을 사용해 서버 레벨에서 모든 검색 로봇을 차단하고 있었던 것이었다. 구글봇 뿐만 아니라 야후봇, 네이버봇 모두 차단목록에 포함되어 있었다. 어쩐지 07년1월1일을 마지막으로 구글봇이 내 블로그에 들어오질 않고 있더라. ‘자주 먹통이 되곤 하지만 저렴해서 마음에 들었던 호스팅 회사였는데 결국 서버를 옮겨야 하나’라는 고민을 하고 있을 즈음에 간단하게 .htaccess파일 수정으로 해당 모듈을 사용하지 않는 방법을 찾아낼 수 있었다.

간단하게 계정에 있는 .htaccess파일에 3줄만 추가해주면 완료가 된다. 추가해야 할 내용은 아래와 같다.

SecFilterEngine Off
SecFilterScanPOST Off
SecFilterCheckURLEncoding Off

내용을 보면 알 수 있듯이 해당 모듈을 모두 off 시켜버리는 것이다. 아파치 서버를 사용하고 있지만 .htaccess파일이 생성되어있지 않다면 파일을 생성하고 위의 문장을 넣어주면 되고, 태터툴즈 유저의 경우엔 최상위 디렉터리에 존재하는 .htaccess파일을 찾아내서 맨 윗줄에 위에 있는 세 문장을 넣어주면 된다. .htaccess파일은 기본적으로 hidden 파일이므로 ftp 프로그램의 옵션을 통해서 숨겨진 파일을 보여주도록 설정하면 나타난다.

이렇게 설정을 넣어주고 나니까 일단은 잘 작동하는 것 같다. 검색에 노출되는 것은 며칠 기다려봐야 알 수 있으니 잠시 기다려봐야겠다. 예전엔 구글검색이나 야후검색, MSN검색을 통해서 내 블로그에 방문하는 숫자도 꽤 되었었는데 갑작스레 줄어들어서 무슨 일인가 의아해했었는데 이제야 문제를 알아내고 해결하게 되었다.

서버 레벨에서 이런 차단옵션을 만들어 두었으니 내 블로그의 평균트래픽이 이전의 호스팅을 이용할 때와 비교가 될 정도로 낮은 게 당연한 법. 덕분에 올블로그나 이올린이 아니고선 내 블로그는 인터넷이라는 방대한 공간 속에서 마치 무인도처럼 고립되어 있었다. 그나마 올블로그와 네이버의 협력 때문에 내 블로그의 글이 예전보다는 네이버에 많이 노출되었지만. 대신 ‘싸인펜’이라는 검색어로 구글 운 좋은 예감을 통해 내 블로그에 한 번에 접속되는 기분좋은 일과는 무척 거리가 멀어져버렸다. 구글검색을 통해서 내 블로그에 방문하는 사람의 숫자는 0이 되고 MSN이나 야후를 통한 방문도 거의 없다시피 했다.

#robots.txt

나처럼 블로그가 여러 가지 검색을 통해 노출되길 원하는 사람도 있겠지만 분명 그렇지 않을 사람들도 많을 것이다. 검색 로봇이 크롤링해가면서 발생하는 트래픽이 부담스러운 사람도 있을 것이고….

보통 검색봇을 차단하기 위해서 robots.txt파일을 생성해서 이용하는 방법이 있는데 태터툴즈 블로그에선 파일을 생성해서 내용물을 넣고 서버에 올린다고 해선 제대로 작동이 되질 않는 것 같다. 단적인 예로 robots.txt파일을 최상위 디렉터리에 업로드 했는데 ‘블로그 주소/robot.txt’로 접속을 하면 페이지를 표시할 수 없다는 에러 메시지만 나타나는 경우를 봐선 말이다. 내가 알기론 분명 robots.txt파일의 내용이 브라우저에 표시가 되어야 하는데 말이다.

그것은 태터툴즈 설치 시 자동으로 생성되는 .htaccess의 내용물 때문인데 기존에 있던 파일에 한 줄의 문구만 써 준다면 해결이 된다.

RewriteRule ^robots\.txt$ blog/robots.txt [E=SURI:1,L]

이런 방식으로 말이다. 뒤에 blog/robots.txt는 텍스트 파일이 실제 업로드되어있는 경로이고 앞의 내용은 ‘블로그 주소/robots.txt’ 형식으로 블로그에 접속을 했을 때 실제 파일이 있는 위치로 연결을 해 주는 것이다.

이렇게 해 두면 태터툴즈의 경우에도 ‘블로그 주소/robots.txt’라고 주소창에 입력하면 업로드한 robots.txt의 내용물이 웹브라우저에 표시가 된다. 종종 블로그에 robots 파일을 만들어서 업로드 해 두었는데 크롤러들이 규정을 무시하고 크롤링해 간다는 글을 본 적이 있었다. 태터툴즈의 경우라면 아마도 .htaccess파일을 손봐두지 않아서 그런 것이 아닌가 추측이 된다.

여러가지 노가다를 통해서 블로그를 새롭게(?) 셋팅 했다. 아.. 상쾌허다~S