TOMCAT 中间件安全加固
1、 tomcat中间件安装:
yum install httpd* -y
yum install tomcat* -y
然后就能看到系统中多出了个端口:
其中8005端口是管理口,8080是默认的tomcat页面
我们可以通过访问本地8080口来判断服务是否安装成功
其中下文会详细介绍如何更改tomcat的管理口和页面显示端口。
其中, Tomcat配置文件所在目录:
更改管理端口和服务关闭命令:
1、 我们进入配置文件:/etc/tomcat/server.xml
这段话的意思就是“tomcat的管理服务端口号为8005,且关闭端口的命令为SHUTDOWN。”
如果我们需要禁用8005端口,则我们可以把端口号改为-1,这样我们的管理口就被禁用了。
我们可以通过更改nc连接服务器的8005端口并使用命令“SHUTDOWN”来关闭tomcat服务
现在修改配置文件server.xml中的Port所指对象来改变管理口的端口号和关闭服务指令。
这里我们把端口改为8365,且把该服务的关闭指令改为:“close“来避免恶意用户像本地管理口发送恶意指令。
修改完成后重启tomcat服务,再次使用netstat -ntlp来查看端口号
我们可以很明显的看到,本地监听端口中多出了一个端口为:8365的服务进程。
我们尝试通过nc连接8365并发送shutdown指令。
我们可以看到tomcat服务并没有关闭。(活得好好的系列)
更改tomcat默认页面端口:
同样是打开tomcat的默认配置文件,路径为:/etc/tomcat/server.xml
这段配置文件中,port的参数是指该默认页面的端口号为8080,其后的protocol是指使用的协议默认为HTTP/1.1,而connectionTimeout参数是指的超时时间为20000,而redirectPort的参数是指通过ssl加密后的页面使用端口为8443端口。
重启tomcat服务,再次访问网页
可以看到tomcat的默认页面的端口号已经变成为9090.
禁用管理端:
对于tomcat的web管理端属于高危安全隐患,一旦被攻破,黑客通过上传webshell的方式取得服务器的控制权是让人很难受的一件事情。我们需要删除tomcat安装目录下的conf/tomcat-user.xml或者删除webapps下默认的目录和文件。
通过检索我们发现了以下两处位置:
使用低权限用户运行tomcat
我们可以先使用lsof来查看当前tomcat所运行的进程的用户信息。
只要确保tomcat不是以root用户(UID、GID为0)的用户运行即可。
文件列表访问控制(目录遍历)
首先我们进入配置文件,配置文件目录:/etc/tomcat/web.xml
我们找到如下配置参数:
如果listings的值为false则为不列出目录文件,如果listsings的值为true,则表示存在目录遍历漏洞。该配置默认为false。
重定义错误页
对于一些常见的错误页面,我们可以在配置文件/etc/tomcat/web.xml中,重定向403、404以及500错误到指定页面。
默认错误页面:
我们现在在web.xml配置文件中加入error-page参数。
我们现在编辑我们的错误页面。该错误页默认放在我们webapps目录中。
重启tomcat服务,我们可以看到,页面为我们自定义的错误页面了。
去除其他用户对tomcat的启动权限
默认文件位置:/usr/share/tomcat/bin
Chmod 744 /usr/share/tomcat/bin