背景:
Tomcat部署在服务器上,有默认的shutdown端口(8005)和关闭命令(SHUTDOWN),及容易被攻击者通过TCP/IP连接该端口关闭Tomcat,导致业务中断。
优化方案:
更改默认的shutdown端口号和关闭命令,使攻击者难以猜解,增加攻击者通过shutdown请求攻击服务器和应用的难度。
具体措施:
1)在$CATALINA_HOME/conf/server.xml文件,更改默认端口为一个不确定的值,将shutdown命令改为其他大于8位的任意字符串,例如:
<Server port="2724" shutdown="xxx!!ydtgertsfd34g"> // 这里shutdown命令,包含大小写字母、数字和特殊字符
2) 在$CATALINA_HOME/conf/server.xml文件,直接关闭shutdown端口,例如:
<Server port="2724" shutdown="-1"> // 这里shutdown命令设置成-1或者直接删掉,代表禁用shutdown端口
备注:必须在关闭Tomcat的情况下修改该参数,否则会导致Tomcat无法正常关闭。
检查方案:
执行如下命令检查是否使用默认的shutdown命令和默认端口,确保默认shutdown命令和端口号已正确更改:
$ cd $CATALINA_HOME/conf $ grep 'shutdown[[:space:]]*=[[:space:]]*"SHUTDOWN"' server.xml $ grep '<Server[[:space:]]+[^>]*port[[:space:]]*=[[:space:]]*"8005 "' server.xml