초보개발자에게 너무 힘든 경험이었음.
취약점문제 : http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-1938
내 생각엔 신뢰있는 AJP연결을 위한 것으로 보임
취약버전
- 9.0.0 ~ 9.0.30
- 8.5.0 ~ 8.5.50
- 7.0.0 ~ 7.0.99
현재 톰캣버전 : 7.0.72
변경 톰캣버전 : 7.0.100
사이트상황 : SunOS? Solaris? (웹서버 Apache 2.4.25) + Window server 2012 R2(WAS), mod_jk (1.2.42) connector 연동
기존의 톰캣을 삭제하기에는 원복이 두려웠다..
- 7.0.100 zip파일 압축 해제하고 apache~ 폴더를 기존 톰캣에 있는 폴더로 이동
- 윈도우 서비스에 등록되어있는 톰캣 중지 후 사용안함으로 수정
- 기존 server.xml에 connector 8080, 8443, 8009 등 미사용포트로 변경, hostname도 수정
- 어플리케이션을 신규 ROOT 폴더로 복사/붙여넣기
- 신규 server.xml AJP connector 주석 해제 및 secretRequired="false" 추가
- 신규 bin/service.bat 편집 default service name을 변경 tomcat7 -> tomcat7.0.100
- bin/tomcat7.exe랑 tomcat7w.exe였나 이것도 변경 tomcat7.0.100.exe, tomcat7.0.100w.exe
- 윈도우 서비스 cmd 통해서 신규 톰캣 등록 service.bat install
- 신규 tomcat7.0.100.exe 실행하고 등록되있는 윈도우 서비스 [자동] 시작
서비스를 테스트 할 수 없어서 WAS에서 netstat로 통신되는지 확인
물론, 웹서버에서도 netstat로 확인 가능
또 mod_jk.log통해서도 확인 가능
신규 톰캣의 bin/lib만 기존 톰캣에 덮어써도 될 것 같긴한데 원복이 무서워서 안해봤음.
알게된사실)
너도 나도 웹서버나 WAS를 건들려고 하지 않는다(오픈소스라 그런가..)
workers.properties였나 거기에 tomcat_home을 안넣어서 연동 안되는 줄 알았음
SunOS는 Apache/Apache2를 기본으로 설치되있다고함
AJP Connector가 뭔지 알게 되서 다행(미사용일 경우, 주석 처리)
진짜 안되면 reverse proxy(mod_proxy)로 테스트해야하나 싶었음(하는게 좋을지도?)
Apache는 건드는게 아니다..
아무 일 없으면 좋겠다..
출처 및 참고
https://nirsa.tistory.com/132?category=876464
https://eastpost95.blogspot.com/2020/03/apache-tomcat-ajp-cve-2020-1938-apache.html
https://velog.io/@wosk0106/CVE-2020-1938
'Tip' 카테고리의 다른 글
[mysql] string 숫자를 number로 인식하여 정렬 (0) | 2021.02.22 |
---|---|
[Window 2012 R2] 톰캣 재시작 스케줄러 배치파일 생성 (0) | 2021.02.22 |
[mysql] 외래키 foreign key 무시 (0) | 2020.04.02 |
[SQL] 로그인/로그아웃으로 구분된 이벤트로 로그인접속시간 계산 (0) | 2020.04.02 |
[mysql] 쿼리결과를 csv 파일로 출력 (0) | 2020.04.02 |