由于和公司签了保密协议,涉及以下IP及参数均为实验环境!
前言
由于公司前期服务器很多很乱,没有正规的账号管理和日志审计,为了更好管理服务器资产,则进行搭建部署jumpserver堡垒机。
方案一:公网IP映射内网,实现外网访问内网资源
公司环境下,公网IP很少,内网服务器很多,云服务器的弹性公网IP只能绑定一个内网IP,那么在内网IP服务器上搭建外网服务,无法在浏览器访问。所以需要通过IP映射关系来实现外网访问内网服务。
实施架构图:
环境准备:
服务器A:弹性公网IP:10.0.0.55(私网:192.168.0.11)
服务器B:私网地址:192.168.0.22
实施大概步骤:
使用nginx端口转发(七层负载),将外网IP绑定的内网地址,转发到内网服务器上。
操作如下:
在外网IP绑定的服务器上部署NGINX服务,并且配置NGINX文件信息
upstream jumpserver { server 192.168.0.22:80 weight=191; ip_hash; } server { listen 80; server_name 10.0.0.55; location / { proxy_pass http://jumpserver; proxy_redirect default; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
问题一: 连接资产主机出现下面错误
使用tail命令查看日志发现
2020/08/24 11:10:56 [error] 4652#4652: *721 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.0.11, server: , request: "GET /assets/asset/998781e5-70fb-40fd-9039-6d8b4ed344f2/ HTTP/1.0", upstream: "http://[::1]:8080/assets/asset/998781e5-70fb-40fd-9039-6d8b4ed344f2/", host: "jumpserver", referrer: "http://10.0.0.55/assets/asset/" 2020/08/24 11:10:56 [warn] 4652#4652: *721 upstream server temporarily disabled while connecting to upstream, client: 192.168.0.11, server: , request: "GET /assets/asset/998781e5-70fb-40fd-9039-6d8b4ed344f2/ HTTP/1.0", upstream: "http://[::1]:8080/assets/asset/998781e5-70fb-40fd-9039-6d8b4ed344f2/", host: "jumpserver", referrer: "http://10.0.0.55/assets/asset/"
原因:不知道访问IP来源(由upstream映射到私网的IP地址,不会解析到内网)
结论:
方案一失败
原因:由于方一的繁琐(弹性公网IP映射到内网可以实现跳转访问,但是只会解析IP和域名,不会对资产主机进行ssh访问,原因未知,由此放弃方案一)
方案二:取消弹性公网绑定IP,把新的公网IP绑定到Jumpserver服务器上
域名解析:
在云服务器上,域名解析云服务器的公网IP。
优点:直接使用弹性公网IP可以减少内网与外网之间的映射,大大减少了繁琐性。
部署Jumpserver堡垒机(内部使用)
1.部署计划(安全性)
(1).严格按照企业规范和部署文档(https://www.lixian.fun/2652.html )进行环境部署
(2).进部署后的jumpserver进行公网测试,是否能通过外网进入jumpserver
(3).为jumpserver域名配置SSL安全证书,并进行公网测试
(4).对jumpserver初始化环境进行安全优化(如邮件、密码、用户等)
2.添加用户及用户组
(1).用户是进入jumpserver堡垒机的用户,属于个体用户。
(2).用户组是企业附属部门,如运维部、研发部、测试部。
3.创建管理用户
管理用户是资产(被控服务器)上的 root, JumpServer 使用该用户来推送系统用户、获取资产硬件信息等。
4.资产添加
(1).密钥连接服务器,添加主机时,需要提前对服务器进行密钥设置(服务器内网直接统一使用密钥连接)
(2).必须先创建管理用户再连接服务器
(3).如果管理用户的密码正确,可以通过ssh连接服务器,那么可以获取资产的硬件信息
(4).如果获取不到硬件信息,检查管理用户的服务器密码是否正确
5.创建系统用户
系统用户是 JumpServer 跳转登录资产时使用的用户,可以理解为登录资产用户(ssh连接资产服务器)
注意:如果使用root用户进行管理的话,管理用户和系统用户的密码都是被控主机的root密码
6.资产授权
这是对资产服务器权限的授权,可以进行ssh连接服务器
7.web终端
在会话管理界面下web终端内,打开已经连接的主机,就可以连接资产主机服务器了。