적수네동네의 1원짜리팁에 백경훈님이 올린글입니다.
유용한 팁이라 퍼왔습니다.

CodeRed와 apache

아파치 웹서버 access.log를 먼저 보시고 아래와 같은 내용이 있는지 확인 바랍니다.
아래 내용은 apache서버가 /usr/local/apache 경로로 설정이 되어 있는 경우입니다.
"GET /default.ida?XXXXXXX............
X는 code-Red 3최신 변종인것 같고 N은 code-red초기 버젼인것 같습니다.

이런 라인이 끝없이 들어오면 코드레드 영향으로 아파치에 계속 로그가 쌓이게 되고 아파치 서비스를 하는 리눅스외 기타 유닉스 서버의 네트워크도 지장있겠죠

처리방법
아파치 서버를 쓰는 리눅스와 유닉스계열 서버에서 해주어야 할 일

httpd.conf에서
LoadModule setenvif_module /usr/local/apache/libexec/mod_setenvif.so
이 줄을 찾아서 주석을 제거해 줍니다.

그리고 아래 CustomLog를 찾아서
CustomLog /usr/local/apache/logs/access_log common 혹은 (combined )
Common 혹은 combined중에서 주석처리가 되어있지 않는 부분을 찾아서 아래와 같이 작성하여 줍니다.
CustomLog ./usr/local/apache/logs/common env=!code-red
*** 위 내용은 cord-red로 설정된 요청을 거부하라는 내용입니다.

SetEnvIf Request_URI "/default.ida$" code-red 라교 cusomlog 줄위에
적어줍니다.
이내용은 /default.ida$로 요청되는 것은 code-red로 취급하라는 것입니다.

최종적으로 아래와 같은 순서로 httpd.conf에 설정이 되있어야 합니다.
SetEnvIf Request_URI "/default.ida$" code-red
CustomLog ./usr/local/apache/logs/common env=!code-red

이렇게 처리하시면 access.log로그가 남지 않습니다.
처리가 끝나면 아파치를 재구동 하여 주십시요
(현재 Code-Red 3는 확실히 남지 않으나 Code-Red 초기 버전은 간혹 남는 경우가 있는듯합니다. 그리고 Error_log는 default.ida를 찾지 못했다는 로그가 남습니다.)

참고사항(필수사항)

버츄얼호스트(virtualhost)를 사용하시는 업체는 각각의 버추얼호스트 로그설정마다 위처럼 설정 해주셔야 합니다.

기타설명
만일 httpd.conf파일에서 위와 같은 설정부분이 없는 분들은 apache 를 설치하실 때
apache 관련 모듈을 정적 으로 컴파일 한 경우입니다. 이런 경우는
LoadModule setenvif_module /usr/local/apache/libexec/mod_setenvif.so 의 동적 모듈 로딩이httpd.conf에서 빠지게 됩니다.
Loadmodule, addmodule 지시자는 DSO(Dynamic Shared Object)모듈을 로드할 때 사용되어 지는데 apache의 모듈을 정적(statics)으로 컴파일 하였다면 “Compiled-in modules” 됩니다.
즉 Compile-in modules는 아파치 실행시 항상 httpd실행파일에 정적으로 링크되어 있기 때문에 httpd.conf에서 loadModule…항목이 빠지게 됩니다.
아직 정적으로 컴파일한 apache는 Cord-Red 로그파일에 대해 해결 방법을 찾지 못하였습니다.

Apache를 동적컴파일(DSO기반 모듈)로 하는 경우에는 LoadModule, AddModule 두개의 지시자로 모듈을 로딩되도록 httpd.conf에 설정 됩니다.

** apache 동적 컴파일 옵션 **
../configure –prefix=이하생략 뒤에 아래 3가지를 추가 시켜서 컴파일 하시기 바랍니다.
–enable-rule=SHARED_CORE
-enable-shared=max
-enable-module=so

+ Recent posts