Linux安全加固的中间件Tomcat咋用
发布时间:2021-11-09 09:22 所属栏目:53 来源:互联网
导读:Linux安全加固的中间件Tomcat怎么用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 之前整理了关于主机系统的加固(Linux安全加固、Windows安全加固)。(其实我还是喜欢日靶机) 接
Linux安全加固的中间件Tomcat怎么用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 之前整理了关于主机系统的加固(Linux安全加固、Windows安全加固)。(其实我还是喜欢日靶机……) 接下来想整理下和探索下中间件或者web容器的加固,以及主流数据库的加固。 先大概说下web的一些基础东西。 一般的web访问顺序如下 web浏览器->web服务器(狭义)->web容器->应用服务器->数据库服务器 所以哪一个环节出了问题,各种攻击姿势就来了。 业务上一般的选择如下: 小项目,个人开发一般用tomcat。 linux系统一般使用jetty或apachehpptd 大型的项目会用jboss或webloigc,商业项目一般采用weblgoic,webshere,其他的还有jboss、glasshfish等 web服务器: 响应页面,处理http协议 IIS、Apache、nginx、Lighttpd web容器: tomcat(拥有JSP容器,servlet容器),IIS(拥有ASP容器) 操作系统与应用程序之间的交互 应用服务器: IIS,Tomcat,WebLogic,WebSphere即是应用服务器,又拥有web服务器的功能 中间件:为应用程序提供容器和服务 这次是tomcat的Linux加固。 tomcat是apache的一个中间件软件,其可以提供jsp或者php的解析服务 加固依然分为身份鉴别、访问控制、安全审计、资源控制和入侵防范5个方面。 大部分加固基于xml配置文件进行修改,也应根据实际需求制定方案。 寻找配置文件目录,Linux可以用find /-name *tomcat* 即可。 注:皆为参考操作配置。 01 身份鉴别 1. 删除多余账号: 修改tomcat配置文件/conf/tomcat-users.xml配置文件,删除与工作无关的帐号。 例如tomcat1与运行、维护等工作无关,删除帐号,注释如下行即可: <userusername=”tomcat1” password=”tomcat” roles=”admin”>. 2. 口令复杂度: 口令要求:长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少3类。 修改tomcat配置文件/conf/tomcat-users.xml配置文件 <userusername=”usr1” password=”12345qwe” roles=”admin”> 要求usr1密码必须满足复杂度要求。 3. 不同用户不同账号: 应为两个或两个以上即为合理 修改tomcat配置文件/conf/tomcat-users.xml配置文件,修改或添加帐号: <userusername=”tomcat” password=” Tomcat!234” roles=”admin”> 4. 非root启动服务: ps -ef | greptomcat|grep -v "grep" tomcat进程的启动用户应不为root 使用普通用户启动tomcat服务。 02 访问控制 最小特权: 编辑tomcat配置文件/conf/tomcat-user.xml配置文件,在配置文件<tomcat-users>节点下,修改用户角色权限,授权tomcat具有远程管理权限: 1. tomcat6 <rolerolename="admin"/> <rolerolename="manager"/> <userusername="tomcat" password="Qwe12345"roles="admin,manager"/> 2. tomcat7 <rolerolename="admin-gui"/> <rolerolename="manager-gui"/> <userusername="admin" password="Qwe12345"roles="admin-gui,manager-gui"/> 03 安全审计 编辑tomcat配置文件server.xml配置文件,在<HOST>标签中增加记录日志功能,将以下内容的注释标记<! -- -- >取消: <valveclassname=”org.apache.catalina.valves.AccessLogValve” Directory=”logs”prefix=”localhost_access_log.” Suffix=”.txt” Pattern=”common”resloveHosts=”false”/> classname: This MUSTbe set to org.apache.catalina.valves.AccessLogValve to use thedefault access log valve Directory:日志文件放置的目录,在tomcat下面有个logs文件夹,那里面是专门放置日志文件的,也可以修改为其他路径; Prefix:这个是日志文件的名称前缀,日志名称为localhost_access_log.2008-10-22.txt,前面的前缀就是这个localhost_access_log。 Suffix: 文件后缀名。 Pattern:common方式时,将记录访问源IP、本地服务器IP、记录日志服务器IP、访问方式、发送字节数、本地接收端口、访问URL地址等相关信息在日志文件中。 resolveHosts:值为true时,tomcat会将这个服务器IP地址通过DNS转换为主机名,如果是false,就直接写服务器IP地址。 04 入侵防范 1. HTTP加密协议 cat/usr/apache-tomcat-5.5.23//conf/server.xml|sed '//d'|sed '/^$/d'|sed'//d'|sed '/^\s*$/d'|grep "keystoreFile" (1)使用JDK自带的keytool工具生成一个证书: $JAVA_HOME/bin/keytool -genkey –alias tomcat –keyalg RSA -keystore/path/to/my/keystore 其中目录:/path/to/my需要用户自行创建。 (2)修改tomcat安装目录下/conf/server.xml配置文件,更改为使用HTTPS方式,增加如下行: <Connectorclassname="org.apache.catalina.http.HttpConnector" port="8443" protocol="HTTP/1.1" minProcessors="5" SSLEnabled="true" maxprocessors="100" enableLookups="true" acceptCount="10" debug="0" scheme="https" Factory_classname="org.apache.catalina.SSLServerSocketFactory" secure="true" clientAuth="false" keystoreFile="/path/to/my/keystore" keystorePass="123qwe" sslProtocol="TLS"/> 其中keystorePass的值为生成keystore时输入的密码。 (3)重新启动tomcat服务 2. 禁用非法HTTP请求方法 编辑web.xml文件 查看org.apache.catalina.servlets.DefaultServlet是否存在如下配置: <init-param> <param-name>readonly</param-name> <param-value>false</param-value> </init-param> 将false修改为true。readonly参数默认是true,即不允许delete和put操作。 05 资源控制 1. 超时登出 单位是毫秒 /conf/server.xml配置文件,将connectionTimeout修改为30秒: <Connectorport="8080" maxHttpHeaderSize="8192" maxThreads="150"minSpareThreads="25"maxSpareThreads="75"、enableLookups="false"redirectPort="8443" acceptCount="100"connectionTimeout="30000" disableUploadTimeout="true"/> 2. 错误页面重定向 (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,且会打印出出错信息。 重新启动tomcat服务 3. 修改默认端口 修改tomcat配置文件server.xml配置文件,更改默认管理端口到非8080: <Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25"maxSpareThreads="75"、 enableLookups="false"redirectPort="8443" acceptCount="100" connectionTimeout="300"disableUploadTimeout="true" /> 重新启动tomcat服务 4. 禁止目录列出 编辑tomcat配置文件web.xml配置文件: <init-param> <param-name>listings</param-name> <param-value>true</param-value> </init-param> 把true改成false。 重新启动tomcat服务 5. 防止恶意关闭服务 编辑tomcat配置文件conf/server.xml配置文件, shutdown的值为复杂的字符串: <Serverport="8005" shutdown="复杂的字符串"> 6. 连接数设置 编辑tomcat配置文件server.xml文件: maxThreads="150" 表示最多同时处理150个连接。 minSpareThreads="25" 表示即使没有人使用也开这么多空线程等待。 maxSpareThreads="75" 表示如果最多可以空75个线程。 acceptCount="100" 当同时连接的人数达到maxThreads时,还可以接收排队的连接,超过这个连接的则直接返回拒绝连接。 7. 修改banner 修改/lib/catalina.jar中Serverinfo.properties问津中的以下参数(修改以掩饰真实版本信息): server.info=X server.build=BuildDate server.number=X (编辑:ASP站长网) |
相关内容
网友评论
推荐文章
热点阅读