非固定 IP 专线实现仅公司访问管理后台并内网部署堡垒机、gitlab - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
tsfq007
V2EX    分享创造

非固定 IP 专线实现仅公司访问管理后台并内网部署堡垒机、gitlab

  •  
  •   tsfq007 2022-12-07 14:49:36 +08:00 2754 次点击
    这是一个创建于 1088 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景:事发公司属于无专职运维人员公司,近期有现象表明由于可能存在的弱密码或漏洞,导致该公司后台数据及代码泄露。经了解,该公司所有服务及代码仓库都部署在云上,同时,为节约成本,该公司宽带无公网 IP ,无防火墙设备。

    一、紧急措施

    1 、创建管理后台云主机专用的安全组,管理后台所在的云主机重置新的弹性 IP ,并在安全组中将公司此时的公网出口 IP 加入 80 端口的白名单;

    2 、创建通用安全组,并在安全组中,所有线上系统的云主机的将公司此时的公网出口 IP 加入 ssh 端口的白名单;

    3 、创建 gitlab 专用安全组,同时,gitlab 服务器重置新的弹性 IP ,22 和 80 端口在安全组中将公司此时的公网出口 IP 加入白名单;

    二、初步恢复手段

    目的:由于出现之前的严重情况,后续该公司希望所有云上主机等运维只能通过公司内网进行,并提供远程接入公司网络的服务。

    需要的资源:( 1 )性能处于中流的台式机设备一台;( 2 )公司业务量最大的区域的同一 VPC 网络下购买一台最低配的云主机,带宽方面先期按流量计费,使用非弹性公网 IP ,带宽计费方式后期根据情况进行调整;

    1 、为不泄露相关信息,本文中,云主机公网 IP 设定为 11.11.11.11 ,VPC 内网 IP 为 172.16.0.143 ;该云主机创建后,我在上面部署了 frps ,并新建了专用安全组,保证 bind_port 已经开放,并保证后续要用到的 8000 端口不开放访问;配置如下,token 、端口和 dashboard 相关信息都是随机填写:

    [common] bind_port = 7000 dashboard_port = 7500 dashboard_user = admin dashboard_pwd = admin token = 123456 

    完成填写后用以下命令启动:

    nohup ./frps -c ./frps.ini >/dev/null 2>&1 & 

    2 、在对方公司本地,台式机配置为 i5-7600 ,内存 16G ,SSD 为 512G ,符合目前需求。该台式机我无法成功安装 exsi ,为了尽快投入使用,我安装了 win10 ,并在上面安装了 Virtualbox 和 todesk (方便管理);

    3 、在 win10 本地,我设置该机内网 IP 为 192.168.1.240 ,然后在上面部署 frps 和 frpc ,配置分别如下,同样,token 、端口和 dashboard 相关信息都是随机填写;

    //frps.ini [common] bind_port = 8000 dashboard_port = 8500 vhost_http_port = 80 vhost_https_port = 443 dashboard_user = admin dashboard_pwd = admin token = 123456 
    //frpc.ini [common] server_addr = 11.11.11.11 server_port = 7000 token = 123456 admin_addr = 127.0.0.1 admin_port = 2000 [frptcp] type = tcp local_ip = 127.0.0.1 local_port = 8000 remote_port = 8000 use_encryption = true use_compression = true 

    完成填写后在 cmd 中用以下命令启动:

    C:\frp\frps.exe -c C:\frp\frps.ini C:\frp\frpc.exe -c C:\frp\frpc.ini 

    完成填写后在 cmd 中用以下命令进行重载:

    C:\frp\frpc.exe reload -c C:\frp\frpc.ini 

    4 、对方使用的域名以 aaa.com 为例,管理后台所在的云主机为 172.16.0.111 ,以此为例,在最后购买的云主机 172.16.0.143 进行操作;以上操作时,需要被连接的主机的端口在安全组对 frps 所在的云主机进行内网 IP (同一区域的 VPC )或外网 IP (不同区域或同一区域不通 VPC 网络)开放;

    //frpcgs.ini [common] server_addr = 127.0.0.1 server_port = 8000 token = 123456 admin_addr = 127.0.0.1 admin_port = 2000 [adminssh] type = tcp local_ip = 172.16.0.111 local_port = 22 remote_port = 10000 use_encryption = true use_compression = true [adminweb] type = http local_ip = 172.16.0.111 local_port = 80 custom_domains = admin.aaa.com use_encryption = true use_compression = true 

    完成填写后用以下命令启动:

    nohup ./frpc -c ./frpcgs.ini >/dev/null 2>&1 & 

    后期如果是添加或删除等更改,可以使用以下命令 reload ,无法对 frpc 进程杀了重启;

    ./frpc reload -c ./frpcgs.ini 

    完成后 admin.aaa.com 的解析切换到 192.168.1.240 ,并删除管理后台所在的云主机的弹性 IP ;

    5 、在 Virtualbox 新建一个 Other Linux ( 64-bit )的虚拟机,配置为 2 核 4G ,最大存储为 100G ,安装 centos7 ,安装完后,网络设置为桥接,IP 配置好 IP 为 192.168.1.241 ,完成后使用以下命令自动完成 jumpserver 的安装:

    curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v2.16.3/quick_start.sh | bash 

    jumpserver 完成安装和配置后,添加云上主机时,图标 1 中填入 192.168.1.240 (本地 frps 所在的 IP ),端口填入代理回来的端口号;

    6 、在 Virtualbox 新建一个 Other Linux ( 64-bit )的虚拟机,配置为 2 核 4G ,最大存储为 100G ,安装 centos7 ,安装完后,网络设置为桥接,IP 配置好 IP 为 192.168.1.242 ,完成后安装 gitlab ,设置完后将代码导入。由于本文使用的是台式机,无硬盘安全保证,在目前的情况下,在对方公司制度上要求每周第一个工作日备份一次镜像,然同时复制到两个不同的移动硬盘中,以防设备损坏造成代码丢失;

    7 、在 Virtualbox 新建一个 Othe 的虚拟机,配置为 1 核 1G ,最大存储为 5G ,安装爱快。爱快安装完成后,在虚拟机界面开放 WEB 的 WAN 口访问,并将 eth0 绑定给 WAN1 ,并将 WAN1 的 IP 设置为 192.168.1.243 。完成以上操作后,设置回公司的 OPENVPN ,将如图红框标注的部分设置为 TCP ,这样操作的原因在于目前国内运营商存在对 UDP 过分 Qos 的情况;

    在本地 frpc 所在的 win10 上,增加以下配置,配置完成后重载 frpc ,并将配置中的目标端口 TCP 55555 在云端 frps 的安全组中对公网开放;

    [adminssh] type = tcp local_ip = 192.168.2.243 local_port = 1194 remote_port = 55555 use_encryption = true use_compression = true 

    需要注意的是,从爱快上下载的 OPENVPN 配置,需要改变红框标注的 remote 的配置,按实际情况填写;

    三、后期规划方案

    规划原因:目前的方案只是解决了棘手的问题,但由于台式机相对不稳定的特点,建议后期迁移到真正的服务器上;

    需要增加的设备:( 1 )一台服务器,装 exsi ,硬盘 raid1 ;( 2 )购买一台迷你主机,上面装爱快,做为软路由;

    后期规划:( 1 )去掉本地的 frps ,在云端部署 openvpn ,用软路由接入;( 2 )将回公司的 VPN 迁移到软路由上;( 3 )剩下的虚拟机全部迁往服务器做虚拟化。

    14 条回复    2022-12-08 12:43:47 +08:00
    perfectlife
        1
    perfectlife  
       2022-12-07 15:06:30 +08:00
    直接云上部署个 vpn 本地连接使用呗,真是只能公司内网用 回家后就不访问了,尤其是公司没固定 ip
    tsfq007
        2
    tsfq007  
    OP
       2022-12-07 15:28:48 +08:00
    @perfectlife 这样的缺点是云服务器还是没办法统一管理;然后减少非技术人员的使用难度
    perfectlife
        3
    perfectlife  
       2022-12-07 15:56:04 +08:00
    @tsfq007 打了很多还是删了,只因看到第一行没运维, 请个运维吧 ,没运维 开发那不是八仙过海各显神通 ,安全的最大问题是人不关别的啥事
    zealic
        4
    zealic  
       2022-12-07 16:15:23 +08:00
    我选 Wireguard
    defunct9
        5
    defunct9  
       2022-12-07 17:34:22 +08:00
    罗里吧嗦一大套,是来 show 技的么
    ltruntu
        6
    ltruntu  
       2022-12-07 17:37:52 +08:00
    拉个公网办公的 ip 不就好了
    ltruntu
        7
    ltruntu  
       2022-12-07 17:42:10 +08:00
    堡垒机 git 都部署在云上 公网端口关闭,只允许 frp 走 本地去连 就走 frp 代理一下不就好了 写那么多谁来看
    adoal
        8
    adoal  
       2022-12-07 17:42:27 +08:00 via iPhone
    这是在纵容事发公司后续依然不重视运维
    lower
        9
    lower  
       2022-12-07 17:49:02 +08:00
    我以前负责的项目也出现过类似的事情,
    我加了很多操作的跟踪行为日志,蹲了好几个晚上,终于抓到可疑的账号和 IP 了。。。。
    公司法务根据这些信息,把离职的前员工诈出来承认了
    kiddingU
        10
    kiddingU  
       2022-2-07 18:21:25 +08:00
    @perfectlife 没固定 IP 问题也不大吧,DDNS 就行了
    ishalla
        11
    ishalla  
       2022-12-07 20:56:19 +08:00
    我想说 frp 这种产品真的敢用在 enterprise solution 里啊。。
    过得了 compliance 、security 和 qa 三堂会审?
    yujizmq
        12
    yujizmq  
       2022-12-08 01:35:14 +08:00 via Android
    @ishalla “无专职运维人员”,规模应该不大,也许并不在意这点
    当然,我也不建议在企业环境用 frp 之类的工具。
    billytom
        13
    billytom  
       2022-12-08 05:42:09 +08:00 via Android
    这种事情,一看就应该是 VPN 的范畴了,拆东墙补西墙,最终问题只会越来越多
    perfectlife
        14
    perfectlife  
       2022-12-08 12:43:47 +08:00
    @kiddingU 可以但是我认为企业没必要用 ddns ,个人用用也就算了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     848 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 22:30 PVG 06:30 LAX 14:30 JFK 17:30
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86