관련게시물:

https://xetown.com/questions/1599450

 

이전의 Direct 방문자수가 허수 또는 봇에 의한 것일 가능성이 높다는 웹지기님의 분석에 따라

우여곡절 끝에 access.log와 error.log 화일들 다운로드 성공.

 

(혹시 저처럼 리눅스 명령어를 전혀 모르는 초보분들이 계시다면 WinSCP 라는 프로그램을 사용하니 거의 ftp 프로그램과 같은 경험으로 서버에서 화일을 받을 수 있었습니다. 파일 프로토콜 SCP 선택)

 

문제가 되는 날짜의 로그 화일들이 아슬아슬하게 남아있어서 떨리는 마음으로 열어보았는데

아뿔싸

열면 모해.. 아무것도 모르겠더군요.  수많은 행을 어떻게 분석해야할지 모르겠고 분석 툴도 찾아보다가 문제의 날짜 이후에 error.log 화일 용량이 급감한 것을 보고 access.log는 닫고 error.log 을 열어보았습니다.

 

errorlog.PNG

 

수없이 반복되는 똑같은 ip 주소와 내가 아는 단어 ddos (정확히는 antiddos라고 적혀있으니 조금 햇갈리네요)

 

ddos.PNG.jpg

 

결론은 악성 bot 이라고 봐야겠죠? 사이트 실사용엔 별 문제 주지 않았고 마치'게시판 조회수 증가 애드온' 구매한 것처럼 기분 좋은 착각에 빠져있도록 한 bot.. 고장난건지 여름휴가 갔는지..올림픽보러갔는지.. ddos 공격을 해도 눈치도 못챌 정도의 바보 관리자(=저)가 한심해서 떠났는지..  어쨌든 떠났습니다.

 

