我已经读过以root用户身份运行Tomcat是一个安全问题。我希望Tomcat能够收听端口80,这是Centos的一个特权端口。我创建了一个用户并将他添加到了wheel组。该用户使用sudo sh startup.sh
启动tomcat。我不是基于unix的操作系统的专家,所以我仍然感到困惑。如果我以root用户身份启动tomcat,我是否已将自己暴露给相同的漏洞?
答案 0 :(得分:2)
如果您使用sudo调用启动脚本,则以root身份运行tomcat。你是对的,不建议以root身份运行tomcat。非root用户无法绑定到端口80,并且有一些解决方案可以解决此问题。一种方法是将tomcat作为非root运行,并使tomcat监听端口8080.启用防火墙并将前往80端口的请求转发到端口8080。
service iptables start
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables-save
service iptables restart
答案 1 :(得分:2)
是的,您实际上是以root身份运行Tomcat,不建议这样做。
您可以使用Authbind直接在端口80上运行Tomcat。在Ubuntu上配置非常容易,我不确定CentOS。您可以找到一些说明here(它们适用于Tomcat 6,但大部分可能仍适用于Tomcat 7)。
或者,您可以让Apache侦听端口80,并使用mod_proxy
或mod_jk
将请求转发到端口8080上的Tomcat。
答案 2 :(得分:1)