Tomcat 十大安全优化方法(详解版)

发布时间:2023年12月19日

目录

1?talnet管理端口保护

2?AJP连接端口保护

3?禁用管理器

4?降权启动

5 控制文件列表的访问

6?隐藏版本信息

7?server header重写

8?限制IP访问

9?修改脚本权限

10?访问日志格式规范


1?talnet管理端口保护

配置内容

(1)修改默认8005管理端口(要求:在8000~8999之间)

(2)修改shutdown指令为其他字符串。

配置:?

以我的为例,我的Tomcat安装在application目录下。

vi /application/tomcat/conf/server.xml

将 <Server port="8005" shutdown="SHUTDOWN">?中的8005shutdown修改即可,例如:<Server port="8123" shutdown="mortal">。

2?AJP连接端口保护

配置内容

(1)修改默认的AJP 8009端口(要求:在8000~8999之间)

(2)限制AJP端口访问的权限为线上机器(iptables规则)

【防止线下的测试流量被转发到Tomcat服务器端】

配置

vi /application/tomcat/conf/server.xml

将port="8009"中8009修改即可,例如:port="8234"。

3?禁用管理器

配置内容

(1)删除Tomcat目录下的/conf/tomcat-users.xml文件,重启Tomcat后会自动生成新文件

(2)删除Tomcat目录下的/webapps目录下所有内容。

(3)将Tomcat应用根目录配置为Tomcat安装目录以外的目录。

【Tomcat管理端如果被黑客攻破,将会获取服务器的控制权,后果不敢想象!】

配置

rm -rf /application/tomcat/conf/tomcat-users.xml
rm -rf /application/tomcat/webapps/*
vi /application/tomcat/conf/server.xml

将<Host name="localhost" ?appBase="webapps"?中的webapps修改即可,例如:<Host name="localhost" ?appBase="/application/test/webapps"。

【要求修改后的目录必须存在!不存在则使用mkdir -p命令创建】

4?降权启动

配置内容

降低Tomcat启动用户的目录访问权限(必须为非root权限)

【避免Tomcat服务被入侵时,直接获取高级用户权限,后果极其严重!】

配置

(1)创建用户

useradd tomcat

(2)新建目录

mkdir -p /home/tomcat

(3)将原本的Tomcat复制到新创建的目录下并改名为tomcat_1

cp -a /application/tomcat/ /home/tomcat/tomcat_1

(4)修改属组和属主

chown -R tomcat:tomcat /home/tomcat/tomcat_1/

(5)通过普通用户将新生成的tomcat_1运行起来

su -c '/home/tomcat/tomcat_1/bin/startup.sh' tomcat

?【关闭使用 su -c '/home/tomcat/tomcat_1/bin/shutdown.sh' tomcat?命令即可】

5 控制文件列表的访问

配置内容

修改Tomcat目录下的?/conf/web.xml?文件中的default部分。

【true表示允许列出目录文件,false表示不列出目录文件】

配置

vi /application/tomcat/conf/web.xml

默认就是false,不需要修改。

6?隐藏版本信息

配置内容

(1)修改Tomcat目录下的?/conf/web.xml?文件中的403、404、500等错误页面。

(2)修改Tomcat应用程序目录下的 WEB-INF/web.xml 文件中配置进行错误页面的重定向。(在Tomcat安装目录中,webapps是放置web应用的目录。在Tomcat的webapps目录下,针对每个web应用程序都有一个目录,例如:在 webapps 下新建一个名为 myapp 的目录,那么 myapp 目录下的 WEB-INF 目录就是存放 Web 应用程序的配置文件和类文件的目录。WEB-INF 目录下的 web.xml 是该web应用的核心配置文件,其他在WEB-INF/classes和WEB-INF/lib下的文件则是该web应用程序所使用的类和jar包。)

【避免出现错误时错误页面暴露出服务器或者版本信息,还必须确保修改后的重定向页面必须存在】

配置

vi /application/tomcat/conf/web.xml

在文件最下方</web-app>上面添加如下内容:

	<error-page>
		<error-code>403</error-code>
		<location>/forbidden.jsp</location>
	</error-page>
	<error-page>
		<error-code>404</error-code>
		<location>/force.jsp</location>
	</error-page>
	<error-page>
		<error-code>500</error-code>
		<location>/mortal.jsp</location>
	</error-page>

其中网站发布目录的根目录下面(Tomcat中webapps/)必须存在forbidden.jspforce.jspmortal.jsp

7?server header重写

配置内容

在Connector参数中加入server配置。

【修改HTTP响应中的Server头来重写Tomcat服务器的标识,重启Tomcat之后,相应的HTTP响应中的Server头就会被重写为你设置的标识。】

配置

vi /application/tomcat/conf/server.xml

Connector参数:

在其中添加如下内容:

server=”myweb-server”

添加完成后保存退出即可。

8?限制IP访问

配置内容

通过配置,限制IP的访问来源。

【配置信任IP的白名单,同时拒绝非白名单IP的访问。】

配置

修改Tomcat主配置文件server.xml

vi /application/tomcat/conf/server.xml

host参数下面添加如下内容:

<Context path="" docBase="/application/tomcat/webapps/test" debug="0" reloadable="false" crossContext="true"/>
<Value className=”org.apache.catalina.values.RemoteAddrValue” allow=”192.168.10.123,192.168.124*” deny=”*.*.*.*”/>
</Context>

?添加完毕后保存退出。

9?修改脚本权限

配置内容

去除其他用户对Tomcat目录下的bin目录下的文件(例如:shutdown.shstartup.shcatalina.sh等)的可执行权限。

【防止其他用户有启动/停止Tomcat的权限】

配置

chmod -R 774 /application/tomcat/bin/*

10?访问日志格式规范

配置内容

开启Tomcat默认访问日志中RefererUser-Agent记录。

【一旦出现安全问题能够更好的根据日志进行问题排查和解决】

配置

vi /application/tomcat/conf/server.xml

%b后添加如下内容:

%{Referer}i %{User-Agent}i %D" resolveHosts="false"

添加完成后,保存退出即可。

文章来源:https://blog.csdn.net/m0_64304713/article/details/134696884
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。