댓글로 도움주신 웹지기님과 공휴일에도 이메일 답변 주신 기진곰님 감사합니다!

  • profile

    nginx 에서 수초 이내에 반복해서 접속하면 차단하는 것이 적용되어 있을 겁니다. 그게 작동한 것이고 어떤 놈인지 확인하셔야 할 겁니다. 단순히 ip만 보시면 곤란한게 이런 놈들은 ip가 고정이 아닐수 있어서요.

     

    봇이 아니라면 누군가가 특정하여 계속 서버에 부하를 줄 목적으로 ddos 공격을 했을 수 있구요.

    이런 경우라면 ip로 차단하는게 맞을 것이구요.

     

    쉽게 다시 이야기 하면,

    봇인지 아니면 공격인지 파악하여 봇이라면 유저에이전트로 차단, 그게 아닌 일반적인 유저에이전트로 공격한것이라면 ip로 차단 해야 할 듯 하네요.

  • profile profile
    그렇군요..
    117.52.152.75 - - [25/Jul/2021:06:37:00 +0900] "GET / HTTP/1.1" 301 178 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/78.0.3882.0 Safari/537.36"

    access.log 화일을 열어보면 이런 행들이 있는데 어떤 부분을 봐야할지 모르겠습니다.
    117.52.152.75는 검색해보니 한국 소재입니다. AppleWebKit 이라던지 Gecko 라던지.. 접속기기나 브라우저 환경일 것 같고요. "어떤 놈"인지 알 수 있는 방법이 달리 있을까요?
  • profile profile

    어떤 봇이 계속 크롤링을 했던 것 같습니다. 의외로 웹상에는 웹사이트들을 계속 크롤링 하는 악성 봇들이 많습니다.

    https://xetown.com/questions/1362466

    저희도 경험한 비슷한 케이스인데 크롤러 일 것이라 nginx 에서 Headless를 포함한 유저에이전트 자체가 접속되지 않도록 처리했습니다.

     

    저는 서버 세팅은 기진곰님께서 해주셨는데 기본적으로 악성 유저에이전트 몇개 막아놓은 것이 되어 있어서 거기에 추가를 했습니다.

     

    현재 제가 추가한 놈들

    https://rxtip.kr/free/2236

  • profile profile
    아 headless.. 그렇군요. 저도 기진곰님 서버 세팅해주셔서 똑같이 block.conf 에 추가하고 싶은데 혹시 화일위치가 어디에 있을까요? 저도 죄다 추가하고 싶습니다.
  • profile profile
    etc/nginx/snippets/
    위 경로에 block.conf 파일에 구문이 있습니다.

    저희는 서버세팅 후 추가한 것들이 있어서

    if ($http_user_agent ~ (Wget|WordPress/|AhrefsBot|BLEXBot|DotBot|SemrushBot|MegaIndex|UCBrowser|Mb2345Browser|MicroMessenger|LieBaoFast|Headless|netEstate|newspaper|Adsbot|PetalBot|MJ12bot)) {
    return 403;
    }
  • profile profile
    오늘 종일 도움을 받았습니다. 감사합니다.

    저희는 같은 경로에 block-bots.conf 라는 이름으로 있네요^^
    이제 리부팅만 하면 되겠군요!

    잘가요 조회수 요정~ 아니 봇~
  • profile profile
    리부팅 안해도 됩니다. nginx restart 정도만.... 혹은 reload 정도로도....
  • profile profile
    앗 service nginx reload로 했습니다! restart 검색해보니 무서운 내용들이 나오더군요
  • profile profile

    두가지는 큰 차이가 없어서 겁내지 않으셔도 됩니다. 리부팅은 위험해요. 물론 리부팅이 필요하긴 하지만 가급적 특별한 기회가 올때까지 안하는게 더 좋죠. (리부팅은 서비스 단절 후 복구까지 긴시간 및 리스크...)

  • profile

    구글 애널리틱도 잘못했네요. 봇은 통계에 잡아주면 안되죠. 구글측에서 구분하는 것은 식은죽 먹기일텐데 말이죠(봇이 위장을 하더라도 다른 애널리틱 접속 사이트들 기록과 비교해보면 봇인지 쉽게 찾아낼수 있을테니).

  • profile profile
    그러니까요ㅜ 구글 애널리틱스 실망ㅜ
  • profile profile

    엄밀히 말하면 봇이 아닙니다. 그리고 정말 악성봇들은 봇이 아닌 것으로 위장하기도 하구요. 이번 케이스는 봇은 아니지만 악성이긴 합니다. 봇이 아니라기도 하기도 애매하지만...
    예를 들면 개인이 특정 사이트의 게시글을 파싱하기 위해 크롤링 하는 것일 수도 있구요. 구글탓을 하기에는 구글이 억울하지요.

    그리고 구글에서 봇으로 분류를 해줘서 이 통계를 빼버리면....   알수 없는 트래픽 소모의 징조나 원인을 서버를 직접 모니터링 하기 전까지는 알 수도 없습니다.

     

    그래서 처음 의견 드릴때도 봇으로 분류되지 않는 어떤 대상을 찾아야 한다고 했던 것이구요.

  • profile profile
    그 봇(혹은 봇 같아보이는)이 글쓴분 사이트에만 접속해서 그랬다면, 구글이 억울하기는 합니다 ㅎㅎ... 만약, 다른 사이트들도 돌아다니며 같은 행패(!)를 부리는 봇(혹은 봇 같아보이는)이라면, 구글이 찾아서 통계에서 빼줘야 옳구요. 구글 애널리틱은 트래픽 통계를 위해서가 아니라, (실제) 사용자 통계와 사용자들의 사용패턴 분석을 위해 쓰는 것이니까요.

    구글 애널리틱이 무료 서비스이기는 하지만, 구글측에는 무료가 아니죠. 웹사이트 접속 통계를 통채로 넘겨 받는 것이니 구글측에 엄청난 검색 및 광고 자산이니까... 이걸 깔면 구글이 나에게 오히려 돈을 줘야는 것이 맞는데... 솔직히 통계를 위해 쓰기는 하는데, 찜찜합니다. 나보다도 내 사이트를 더 잘 알게 되니까요 ㅠㅠ.