Tomcat安全优化
tomcat**安全优化指标** | |
---|---|
1. shutdown端口及暗号的修改 | 8005 SHUTDOWN(dangerous) |
2. 注释掉AJP 8009端口(从8.5开始已经注释) | 注释提升性能和安全 |
3. 禁用管理端 | 关闭管理端的功能并且清除相关文件和目录 |
4. 降权启动(强制)(监牢模式 keep in jail) | 普通用户运行与管理 tomcat |
5. 文件列表访问控制(强制) | 需要关闭,tomcat已经默认关闭 |
6. 版本信息隐藏(强制) | 修改tomcat报错页面 |
7. 修改Tomcat http响应头的内容 | |
8. 访问限制(可选) | allow deny |
9 . 脚本权限回收 | 700 或750 |
10. 配置完整访问日志格式 | 完整的日志 类似于nginx main格式 |
安全优化 1.telnet管理端口保护(强制) tomcat shutdown端口 <Server port="8527" shutdown="dangerous"> 2.ajp连接端口保护(推荐) 如果使用的apache+tomcat 修改端口 如果没有使用apache 则把这一行注释 <!-- 开始 注释结束 --> 116 <!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> --> 3.禁用管理端(强制) ###0.管理端主要应用在 tomcat测试环境中 ###1. 删除默认的{Tomcat安装目录}/conf/tomcat-users.xml文件,重启tomcat后将会自动生成新的文件; ###2. 删除{Tomcat安装目录}/webapps下默认的所有目录和文件; ###3. 将tomcat 应用根目录配置为tomcat安装目录以外的目录; [root@tomcat webapps]# rm manager/ host-manager/ -fr ###4. 注释 conf/server.xml 部分 <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> ##4.降权启动(强制)(监牢模式 keep in jail) 在普通用户下面,运行维护tomcat ###1)添加用户 tomcat ### 2)修改 tomcat 所有者 ###3)通过普通用户管理 useradd tomcat chown -R tomcat.tomcat /app/tomcat/ /code/ /var/log/tomcat/ su - tomcat /app/tomcat/bin/startup.sh systemctl #需要sudo 授权 ###1)添加用户 tomcat useradd tomcat ###2)修改 tomcat 所有者 chwon -R tomcat.tomcat /app/tomcat/ ###3)通过普通用户管理 su - tomcat ###4)开机自启动 通过tomcat 用户 su - tomcat -c "/app/tomcat/bin/startup.sh" -c 执行命令 后面只接普通命令 ####5)注意事项: ##1.如果给nginx配置 端口在1-1024之间 端口叫特权端口 只能root管理维护 ##2.给nginx做 降权 需要修改端口 降权启动/监牢模式 让服务通过普通用户运行 普通用户管理. 作业. tomcat nginx 监牢模式 Linux 1-1024端口 特权端口 只能root使用. web 8099 upstream web_pools { server 10.0.0.7:8099; server 10.0.0.8:8099; } ##5.文件列表访问控制(强制) ####默认展示站点目录下所有的内容 nginx 网站文件列表功能 autoindex on; tomcat 关闭 conf/web.xml <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> ##6.版本信息隐藏(强制) ###不同软件版本 会有些不同的故障(漏洞) ###把tomcat错误页面指定到新的页面 conf/web.xml <error-page> <error-code>403</error-code> <location>/forbidden.jsp</location> </error-page> <error-page> <error-code>404</error-code> <location>/notfound.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/systembusy.jsp</location> </error-page> ##7.Server header重写(推荐) ###tomcat 想让用户发下 这是nginx server.xml <Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol" server="nginx/1.16.1" connectionTimeout="20000" redirectPort="8443" /> [root@tomcat ~]# curl -I http://47.114.128.48:8080 HTTP/1.1 200 Content-Type: text/html;charset=UTF-8 Transfer-Encoding: chunked Date: Tue, 11 Feb 2020 02:43:19 GMT Server: nginx/1.16.1 #8. 访问限制(可选) <Context path="" docBase="/home/work/tomcat" debug="0" reloadable="false" crossContext="true"> <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="61.148.18.138,61.135.165.*" deny="*.*.*.*"/> </Context> #9.脚本权限回收 chmod -R 700 tomcat/bin/* #10. 配置完整访问日志格式 <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"/> %{Referer}i 用户从哪里跳转过来的 %{User-Agent}i 用户客户端(浏览器) pattern="%h %l %u %t "%r" %s %b %D "%{Referer}i" "%{User-Agent}i""
<< 上一篇
下一篇 >>
网友留言(0 条)