Tomcat防御与加固
一、权限管理
设置启动权限
实验过程:传送门
-
添加tomcat用户组
groupadd tomcat
-
添加tomcat用户,并限制登录
useradd -s /bin/bash -g tomcat tomcat
-s 指定运行的脚本
-g 指定用户组
useradd -L tomcat #锁定密码,是密码无效
-
修改目录所有者
chown -R tomcat:tomcat /usr/local/tomcat
-
启动tomcat
su - tomcat -c ‘/home/tools/tomcat/bin/startup.sh’ #以tomcat用户执行脚本startup.sh
二、修改密码
cat /usr/local/tomcat/conf/tomcat-user.xml
要么直接把用户注释掉,要么改一个复杂密码。
三、隐藏版本信息
实验过程:传送门
进入lib目录,unzip catalina.jar
修改org/apache/catalina/util/ServerInfo.properties
修改为
server.info=Apache
server.number=0.0.1.0
server.built=Mar 28 2017 14:42:59 UTC
然后重新打包catalina.jar:
jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties
然后重启服务:
su - tomcat -c ‘/home/tools/tomcat/bin/shutdown.sh’
su - tomcat -c ‘/home/tools/tomcat/bin/startup.sh’
四、禁用管理端
-
删除默认的文档和示例程序
在安装目录下的webapps下的所有文件
-
tomcat的应用目录修改为非tomcat安装目录
cat /usr/local/tomcat/conf/server.xml
在其后添加:
<Context path='' docBase='/usr/local/tomcat_base/' debug='0' reloadable='false'></Context>
五、关闭war包自动部署
默认Tomcat是开启了对war包的热部署的。为了防止被植入木马等恶意程序,因此我们要关闭自动部署。
cat /usr/local/tomcat/conf/server.xml
将以上配置中的true改为false。阻止tomcat对war包的自动解压和自动部署。
六、端口保护
实验过程:传送门
更改tomcat管理端口8005,此端口有权限关闭tomcat服务,但要求端口配置在8000~8999之间,并更改shutdown执行的命令。
攻击者可利用telnet IP 8005连接tomcat,然后输入SHUTDOWN便可关闭tomcat服务,所以非常危险。
cat /usr/local/tomcat/conf/server.xml
七、禁止目录浏览
cat /usr/local/tomcat/conf/web.xml
将其中的default部分listings的配置必须为false(默认为false)
八、Tomcat日志分析
日志开启
Tomcat访问日志的配置在/usr/local/tomcat/conf/server.xml中
%h 访问的用户IP地址* %l 访问逻辑用户名,通常返回‘-’
%u 访问验证用户名,通常返回‘-’
%t 访问时间
%r 访问的方式(post或get),访问的资源和使用的http协议版本
%s 访问返回的http状态
%T 访问所使用的时间
日志分析的场景
- 攻击源IP数统计
- 攻击路径统计
- 攻击流量统计
- 请求处理响应时间统计
- 统计所有404错误页面
- 统计所有500错误的页面
- 统计访问最频繁的页面
- 统计访问处理时间最久的页面
- 统计并发访问频率最高的页面