tomcat을 포함한 WAS 들은 root로 구동하게 되면 해킹당했을 때 root 권한에 대해 보안취약점이 발생하게 된다. 기본 웹포트는 80이며, SSL이 적용되는 포트는 443 포트를 사용하게 되는데, 리눅스에서는 1000 포트 이하의 경우에는 root 에서만 제어할 수 있다.

그래서 80포트를 8080 포트로, 443 포트를 8443 포트로 routing 설정을 해줘야한다. 


여기까지는 기본적인 설정인데, 요사이 보안이슈로 인하여 기본적으로 널리 알려진 8080 같은 포트는 사용하지 말라는 권고가 떨어지곤 한다. 그래서 나는 58080과 같은 포트로 변경함.

iptables 에서만 변경할 부분이 아니라, was에서도 변경을 해야한다. tomcat의 경우에는 conf/server.xml 에서 수정 가능하다.


1. iptables 설정 확인

iptables -t nat -L


2. iptables 포트 삭제

iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080


3. iptables 포트 등록

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 58080


4. iptables 포트 저장

# service iptables save


5. iptables 재시작

# service iptables restart


위의 순서로 작업을 해야한다. 인터넷에서는 삭제/저장 절치 없이 등록/재시작을 하라고 나오는데 내가 뭔가 잘못한건지 정상동작이 안되길래 전형적인 순서로 작업함.

결과는 대성공.


참고로, iptables 에서 80->8080 routing 설정을 하지 않거나 혹은 tomcat/conf/server.xml 에서 8080 관련 redirect 설정을 삭제한다면 해당 포트로 접속하는 모든 방법은 차단될 수 있다.

SSL을 씌운 상태였는데 http://URL 이라거나... 혹은 서버 IP:8080 이라거나...


블로그 이미지

김생선

어장에서 바라보는 세상

티스토리 툴바