0Pricing
Cloud & IT Cert Prep · 课时

替换不安全协议:Telnet 对比 SSH、FTP 对比 SFTP

了解 Telnet、FTP 和 HTTP 等明文协议为何会暴露凭据,以及其加密替代方案(SSH、SFTP、HTTPS)如何解决这些问题。

替换不安全协议:Telnet 对比 SSH、FTP 对比 SFTP 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。

明文协议的问题

许多基础互联网协议是在 20 世纪 70 年代和 80 年代设计的,当时安全性并不是首要考虑因素。明文协议会通过网络以明文传输所有数据——包括用户名、密码和敏感信息。位于同一网络段中的任何设备,或数据包经过的任何系统,都可以使用 Wireshark 等免费工具捕获并读取这些流量。在使用网络交换机的环境中(交换机通常会隔离不同端口之间的流量),ARP 欺骗可以将流量重定向到攻击者的系统,使明文协议即使在“内部”网络中也很危险。

# What an attacker sees on the wire with Telnet
# (captured via Wireshark or tcpdump)

tcpdump -i eth0 -A port 23

# Sample Telnet capture output:
..login: admin..
..password: S3cr3tPa$$...
..$ ls -la /etc/passwd..

# Every keystroke is visible in plaintext
# Credentials, commands, and file contents - all exposed

Telnet 与 SSH

Telnet(TCP 端口 23)提供对系统的远程命令行访问,但会以明文传输所有内容。它除了用户名/密码之外没有内置身份验证机制,而用户名和密码都是未经加密发送的。SSH(安全 Shell)(TCP 端口 22)使用加密的、经过身份验证的通道替代 Telnet。SSH 使用非对称密钥交换建立会话密钥,然后使用对称加密保护后续的所有通信。SSH 还会对服务器进行身份验证(防止服务器冒充),并且除了密码身份验证外,还支持公钥身份验证(无需密码且比密码更安全)。

# SSH connection (encrypted, server authenticated)
ssh admin@192.168.1.10

# SSH key-based authentication (no password)
ssh -i ~/.ssh/id_rsa admin@192.168.1.10

# Generate SSH key pair
ssh-keygen -t ed25519 -C 'admin@company.com'

# Copy public key to server
ssh-copy-id -i ~/.ssh/id_rsa.pub admin@192.168.1.10

# Disable Telnet on network devices (Cisco IOS)
no service telnet
line vty 0 4
  transport input ssh
  login local

SSH 密钥交换与身份验证

SSH 的安全性依赖于稳健的密钥交换过程。建立连接时,客户端会将服务器的主机密钥与本地存储的副本进行核对,从而防止服务器冒充。如果主机密钥意外发生变化,SSH 会向用户发出警告(这是中间人攻击的常见迹象)。验证服务器后,客户端身份验证可以使用:密码(传输过程中经过加密,但容易受到暴力破解)、公钥(客户端证明自己持有私钥,安全性强得多),或键盘交互(支持 MFA)。组织应强制使用基于密钥的身份验证,并在面向互联网的 SSH 服务上禁用密码身份验证。

# Harden SSH server configuration
# /etc/ssh/sshd_config
Port 22
PermitRootLogin no
PasswordAuthentication no    # Require key auth only
ChallengeResponseAuthentication no
MaxAuthTries 3
AllowUsers admin deploy
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
ClientAliveInterval 300      # Disconnect idle sessions
ClientAliveCountMax 0

# Restart SSH after changes
systemctl restart sshd

FTP、SFTP 与 FTPS

FTP(文件传输协议)(TCP 端口 20/21)以明文传输文件——凭据、命令和文件数据都会暴露。FTP 还使用独立的数据通道(被动模式或主动模式),使防火墙规则更加复杂。SFTP(SSH 文件传输协议)通过端口 22 上的 SSH 隧道传输文件——它与 FTP 完全不同,只是名称相似。FTPS(FTP 安全)为原始 FTP 协议增加 TLS 加密。通常更推荐 SFTP,因为它只使用一个端口,并继承 SSH 的身份验证和加密能力。所有生产系统都应禁用 FTP。

# SFTP usage (over SSH, single connection)
sftp admin@fileserver.company.com
sftp> put localfile.zip /uploads/
sftp> get /reports/monthly.pdf .
sftp> ls /uploads/
sftp> exit

# Automated SFTP transfer with key auth
sftp -i ~/.ssh/id_rsa admin@fileserver.company.com <<EOF
put /tmp/report.csv /incoming/
EOF

