Tomcat安全优化

Posted 夜莺。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat安全优化相关的知识,希望对你有一定的参考价值。

 

(1)  telnet管理端口保护(强制)
类别配置内容及说明标准配置备注
telnet管理端口保护 1.修改默认的8005管理端口为不易猜测的端口(大于1024);2.修改SHUTDOWN指令为其他字符串; <Server port="**8527**" shutdown="**dangerous**"> 1.以上配置项的配置内容只是建议配置,可以按照服务实际情况进行合理配置,但要求端口配置在8000~8999之间;
(2)  ajp连接端口保护(推荐)
类别配置内容及说明标准配置备注
Ajp 连接端口保护 1.修改默认的ajp 8009端口为不易冲突的大于1024端口;2.通过iptables规则限制ajp端口访问的权限仅为线上机器; <Connector port="8528"protocol="AJP/1.3" /> 以上配置项的配置内容仅为建议配置,请按照服务实际情况进行合理配置,但要求端口配置在8000~8999之间;;保护此端口的目的在于防止线下的测试流量被mod_jk转发至线上tomcat服务器;
(3)  降权启动(强制)
类别配置内容及说明标准配置备注
降权启动 1.tomcat启动用户权限必须为非root权限,尽量降低tomcat启动用户的目录访问权限;2.如需直接对外使用80端口,可通过普通账号启动后,配置iptables规则进行转发;   避免一旦tomcat 服务被入侵,黑客直接获取高级用户权限危害整个server的安全;
[root@java-tomcat1 ~]# useradd tomcat 
[root@java-tomcat1 ~]# chown tomcat.tomcat /data/application/tomcat/ -R
[root@java-tomcat1 ~]# su -c ‘/data/application/tomcat/bin/startup.sh‘ tomcat
Using CATALINA_BASE:   /data/application/tomcat
Using CATALINA_HOME:   /data/application/tomcat
Using CATALINA_TMPDIR: /data/application/tomcat/temp
Using JRE_HOME:       /usr/local/java
Using CLASSPATH:       /data/application/tomcat/bin/bootstrap.jar:/data/application/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@java-tomcat1 ~]# ps -ef | grep tomcat
tomcat     1065      1 64 20:33 ?        00:00:06 /usr/local/java/bin/java -Djava.util.logging.config.file=/data/applicationtomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /data/application/tomcat/bin/bootstrap.jar:/data/application/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/data/application/tomcat -Dcatalina.home=/data/application/tomcat -Djava.io.tmpdir=/data/application/tomcat/temp org.apache.catalina.startup.Bootstrap start
root       1112   1027  0 20:33 pts/0    00:00:00 grep --color=auto tomcat
(4)  文件列表访问控制(强制)
类别配置内容及说明标准配置备注
文件列表访问控制 1.conf/web.xml文件中default部分listings的配置必须为false; <init-param><param-name>listings</param-name><param-value>false</param-value></init-param> false为不列出目录文件,true为允许列出,默认为false;

(5)  起停脚本权限回收(推荐)

类别配置内容及说明标准配置或操作备注
起停脚本权限回收 去除其他用户对Tomcat的bin目录下shutdown.sh、startup.sh、catalina.sh的可执行权限; chmod -R 744 tomcat/bin/* 防止其他用户有起停线上Tomcat的权限;
(6)  访问日志格式规范(推荐)

conf/server.xml

类别配置内容及说明标准配置或操作备注
访问日志格式规范 开启Tomcat默认访问日志中的Referer和User-Agent记录 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i %D" resolveHosts="false"/> 开启Referer和User-Agent是为了一旦出现安全问题能够更好的根据日志进行问题排查;

以上是关于Tomcat安全优化的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat安装部署和安全加固优化以及反向代理应用

tomcat安全优化

Tomcat安全优化 #yyds干货盘点#

Tomcat多实例集群架构 安全优化和性能优化

Tomcat安全设置与优化详解(非原创)

Tomcat 安全优化