我读过以 root 用户身份运行 Tomcat 是一个安全问题。我希望 Tomcat 监听端口 80,这是 Centos 中的特权端口。我创建了一个用户并将他添加到轮组。该用户使用sudo sh startup.sh
. 我绝不是基于 unix 的操作系统的专家,所以我仍然感到困惑。如果我以 root 身份启动 tomcat,我是否已经将自己暴露在相同的漏洞中?
问问题
3335 次
3 回答
2
如果您使用 sudo 调用启动脚本,则您正在以 root 身份运行 tomcat。您是对的,不建议以 root 身份运行 tomcat。非 root 用户无法绑定到端口 80,有一些解决方案可以解决这个问题。一种方法是以非 root 身份运行 tomcat,并使 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
于 2013-07-06T17:27:39.557 回答
2
是的,您实际上是以 root 身份运行 Tomcat,不建议这样做。
您可以使用Authbind直接在端口 80 上运行 Tomcat 。在 Ubuntu 上配置非常容易,我不确定 CentOS。您可以在此处找到一些说明(它们适用于 Tomcat 6,但其中大部分可能仍然适用于 Tomcat 7)。
mod_proxy
或者,您可以让 Apache 在端口 80 上侦听并使用或将请求转发到端口 8080 上的 Tomcat mod_jk
。
于 2013-07-06T18:45:10.737 回答
1
请注意,在端口 80 上运行tomcat的推荐解决方案是将mod-jk与 Apache Web 服务器一起使用,而不是让 tomcat 直接在端口 80 上侦听。
于 2013-07-06T16:45:54.670 回答