질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

CoedRed Virus에 의한 Apache Log문제

작성자 정보

  • kalla 작성
  • 작성일

컨텐츠 정보

본문

CodeRed에 의한 공격은 일반적으로 NT서버를 공격한다고 알려져 탓에
리눅스를 관리하시는 관리자님들이 안심하고 있었는데 실제로는 아파치의
로그화일에 일정한 패턴의 로그가 반복적으로 기록되면서 로그화일 증가로
인하여 서버가 다운되는 지경에 이른 분들도 있을 것입니다.
나름대로 로그화일을 정리하는 방법을 이곳에 올리니 도움이 되었으면 합니다.
 
이 방법은 아파치 로그화일에 mod_setenvIf 모듈을 이용하는 것으로 통상적으로는 이미지
화일과 관련한 로그를 삭제하는데 사용되나 NameVirtualHost를 사용하는 경우
하나하나 모두 수정을 해주어야 하는 불편을 줄여보고자 동원한 편법으로
관리자님들의 판단하에 적용해주시기 바랍니다.
 
먼저 httpd.conf화일에서 다음라인을 찾아 추가해줍니다.
httpd.conf의 초기값에는 아무런 설정이 되어있지 않을 것입니다.
그런 경우에는 LogLevel warn라인 바로 아래에 추가해주시면 됩니다.
 
LogFormat “%h %l %u %t ”%r” %>s %b” common
SetEnvIf Request_URI .gif$ image=gif
SetEnvIf Request_URI .jpg$ image=jpg
CustomLog logs/access_log common env=!image
 
여기에 CodeRed의 패턴인 default.ida를 로그에 기록하지 않게하기 위해서
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
LogFormat "%h %l %u %t "%r" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
SetEnvIf Request_URI .ida image       //CodeRed관련 추가 항목
SetEnvIf Referer .ida image           //CodeRed관련 추가 항목
SetEnvIf Request_URI .gif$ image=gif
SetEnvIf Request_URI .jpg$ image=jpg
 
이렇게 하시면 통상적인 Common로그에 이미지 관련 로그를 적지 않게됩니다.
거의 대부분의 사이트에서 하나의 html을 구성하기 위해서 많은 이미지 화일을 사용하게되는 점을
가만한다면 반드시 이미지 관련 로그는 적지 않아야 로그화일 비대를 막을 수 있을 것입니다.
 
이렇게 하셨다면 이제는 VirtualHost설정 부분을 아래와 같이 추가해줍니다.

    ServerAdmin root@aaa.to.kr
    DocumentRoot /home/aaa/public_html
    ServerName aaa.to.kr
    ServerAlias aaa.to.kr www.aaa.to.kr
    ErrorLog logs/www.aaa.to.kr-error_log
    CustomLog logs/www.aaa.to.kr-access_log common env=!image  //위에서 설정한 내용을 반영하기 위하여 추가하는 라인입니다.

 
이렇게 하신뒤에서 아파치를 재시작하세요.
그리고 난 뒤에 로그를 감시해보시면 CodeRed관련 로그가 적히지 않는 것을 확인할 수 있을 것입니다.
 
tail -f 로그화일 경로/www.aaa.to.kr-access_log
 
이렇게 해서 감시를 해보시고 만약 그래도 로그가 적히는 경우에는 질문을 주세요.
참고로 로그화일의 경로를 디폴트인 logs/ 로 두시는 분들이 계시는데 이것은 위험합니다.
통상적인 서버의 경우라면 /usr/local/의 공간이 그렇게 넉넉하지 않으니깐 다른 넉넉한
공간으로 설정해 두시는 것도 좋을 것입니다.
 
만약 서버가 CodeRed에 의한 log증가가 있었는지를 확인하시고 싶으신분은
아래를 참고하시어 확인하시고 만약 있다면 위 작업전에 해당 내용을 삭제한뒤에
적용하시는 것도 좋을 것입니다.
 
[CodeRed Virus log Pattern]
210.99.153.1 - - [08/Aug/2001:22:23:03 +0900] "GET /default.ida?XXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%u9090%u6858%ucbd3%u7801%u9090%u
6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u9090%u8190%u00c3%u0003%u8b00%u53
1b%u53ff%u0078%u0000%u00=a HTTP/1.0" 404 275
 
 
CodeRed에 의한 log화일 피해가 있는지를 확인해보죠.
 
cat access_log |grep ida? |wc
 
그 결과가 0 0 0 이면 피해가 없는 것이고
그 결과가 0이상의 값이면 피해가 있는 것입니다.
 
CodeRed에 의해 적힌 내용을 오려서 임의의 화일에 저장을 하도록 하죠.
 
cat access_log |grep ida? > CodeRed
 
CodeRed log파일에서 CodeRed log pattern만을 삭제하고 변경된 내용을 access_log_new에 저장
 
sed '/ida?/d' access_log > access_log_new
 
이렇게 생성된 화일을 원래의 화일명으로 대치
 
mv access_log_new access_log
 
cat access_log_new |grep ida? | wc
 
확인사살...
 
비대해진 로그를 다이어트 하는 요령이었습니다...
 
이상의 글이 도움이 되시길 바라면서 kalla 이만 줄입니다.

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,806 개
  • 현재 접속자 :  108 명