查看云服务器开放端口_云服务器端口管理_服务器端口排查

第一步:Linux 云服务器端口状态高阶排查实战

于企业级运维的场景里面,精确把控云服务器的端口开放状况,这是构建纵深防御体系的首个步骤, 它是构建那一体系的第一步,是构建纵深防御体系的头一步。

登上那你的 Linux 服务器,以 CentOS 7/8 或者 Ubuntu 20.04/22.04 作为例子,建议采用 ss 命令去替换那已被废弃不用的 netstat,因为它在 高并发 的环境当中解析 socket 统计信息 之际性能更为优良。

运行指令 ss -tulnp,其中参数的意义是:-t 展示 TCP 连接-u 呈现 UDP 连接-l 只展示 处于监听状态的端口-n 用数字形式呈现地址以及端口(略过 DNS 解析),-p 展现占用端口的进程 PID 和程序名称

输出结果当中,Local Address:Port这一列要是显示为 0.0.0.0:80,或者显示为 [::]:443,那就意味着 Web 服务(像是 Nginx/Apache)已经对所有 IPv4 和 IPv6 地址进行监听了。

运用 grep 命令来过滤特定端口,像 ss -tulnp | grep 3306,它能够迅速确认 MySQL/MariaDB 数据库 是不是仅仅监听内网或者本地,进而避免 数据库端口 被暴露到公网,这属于 服务器安全加固 的核心操作。

第二步:利用 Nmap 引擎实施内外部端口扫描与风险透视

由命令行操作的工具,仅仅能够查看本地处于监听状态的情况,若要以攻击者视角参与网络安全进行扫描这一行为,那么必定得运用Nmap这类具备专业性的工具。

于本地,在运维终端那儿,去执行这样的操作,即nmap -sS -sV -p 1-65535 -T4 你的_云服务器公网_IP

该命令运用 隐蔽的 SYN 半开扫描-sS)来提升速度,通过 -sV 开展 服务版本探测 从而识别具体 应用软件 及其版本(像 OpenSSH 8.2p1),利用 -p- 扫描全部 65535 个端口,借助 -T4 提升时序模板以加快扫描效率。

着重留意处于open状态的端口,尤其是那些并非标准端口的端口,像2222、8080等等。

与之同时,将其与,像阿里云 ECS 这般的 云服务商控制台,以及腾讯云 CVM 这般的 云服务商控制台 相结合,对应 安全组 或者 防火墙策略 来实施交叉比对。

要是Nmap察觉到有个端口处于开放状态,然而本地的ss却并未显示出监听情况,那么极有可能是因为在进行端口转发或者Docker容器化部署的时候,是由DNAT规则映射造成的,这种情况下就需要深入去排查iptables或者firewalld规则。

第三步:ECS 安全组与主机防火墙策略一致性校验与收敛

进入到,那被称作阿里云 ECS 控制台的地方,或者是腾讯云 CVM 控制台之处,于此寻找到目标实例所归属于的安全组,而后去检查入方向规则焉。

要保证安全组的规则,跟主机内部的 firewalld 或者 iptables 的策略,在逻辑方面是一致的。

比如,要是需要借助 SSH 来进行管理的话,那么就应当把 TCP 22 端口 的源地址限定为特定的公司公网出口 IP 或者 堡垒机 IP ;举个例子吧,可以这么说,要是去部署 LNMP/LAMP 环境编译搭建 之后的 Web 服务 时,那就仅仅开放 80(HTTP)和 443(HTTPS)端口。

云服务器端口管理_查看云服务器开放端口_服务器端口排查

做这样的操作,要执行 firewall-cmd --list-all从而检查关于主机防火墙配置,于此是针对CentOS系统而言的,或者执行 ufw status numbered,这是在Ubuntu系统的应用场景,来检查主机相关防火墙配置,还要运用 iptables -L -n -v 去查看具体规则链的数据包计数,凭借去查看的这个数据包计数判断策略是否生效。

