Конспект ИБ | Протоколы | FTP, Telnet, SSH
FTP
Порт 21/TCP: Используется для команд.
Порт 20/TCP: Используется для передачи файлов в активном режиме.
Порт 989/TCP: Используется для передачи данных в активном режиме FTPS.
Порты 1024-65535/TCP (динамический диапазон): выбирается для передачи данных в пассивном режиме.
Режимы работы
FTP — небезопасный протокол, поскольку для аутентификации он полагается на имя пользователя и пароль в открытом виде и не использует шифрование. А значит, отправляемые по FTP данные уязвимы для перехвата.
Активный режим: клиент открывает управляющее соединение, отправляет команду на подключение к серверу, и сервер инициирует соединение для передачи данных. Активный классический режим удобнее и работает проще, но возникают конфликты при использовании фаерволов или NAT.
Управление: Клиент (порт N) > Сервер (порт 21)
Данные: Сервер (порт 20) > Клиент (порт M)
Пассивный режим: сервер открывает порт и сообщает клиенту, на какой порт подключаться, тем самым клиент инициирует оба соединения, что обеспечивает более надежную работу за фаерволами.
Управление: Клиент (порт N) > Сервер (порт 21)
Данные: Сервер (порт M) > Клиент (порт Z)
FTPS
FTPS — это расширение FTP с добавлением слоя безопасности SSL/TLS. Он использует те же команды и механизмы, что и FTP, но все данные, включая логины и файлы, шифруются, что существенно повышает безопасность передачи.
SFTP
Порт: 22/TCP
SFTP (SSH File Transfer Protocol) — это совершенно другой протокол, работающий поверх SSH. Он не связан с FTP по структуре. SFTP обеспечивает защищенное туннелирование передачи файлов, включая аутентификацию, управление файлами и передачу данных по одному защищенному соединению. Благодаря архитектуре SSH, он более безопасен и надежен, используется чаще для защищенного доступа к удаленным системам.
Telnet/SSH
Порты: telnet 23/TCP, SSH 22/TCP
Telnet — это сетевой протокол, который позволяет удалённо управлять компьютерами и устройствами через текстовый интерфейс. Он работает по принципу клиент-сервер, где клиент подключается к серверу, а затем пользователь может вводить команды на удалённой машине. Telnet сегодня считается устаревшим и небезопасным из-за отсутствия шифрования, поэтому для удалённого управления чаще используют SSH, но он всё ещё применяется для тестирования портов, диагностики и управления простыми встраиваемыми системами, например, маршрутизаторами.
SSH (Secure Shell) — это сетевой протокол, позволяющий безопасно удалённо подключаться к другому компьютеру и управлять им, шифруя весь передаваемый трафик. Он используется для передачи файлов и выполнения команд, например, через командную строку, в отличие от менее защищённых протоколов, таких как Telnet. Для безопасного соединения SSH использует пару из закрытого (приватного) и открытого (публичного) ключей, а также другие методы шифрования.
Процесс подключения:
Устанавливается TCP-соединение между клиентом и сервером.
Клиент и сервер договариваются о методе шифрования и устанавливают защищённый канал.
Клиент аутентифицируется, используя пару ключей (приватный и публичный) и имя пользователя.
После успешной аутентификации устанавливается зашифрованный туннель для передачи команд и данных.
Ключевые особенности:
Шифрование: SSH шифрует все данные, включая пароли и команды, что делает его безопасным для передачи чувствительной информации.
Безопасность: Протокол обеспечивает защищённое удалённое управление и передачу файлов через незащищённые сети.
Гибкость: SSH может использоваться для безопасного туннелирования других сетевых протоколов, позволяя передавать по зашифрованному каналу практически любые данные, например, звук или видео.
Использование ключей: В отличие от простых паролей, ключи SSH обеспечивают более надёжную аутентификацию.
Сжатие данных: Протокол может использовать сжатие данных, что повышает эффективность передачи.