홈 › 웹 서버 › 04 / 8

Tomcat 보안과 운영 점검

섹션 7진행 0 / 8

5. 자주 하는 실수 (Tip)

❌ 실수 1: manager 앱을 지우지 않고 기본 비밀번호로 둔다

tomcat-users.xml 을 안 고치면 잘 알려진 기본 계정으로 로그인돼 war 를 임의로 올릴 수 있습니다. 필요 없으면 아예 지우는 편이 안전합니다.

❌ 실수 2: ErrorReportValve 를 그대로 둔다

기본값은 스택 트레이스와 버전을 화면에 그대로 보여줍니다. showReport·showServerInfo 를 반드시 끕니다.

❌ 실수 3: 종료 포트를 기본값 그대로 둔다

shutdown="SHUTDOWN" 은 누구나 아는 값입니다. 비밀 문자열로 바꾸거나 port="-1" 로 아예 끕니다.

❌ 실수 4: webapps 를 실행 계정이 쓸 수 있게 둔다

애플리케이션 취약점으로 파일이 업로드되면 그대로 war 로 배포될 수 있습니다. 배포 계정과 실행 계정을 분리합니다.

❌ 실수 5: HTTPS 없이 쿠키에 Secure 를 켠다

secure="true" 를 켠 상태에서 HTTP 로만 접속하면 세션 쿠키가 아예 전달되지 않아 로그인이 계속 풀립니다. nginx HTTPS 전환과 함께 적용합니다.

❌ 실수 6: 힙 덤프를 디스크가 찰 때까지 방치한다

힙 덤프는 힙 크기만큼 커집니다. 분석이 끝나면 바로 지우고, 저장 경로의 여유 공간을 미리 확인합니다.

❌ 실수 7: 다른 사용자 권한으로 jcmd 를 실행한다

jcmd 는 대상 JVM 과 같은 사용자(또는 root)로 실행해야 attach 됩니다. tomcat 계정과 다른 계정으로 실행하면 권한 오류가 납니다.

❌ 실수 8: 점검을 사람이 손으로만 확인한다

매번 같은 항목을 눈으로 보면 빠뜨리기 쉽습니다. health_check.sh 같은 스크립트로 만들어 매번 같은 순서로 확인합니다.

❌ 실수 9: 업그레이드 전 롤백 경로를 확인하지 않는다

새 버전 폴더만 만들고 이전 버전 폴더를 지워 버리면 문제가 생겨도 되돌릴 곳이 없습니다. 이전 버전은 최소 한 단계 남겨 둡니다.

❌ 실수 10: conf 를 쓰기 금지한 뒤 배포 스크립트가 다시 쓴다

chmod a-w conf 이후 배포 자동화가 같은 폴더에 파일을 쓰려 하면 권한 오류로 배포가 실패합니다. conf 변경은 별도 절차로 분리합니다.