Введение
Сегодня рассмотрим, как создать свой собственный сервер SFTP. В отличие от классического FTP, который передает данные в открытом виде, SFTP обеспечивает безопасную передачу файлов через SSH-протокол. Это важный момент для разработчиков и системных администраторов, которым нужна защищённая среда.
Отличия FTP, FTPS и SFTP
- FTP (File Transfer Protocol) — стандартный протокол для передачи файлов, который не шифрует данные, включая пароли, и работает по порту 21. Основной минус — отсутствие безопасности.
- FTPS (FTP + SSL/TLS) — расширение FTP, добавляющее шифрование через SSL или TLS. Часто путают с SFTP, но это разные протоколы.
- SFTP (SSH File Transfer Protocol) — полностью отдельный протокол, работающий поверх защищенного канала SSH. Шифрует все данные, включая команды и учетные данные.
Почему выбрать SFTP?
SFTP гарантирует конфиденциальность и целостность передаваемых данных. Клиенты FTP/FTPS не смогут подключиться к SFTP-серверу, что повышает безопасность и исключает несанкционированный доступ.
Программы для создания сервера SFTP
- OpenSSH (Windows / Linux)
Самый популярный и бесплатный SSH-сервер с поддержкой SFTP. На Windows доступен через компоненты Windows или в составе WSL. На Linux — стандартный пакет.
OpenSSH Official
Особенности: бесплатный, широко используется, кроссплатформенный. - Bitvise SSH Server (Windows)
Профессиональный SSH-сервер с расширенными возможностями, включая SFTP. Удобен в настройке, есть графический интерфейс. Бесплатен для некоммерческого использования.
Bitvise SSH Server
Особенности: удобный интерфейс, гибкие настройки безопасности. - FreeFTPd (Windows)
Легкий FTP и SFTP сервер для Windows с простым интерфейсом. Подходит для небольших задач.
FreeFTPd
Особенности: простой, бесплатный, поддержка SFTP. - FileZilla Server (Windows)
Поддерживает FTP и FTPS, но не SFTP. Тем не менее, часто используется для тестирования FTP-соединений.
FileZilla Server
Особенности: простой сервер для FTP/FTPS, не поддерживает SFTP.
Как создать свой сервер SFTP?
- Установите выбранный SSH-сервер (например, OpenSSH или Bitvise).
- Настройте пользователей и права доступа.
- Откройте порт 22 в брандмауэре.
- Запустите сервер и проверьте подключение через SFTP-клиент, например FileZilla Client или WinSCP.
Тестирование подключения
Для проверки работы сервера используйте бесплатные клиенты:
- FileZilla Client — поддерживает FTP, FTPS и SFTP
- WinSCP — удобный SFTP и SCP клиент для Windows
Настройка FreeFTPd для FTP и SFTP
Шаг 1. Скачивание и установка FreeFTPd
- Перейдите на официальный сайт или надежный источник скачивания FreeFTPd (обратите внимание, что проект давно не обновлялся, но всё еще работает на Windows):
http://www.freesshd.com/?ctt=download - Скачайте и установите FreeFTPd.
Шаг 2. Запуск и основное окно программы
- Запустите FreeFTPd. Откроется окно настроек сервера.
Шаг 3. Создание пользователей
- Перейдите на вкладку Users (Пользователи).
- Нажмите Add для создания нового пользователя.
- Введите имя пользователя и пароль.
- Отметьте тип доступа — FTP или SFTP (отметьте оба, если хотите разрешить оба протокола).
- Укажите домашнюю папку (директорию), к которой будет доступ у этого пользователя.
Шаг 4. Настройка FTP и SFTP
- На вкладке FTP можно задать порт (по умолчанию 21).
- На вкладке SFTP — порт (по умолчанию 22).
- Можно включить/отключить работу соответствующих протоколов.
Шаг 5. Настройка ключей SSH для SFTP
- Вкладка SSH — здесь можно создать или загрузить существующий SSH-ключ, необходимый для работы SFTP (Secure Shell).
- Нажмите Generate Key для создания нового ключа.
- Вы можете экспортировать ключ или оставить его для внутреннего использования.
Шаг 6. Общие настройки
- Во вкладке General можно указать, чтобы сервер запускался как служба Windows.
- Можно задать дополнительные параметры — например, максимальное количество соединений.
Шаг 7. Запуск сервера
- После настройки нажмите Start Server (Запустить сервер).
- Сервер начнет работу на указанных портах.
Шаг 8. Подключение к серверу
- Используйте любой FTP/SFTP клиент, например:
- FileZilla Client
- WinSCP
- Cyberduck
- Для FTP укажите порт 21, для SFTP — порт 22.
- Введите имя пользователя и пароль, которые вы создали в FreeFTPd.
Важные моменты
- FreeFTPd — легковесный и простой сервер, идеально подходит для домашних и небольших проектов.
- Он поддерживает и FTP, и SFTP (в отличие от FileZilla Server, который не поддерживает SFTP).
- Для более серьезных проектов рекомендуется использовать современные серверы, такие как OpenSSH (для SFTP) или коммерческие решения.