本篇文章较长,但请大家耐心看完,毕竟是小编费劲心思总结的,而且小编相信这篇肯定对大家是有一点帮助的;好了,不打扰大家了,耐心看吧!
修改默认账号口令
修改默认口令或禁用默认账号
编辑tomcat/conf/tomcat-user.xml配置文件,修改用户角色权限
授权tomcat具有远程管理权限:
<user username=”tomcat” password=”强壮的口令” roles=”admin,manager”>
“强壮的口令”要求为口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。
Tomcat 4.x和5.x版本用户角色分为:role1,tomcat,admin,manager四种。
Tomcat 6.0.18版本只有admin和manager两种用户角色,且admin用户具有manager管理权限。
Tomcat 4.1.37和5.5.27版本及以后发行的版本默认除admin用户外其他用户都不具有manager管理权限。
修改后的账号可以登录Tomcat Web服务器为正常。
访问http://ip:8080/manager/html管理页面,进行Tomcat服务器管理。
设置shutdown为复杂的字符串,防止恶意用户telnet到8005端口后,发送SHUTDOWN命令停止Tomcat服务。
打开Tomcat_home/conf/server.xml,设置shutdown为复杂的字符串。
<Server port="8005" shutdown="复杂字符不要包括特殊字符,如:冒号、分号、引号等。
查看Tomcat_home/conf/server.xml配置文件
<Server port="8005" shutdown="复杂的字符串">
增加访问日志审计,记录错误信息和访问信息。
编辑server.xml配置文件,在
将以下内容的注释标记< ! -- -- >取消
<valve classname=”org.apache.catalina.valves.AccessLogValve”Directory=”logs” prefix=”localhost_access_log.” Suffix=”.txt” Pattern=”common” resloveHosts=”false”/>
classname: This MUST be set to org.apache.catalina.valves.AccessLogValve to use the default access log valve. &<60
Directory:日志文件放置的目录,在tomcat下面有个logs文件夹,那里面是专门放置日志文件的,也可以修改为其他路径;
Prefix: 这个是日志文件的名称前缀,日志名称为localhost_access_log.2008-10-22.txt,前面的前缀就是这个localhost_access_log
Pattern: common方式时,将记录访问源IP、本地服务器IP、记录日志服务器IP、访问方式、发送字节数、本地接收端口、访问URL地址等相关信息在日志文件中
resolveHosts:值为true时,tomcat会将这个服务器IP地址通过DNS转换为主机名,如果是false,就直接写服务器IP地址
查看logs目录中相关日志文件内容,记录完整
查看localhost_access_log.2018-10-22.log中相关日志记录
隐藏Tomcat显示版本信息
a.解压catalina.jar
cd {Tomcat_home}/server/lib 【4.x】 cd {tomcat_home}/lib【5.5以上】 jar xf catalina.jar org/apache/catalina/util/ServerInfo.properties
b.修改server.info行,修改相关的版本信息:server.info=Apache Tomcat
c.重新压缩catalina.jar
jar uf catalina.jar org/apache/catalina/util/ServerInfo.properties
Telent ip :80 端口
执行get head查看是否包含版本信息
修改参数文件,禁止目录遍历。
(1) 编辑tomcat/conf/web.xml配置文件,
<init-param> <param-name>listings</param-name> <param-value>true</param-value> </init-param>
把true改成false
当WEB目录中没有默认首页如index.html,index.jsp等文件时,不会列出目录内容
直接访问http://ip:8800/webadd
修改错误文件信息内容,防止信息泄漏
(1)配置tomcat/conf/web.xml文件:
在最后一行之前加入以下内容:
<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>
第二个<error-page></error-page>
<%@ page errorPage="/error.jsp" %>
典型的error.jsp错误页面的程序写法如下:
<%@ page contentType="text/html;charset=GB2312"%> <%@ page isErrorPage="true"%> <html> <head><title>错误页面</title></head> <body>出错了:</p> 错误信息: <%= exception.getMessage() %><br> Stack Trace is : <pre><font color="red"><% java.io.CharArrayWriter cw = new java.io.CharArrayWriter(); java.io.PrintWriter pw = new java.io.PrintWriter(cw,true); exception.printStackTrace(pw); out.println(cw.toString()); %></font></pre> </body> </html>
当出现NullPointerException异常时tomcat会把网页导入到error.jsp,且会打印出出错信息。
指向指定错误页面
URL地址栏中输入http://ip:8800/manager
更改tomcat服务器默认端口
(1)修改tomcat/conf/server.xml配置文件,更改默认管理端口到8800
<Connector port="8800" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"、 enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="300" disableUploadTimeout="true" />
使用8800端口登陆页面成功
登陆http://ip:8800
对于具备字符交互界面的设备,应支持定时账户自动登出。登出后用户需再次登录才能进入系统。
编辑tomcat/conf/server.xml配置文件,修改为30秒
<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"、 enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="300" disableUploadTimeout="true" />
30秒自动登出。
登陆tomcat默认页面http://ip:8080/manager/html ,使用管理账号登陆
对于通过HTTP协议进行远程维护的设备,设备应支持使用HTTPS等加密协议。
(1)使用JDK自带的keytool工具生成一个证书
$JAVA_HOME/bin/keytool -genkey –alias tomcat –keyalg RSA -keystore /path/to/my/.keystore
(2)修改tomcat/conf/server.xml配置文件,更改为使用https方式,增加如下行:
<Connector classname="org.apache.catalina.http.HttpConnector" port="8443" minProcessors="5" maxprocessors="100" enableLookups="true" acceptCount="10" debug="0" scheme="https" secure="true" clientAuth="false" keystoreFile="/path/to/my/.keystore" keystorePass="runway" protocol="TLS"/>
其中keystorePass的值为生成keystore时输入的密码
(3)重新启动tomcat服务
使用https方式登陆tomcat服务器页面,登陆成功
使用https方式登陆tomcat服务器管理页面