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 条)