centos 白名单(centos如何关闭防火墙)
大家好,今天来为大家解答centos 白名单这个问题的一些问题点,包括centos如何关闭防火墙也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
Centos防火墙限制配合白名单策略的实战
在信息系统的实际部署中,常遇到内部服务端口被漏洞扫描工具发现漏洞,却因多种原因无法升级解决的情况。如果通过操作系统防火墙限制这些端口,可能影响内部多台服务器之间的正常互访,同时若完全开放也可能导致相关漏洞对外暴露。针对此难题,本实战将介绍一种使用防火墙限制服务端口并结合白名单策略的方法来实现安全与互访的平衡。
本实战以三台服务器为例,目标是在确保所有服务器内部能互相访问的基础上,对外只能访问特定端口(如8081端口),以实现漏洞封堵的同时,保证内部系统的正常运行。
首先,确保每台服务器的防火墙已启动并正常工作。
接下来,针对每台服务器执行以下步骤以开放白名单端口和特定服务端口。
1.主机1(IP:192.168.18.10):配置防火墙策略以开放内部服务端口给白名单内的服务器,并开放8081端口供外部访问。如有其他对外开放端口需求,可在此基础上进行添加。同时,确保keepalived(若有使用)的端口也被正确配置。最后,使用重新加载命令生效。
2.主机2(IP:192.168.18.11):与主机1类似,配置防火墙策略以满足内部互访需求,并开放8081端口供外部访问。保持与主机1一致的keepalived端口配置,并执行重新加载命令以确保策略生效。
3.主机3(IP:192.168.18.12):执行与前两台服务器相同的步骤,以实现内部互访与8081端口对外访问的策略配置。
通过以上步骤,实现所有服务器内部的全互访,外部访问仅限8081端口,有效解决了封堵服务漏洞的同时,保障了内部系统的正常运行。
此外,对于Linux操作系统、数据库集群部署、系统高可用方案、商用密码密评密改方案等相关技术咨询问题,欢迎进行深入交流与探讨。完成上述操作后,即可在保证内部互访畅通的同时,对外只开放必要的服务端口,实现安全与效率的双重保障。
附录:常用Linux防火墙相关命令
开放某端口策略
去除某端口开放策略
查看已开放策略
管理防火墙服务
查看防火墙状态
暂时关闭防火墙(重启可能失效)
永久关闭防火墙
永久开启防火墙
重启防火墙
永久关闭SELinux(如有使用)
当开发遇到了IP白名单限制的解决方案
前言
不知道有没有小伙伴在开发的过程中遇到过:第三方服务提供的接口,只能通过在其IP白名单池里的IP才能访问?
面对这个痛点,有以下几种可能的方案:
1.申请将本地开发环境的IP地址加入到第三方的IP白名单池里
优点:本地环境无需做额外配置
缺点:本地环境IP地址变更频繁,需要频繁申请将IP加入到白名单中,沟通协调成本高
2.本地只进行代码开发,将服务部署到线上环境进行第三方接口调试
优点:无需进行额外的申请或者配置
缺点:开发效率低,功能完成后需要先部署上线再调试,不利于问题的排查和解决
3.使用远程代理,实现本地IDE<-->远程代理<-->第三方接口
优点:开发效率高,在本地IDE里,一边进行代码开发,一边进行第三方接口调试。符合常规开发方式
缺点:需要进行额外的配置
可以看到,方案1和方案2的缺点都是比较明显和难以被忍受的,在实际工作中无法满足我们的需求。而方案3,虽然需要进行一些额外的配置和花费一定的成本,但确是比较合理和容易实现的方案。
所以,本文会用方案3来解决我们开发过程中遇到的这个白名单痛点。
基本思路
在本地IDE和第三方服务器之间架设一个代理服务器。
该代理服务器需要有一个固定的公网IP地址,并申请将该IP地址加入到第三方的IP白名单池里。
配置本地IDE环境,使其请求通过该代理服务器转发到第三方服务器上。如下图所示:
所以,从上面的思路来看,需要完成以下几点:
有一台具备公网固定IP的服务器作为代理服务器(可以在各大公有云提供商上申请一台,不赘述)
向第三方申请将该固定IP加入其访问白名单池(非技术问题,不赘述)
在代理服务器上配置代理,这里使用的代理软件是Squid
本地IDE环境下,配置必要参数来连接代理服务器,这里使用的本地IDE是IntelliJIDEA
具体实现在代理服务器上安装配置Squid
SquidCache(简称为Squid)是HTTP代理服务器软件。Squid用途广泛,可以作为缓存服务器,可以过滤流量帮助网络安全,也可以作为代理服务器链中的一环,向上级代理转发数据或直接连接互联网。wiki
安装Squid(基于Centos系统)
安装:
$yuminstallsquid-y$yuminstallhttpd-tools-y
启动:
$systemctlstartsquid.service
关闭
$systemctlstopsquid.service
开机自启动
$systemctlenablesquid.service配置Squid
打开Squid的配置文件:
$vi/etc/squid/squid.conf
修改squid.conf文件,这里以只允许通过Squid代理访问juejin.cn为例:
#只允许代理访问juejin.cnacljuejin_urlurl_regexjuejin.cnhttp_accessallowjuejin_urlhttp_accessdenyall#Denyrequestfororiginalsourceofarequest(让第三方服务器认为请求来自公网IP)follow_x_forwarded_fordenyall#3128为默认端口号,建议修改http_port0.0.0.0:3128
其他保持默认配置即可。
需要注意的是:由于本地IDE配置代理不支持密码方式(不确定?如果支持,请不吝赐教),所以squid.conf配置文件里没有加入密码相关的配置
在本地IDE里配置代理
点击EditConfigurations,
点击左边栏SpringBoot,找到启动类xxxApplication,
编辑Environment里的VMoptions。假设代理服务器的公网IP为:123.123.123.123,监听的端口号为:3128(在squid.conf已经指定),那么在VMoptions栏填写:
-DproxyHost=123.123.123.123-DproxyPort=3128Ref.
Squid(软件)
作者:arkMon
为什么我的Xshell连接不了我的linux(centos 7)
NAT模式需要配置端口转发,否则无法从主机连接虚拟机的服务。
在VirtualBox/VmWare中设置。
以VirtualBox为例,选中欲设置的虚拟机,点击设置调出“设置对话框”如下:
VirtualBox的虚拟机设置界面
选中网络条目,点开高级,单击“端口转发”,界面如下:
新增一条规则如下:
新增的ssh端口转发规则
其中,主机IP需要去控制面板的网络适配器界面查找,我这里是192.168.56.1,如图:
在控制面板中,依次进入控制面板,网络和 Internet,网络连接,打开VirtualBox那个网卡,查看详细信息获得IP地址,这个IP地址是虚拟机和本机组成一个网络时,本机的IP地址,从这个地址设置端口转发即可。
VirtualBox网卡的IP
VMWare设置相似,因为没有安装,所以没有截图。
设置好了之后,从本机终端运行,ssh用户名@192.168.56.1,即可远程到虚拟机,截图如下:
登录成功界面
另外注意,ICMP协议是没有端口的,从虚拟机ping外网以及回应的ping包由VirtualBox/VmWare负责转发,不需要设定端口映射,所以你可以直接ping通百度