TOMCAT安全配置

[b]删除默认文件[/b]


删除TOMCAT默认示例文件、帮助文件、后台管理界面等,禁止使用manager/admin管理后台。需删除的文件和目录清单如下:
[quote]
$CATALINA_BASE/server/webapps/manager
$CATALINA_BASE/server/webapps/host-manager
$CATALINA_BASE/webapps/balancer
$CATALINA_BASE/webapps/manager
$CATALINA_BASE/webapps/host-manager
$CATALINA_BASE/webapps/webdav
$CATALINA_BASE/webapps/tomcat-docs
$CATALINA_BASE/webapps/jsp-examples
$CATALINA_BASE/webapps/servlets-examples
$CATALINA_BASE/webapps/examples
$CATALINA_BASE/webapps/docs
$CATALINA_BASE/conf/tomcat-users.xml[/quote]

[b]启动帐号[/b]

建立独立用户,用户名和组名均为tomcat,不设置密码(即禁止SSH登录),tomcat进程以此帐号身份运行,严禁以root权限运行tomcat,禁止以个人帐号或其他有shell权限的帐号运行tomcat。可选如下方法之一来实现非ROOT启动tomcat:

[list]
[*]修改启动脚本
[/list]

在$CATALINA_BASE/startenv.sh里面export环境变量:

export TOMCAT_USER=tomcat

同时需要修改$CATALINA_HOME/bin/startup.sh


exec "$PRGDIR"/"$EXECUTABLE" start "$@"

修改为:
if [ -z "$TOMCAT_USER" ]; then
exec "$PRGDIR"/"$EXECUTABLE" start "$@"
else
exec su $TOMCAT_USER -c "$PRGDIR/$EXECUTABLE start $@"
fi

[list]
[*]使用jsvc来启动tomcat
[/list]

在jsvc配置文件里面指定参数

[quote]-u tomcat[/quote]

[b]禁止列目录[/b]
配置$CATALINA_BASE/conf/web.xml文件,防止直接访问目录时由于找不到默认主页而列出目录下所有文件。
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>


[b]打开access log[/b]
按小时或按天记录。prefix/fileDateFormat/pattern可自定义,但必须记录关键信息,例如:源IP,Host、时间、请求、状态码、数据大小、UA等。注意:如果前端是NG做反向代理,默认的pattern="combined"和pattern="common"不能记录用户的真实IP,必须自定义pattern,记录客户端真实IP(X-Real-IP)
[quote]
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="xx" suffix=".log"
fileDateFormat="yyyy-MM-dd-HH"
pattern="%a %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i" " %{X-Real-IP}i"
resolveHosts="false"/> [/quote]

[b]禁止使用jmx[/b]

如之前已经启用,在启动脚本里面(catalina.sh或startenv.sh)删除CATALINA_OPTS变量里面jmxremote相关参数即可。


[b] 禁止使用AJP[/b]

配置$CATALINA_BASE/conf/server.xml文件,注释或删除如下部分。

注释前
[quote]
<Connector port="*" maxThreads="*"
enableLookups="false" redirectPort="*" protocol="AJP/**" />[/quote]

[b]目录权限
[/b]
默认情况下,tomcat启动用户对WEB目录下所有文件及子目录应无写权限。标准配置:文件属主为root.root,权限为755。

日志文件及cache文件应放在WEB目录之外
[b]

上传目录禁止执行[/b]

如tomcat需支持上传功能,需要对WEB目录下某些目录有写权限,那么应该限制这些上传目录禁止执行脚本。

appdir路径有几种可能:

(1) 默认位置

appdir="$CATALINA_BASE/webapps/ROOT"

(2) 默认位置下指定了appname

appdir="$CATALINA_BASE/webapps/$appname"

(3)通过docBase参数指定的路径

appdir="$docBase"

这些是通过UrlRewriteFilter模块来限制的示例配置,如果WEB-INF及相关目录不存在,创建一个即可。


[b]设置规则禁止上传目录执行jsp[/b]

可以使用
[quote]<urlrewrite>
<rule>
<from>^[\./]*/upload/.*\.jsp$</from>
<to>/deny.html</to>
</rule>
</urlrewrite>[/quote]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值