# Disable FTP on Linux (remove vsftpd)
apt purge vsftpd
# Verify no FTP listener:
ss -tlnp | grep ':21'

HTTP 与 HTTPS

HTTP(TCP 端口 80)以明文传输网页内容,包括表单数据、会话 Cookie 和身份验证令牌。HTTPS(TCP 端口 443)使用 TLS 封装 HTTP,提供加密、服务器身份验证和数据完整性保护。组织应在所有地方强制使用 HTTPS:将所有 HTTP 流量重定向到 HTTPS(301 重定向),实施 HSTS 以阻止浏览器通过 HTTP 连接,并配置安全和 HttpOnly Cookie 标志,以防止会话令牌通过 HTTP 或 JavaScript 被窃取。现代浏览器会将 HTTP 网站标记为“不安全”——如今 HTTPS 已成为所有 Web 服务的基本要求。

# nginx: force HTTPS redirect
server {
  listen 80;
  server_name example.com;
  return 301 https://$host$request_uri;
}

server {
  listen 443 ssl;
  ssl_certificate /etc/ssl/example.crt;
  ssl_certificate_key /etc/ssl/example.key;
  add_header Strict-Transport-Security
    'max-age=31536000; includeSubDomains; preload';
  add_header X-Content-Type-Options nosniff;
  add_header X-Frame-Options SAMEORIGIN;
}

SNMP v1/v2 与 SNMPv3

SNMP(简单网络管理协议)用于管理网络设备和服务器。SNMPv1 和 v2c使用以明文发送的团体字符串(本质上是共享密码)——例如“public”(读取)和“private”(写入)这样的团体字符串是攻击者已知的默认值。捕获 SNMP 流量的攻击者可以获知团体字符串,进而读取设备配置或更改设备设置。SNMPv3通过每个用户的凭据增加了身份验证(HMAC-MD5 或 HMAC-SHA)和加密(AES),因此它是唯一适合生产环境的版本。应禁用 SNMPv1/v2c。

# SNMPv3 configuration (Cisco IOS)
snmp-server group MYGROUP v3 priv
snmp-server user MONITORUSER MYGROUP v3 \
  auth sha MyAuthP@ss priv aes 128 MyPrivP@ss

# SNMPv3 query from monitoring server
snmpwalk -v3 -l authPriv \
  -u MONITORUSER \
  -a SHA -A MyAuthP@ss \
  -x AES -X MyPrivP@ss \
  192.168.1.1 sysDescr

# Disable SNMPv1/v2c:
no snmp-server community public ro
no snmp-server community private rw

LDAP 与 LDAPS

LDAP(轻量级目录访问协议)(TCP 端口 389)默认以明文对目录服务(Active Directory、OpenLDAP)进行身份验证和查询,从而暴露凭据和目录数据。LDAPS(基于 SSL/TLS 的 LDAP,TCP 端口 636)使用证书加密连接。StartTLS是另一种方案,它使用同一个 389 端口,将现有 LDAP 连接升级为 TLS。LDAPS 和 StartTLS 都能提供加密,但 LDAPS 通常更简单、更可靠。组织应将所有使用 LDAP 的应用配置为使用 LDAPS,并在防火墙上阻止 389 端口的明文 LDAP。

POP3/IMAP 与加密电子邮件收取

传统电子邮件客户端使用POP3(端口 110)和IMAP(端口 143)以明文收取邮件。加密替代方案包括:POP3S(端口 995,TLS)和IMAPS(端口 993,TLS)。现代电子邮件平台(Exchange Online、Google Workspace)会为所有客户端连接强制使用 TLS,并支持基于 OAuth 2.0 令牌的身份验证,而不是密码。组织应在电子邮件协议上禁用基本身份验证——要求使用现代身份验证(OAuth 2.0 + MFA)可以防止利用传统电子邮件协议明文身份验证机制的凭据填充攻击。

# Protocol port reference card
Protocol    Insecure Port  Secure Port  Replacement
---------   ------------   ----------  -----------
Telnet      23             22           SSH
FTP         20/21          22           SFTP
HTTP        80             443          HTTPS
SMTP        25             587/465      SMTPS
POP3        110            995          POP3S
IMAP        143            993          IMAPS
LDAP        389            636          LDAPS
SNMP        161/162        161/162      SNMPv3
RDP         3389           3389         RDP+NLA+TLS

实际替换协议

