通过代理主机在内网部署应用
应用场景
通过代理主机在内网部署应用,能有效控制内外网通信,增强数据安全与网络性能,同时满足合规性要求;这一策略广泛应用于资源访问控制、数据中心间安全通信、内容缓存加速、环境隔离、安全审计及敏感数据处理等多个关键场景。
方案架构
采用squid代理服务中的Internet正向代理功能,在代理主机上指定目标主机的地址和端口,实现目标主机的公网访问。
想了解squid更多相关知识,请前往squid官网。下面以Linux系统机器进行演示。
前提条件
- 一台绑定公网IP的“代理主机-B”,若无主机可参考申请ECS。
- 一台未绑定公网IP的“目标主机-A”。
- “代理主机-B”与“目标主机-A”可通过内网进行互相访问。
操作流程
本节介绍如何将应用通过代理主机部署到内网的主机或服务器。
- 安装squid代理服务。
进入“代理主机-B”的命令行工具,执行以下命令:
yum install squid -y
若回显最后为“Complete”,可继续执行以下命令:
yum install iptables-services
回复“Y”,回显最后为“Complete”,即为安装完成。
- 编辑squid配置文件。
- 进入“代理主机-B”的命令行工具,执行以下命令:
vim /etc/squid/squid.conf
- 在上图红框位置添加以下命令:
acl local src 主机的内网IP/24
- 按“ESC”键,输入“:wq”,退出并保存。
- 进入“代理主机-B”的命令行工具,执行以下命令:
- 配置“代理主机-B”防火墙。
进入“代理主机-B”的命令行工具,依次执行以下命令:
systemctl stop firewalld.service
systemctl disable firewalld.service
yum install iptables-services iptables-devel -y
systemctl enable iptables.service
systemctl start iptables.service
iptables -I INPUT 1 -s 主机的内网IP/24 -p tcp --dport 3128 -j ACCEPT
iptables -I INPUT 2 -p tcp --dport 3128 -j DROP
其中倒数第二行的IP需配置为“目标主机-A”的内网IP网段或IP,3128是squid的代理端口。
- 安装openssl。
进入“代理主机-B”的命令行工具,执行以下命令:
yum install openssl
回显最后为“Complete”,即为安装完成。
- 启动squid代理服务。
进入“代理主机-B”的命令行工具,执行以下命令:
systemctl start squid //启动squid代理服务
systemctl status squid //检查squid状态
- 配置正向代理。
进入“目标主机-A”的命令行工具,执行以下命令:
echo "export http_proxy=http://代理机的内网IP:3128" >>/etc/profile echo "export https_proxy=http://代理机的内网IP:3128" >>/etc/profile echo "export http_proxy=http://代理机的内网IP:3128" >>~/.bashrc echo "export https_proxy=http://代理机的内网IP:3128" >>~/.bashrc echo "export http_proxy=http://代理机的内网IP:3128" >>~/.bash_profile echo "export https_proxy=http://代理机的内网IP:3128" >>~/.bash_profile source /etc/profile source ~/.bashrc source ~/.bash_profile
- 新建基础资源。
- 单击“首页”可以查看已创建的所有项目,进入目标项目下。
- 单击菜单“设置 > 通用设置 > 基础资源管理”,默认进入“主机集群”页面。
或单击菜单“持续交付 > 部署”,进入项目下部署服务界面。单击“基础资源管理”默认进入“主机集群”页面。
- 单击“新建主机集群”,填写以下信息后,单击“保存”,完成主机集群的创建。
参数项
是否必填
说明
集群名称
是
请输入自定义的主机集群名称。
操作系统
是
根据即将添加主机的操作系统,选择“Linux”。
主机连通方式
是
选择代理模式。
执行主机
是
资源池是部署软件包时执行部署命令的物理环境的集合,本场景执行主机采用官方资源池。
描述
否
请输入对主机集群的描述。
- 单击“添加或导入主机”,“选择添加方式”选择“通过IP手动添加”,填写以下信息后,单击“确定”,完成代理主机的创建。
表1 Linux系统代理主机参数说明 参数项
是否必填
说明
主机名
是
请输入自定义的代理主机名称,示例:代理主机-B。
IP
是
请输入“代理主机-B”所绑定的公网IP地址。
操作系统
是
不可更改,默认为当前主机集群的操作系统。
认证方式
是
本场景使用密码进行认证,输入的是“代理主机-B”的用户名及密码。
SSH端口
是
推荐使用22端口。
- 单击“添加或导入主机”,“选择添加方式”选择“通过IP手动添加”,填写以下信息后,单击“确定”,完成目标主机的创建。
表2 Linux系统目标主机参数说明 参数项
是否必填
说明
主机名
是
请输入自定义的目标主机名称,示例:目标主机-A。
代理主机
是
请选择“代理主机-B”为无法连接公网的目标主机进行网络代理。
IP
是
请输入“目标主机-A”的私有IP地址。
操作系统
是
不可更改,默认为当前主机集群的操作系统。
认证方式
是
本场景使用密码进行认证,输入的是“目标主机-A”的用户名及密码。
SSH端口
是
推荐使用22端口。
- 单击某个主机操作列的图标,即可启动该主机进行连通性验证操作。
- 新建应用。
- 登录软件开发生产线首页,单击目标项目名称,进入项目首页。
- 单击菜单“持续交付 > 部署”,进入项目下部署服务界面。
- 单击“新建应用”,进入“基本信息”页面,可根据需要修改名称、描述、执行主机等基本信息。
- 完成应用基本信息的编辑后,单击“下一步”,进入选择部署模板页面,选择“空白模板”,单击“确定”。
- 进入“部署步骤”页面,在右侧步骤列表中,单击目标步骤的“添加”键,可将该部署步骤添加到左侧的步骤编排区中。
- 进入“环境管理”页面,单击“新建环境”,输入环境基本信息,单击“保存”完成新建。
- 单击“导入主机”,系统已自动筛选符合当前环境的所有集群,在弹框中选择目标主机集群,将“代理主机-B”、“目标主机-A”导入环境中。
- 部署应用,详细操作可参考部署CodeArts Deploy应用。
- 应用列表中选择待部署应用,单击图标,即可部署该应用。
- 部署完成后,单击应用名称,单击目标部署记录,应用状态栏的颜色变成绿色,并显示“部署成功”,则表示此次部署应用成功。