Service

[Springboot] 내장 톰캣 보안 설정

dalgong 2025. 1. 20. 08:20
반응형

1. 환경 설명

  • Project : Gradle-Kotlin
  • Language : Kotilin
  • Spring Boot : Spring CLI v3.3.4
  • Packaging : Jar
  • Java : 21

2. log 설정

  • /data/gradle/gradle-8.11.1/app/src/main/resources/application.properties
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.directory=logs
server.tomcat.accesslog.prefix=access_log
server.tomcat.accesslog.suffix=.log
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D
server.tomcat.accesslog.directory=/var/log/tomcat/

3. X-Forwarded-For 설정

  • 설정 이유 : 클라이언트 ▶ 톰캣으로 바로 요청이 들어오는 경우에는 실제 사용자 IP를 바로 확인할 수 있으나 앞단에 LB 나 프록시가 존재할 경우 프록시의 IP가 출력되어 실제 사용자의 IP를 확인할 수가 없음 ▶ 이 경우에 X-Forwarded-For 헤더를 이용하면 실제 IP를 확인할 수가 있음.
  • /data/gradle/gradle-8.11.1/app/src/main/resources
위에 log 설정에서 설정한 log pattern을 수정하여 설정 가능

server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b "%{X-Forwarded-For}i" %D

4. Server 버전 정보 숨기기

  • /data/gradle/gradle-8.11.1/app/src/main
$ server.server-header=
  • 뒤 쪽을 빈칸으로 두어 curl 을 날렸을 시 버전이 나오지 않게 한다.
  • 정보 숨기기 설정을 하지 않으면 curl을 날렸을 때 아래와 같이 나올 수도 있다.
Server: Apache-Coyote/1.1

5. Manager 페이지

  • 내장형 Tomcat은 따로 설정하지 않는 한 Manager 페이지가 비활성화 되어있다.
반응형