geoserver发布图层修复安全漏洞

一、关闭geoserver服务web、rest、gwc/rest管理页面

1、tomcat

tomcat发布的geoserver服务中,进入tomcat/webapps/geoserver/WEB-INF,打开web.xml文件,

在文件最后添加如下配置

java 复制代码
<security-constraint>
     <web-resource-collection>
         <web-resource-name>Block web and rest</web-resource-name>
         <url-pattern>/web/*</url-pattern>
         <url-pattern>/rest/*</url-pattern>
         <url-pattern>/gwc/*</url-pattern>
         <url-pattern>/web.html</url-pattern>
         <url-pattern>/web.htm</url-pattern>
         <url-pattern>/web.webj</url-pattern>
         <url-pattern>/web.web</url-pattern>
         <url-pattern>/web.jsp</url-pattern>
         <url-pattern>/web.jspx</url-pattern>
         <url-pattern>/rest.html</url-pattern>
         <url-pattern>/rest.htm</url-pattern>
         <url-pattern>/rest.webj</url-pattern>
         <url-pattern>/rest.web</url-pattern>
         <url-pattern>/rest.jsp</url-pattern>
         <url-pattern>/rest.jspx</url-pattern>
     </web-resource-collection>
     <auth-constraint>
         <!-- 空auth-constraint表示不允许任何角色访问 -->
     </auth-constraint>
 </security-constraint>

配置完成后重启tomcat

2、东方通

通过东方通发布的geoserver服务,与tomcat类似,配置完成后重启东方通

3、nginx

通过nginx代理geoserver服务,在nginx的配置文件nginx.conf中添加相关配置

java 复制代码
http中添加白名单配置
geo  $admin_whitelist {
    default 0;
    127.0.0.1 1;
    192.168.1.0/24 1;
    58.247.17.139 1;
}
java 复制代码
# GeoServer 配置
location /geoserver/ {
	 #       proxy_pass http://127.0.0.1:2443;
	 #       proxy_set_header Host $host;
	 #       proxy_set_header X-Real-IP $remote_addr;


		 location ~* ^/geoserver/(web|rest) {
		
		        # 重要:确保 proxy_pass 正确工作
		        proxy_pass http://127.0.0.1:2443;
		        
		
		        proxy_set_header Host $host;
		        proxy_set_header X-Real-IP $remote_addr;
		        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		        proxy_set_header X-Forwarded-Proto $scheme;
		
		           if ($admin_whitelist != 1) {
		                access_log logs/geoserver_admin_denied.log;
		                return 403;
		            }
		            allow all;
		            access_log logs/geoserver_admin_access.log;
		
		}

		location ~* ^/geoserver/([^/]+)/(wms|wfs|wcs|wmts|ows) {
		        # 重要:确保 proxy_pass 正确工作
		        proxy_pass http://127.0.0.1:2443;
		         
		        proxy_set_header Host $host;
		        proxy_set_header X-Real-IP $remote_addr;
		        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		        proxy_set_header X-Forwarded-Proto $scheme;
		
	            allow all;
	            proxy_read_timeout 120s;
		
		}

   deny all;
   return 404;
}

4、geoserver添加authkey认证访问

第一步:在官网下载对应版本的authkey插件

第二步:将下载的插件jar包,放到geoserver的lib目录中geoserver\WEB-INF\lib

第三步:启动geoserver,进入后台管理页面,一定需要修改密码

第四步:配置权限认证。添加UUID b52d2068-0a9b-45d7-kedu-144d12222025

第五步:设置过滤器


第六步:添加过滤器


第七步:保存配置

第八步:访问测试,访问所有的工作空间都需要加&authkey=b52d2068-0a9b-45d7-kedu-144d12222025

相关推荐
超龄超能程序猿1 小时前
Docker常用中间件部署笔记:MongoDB、Redis、MySQL、Tomcat快速搭建
笔记·docker·中间件
lhrimperial14 小时前
企业级消息中心架构设计与实践:多渠道统一推送平台
spring cloud·中间件·系统架构
慧一居士18 小时前
IntelliJ IDEA中的项目jdk版本、语言级别版本与目标字节码版本配置说明与步骤示例
中间件
CRUD酱18 小时前
微服务分模块后怎么跨模块访问资源
java·分布式·微服务·中间件·java-ee
laplace012319 小时前
Part3 RAG文档切分
笔记·python·中间件·langchain·rag
国科安芯1 天前
商业卫星多轴步进驱动系统的抗辐照MCU集成方案
运维·网络·单片机·嵌入式硬件·安全·安全威胁分析·risc-v
吳所畏惧1 天前
Linux环境/麒麟V10SP3下离线安装Redis、修改默认密码并设置Redis开机自启动
linux·运维·服务器·redis·中间件·架构·ssh
慧一居士2 天前
xxl-job服务搭建,以及 springboot 集成xxl-job 项目完整步骤示例
分布式·中间件
odoo中国2 天前
Pgpool-II 在 PostgreSQL 中的用例场景与优势
数据库·postgresql·中间件·pgpool