针对CentOS服务器的“端口 + 服务 + 两高一弱“扫描思路
2026/6/26 6:14:53 网站建设 项目流程

下面给你一套针对 CentOS 服务器的"端口 + 服务 + 两高一弱"扫描思路,分**远程视角(外网攻击者怎么看你)本机视角(服务器自己漏了啥)**两条线,正好对上你列的三类隐患。


一、先搞清楚:这台机器"开了哪些口"

1)本机看监听端口(第一步,必做)

# 看 IPv4/IPv6 监听ss-lntup# 或老命令netstat-lntup# 只看对外(0.0.0.0)的ss-lntup|grep'0.0.0.0'

重点关注:

  • 0.0.0.0:22正常;0.0.0.0:3306/6379/11211/9200这些就危险了(DB/缓存裸奔)
  • 陌生端口 →ps -fp <pid>反查是哪个进程

2)本机看防火墙实际放行

# firewalld(CentOS 7 默认)firewall-cmd --list-all# 如果换成 iptables 了iptables-LINPUT-n--line-numbers

常见坑:ss显示监听了,但 firewalld 没放行 → 外面其实进不来,不算暴露;反过来 firewalld 放行了但服务没起 → 也不算。要两边对得上才算真暴露。


二、远程端口扫描(模拟攻击者视角)

1)nmap 全端口 + 版本识别(核心)

# 基础:TOP 1000 端口nmap-sV-sC<服务器公网IP># 全端口(慢但全,推荐护网前做一次)nmap-sV-p---open<IP># 加脚本扫弱口令/未授权(重点)nmap--scriptauth,vuln,default<IP>

-sV把"端口号 → 真实服务+版本"对上,后面查 CVE 要用。

2)UDP 别漏(DNS/NTP/SNMP 常被忘)

nmap-sU--top-ports100<IP>

三、"两高一弱"逐类对号入座扫描

① 弱口令 —— 端口暴露 + 协议猜解

服务端口扫描/验证方式
SSH22hydra -l root -P pass.txt ssh://IP或查/var/log/secure有无大量 Failed
MySQL3306mysql -h IP -u root -p空密码试;nmap--script mysql-empty-password
Redis6379redis-cli -h IP能直接连 = 未授权 🚨
MongoDB27017mongosh --host IP无鉴 = 未授权 🚨
PostgreSQL5432psql -h IP -U postgres空密码
FTP21anonymous 登录试
Tomcat/管理口8080/8009manager 弱口令

一键脚本感的做法

nmap-p22,3306,6379,27017,5432,11211,9200,5601\--scriptmysql-empty-password,redis-info,mongodb-info\<IP>

② 高危漏洞 —— 版本 → CVE 映射

CentOS 7 本机先拉版本清单:

# 服务版本快照rpm-qa--last|head-30nginx-v;httpd-v;php-v;mysql--version;redis-server-v# 用 vulners 插件(nmap)nmap-sV--scriptvulners<IP># 或离线:把 rpm 清单喂给 https://vulners.com 或国产 NESSUS/绿盟/ openVAS

高危常客(CentOS 7 + 老组件)

  • OpenSSL < 1.1.1→ Heartbleed / CVE-2022-3786
  • glibc→ GHOST (CVE-2015-0235) 老系统常见
  • sudo→ CVE-2021-3156(Baron Samedit)
  • Redis < 5.0.14 / 6.x→ 主从 RCE
  • Nginx 老版本→ 整数溢出 / 请求走私
  • Docker 老版本→ runc / containerd CVE 一堆

⚠️ CentOS 7 本身2024-06-30 EOL,yum 源官方已迁 vault,即使yum update也拿不到新补丁——这属于"底层高危",必须写在报告里,建议迁 Alma/Rocky。

③ 未授权访问 —— 端口一探便知

# Redisredis-cli-h<IP>ping# PONG = 裸奔# MongoDBmongosh--host<IP>--eval"db.adminCommand('ping')"# Elasticsearchcurlhttp://<IP>:9200/_cat/indices# Docker daemon(若开了 2375)curlhttp://<IP>:2375/version# K8s API server(若开了 6443 对外)curl-khttps://<IP>:6443/api

这些都是"端口开着 + 没鉴权 = 直接进",护网扣分重灾区。


四、"老旧框架组件"扫描(你对的第 2 点)

1)Web 框架版本(Tomcat / Spring / Struts / Weblogic)