第四步:Docker 容器化部署场景下的端口映射排查技巧

在名为“K8s基础”的环境情形下,或者是在单机的“Docker容器化部署”这种场景状况之中,端口映射的逻辑显得更为复杂。

运行于容器里内部的服务端口,得借助 docker run -p 或者 docker-compose.yml 那里的 ports 指令,映射至宿主机。

于宿主机那儿执行,docker ps --format “table {{.Names}}t{{.Ports}}”,以此去查看所有处于运行状态的容器其端口映射的关系。

假使察觉到某一个端口于宿主机之上正处于被监听的状态,像这样的情况例如0.0.0.0:8080->80/tcp ,然而基于同样的情况, ss命令所展示出来的进程名却是呈现在docker-proxy这个形式,依据如此这般既定事实即可清清楚楚地进行这般说明,这实实在在的是一种具有典型性质的情况,被称之为容器端口映射

可以通过深入开展排查工作,运用 iptables -t nat -L -n 这个指令,从而进行查看操作,查看那由于Docker引擎而自动写入的 DNAT规则,进而去理解流量这一情况,在流量从宿主机网卡处进入之后,能够按照怎样的情形被转发运作至具体某一个容器的 veth虚拟网卡

这一技能,在进行故障排查修复的时候,能够快速确定,究竟是容器网络方面出现了问题,还是上层负载均衡配置存在失误。这一技能,在网站环境迁移之际,也能够迅速判断,到底是容器网络出了状况,还是上层负载均衡设置有误。

第五步:结合性能监控与日志分析实现端口级安全告警

构建起常态化的,用于性能监控的机制,以及用于日志分析的机制,这是长效运维得以实现的保障。

布置 Prometheus 加上 Node Exporter,或者运用 宝塔面板可视化运维 自身所带的 防火墙插件,去监测特定端口的 TCP 连接数量(node_netstat_Tcp_CurrEstab)。

Logstash 进行配置,或者单纯运用 tail -f /var/log/secure(这是针对CentOS的),又或者是 /var/log/auth.log(这是针对Ubuntu的)来实时监测SSH登录日志,再联合fail2ban工具动态封禁那些对 22端口 施行暴力破解行为的恶意IP。

针对经过 HTTPS 配置 处理的 443 端口,借助对 Nginx 的 access.log 展开分析,统计 status 码,这样能够迅速发觉异常扫描或者攻击行为。

与此同时,一定要启用 数据备份 策略,关键配置文件(像是 /etc/nginx/nginx.conf/etc/firewalld/zones/),要定时备份到异机或者 对象存储 那里,数据库内容也如同这般操作,以此来保证在遭遇入侵之后,能够迅速重建 LNMP/LAMP 环境,并促使业务得以恢复。

第六步:域名与 DNS 智能解析视角下的端口可达性验证

在完成了,所谓的“域名注册购买”这件事,并将其指向服务器之后,另外还需要从,那个“DNS智能解析”的层面,去验证端口是不是在全球范围内都能够达到可访问的状态。

运用 telnet 命令,或者 nc(即 netcat),再开展以此两种命令进行对于外部网络展开测试验证,就好像 telnet www.yourdomain.com 80 命令展开的这种操作情况呢,或者像是 nc -zv www.yourdomain.com 443 命令那种操作形式一样。

若连接成功,说明 CDN 加速 节点或源站端口已正确响应。

完成SSL证书部署之后,一定要运用在线工具(像是Qualys SSL Labs)去检测443端口在此方面的情况,也就是证书链完整性,以及协议支持状况,还有TLS配置安全性。

结合智能解析线路,像电信、联通、移动这些,分别去测试不同运营商环境下端口的连通性,这对部署多线BGP很关键,对云服务器跨地域容灾场景也很关键,要确保最终用户通过域名访问时,能够精准地到达健康且开放的ECS弹性计算节点,以此实现高可用业务架构。