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 &quot;%r&quot; %s %b %D &quot;%{Referer}i&quot; &quot;%{User-Agent}i&quot;"
分享到:
关键词:Linux运维

<< 上一篇

HTTP状态码

下一篇 >>

Tomcat性能优化

网友留言(0 条)

发表评论