0x01 基本配置 1 删除默认目录 安装完tomcat后,删除$CATALINA_HOME/webapps下默认的所有目录文件 rm -rf /srv/apache-tomcat/webapps/* 2 隐藏tomcat版本信息 修改$CATALINA_HOME/conf/server.xml,在Connector节点添加server字段,示例如下 <Connectorport="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/> server="WVS1.1" <!-- A "Connector" using theshared thread pool--> 3 自定义错误页面 修改tomcat/conf/web.xml,自定义40x、50x等容错页面,防止信息泄露。 (1)配置tomcat/conf/web.xml文件: 在最后</web-app>一行之前加入以下内容: <error-page> <error-code>404</error-code> <location>/noFile.htm</location> </error-page> …………… <error-page> <exception-type>java.lang.NullPointerException</exception-type> <location>/error.jsp</location> </error-page> 第一个<error-page></error-page>之间的配置实现了将404未找到jsp网页的错误导向noFile.htm页面,也可以用类似方法添加其多的错误代码导向页面,如403,500等。 第二个<error-page></error-page>之间的配置实现了当jsp网页出现java.lang.NullPointerException导常时,转向error.jsp错误页面,还需要在第个jsp网页中加入以下内容: <%@ pageerrorPage="/error.jsp" %> 典型的error.jsp错误页面的程序写法如下: <%@ pagecontentType="text/html;charset=GB2312"%> <%@ pageisErrorPage="true"%> <html> <head><title>错误页面</title></head> <body>出错了:</p> 错误信息: <%= exception.getMessage()%><br> Stack Trace is :<pre><font color="red"><% java.io.CharArrayWritercw = new java.io.CharArrayWriter(); java.io.PrintWriterpw = new java.io.PrintWriter(cw,true); exception.printStackTrace(pw); out.println(cw.toString()); %></font></pre> </body> </html> 当出现NullPointerException异常时tomcat会把网页导入到error.jsp,且会打印出出错信息。 (2)重新启动tomcat服务 4 更改tomcat服务器默认端口 1、参考配置操作 (1)修改tomcat/conf/server.xml配置文件,更改默认管理端口到8800 <Connector port="8888" maxHttpHeaderSize="8192"maxThreads="150" minSpareThreads="25"maxSpareThreads="75"、 enableLookups="false"redirectPort="8443" acceptCount="100" connectionTimeout="300"disableUploadTimeout="true" /> (2)重启tomcat服务 2、补充操作说明 0X02 安全配置 1 用户权限 在服务器设备权限配置范围内,根据我们的业务需要,配置其所需的最小权限。同时应删除或锁定与设备运行、维护等工作无关的账号。例如admin, 666等。还有使用单独的账号允许,不能使用与系统账号一样的账号密码。 1、Tomcat 4.x和5.x版本用户角色分为:role1,tomcat,admin,manager四种。 role1:具有读权限; tomcat:具有读和运行权限; admin:具有读、运行和写权限; manager:具有远程管理权限。 Tomcat 6.0.18版本只有admin和manager两种用户角色,且admin用户具有manager管理权限。 2、Tomcat 4.1.37和5.5.27版本及以后发行的版本默认除admin用户外其他用户都不具有manager管理权限。 ① 建议配置 编辑tomcat/conf/tomcat-user.xml配置文件,修改用户角色权限 ,例如 <tomcat-users> <!-- <role rolename="tomcat"/> <role rolename="role1"/> <user username="tomcat"password="tomcat" roles="tomcat"/> <user username="both"password="tomcat" roles="tomcat,role1"/> <user username="role1"password="tomcat" roles="role1"/> --> </tomcat-users> ② 登陆http://ip:8080/manager/html页面,使用tomcat账号进行本地登录,进行验证配置。 2 口令安全要求 对于采用静态口令认证技术的设备,口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。 ① 建议配置 在tomcat/conf/tomcat-user.xml配置文件中设置密码 <userusername=”root” password=”root123456” roles=”admin”> ② 备注事项 检查tomcat/conf/tomcat-user.xml配置文件中的帐号口令是否符合移动通过配置口令复杂度要求。 (1)人工检查配置文件中帐号口令是否符合; (2)使用tomcat弱口令扫描工具定期对Tomcat Web服务器进行远程扫描,检查是否存在弱口令帐号。 3 禁止列目录(高版本默认已禁止) ① 建议配置 (1) 编辑tomcat/conf/web.xml配置文件, 注意原文件和下面的区别。 <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> (2)重新启动tomcat服务 ② 备注事项 当WEB目录中没有默认首页如index.html,index.jsp等文件时,不会列出目录内容,直接访问http://ip:8800/webadd 4 定时账户自动登出 对于类似web具备字符交互界面的设备,应支持定时账户自动登出。登出后用户需再次登录才能进入系统。 ① 建议配置 编辑tomcat/conf/server.xml配置文件,修改为30秒 <Connector port="8080" maxHttpHeaderSize="8192"maxThreads="150" minSpareThreads="25"maxSpareThreads="75"、 enableLookups="false"redirectPort="8443" acceptCount="100" connectionTimeout="6000"disableUploadTimeout="true" /> ② 备注事项 登陆tomcat默认页面http://ip:8080/manager/html ,使用管理账号登陆,10分钟无操作或者关闭浏览器自动退出。 5 启用cookie的HttpOnly属性 修改$CATALINA_HOME/conf/context.xml,添加<ContextuseHttpOnly="true"> 配置cookie的secure属性,在web.xml中sesion-config节点配置cooker-config,此配置只允许cookie在加密方式下传输。
<session-config> <session-timeout>30</session-timeout> <cookie-config> <secure>true</secure> </cookie-config> </session-config>
6 AJP端口管理 AJP是为 Tomcat 与 HTTP 服务器之间通信而定制的协议,能提供较高的通信速度和效率。如果tomcat前端放的是apache的时候,会使用到AJP这个连接器。前端如果是由nginx做的反向代理的话可以不使用此连接器,因此需要注销掉该连接器。
|