文章目录
- 一、问题描述
- 二、解决思路
- 三、处理过程
-
- 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秒后执行后续命令(缓冲时间窗口)
【分层保障】三级时间阶梯
#查看防火墙放通的端口
firewall-cmd –list-ports
# 查看所有sleep进程
ps -ef | grep sleep
#关闭第三个定时任务
kill 13979 ##13979这个是对应的进程第三步那个命令的进程号
总结
这篇记录主要学习到了新的命令运行方式——后台运行模式,巧妙的利用这样的方式避免了去跑机房的麻烦。在这里使用后台运行加sleep主要是实现服务器无法远程后定时去执行任务,仔细一想,在liunx系统还有at也可以实现这样的效果。
写在最后
关于本文 本文记录了一次生产环境防火墙启动的实际操作过程。作为技术成长路上的记录,文中难免存在理解不深或表述不当之处,欢迎各位前辈指正。
网硕互联帮助中心



评论前必须登录!
注册