服务器限制某个端口只允许特定IP访问(处理第三方依赖漏洞)

最近项目部署之后,有些客户开始进行系统系统漏洞扫描,其中出现问题多的一个就是我们项目所依赖的Elasticsearch(es检索服务),很容易就被扫出来各种高危漏洞,而且这些漏洞我们在处理起来是很棘手的,毕竟这个是依赖于开源的一些服务,我们不可能等到厂商直接解决这些问题,那么我们只能自己尝试解决这些问题喽!

1、解决思路

(1)问题现象描述

(2)问题解决思路

好多问题,这解决起来根本无从下手啊,这要是解决起来,难不成我们还要去改人家的源码吗?想想都不现实。好在最后想到了一个思路:既然这些漏洞是通过访问特定的端口,从而获取到一些用户安全方面的信息,那么我们直接将这个Elasticsearch所依赖的端口给他禁用掉不就行了吗,而且一劳永逸。我们在指定当前Elasticsearch所占用的端口只允许特定的IP或者只允许本机访问,那么这样我们系统对于Elasticsearch的依赖不也能正常使用了嘛。

2、限制特定端口只允许特定IP访问

因为我们的项目基本都是基于docker环境部署的,所以以下操作在docker环境下是可行的,其他环境部署的可以试一试

(1)知识点

默认情况下 docker 会在 iptables 里创建优先级比 firewalld 高的规则。使用 firewalld 创建的规则对 docker 的容器就不会产生作用。 所以就会出现我们在firewalld设置端口访问控制,并不能完成限制特定IP访问的目的。

(2)操作步骤

-- 查看DOCKER 开放的规则

iptables --line -nvL DOCKER

-- 禁用9200端口

iptables -I DOCKER -p tcp --dport 9200 -j DROP

-- 允许10.4.56.13可以访问本机9200端口

iptables -I DOCKER -s 10.4.56.13 -p tcp --dport 9200 -j ACCEPT

-- 删除防火墙规则,需指定规则序号,规则序号通过命令:iptables --line -nvL DOCKER 查询

iptables -D DOCKER 规则序号 4

-- 保存规则(如果保存失败,或者防火墙不能重启,下次操作系统重启以后已配置规则会失效)

systemctl save iptables 或者 service iptables save

-- 重启防火墙

systemctl iptables restart

(3)注意

-- 如果执行service iptables save

报如下错误:

The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.

-- 原因:

从 CentOS 7.x 开始,CentOS 开始使用 systemd 服务来代替 daemon,原来管理系统启动和管理系统服务的相关命令全部由 systemctl 命令来代替。service 命令之保留了极少部分使用,大部分命令都要改用 systemctl 命令来使用。

-- 解决方法:

-- 首先停止防火墙,再禁用firewalld:

systemctl stop firewalld

systemctl mask firewalld

yum install iptables-services

service iptables start

chkconfig iptables on

相关推荐
小猿姐7 小时前
唯品会大规模数据库云原生实践:基于 KubeBlocks 管理数千实例的统一运维之路
运维·elasticsearch·云原生
泯泷17 小时前
第 2 篇:设计第一套字节码:Opcode、Instruction 与 Constant Pool
前端·javascript·安全
泯泷17 小时前
第 1 篇:从 1 + 2 开始:亲手写出第一台 JSVM
前端·javascript·安全
SkyWalking中文站20 小时前
认识 Horizon UI · 5/17:3D 基础设施地图
运维·监控·自动化运维
SkyWalking中文站2 天前
认识 Horizon UI · 1/17:SkyWalking 新一代可观测性控制台
运维·前端·监控
extrao2 天前
🚀 Kea DHCP4 自动分配系统完整搭建
网络协议
雪梨酱QAQ2 天前
Kubeneters HA Cluster部署
运维
lichenyang4532 天前
Docker 学习笔记(五):Docker Compose,用一个 YAML 启动前端、后端和 MongoDB
docker
lichenyang4532 天前
Docker 学习笔记(四):Dockerfile,把项目打成自己的镜像
docker·容器
lichenyang4532 天前
Docker 学习笔记(三):Docker 网络、bridge、子网和容器互通
docker·容器