티스토리 뷰
몇일전에 디도스 공격을 당해서 클라우드 호스팅중인 업체에서 하룻동안 서버를 정지시켰다.
공부겸 사이트를 만드는 것이라 누가 접속할 것이라고는 생각도 못했다.
그래서 톰캣에 로그를 남기고 비정상적으로 많은 접속을 하는 아이피를 차단하기 위해 톰캣차원에서 로그를 남기기로 했다.
centos 기준...톰캣에 로그기록을 남기기 위한 설정은 다음과 같다.
/etc/tomcat6/server.xml 파일 내용 중 아래 부분(Valve엘리먼트)의 주석을 제거한 후 Tomcat을 재시작하면 된다.
(초기에는 주석처리가 되어있다.)
<!--
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/>
-->
아래와 같이 수정했다.(아래의 엘리먼트가 위치할 곳은 Engine엘리먼트 내부이다.)
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log."
suffix=".txt"
resolveHosts="false"
pattern="%t %a %r"
fileDateFormat="yyyy-MM-dd"
/>
참조: http://tomcat.apache.org/tomcat-5.5-doc/config/valve.html
아래는 pattern속성에 쓸 수 있는 값들이다.
· %a - Remote IP address
· %A - Local IP address
· %b - Bytes sent, excluding HTTP headers, or '-' if zero
· %B - Bytes sent, excluding HTTP headers
· %h - Remote host name (or IP address if resolveHosts is false)
· %H - Request protocol
· %l - Remote logical username from identd (always returns '-')
· %m - Request method (GET, POST, etc.)
· %p - Local port on which this request was received
· %q - Query string (prepended with a '?' if it exists)
· %r - First line of the request (method and request URI)
· %s - HTTP status code of the response
· %S - User session ID
· %t - Date and time, in Common Log Format
· %u - Remote user that was authenticated (if any), else '-'
· %U - Requested URL path
· %v - Local server name
· %D - Time taken to process the request, in millis
· %T - Time taken to process the request, in seconds
· %I - current request thread name (can compare later with stacktraces)
로그 확인은..
/var/log/tomcat6/
에서 로그파일을 확인하면 된다.
'LINUX' 카테고리의 다른 글
GeoIP를 이용한 국가별 접속 제한 설정 (0) | 2015.12.27 |
---|---|
재귀적 질의 공격에 대한 방어 방법 (0) | 2015.12.27 |
SVN 설치와 이클립스에서 체크아웃 해보기 (0) | 2015.08.28 |
톰캣 webapps 루트(root) 경로 변경, 6.X버전에서의 변경 (0) | 2015.06.24 |
호스트OS인 윈도우에서 NAT환경의 게스트OS인 리눅스에 접속하는 방법 (0) | 2014.11.28 |