星期五, 7月 26, 2013

Linux 上 Tomcat 以一般User身份執行

由於前陣子爆發 Struts2.3.15(含)之前的版本有遠程可入侵漏洞。
維護的網站也中獎了。

除了升級 struts2 到 2.3.15.1 外,也研究了一下該如何讓 Tomcat 不以 ROOT 身份執行。

紀錄一下步驟:
1. 由於 1024 以下的 port 只能以 root 身份執行, 因此將 tomcat 啟動 port 設為 8080, 8443
2. add tomcat user / group
3. 修改相關目錄的權限, 擁有者
4. 修改 /etc/init.d/tomcat 直接執行 startup.sh 並以指定身份執行 (su -c xxx)
5. 透過 xinetd 來設定 80 轉到 8080, 443 轉到 8443 的模式來使用。

還有查到可使用 iptables 的方式,是 linux 核心內建,效能更好。
但較複雜,因此若有效能問題再來調整。

參考了以下文件:
http://ruleoftech.com/2009/redirecting-http-and-https-traffic-to-tomcats-ports
http://www.nsfocus.net/index.php?act=magazine&do=view&mid=1954
http://mushme.iteye.com/blog/1636467
http://blog.sina.com.cn/s/blog_660bfc2801018w4s.html