V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Tuisku
V2EX  ›  问与答

在端口限制严格的服务器上如何愉快的使用远程桌面

  •  
  •   Tuisku · 2017-01-10 10:44:09 +08:00 · 3990 次点击
    这是一个创建于 2661 天前的主题,其中的信息可能已经有所发展或是发生改变。
    前景提要:
    - 公司项目放在新合作方的服务器上并且以信合作方的名义运营
    - 蛋疼的是,每次发布代码什么的都要通过以下流程
    · QQ 联系新合作方,告知需要远程,需要发布的文件通过 EMail 发送给对方,对方下载
    · 对方在他们的电脑上通过 [内网] 远程到服务器上
    · 我们通过 QQ 远程协助控制对方的电脑操作服务器进行发布操作

    经过一段时间之后实在是,受不了,这种,尴尬的行为:
    · 如果有紧急问题需要解决,大半夜的那种,肯定是很难迅速解决
    · 每次发布东西都要尴尬的跟对方交谈半天顺便互相问好表示天气不错
    · 有时候临近下班时间发布,总感觉自己耽误了对方的休息时间
    · …… And more

    但是!对方又不允许我们在服务器上安装能内网穿透的远程软件,想偷偷的安装也不行,毕竟每次远程操作都在对方的监控下(呕,我死了

    现在只能做到在产品的代码里加了个能执行 SQL 语句的小 Shell ,但是对方给每个请求设置了 45s 的超时,每次需要导出一点大的东西, SELECT 的东西多一点,过了 45s 就玩儿完。(呕 我又死了

    不知各位 dalao 有什么好的解决办法,比如在产品内置一个 Web 端的远程之类的( ASP.NET 技术栈,服务器仅开放 80 端口
    31 条回复    2017-01-11 11:35:22 +08:00
    ryd994
        1
    ryd994  
       2017-01-10 10:47:20 +08:00
    说到底,人家不急你急什么?
    Tuisku
        2
    Tuisku  
    OP
       2017-01-10 10:49:28 +08:00
    @ryd994
    人家是指合作方那里?我们这运维和实施那边很多数据导出的工作,但是因为有个 45s 的超时,导致部分数据没法导出。要么我去要远程直接在数据库导出,要么等第二天早上 4 点数据库自动备份回来,从备份库里导。但是不是所有工作都能等的。
    shakoon
        3
    shakoon  
       2017-01-10 10:50:21 +08:00
    自己搞这种后门被你们合作方知道了,你们怕是要完哦
    Midnight
        4
    Midnight  
       2017-01-10 10:51:58 +08:00
    teamviewer 完美解决你的问题
    Tuisku
        5
    Tuisku  
    OP
       2017-01-10 10:52:14 +08:00
    @shakoon
    不搞点这种小后门,其他部门的同事工作很受影响。可是外省业务的推广还要靠这合作方(蛋疼
    Tuisku
        6
    Tuisku  
    OP
       2017-01-10 10:53:48 +08:00
    @Midnight
    对方不允许我们装这玩意儿,之前也想过,至少不能在对方眼皮子底下装。。
    ncwgf
        7
    ncwgf  
       2017-01-10 10:54:58 +08:00
    建置一台東西給 git 的 只讓雙方跟服務器能存取的
    東西要發佈就 push 上去 然後自動 /自行通知對方
    叫對方自己連好服務器自行執行一個寫好的 shell script pull 下來
    嗒啦~

    嗯...前後端分離 (咦
    ncwgf
        8
    ncwgf  
       2017-01-10 10:56:22 +08:00
    咦 沒留意要導出數據...
    不留後門之類..就...沒辦法
    gamexg
        9
    gamexg  
       2017-01-10 12:17:10 +08:00   ❤️ 1
    既然决定留后门了,那么感觉技术上没难度啊。
    ASP.NET 不熟悉,但是记得这个除了账号权限不足外功能齐全。
    .NET 不是允许运行时编译吗?直接留个提交代码并执行的功能,方便随时使用。
    长时间运行的编译成独立程序单独运行吧。
    mmmyc
        10
    mmmyc  
       2017-01-10 13:17:33 +08:00 via Android
    你背得起锅就留后门呗。
    Tuisku
        11
    Tuisku  
    OP
       2017-01-10 13:39:25 +08:00
    @mmmyc
    锅肯定背得起( 233 ,小后门就是前辈留的,前辈说没空做功能全的后门,让我有空自己倒腾个),就看到时候真出事儿了是卖了我还是咋地
    nfroot
        12
    nfroot  
       2017-01-10 13:45:44 +08:00
    webshell ?一句话木马?
    Tuisku
        13
    Tuisku  
    OP
       2017-01-10 13:51:06 +08:00
    @gamexg
    有这个想法,是做一个功能确切的后门还是留一个像这样能执行代码的后门,感谢回复~
    BOYPT
        14
    BOYPT  
       2017-01-10 13:57:12 +08:00
    开个 putty 配置的 tunnel ,表面是个 shell 实际是个隧道。
    Tuisku
        15
    Tuisku  
    OP
       2017-01-10 13:59:34 +08:00
    @BOYPT
    但是合作方那边只给开了 80 端口,映射不到其他外网端口上
    BOYPT
        16
    BOYPT  
       2017-01-10 14:01:22 +08:00
    @Tuisku ssh 是对外链接,跟他开什么端口没关系
    Tuisku
        17
    Tuisku  
    OP
       2017-01-10 14:23:37 +08:00
    @BOYPT
    稍微查了下资料,大概意思是,这台只有 80 的服务器做个反代这样吧~
    thomaspaine
        18
    thomaspaine  
       2017-01-10 16:52:54 +08:00
    @Tuisku 你都有小 shell 了,把你需要的功能拆开吧
    比如你要导出数据,有超时限制,那你就写个脚本,把你要的数据导出到一个目录,并且打包加密好,然后你过段时间去下载,下载完了再运行一个小脚本来把这个目录删除

    更新代码其实也可以,做个接口,接收你上传的代码,备份好原来的代码吼,解压覆盖原来的,重启服务,如果产生错误,就恢复到原来的那个版本的

    这种手法让我想到了以前硬件产品的固件升级…… nor flash 里面有一个区域是写死的,就是干这个更新固件的操作的
    kuretru
        19
    kuretru  
       2017-01-10 17:16:35 +08:00
    放个菜刀 解决
    BOYPT
        20
    BOYPT  
       2017-01-10 17:16:42 +08:00
    @Tuisku 不是反代。
    ssh 有个端口转发功能,分为 Local 模式和 Remote 模式
    Local 模式是在 ssh 客户端本地打开一个监听端口,隧道映射到远程主机的 sshd 链接一个特定地址的特定端口;
    Remote 模式是在 ssh 主机那边开个端口,隧道映射到 ssh 客户端这边地址的特定端口。

    所以你想开个远程桌面,就是-R 3389:127.0.0.1:3389 的用法了,然后你在外网只需要同样链接这台 ssh 服务器,链接 3389 端口就打开你内网的桌面了。
    eirk2004
        21
    eirk2004  
       2017-01-10 21:12:38 +08:00
    能不能用远程桌面连接对方的电脑?能用的话,直接在他电脑上再启动远程桌面

    以前尝试过,可以访问只允许内网连接的服务器
    klwlkj
        22
    klwlkj  
       2017-01-10 22:55:02 +08:00 via Android
    一句话解决的事
    defunct9
        23
    defunct9  
       2017-01-10 22:58:30 +08:00 via iPhone
    这个简单, 80 端口同时跑 web 和 ssh 协议就好
    zwl2012
        24
    zwl2012  
       2017-01-10 23:40:45 +08:00 via iPhone
    将 vnc 服务集成到软件里,软件启动 vnc 服务也启动。再安装一个 novnc ( web 远程桌面管理)。这样的好处是不需要管理员帐户密码, vnc 服务独立密码登录,登录界面无信息。并且 noVNC 只需要 Python 支持。缺点:如果有安全软件的话略麻烦,需要加白。
    eyp82
        25
    eyp82  
       2017-01-11 01:29:45 +08:00
    楼主太要面子. 限制这么死, 这不是技术能解决的事, 况且你这么留后门, 被人发现了你们公司肯定要有人担责任, 最怕的是被某些人拿来搞事.
    别人既然给了你接口人, 那协助你工作就是他的责任, 你管他什么时候上下班你是不是在打扰他呢, 需要的时候就找就可以了, 不配合就找领导推动解决, 如果给对方造成工作时间上的困扰了, 就继续往上反馈直至可以推动更上层面的领导协商改进一下工作流程. 造福后人. 于公, 这是正确的迭代改进工作方式的手段; 于私, 这么一路吵下来, 你的工作也得到了体现.
    你现在偷偷摸摸搞了个后门, 等于在给大家埋地雷, 搞到最后你里外不是人.
    ryd994
        26
    ryd994  
       2017-01-11 04:35:31 +08:00 via Android
    @Tuisku 你怎么这么勤快呢?对方都不急。你只要第一时间通知他们有这个需求,因为他们托拖,事情办不好,是他们的责任。他们要是烦了,急了,自然主动给你解决。做好你自己份内的事就好。如果又要马儿跑又不给吃草,那就找你领导,领导就是干这种协调的事的。
    楼上说的挺对的,你埋这种地雷,迟早出事的。
    真要认真负责的话,自己先学学运维架构,特别是堡垒、审计这方面,然后做个方案给他们。但是说实话,我觉得人家对这件事情并没有什么所谓。
    皇帝不急急死太监
    sinxccc
        27
    sinxccc  
       2017-01-11 04:57:58 +08:00
    只能说你们心真大…

    合作方把外网访问的权限控制得这么严你们还在想心思玩后门
    lynnX
        28
    lynnX  
       2017-01-11 08:23:18 +08:00
    合作方明显是对安全要求比较高 而且对你们还是不是完全的信任 你现在还想留个后门啥的 被发现之后估计会玩完
    gyteng
        29
    gyteng  
       2017-01-11 11:31:44 +08:00
    楼主这已经很好了,以前有个项目要

    1. QQ 远程协助连接到甲方办公室的电脑
    2. 从甲方办公室的电脑连接跳板机
    3. 从跳板机用 putty 连接到生产服务器
    kulove
        30
    kulove  
       2017-01-11 11:33:57 +08:00
    可以后门的话就一句话呗 程序搞个代理什么的
    kulove
        31
    kulove  
       2017-01-11 11:35:22 +08:00
    不过留后门这个要慎重啊,被发现了肯定不行啊..
    嗯..留之前记得先用杀毒软件杀几遍..
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4970 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 05:41 · PVG 13:41 · LAX 22:41 · JFK 01:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.