替换不安全协议不仅仅是启用安全版本——还必须主动禁用不安全版本。步骤如下:审计现有协议的使用情况(Nmap 扫描、防火墙日志);将应用和配置迁移到安全协议;充分测试(业务应用可能会出现故障);然后在防火墙和主机上阻止不安全协议。常见陷阱:旧式打印机和嵌入式设备通常只支持 FTP 或 SNMPv2;旧式工业系统可能依赖 Telnet。对于这些设备,应采用网络隔离或更换供应商设备,而不是简单升级协议。

# Audit for insecure protocol usage
# Nmap: find all Telnet listeners on network
nmap -p 23 10.0.0.0/24 --open -sV

# Find FTP listeners
nmap -p 21 10.0.0.0/24 --open

# Find HTTP (not HTTPS) web services
nmap -p 80 --open 10.0.0.0/24

# Check for SNMPv1/v2c community strings
nmap -sU -p 161 --script snmp-info 10.0.0.0/24

# Block Telnet at firewall after migration
iptables -A FORWARD -p tcp --dport 23 -j DROP
iptables -A INPUT -p tcp --dport 23 -j DROP

远程桌面协议安全

RDP(远程桌面协议)(端口 3389)广泛用于远程管理 Windows,是攻击者的主要目标。不安全的 RDP 配置包括:将 3389 端口暴露到互联网、仅使用密码身份验证,以及禁用 NLA。加固 RDP:启用网络级身份验证(NLA),在完整会话打开前进行身份验证(阻止未经身份验证的连接);要求所有 RDP 会话使用TLS 1.2+;将 RDP 放在VPN 或 RDP 网关之后,而不是暴露到互联网;并强制实施账户锁定以防止暴力破解。许多勒索软件活动都是通过暴露且保护不当的 RDP 获得初始访问权限的。

分阶段弃用不安全协议

在生产环境中迁移离开不安全协议需要仔细规划,以避免业务中断。分阶段方法如下:阶段 1——发现:运行 Nmap 扫描并审计防火墙日志,以识别所有明文协议的使用情况。阶段 2——启用安全替代方案:在现有不安全服务旁配置 SSH、SFTP 和 HTTPS。阶段 3——迁移使用方:更新脚本、应用、监控工具和用户工作流程,使其使用安全协议。阶段 4——禁用并阻止:在每台主机上禁用不安全服务,并在防火墙上阻止相应端口。在每个阶段进行测试可以防止生产环境中断。

# Phase 4: Disable and block Telnet permanently

# Disable Telnet service on Linux
systemctl stop telnet.socket
systemctl disable telnet.socket

# Block Telnet at iptables
iptables -A INPUT -p tcp --dport 23 -j DROP
iptables -A OUTPUT -p tcp --dport 23 -j DROP
# Save rules
iptables-save > /etc/iptables/rules.v4

# Block at network firewall (Cisco ASA)
access-list OUTSIDE_IN deny tcp any any eq 23

# Verify: should timeout / connection refused
nc -zv 192.168.1.10 23

快速 Check

测试您对本课 CompTIA Security+ (SY0-701) 概念的理解。

课程回顾

在本课中,您学习了:明文协议(Telnet、FTP、HTTP、SNMPv1/v2c、LDAP)会将凭据和数据暴露给网络窃听,因此必须替换;安全替代协议(SSH、SFTP、HTTPS、SNMPv3、LDAPS)使用 TLS 或 SSH 加密来保护相同的功能;替换协议需要在审核旧版依赖后,在防火墙和主机层面禁用不安全版本。接下来,我们将探索 TLS 版本、密码套件和完美前向保密。

常见问题解答

「替换不安全协议:Telnet 对比 SSH、FTP 对比 SFTP」课时是免费的吗?

是的 — 「替换不安全协议:Telnet 对比 SSH、FTP 对比 SFTP」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。

「替换不安全协议:Telnet 对比 SSH、FTP 对比 SFTP」这节课中我会学到什么?

了解 Telnet、FTP 和 HTTP 等明文协议为何会暴露凭据,以及其加密替代方案(SSH、SFTP、HTTPS)如何解决这些问题。 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cloud & IT Cert Prep 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「替换不安全协议:Telnet 对比 SSH、FTP 对比 SFTP」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?

能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 替换不安全协议:Telnet 对比 SSH、FTP 对比 SFTP
  2. TLS 版本、密码套件与完全前向保密
  3. 安全 DNS:DNSSEC 与基于 HTTPS 的 DNS(DoH)
  4. IPsec、VPN 协议与远程访问安全
← 返回 Cloud & IT Cert Prep