tomcat漏扫修复及调优

环境

  • Centos7 8G
  • tomcat7

nessus漏扫修复

12085 - Apache Tomcat Servlet / JSP Container Default Files

  • 删除tomcat/webapps/下example、doc、manager,(ROOT保留,内部只留下自定义的404页面)

35291 - SSL Certificate Signed Using Weak Hashing Algorithm

42873 - SSL Medium Strength Cipher Suites Supported

20007 - SSL Version 2 and 3 Protocol Detection

https证书签名算法强度不够,默认生成的是1024位,需要升级为2048, 指定Cipher,禁用ssl2.0 ssl3.0

证书制作参考HTTPSS证书制作笔记
注意:需要指定证书长度:

keytool -genkeypair -alias server -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -validity 3650 -keypass 123456 -storepass 123456 -keystore server.keystore`

修改server.xml,指定keystoreFiletruststoreFilesslProtocolsslEnabledProtocols

"8443" URIEncoding="UTF-8" protocol="HTTP/1.1" SSLEnabled="true"
             maxThreads="150" minSpareThreads="25"
           maxSpareThreads="75"
           enableLookups="false" disableUploadTimeout="true"
           acceptCount="100" debug="0" scheme="https" secure="true"
             clientAuth="false" sslProtocol="TLS" sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"  ciphers="TLS_ECDHE_RSA_WITAES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA"  keystoreFile="conf/server.keystore" keystorePass="123456"
             truststoreFile="conf/server.keystore" truststorePass="123456"/>

cookie未设置HttpOnly属性

vim tomcat/conf/contenxt.xml


<Context useHttpOnly="true">

新版tomcat默认就是HttpOnly

敏感信息泄露

输入一个不存在的地址时,泄露tomcat版本号等信息

自定义tomcat的404页面

#在ROOT下自定义一个404.html,其它都删除即可

# 配置tomcat 404页面
vim conf/web.xml

...
#添加如下配置

    404
    /404.html
 
...

支持不安全的http方法

  • 修改tomcat的web.xml文件配置禁用options/PUT/DELETE这三种方法
# 在 <webapp>webapp>标签中添加:
<security-constraint>
   <web-resource-collection>
      <url-pattern>/*url-pattern>
      <http-method>PUThttp-method>
      <http-method>DELETEhttp-method>
      <http-method>HEADhttp-method>
      <http-method>OPTIONShttp-method>
      <http-method>TRACEhttp-method>
   web-resource-collection>
   <auth-constraint>
   auth-constraint>
 security-constraint>
<login-config>
  <auth-method>BASICauth-method>
login-config>
  • 删除tomcat/webapps/下example、doc、manager,(ROOT保留,内部只留下自定义的404页面)

性能调优

jvm参数优化

vim catalina.sh

...
# 添加jvm参数配置
JAVA_OPTS="$JAVA_OPTS -XX:PermSize=128M -XX:MaxPermSize=256M -Xms1024M -Xmx1024M -Xss512k"
...

并发线程优化

vim server.xml

...

"8443" URIEncoding="UTF-8" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="1024" maxConnections="1024" minSpareThreads="25" acceptCount="150"
                           enableLookups="false" disableUploadTimeout="true"
                            debug="0" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"  ciphers="TLS_ECDHE_RSA_WITAES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA"  keystoreFile="conf/server.keystore" keystorePass="123456"
               truststoreFile="conf/server.keystore" truststorePass="123456"/>

参数说明:
* acceptCount: 请求等待队列大小,默认100(tomcat没有空闲线程处理请求时放入该队列缓存起来),超出该队列大小后,拒绝连接
* maxConnections: tomcat最大并发连接数,bio默认是maxThreads数量,nio和nio2默认是10000,arp默认8192
* minSpareThreads: 线程池最小线程数,默认10
* maxThreads: 线程池最大线程数,默认200

你可能感兴趣的:(java开发学习笔记,java,web,tomcat,漏洞扫描)