# 抓 bannercurl-Ihttp://<IP>:8080# 精准点:# Tomcat: catalina.jar MANIFEST.MF# Spring Boot: /actuator/info(如果开着)# Struts: 看报错页或 header

高危常客:

  • Struts2→ 多个 RCE(S2-045 / S2-061)
  • Spring Cloud / Spring Boot→ CVE-2022-22965(Spring4Shell)
  • Tomcat < 8.5.85 / 9.0.65→ 多个绕过
  • Weblogic→ 反序列化老演员

2)中间件 / 语言运行时

java-versionpython--versionphp-vnode-v

老 JDK 8u20x、Python 2.7、PHP 5.6 这些都是"框架没老、运行时先老"。

3)docker 镜像里的组件(容易被忘)

dockerimagesdockerinspect<镜像>|grep-iversion

很多 “CentOS 7 + docker 跑老镜像” 的场景,宿主机 CentOS 7 老 + 容器里 OpenSSL/glibc 也老,双层老化。


五、“端口暴露过多 / 多系统暴露互联网”(你对的第 3 点)

1)先画资产清单

把前面ss -lntup+nmap结果整理成表:

端口服务版本是否需暴露公网当前是否暴露风险
22SSHOpenSSH 7.4是(但应限IP)弱口令扫
3306MySQL5.7.44是(0.0.0.0)裸库 🚨
6379Redis5.0.3未授权 🚨
8080Tomcat8.0.53Struts2 老

2)收敛原则(整改方向)

  • DB / 缓存 / ES / 消息队列绝不公网暴露,走 VPC / 内网 / VPN
  • 管理口(Tomcat manager、Kibana、RabbitMQ UI)→ 要么关,要么加 IP 白名单 + 强口令 + HTTPS
  • SSH→ 改非 22 / 限源 IP / 禁 root 密码 / 仅密钥
  • 多余端口→ firewalld 直接 drop,服务停掉

firewalld 限源示例(只让办公网 SSH):

firewall-cmd--permanent--add-rich-rule=' rule family="ipv4" source address="1.2.3.4/32" port protocol="tcp" port="22" accept'firewall-cmd--reload

六、一条龙自动化工具(不想手搓就用这些)

工具用途备注
nmap + vulners端口 + 版本 + CVE轻量首选
Nessus商业漏扫,两高一弱全覆盖护网/等保交差利器
OpenVAS/GVM开源版 Nessus自建可用
goby国产,端口+漏洞+未授权+弱口令界面友好
hydra + medusa弱口令专用配合用户名字典
redis-unauth / mongo-unauth 脚本专扫未授权单点快

七、给你这台 CentOS 7 的"隐患画像"预判(结合前面对话)

按你前面那台机器(CentOS 7 + Docker + SSH + 日志迁/home):

  1. CentOS 7 本身 EOL→ 所有 rpm 漏洞yum 修不了,这是根因,必须写在报告"高危"第一条
  2. Docker daemon / 容器端口映射→ 你之前 18000 → 8000 那段,说明有端口映射习惯,要重点查docker ps哪些容器端口-p映射到 0.0.0.0 了
  3. SSH→ 你前面 sudoers / ssh 远程那轮,确认下PasswordAuthentication yes + PermitRootLogin yes是不是还在,是的话就是弱口令靶子
  4. Redis / MySQL / ES→ 如果 docker-compose 里没显式设密码 + bind 127.0.0.1,基本中招

八、交付用 checklist(扫描完填这张表)

[资产] - 公网IP / 内网IP - 开放端口清单(nmap) - 对应服务 + 版本 [两高一弱] □ 弱口令:SSH / MySQL / Redis / Mongo / Tomcat-manager 逐项测 □ 高危漏洞:nmap --script vulners / rpm 清单 → CVE 库 □ 未授权:Redis / Mongo / ES / Docker 2375 / K8s 6443 [老旧组件] □ OS:CentOS 7 EOL → 迁 Alma/Rocky □ Web框架:Tomcat/Struts/Spring 版本 □ 中间件:Nginx/Apache/PHP/Java 版本 □ 容器镜像:docker images 版本链 [暴露面] □ 端口是否过多 □ DB/缓存是否公网可达 □ 管理口是否裸奔

顺着这台机器可以写一条具体命令链:从ss -lntupnmapvulnersdocker ps→ 弱口令试,一路 pipe 出一张 Excel 能吃的清单。告诉我这台机器哪些是公网 IP、docker 跑了什么,我可以帮你把扫描范围缩到最小、不打盲拳。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询