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"/> |
以上是关于Tomcat安全优化的主要内容,如果未能解决你的问题,请参考以下文章