云计算百科
云计算领域专业知识百科平台

远程开启服务器防火墙并给自己留“后门”

文章目录

  • 一、问题描述
  • 二、解决思路
  • 三、处理过程
    • 1.主要命令
    • 2.详细解释
  • 总结
  • 写在最后

一、问题描述

因为要解决非授权访问端口问题,最终发现服务器的防火墙没有启动,同时远程端口也已从默认的22修改为其他端口。由于各种因素的限制,只能通过远程去处理,且必须保证成功,否则服务器远程不上和业务也无法访问。因此在启动之前必须要给自己留一个“后门”,所以产生了下面这篇记录。

适用场景:

  • 需远程操作未启动防火墙的服务器
  • 已修改默认SSH端口,无法直接访问
  • 操作必须一次成功,无物理访问条件

风险提示:生产环境操作前建议在测试环境验证。如有误操作风险,请谨慎评估。

二、解决思路

#mermaid-svg-bt9DWcDGt9QRre9v{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-bt9DWcDGt9QRre9v .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-bt9DWcDGt9QRre9v .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-bt9DWcDGt9QRre9v .error-icon{fill:#552222;}#mermaid-svg-bt9DWcDGt9QRre9v .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-bt9DWcDGt9QRre9v .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-bt9DWcDGt9QRre9v .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-bt9DWcDGt9QRre9v .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-bt9DWcDGt9QRre9v .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-bt9DWcDGt9QRre9v .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-bt9DWcDGt9QRre9v .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-bt9DWcDGt9QRre9v .marker{fill:#333333;stroke:#333333;}#mermaid-svg-bt9DWcDGt9QRre9v .marker.cross{stroke:#333333;}#mermaid-svg-bt9DWcDGt9QRre9v svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-bt9DWcDGt9QRre9v p{margin:0;}#mermaid-svg-bt9DWcDGt9QRre9v .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-bt9DWcDGt9QRre9v .cluster-label text{fill:#333;}#mermaid-svg-bt9DWcDGt9QRre9v .cluster-label span{color:#333;}#mermaid-svg-bt9DWcDGt9QRre9v .cluster-label span p{background-color:transparent;}#mermaid-svg-bt9DWcDGt9QRre9v .label text,#mermaid-svg-bt9DWcDGt9QRre9v span{fill:#333;color:#333;}#mermaid-svg-bt9DWcDGt9QRre9v .node rect,#mermaid-svg-bt9DWcDGt9QRre9v .node circle,#mermaid-svg-bt9DWcDGt9QRre9v .node ellipse,#mermaid-svg-bt9DWcDGt9QRre9v .node polygon,#mermaid-svg-bt9DWcDGt9QRre9v .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-bt9DWcDGt9QRre9v .rough-node .label text,#mermaid-svg-bt9DWcDGt9QRre9v .node .label text,#mermaid-svg-bt9DWcDGt9QRre9v .image-shape .label,#mermaid-svg-bt9DWcDGt9QRre9v .icon-shape .label{text-anchor:middle;}#mermaid-svg-bt9DWcDGt9QRre9v .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-bt9DWcDGt9QRre9v .rough-node .label,#mermaid-svg-bt9DWcDGt9QRre9v .node .label,#mermaid-svg-bt9DWcDGt9QRre9v .image-shape .label,#mermaid-svg-bt9DWcDGt9QRre9v .icon-shape .label{text-align:center;}#mermaid-svg-bt9DWcDGt9QRre9v .node.clickable{cursor:pointer;}#mermaid-svg-bt9DWcDGt9QRre9v .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-bt9DWcDGt9QRre9v .arrowheadPath{fill:#333333;}#mermaid-svg-bt9DWcDGt9QRre9v .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-bt9DWcDGt9QRre9v .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-bt9DWcDGt9QRre9v .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-bt9DWcDGt9QRre9v .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-bt9DWcDGt9QRre9v .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-bt9DWcDGt9QRre9v .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-bt9DWcDGt9QRre9v .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-bt9DWcDGt9QRre9v .cluster text{fill:#333;}#mermaid-svg-bt9DWcDGt9QRre9v .cluster span{color:#333;}#mermaid-svg-bt9DWcDGt9QRre9v div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-bt9DWcDGt9QRre9v .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-bt9DWcDGt9QRre9v rect.text{fill:none;stroke-width:0;}#mermaid-svg-bt9DWcDGt9QRre9v .icon-shape,#mermaid-svg-bt9DWcDGt9QRre9v .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-bt9DWcDGt9QRre9v .icon-shape p,#mermaid-svg-bt9DWcDGt9QRre9v .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-bt9DWcDGt9QRre9v .icon-shape rect,#mermaid-svg-bt9DWcDGt9QRre9v .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-bt9DWcDGt9QRre9v .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-bt9DWcDGt9QRre9v .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-bt9DWcDGt9QRre9v :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

能远程

不能远程

开始操作

步骤1:设置90秒后开通SSH端口

步骤2:设置180秒后重载防火墙

步骤3:设置300秒后关闭防火墙【安全后门】

步骤4:立即启动防火墙

等待3分钟

验证并清理后门进程

等待后门生效,自动关闭防火墙

三、处理过程

1.主要命令

第一步:
nohup bash -c "sleep 90 && firewall-cmd –permanent –zone=public –add-port=3306/tcp" &
第二步:
nohup bash -c "sleep 180 && firewall-cmd –reload" &
第三步:
nohup bash -c "sleep 300 && systemctl stop firewalld" &
## 这步就是创建“后门”的,5分钟后会自动关闭防火墙
第四步:
systemctl start firewalld
第五步:
等三分钟后可以尝试进行远程,如果可以远程执行下面的命令关闭后面
ps -ef | grep sleep
firewall-cmd –list-ports
kill 13979 ##13979这个是对应的进程第三步那个命令的进程号

2.详细解释

nohup bash -c “sleep 90 && 具体命令” &

  • nohup:忽略挂断信号,SSH断开后继续执行
  • bash -c:通过子shell执行命令串
  • sleep 90:90秒后执行后续命令(缓冲时间窗口)

【分层保障】三级时间阶梯

  • 第一级(90秒):先开放SSH端口 命令:firewall-cmd –add-port=你的SSH端口/tcp 目的:确保SSH能重新连接
  • 第二级(180秒):重载防火墙使规则生效 命令:firewall-cmd –reload 注意:必须在端口添加后执行
  • 第三级(300秒):最终安全网 命令:systemctl stop firewalld 作用:如果前两步失败,5分钟后直接关闭防火墙 这是“救命后门” ,&:后台运行,不阻塞当前会话
  • 等三分钟后可以尝试进行远程,如果可以远程执行下面的命令关闭后面
  • #查看防火墙放通的端口
    firewall-cmd –list-ports
    # 查看所有sleep进程
    ps -ef | grep sleep
    #关闭第三个定时任务
    kill 13979 ##13979这个是对应的进程第三步那个命令的进程号


    总结

    这篇记录主要学习到了新的命令运行方式——后台运行模式,巧妙的利用这样的方式避免了去跑机房的麻烦。在这里使用后台运行加sleep主要是实现服务器无法远程后定时去执行任务,仔细一想,在liunx系统还有at也可以实现这样的效果。


    写在最后

    关于本文 本文记录了一次生产环境防火墙启动的实际操作过程。作为技术成长路上的记录,文中难免存在理解不深或表述不当之处,欢迎各位前辈指正。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 远程开启服务器防火墙并给自己留“后门”
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!