서버 로그를 확인하던 내가 요청하지 않은 로그를 확인했다. 요청도 5초 단위로 계속해서 와서 서버 로그가 너무 길어지고, 필요한 로그 확인도 어려워졌다.
이를 해결하는 과정을 블로그에 담아보았다. 이 글은 요청받는 로그 근원 확인 및 해결방법에 관해 작성하였다.
************************************************************
2024-07-07 05:04:55.767 INFO 617214 --- [nio-8080-exec-9] Spring Security Debugger :
************************************************************
Request received for GET '/index.html':
org.apache.catalina.connector.RequestFacade@4c12e825
servletPath:/index.html
pathInfo:null
headers:
x-real-ip: 123.12.11.34
x-forwarded-for: 123.12.11.34
host: 123.12.7.9
x-forwarded-proto: http
x-nginx-proxy: true
connection: close
user-agent: ELB-HealthChecker/2.0
accept-encoding: gzip, compressed
Security filter chain: [
DisableEncodeUrlFilter
WebAsyncManagerIntegrationFilter
SecurityContextPersistenceFilter
HeaderWriterFilter
LogoutFilter
JwtAuthenticationFilter
JwtVerificationFilter$$EnhancerBySpringCGLIB$$c70a8f75
RequestCacheAwareFilter
SecurityContextHolderAwareRequestFilter
AnonymousAuthenticationFilter
SessionManagementFilter
ExceptionTranslationFilter
AuthorizationFilter
]
************************************************************
2024-07-07 05:04:55.768 INFO 617214 --- [nio-8080-exec-9] Spring Security Debugger :
************************************************************
Request received for GET '/error':
org.apache.catalina.core.ApplicationHttpRequest@4edfb1b1
servletPath:/error
pathInfo:null
headers:
x-real-ip: 123.12.11.34
x-forwarded-for: 123.12.11.34
host: 123.12.7.9
x-forwarded-proto: http
x-nginx-proxy: true
connection: close
user-agent: ELB-HealthChecker/2.0
accept-encoding: gzip, compressed
Security filter chain: [
DisableEncodeUrlFilter
WebAsyncManagerIntegrationFilter
SecurityContextPersistenceFilter
HeaderWriterFilter
LogoutFilter
JwtAuthenticationFilter
JwtVerificationFilter$$EnhancerBySpringCGLIB$$c70a8f75
RequestCacheAwareFilter
SecurityContextHolderAwareRequestFilter
AnonymousAuthenticationFilter
SessionManagementFilter
ExceptionTranslationFilter
AuthorizationFilter
]
************************************************************
위와 같이 123.12.11.34와 123.12.99.43(실제 IP 주소를 밝히지 않기 위해서 임의의 IP 주소 사용)에서 index.html을 요청해서 에러가 발생하였다.
내가 요청하지도 않았고, 주변에 프로젝트를 사용하고 있는 사람들에게 물어봐도 이런 요청을 보낸 적이 없다고 하였다. 그래서 도통 어디서 요청한건지 감이 안잡혔다.
처음에는 서버 url이 유출되어서 악성으로 요청을 보낸줄 알았는데, 그건 아닌 것 같았다. 왜냐하면 서버 url이 요청되었다면 이렇게 반복적인 요청만 보내지 않을 것이라고 생각했다.
요청을 보낸 IP 주소가 현 서버의 IP 주소와 유사한 것을 봐서는 사용 중인 EC2에서 지금 동작 중인 서버로 요청을 보낸 것 같다는 판단을 하였다. 주기적으로 요청을 보낸 것을 보면 백그라운드에서 동작 중인 프로세스 중 하나가 원인이라고 생각했다.
ps aux
systemctl status nginx
tail -f /var/log/nginx/proxy/access.log
123.12.11.34 - - [07/Jul/2024:04:44:24 +0000] "GET /index.html HTTP/1.1" 404 66 "-" "ELB-HealthChecker/2.0"
123.12.99.43 - - [07/Jul/2024:04:44:27 +0000] "GET /index.html HTTP/1.1" 404 66 "-" "ELB-HealthChecker/2.0"
ls /var/www/html
index.nginx-debian.html