Замена небезопасных протоколов: Telnet и SSH, FTP и SFTP
Поймите, почему протоколы с передачей данных в открытом виде, такие как Telnet, FTP и HTTP, раскрывают учётные данные, и как их зашифрованные замены (SSH, SFTP, HTTPS) решают эти проблемы.
«Замена небезопасных протоколов: Telnet и SSH, FTP и SFTP» — бесплатный урок Security+ Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Security+ Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Security+ Academy содержит 4 уроков всего.
Проблема протоколов с открытым текстом
Многие базовые интернет-протоколы были разработаны в 1970-х и 1980-х годах, когда безопасность не считалась первостепенной задачей. Протоколы с открытым текстом передают все данные — включая имена пользователей, пароли и конфиденциальную информацию — по сети без шифрования. Любое устройство в том же сетевом сегменте или любая система, через которую проходят пакеты, может перехватить и прочитать этот трафик с помощью свободно доступных инструментов, таких как 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 exposedTelnet и SSH
Telnet (порт TCP 23) предоставляет удалённый доступ к командной строке систем, но передаёт всё без шифрования. В нём нет встроенной authentication, кроме имени пользователя и пароля, которые отправляются без шифрования. SSH (Secure Shell) (порт TCP 22) заменяет Telnet зашифрованным каналом с authentication. SSH использует асимметричный обмен ключами для установления ключа сеанса, а затем шифрует всё последующее взаимодействие с помощью симметричного шифрования. SSH также подтверждает подлинность сервера, предотвращая выдачу себя за сервер, и поддерживает authentication с помощью public key (без пароля, но более безопасную, чем пароли), а также authentication по паролю.
# 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Обмен ключами и authentication в SSH
Безопасность SSH опирается на надёжный процесс обмена ключами. При подключении клиент проверяет host key сервера по локально сохранённой копии — это предотвращает выдачу себя за сервер. Если host key неожиданно изменился, SSH предупреждает пользователя; это частый признак атаки посредника. После проверки сервера для authentication клиента можно использовать: пароль (зашифрованный при передаче, но уязвимый для перебора), public key (клиент доказывает владение закрытым ключом; этот способ значительно надёжнее) или интерактивный ввод с клавиатуры (поддерживает MFA). Организациям следует принудительно использовать authentication на основе ключей и отключить authentication по паролю в общедоступных службах 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 sshdFTP, SFTP и FTPS
FTP (File Transfer Protocol) (порты TCP 20/21) передаёт files без шифрования: Credentials, команды и данные files становятся доступными для перехвата. FTP также использует отдельный канал данных (в пассивном или активном режиме), что усложняет правила firewall. SFTP (SSH File Transfer Protocol) передаёт files через SSH по порту 22 — это полностью другой протокол, лишь имеющий похожее название. FTPS (FTP Secure) добавляет шифрование TLS к исходному протоколу FTP. Обычно предпочтителен SFTP, поскольку он использует один порт и наследует authentication и шифрование 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 сеанса и токены authentication, без шифрования. HTTPS (порт TCP 443) защищает HTTP с помощью TLS, обеспечивая шифрование, authentication сервера и целостность данных. Организациям следует принудительно использовать HTTPS повсеместно: перенаправлять весь трафик HTTP на HTTPS (перенаправление 301), внедрять HSTS, чтобы браузеры не подключались через HTTP, и настраивать флаги cookie защищённый и HttpOnly, чтобы предотвратить кражу токенов сеанса через HTTP или JavaScript. Современные браузеры помечают сайты HTTP как «Небезопасно» — HTTPS теперь является базовым требованием для всех веб-служб.
# 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 (Simple Network Management Protocol) управляет сетевыми устройствами и серверами. SNMPv1 и v2c используют строки сообщества, фактически являющиеся общими паролями, которые передаются без шифрования. Такие строки, как «public» (чтение) и «private» (запись), являются значениями по умолчанию, известными злоумышленникам. Перехватив трафик SNMP, злоумышленник узнаёт строку сообщества и может прочитать configuration устройств или изменить настройки устройств. SNMPv3 добавляет authentication (HMAC-MD5 или HMAC-SHA) и шифрование (AES) с индивидуальными Credentials пользователей, что делает его единственной версией, подходящей для производственных сред. 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 rwLDAP и LDAPS
LDAP (Lightweight Directory Access Protocol) (порт TCP 389) по умолчанию выполняет authentication и запросы к службам каталогов (Active Directory, OpenLDAP) без шифрования, раскрывая Credentials и данные каталога. LDAPS (LDAP over SSL/TLS, порт TCP 636) шифрует connection с помощью сертификата. StartTLS — это альтернативный вариант, переводящий существующее connection LDAP на TLS через тот же порт 389. И LDAPS, и StartTLS обеспечивают шифрование, но LDAPS обычно проще и надёжнее. Организациям следует настроить все приложения, использующие LDAP, на работу через LDAPS и заблокировать LDAP без шифрования на порту 389 в firewall.
POP3/IMAP и получение зашифрованной почты
Устаревшие почтовые клиенты получают почту через POP3 (порт 110) и IMAP (порт 143) без шифрования. Зашифрованные альтернативы: POP3S (порт 995, TLS) и IMAPS (порт 993, TLS). Современные почтовые платформы (Exchange Online, Google Workspace) требуют TLS для всех подключений клиентов и поддерживают authentication на основе токенов OAuth 2.0 вместо паролей. Организациям следует отключить базовую authentication в почтовых Protocol — требование современной authentication (OAuth 2.0 + MFA) предотвращает атаки с подбором украденных Credentials, использующие механизмы authentication без шифрования в устаревших почтовых Protocol.
# 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, журналы firewall), перенести приложения и configuration на безопасный протокол, тщательно протестировать результат (рабочие приложения могут перестать работать), затем заблокировать небезопасный протокол в firewall и на узле. Распространённые сложности: устаревшие принтеры и встроенные устройства часто поддерживают только 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 (Remote Desktop Protocol) (порт 3389) широко используется для удалённого администрирования Windows и является главной целью атак. К небезопасным configuration RDP относятся: доступность порта 3389 из интернета, authentication только по паролю и отключение NLA. Усиление защиты RDP: включите Network Level Authentication (NLA), которая выполняет authentication до открытия полного сеанса и блокирует неаутентифицированные connection; потребуйте TLS 1.2+ для всех сеансов RDP; разместите RDP за VPN или шлюзом RDP, а не открывайте его в интернет; включите блокировку учётных записей, чтобы предотвратить перебор. Многие кампании с использованием программ-вымогателей получают первоначальный доступ через открытый и плохо защищённый RDP.
Поэтапное выведение небезопасных протоколов из эксплуатации
Переход от небезопасных протоколов в производственных средах требует тщательного планирования, чтобы избежать нарушения работы бизнеса. Поэтапный подход: Phase 1 — обнаружение: выполните сканирование Nmap и проверьте журналы firewall, чтобы выявить все случаи использования протоколов с открытым текстом. Phase 2 — включение безопасных альтернатив: настройте SSH, SFTP и HTTPS одновременно с существующими небезопасными службами. Phase 3 — перенос потребителей: обновите скрипты, приложения, инструменты Monitoring и рабочие процессы пользователей для использования безопасного протокола. Phase 4 — отключение и блокировка: отключите небезопасную службу на каждом узле и заблокируйте порт в firewall. Тестирование на каждом этапе предотвращает сбои в производственной среде.
# 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Быстрая проверка
Проверьте своё понимание концепций 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» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Security+ Academy, подпишись на CoddyKit PRO. Курс Security+ Academy содержит 4 уроков всего.
Чему я научусь в уроке «Замена небезопасных протоколов: Telnet и SSH, FTP и SFTP»?
Поймите, почему протоколы с передачей данных в открытом виде, такие как Telnet, FTP и HTTP, раскрывают учётные данные, и как их зашифрованные замены (SSH, SFTP, HTTPS) решают эти проблемы. Ты практикуешь Security+ Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Security+ Academy?
Предыдущий опыт не требуется. Security+ Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Замена небезопасных протоколов: Telnet и SSH, FTP и SFTP»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Security+ Academy?
Да. Каждый урок Security+ Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Замена небезопасных протоколов: Telnet и SSH, FTP и SFTP
- Версии TLS, наборы шифров и совершенная прямая секретность
- Безопасный DNS: DNSSEC и DNS через HTTPS (DoH)
- IPsec, протоколы VPN и безопасность удалённого доступа