Что такое sftp сервер
Что такое sftp сервер
SFTP расшифровывается как SSH File Transfer Protocol — SSH-протокол для передачи файлов.
Он предназначен для копирования и выполнения других операций с файлами поверх надёжного и безопасного соединения.
Как правило, в качестве базового протокола, обеспечивающего соединение, и используется протокол SSH2, но это не обязательно.
В сравнении с другим протоколом, тоже предназначенным для копирования файлов поверх SSH — протоколом SCP, который позволяет только копировать файлы, SFTP даёт возможность выполнять намного больше операций с ними: например, докачивать файл после разрыва соединения или удалять файл на сервере и многие другие операции. По этой причине существуют графические и псевдографические клиенты для SFTP, но нет таких, кто использовал бы только SCP в чистом виде.
Последнее утверждение может вызвать сомнения, ведь известно, что существуют WinSCP, модуль расширения для FAR и другие подобные менеджеры, содержащие SCP в названии, что может навести на мысль, что все их возможности реализуются через протокол SCP.
SFTP призван быть более платформонезависимым чем SCP. В частности, как раскрывать файловые шаблоны, описывается в самом стандарте — и это не зависит от сервера. В то время как в SCP как будут раскрыты файловые шаблоны было полностью на совести сервера, точнее командного интерпретатора пользователя. SCP-серверы более распространены для Unix, а SFTP как для Unix, так и для Windows.
Существует заблуждение, что SFTP это просто обычный FTP, работающий поверх SSH. В действительности SFTP — это новый протокол, разработанный с нуля. Ещё его иногда путают с Simple File Transfer Protocol. SFTP расшифровывается как SSH File Transfer Protocol и ничего общего с Simple File Transfer Protocol не имеет.
Сам по себе протокол SFTP не обеспечивает безопасность работы; это делает нижележащий протокол. Как правило, SFTP используется в сочетании с протоколом SSH2 (он даже был разработан той же рабочей группой). Можно использовать SFTP и с другими протоколами, например SSH1, но это сопряжено с дополнительными трудностями.
При загрузке (upload) файлов наряду с данными на сервер могут копироваться и метаданные файла, в частности временные метки (timestamps), что при желании даёт возможность сохранить в загруженном на сервер файле время модификации неизменным.
В настоящий момент протокол SFTP не принят в качестве официального стандарта Интернет.Наиболее новая спецификация есть в черновике (draft), который описывает версию 6 протокола. Самой распространённой версией является 3-я, которая реализована в SSH-сервере OpenSSH. В большинстве Windows-клиентов реализована версия 4. SFTP, начиная с версии 4, становится более платформонезависимым и работает одинаково на Unix и Windows.
[править] Сервер SFTP
SFTP-сервер встроен в OpenSSH. Он реализуется с помощью программы sftp-server. Для того чтобы включить sftp-server в sshd, необходимо указать его в конфигурационном файле sshd_config в качестве подсистемы:
Как правило, это строка уже указана в конфигурационном файле sshd по умолчанию, так что SFTP работает сразу и не требует никаких дополнительных действий для включения.
[править] Клиент SFTP
SFTP-клиент sftp встроен в пакет OpenSSH.
Форма вызова команды:
В первой форме sftp подключается к удалённому серверу SFTP хост и переходит в интерактивный режим работы.
Во втором случае sftp скачивает файл1 с сервера и записывает его в текущий каталог с под именем файл1 (или файл2, если это имя указано).
Третья форма, также как и первая, переводит sftp в интерактивный режим; с той только разницей, что работа на удалённом сервере начинается с определённого каталога.
В четвёртой форме после подключения к серверу выполняется batchfile, содержащий команды sftp. В качестве имени файла может быть указан символ —, в этом случае batchfile читается со стандартного потока ввода.
Подробнее о синтаксисе sftp можно прочитать в sftp(1).
Программа sftp использует в качестве транспорта ssh, и аутентификация на удалённом сервер выполняется средствами ssh. Если есть необходимость вместо ssh использовать другую программу, это можно сделать указав её имя в опции -S sftp.
В качестве SFTP-клиента для Windows может использоваться WinSCP, PSFTP из пакета PuTTY или кросс-платформенный ftp-клиент Filezilla.
[править] Дополнительные вопросы
[править] chroot для SFTP в FreeBSD
Прикладываем его, пересобираем и устанавливаем пропатченый sftp-server:
Последняя операция, chmod, очень важна, sftp-server должен быть suid root, иначе ничего работать не будет.
У пользователя в домашнем каталоге вообще не должно быть никаких бинарников и конфигурационных файлов, всё работает и без них. Единственное что нужно сделать чтобы работал только sftp и ничего больше. Реализуется это простеньким скриптом на perl:
который ставится в качестве shell для нужного пользователя. Также нужно, чтобы у данного пользователя работал chroot, у него в поле home в passwd написать не ‘/home/user’, а ‘/home/user/./’, что будет означать в принципе то же самое, что и ‘/home/user’, но даст указание sftp-server, когда нужно выполнить chroot(2).
[править] Как установить umask для SFTP-сервера?
SFTP (SSH File Transfer Protocol): Что Это Такое и Как Его Использовать
FTP — это стандартный метод передачи файлов или других данных между компьютерами, однако с каждым днём он становится всё более устаревшим, учитывая современные стандарты безопасности. К счастью, именно здесь на помощь приходит SFTP, который пользователи VPS-хостинга найдут особенно полезным.
В этом руководстве мы покажем, как использовать SFTP для безопасной передачи файлов, поговорим о некоторых других полезных командах и подробнее остановимся на том, как это работает.
Как подключиться к серверу по SFTP?
SFTP — это подсистема SSH. Следовательно, этот протокол поддерживает все методы аутентификации SSH. Хотя настроить и использовать аутентификацию по паролю намного проще, вход в систему с помощью ключей SSH по SFTP без пароля намного безопаснее.
Подробную информацию о том, как настроить ключи SSH можно найти в этом руководстве. Когда вы будете готовы, выполните следующие действия, чтобы подключиться по SFTP:
После подключения вы увидите командную оболочку SFTP.
Как передавать файлы по SFTP?
Здесь мы покажем вам, как передавать удалённые файлы в локальную систему и наоборот с помощью SFTP.
Обратите внимание! Вы также можете передавать файлы с помощью SFTP-клиентов, таких как WinSCP или FileZilla. Если вас интересует последний, ознакомьтесь с нашим руководством на эту тему.
Передача удалённых файлов с сервера в локальную систему
Для начала давайте проверим, какие локальный и удалённый рабочие каталоги мы используем. Для этого воспользуемся следующими командами SFTP:
Теперь давайте посмотрим, как передать файл с удалённого сервера на локальный компьютер с помощью команды get. Вот основной синтаксис команды get:
Например, чтобы скопировать файл /etc/xinetd.conf с удалённого сервера на локальный компьютер, вы должны использовать команду:
По завершению загрузки вы найдёте файл xinetd.conf в каталоге /user/home на вашей локальной машине.
Чтобы загрузить по SFTP несколько файлов, используйте команду mget. Для загрузки в текущий рабочий каталог все файлы из каталога /etc с расширением .conf, воспользуйтесь следующей командой:
После загрузки вы найдёте все файлы *.conf в каталоге /user/home на вашем компьютере.
Передача файлов с локального компьютера на удалённый сервер
Чтобы скопировать файл с локального компьютера на удалённый сервер, мы снова воспользуемся командой get. В этом случае синтаксис команды get будет следующим:
Чтобы переместить файл example.txt с локальной машины на удалённую, введите следующую команду:
Теперь мы найдём файл в корневом каталоге удалённого сервера. Вы также можете попробовать передать несколько файлов с помощью команды mput. Работает почти так же, как mget:
Эта команда переместит все файлы с расширением .txt в папке /home/user-name с локального компьютера на удалённый в каталог /root.
Обратите внимание! Для загрузки и выгрузки файлов по SFTP вам нужно будет ввести команду put или get и нажать клавишу TAB.
Команды для навигации по SFTP
Некоторые команды можно использовать для более эффективной навигации по удалённым и локальным серверам с помощью SFTP. Они похожи на те, которые вы бы использовали в командной строке Linux.
Например, команда pwd всегда поможет узнать, в каком рабочем каталоге вы находитесь.
Вы также можете вывести список файлов и каталогов, которые вы используете для удалённого каталога:
Аналогично для локального рабочего каталога:
Вывод будет выглядеть примерно так:
Чтобы переключиться из одного удалённого рабочего каталога на другой локальный рабочий каталог, введите следующие команды:
Наконец, используйте ! и команды exit, чтобы вернуться в локальную оболочку и выйти из SFTP.
Основы обслуживания файлов с использованием SFTP
SFTP также позволяет управлять каталогами и файлами с помощью определённых команд.
Чтобы проверить дисковое пространство удалённого сервера в гигабайтах, используйте функцию df следующим образом:
Используйте команду mkdir, чтобы создать новый каталог на удалённом или локальном сервере:
Вы можете удалить его с удалённого сервера с помощью команды rmdir:
Переименовать удалённый файл тоже довольно просто:
Если вы хотите удалить удалённый файл, используйте команду rm:
В то время как команда chown используется для замены владельца файла:
Значением userid может быть либо имя пользователя, либо числовой идентификатор пользователя. Например:
chgrp используется для изменения владельца группы файла:
Наконец, вам нужно будет использовать интерактивную команду chmod, чтобы изменить права доступа к файлу:
В этом примере трёхзначное значение обозначает пользователя, группу и других пользователей файла.
Что касается разрешений на чтение (r), запись (w) и выполнение (x), их значения равны 4, 2, 1 соответственно. 0 также может использоваться, чтобы не предоставлять никаких разрешений.
Чтобы назначить разрешения, просто вычислите общие значения для каждого класса пользователей. Вот подробный пример:
Список полезных команд SFTP
Если вам нужна шпаргалка, вот список всех доступных команд SFTP. Вы можете найти этот список самостоятельно, просто введя команду вызова справки help или ? — обе предложат один и тот же результат.
Что такое SFTP?
SFTP, или SSH File Transfer Protocol — более безопасный способ передачи файлов. Используя протокол SSH, он поддерживает шифрование и другие методы безопасности для лучшей защиты передачи файлов. Это единственный безопасный протокол, который защищает от атак на любом этапе процесса передачи данных.
Во время передачи файлов все данные разделяются на пакеты и отправляются через единое безопасное соединение.
SFTP шифрует конфиденциальную информацию при передаче между клиентом и сервером и делает её нечитаемой. Другими словами, исходное содержимое (открытый текст) заменяется бессвязной строкой символов (зашифрованным текстом).
Только получатель с требуемым ключом дешифрования сможет увидеть исходный контент. Это предотвращает любой несанкционированный доступ к данным во время передачи файлов.
Обычный протокол передачи файлов (FTP) имеет два разных канала для обмена данными — командный канал и канал даных. SFTP имеет только один зашифрованный канал, по которому данные передаются зашифрованными, отформатированными пакетами.
Заключение
В этом руководсве мы охватили основы использования SFTP для безопасной передачи файлов. Мы надеемся, что эта статья была вам полезной. Однако, если вам нужна дополнительная информация только о FTP, вы можете найти больше руководств здесь.
Также, если у вас возникли вопросы, не стесняйтесь оставлять их в комментариях ниже.
Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.
Протокол FTP (SFTP, FTPS) — что это такое, соединение между клиентом и сервером по ФТП
Здравствуйте, уважаемые читатели блога Goldbusinessnet.com. Очередным шагом на пути познания механизма передачи информации в интернете станет изучение FTP, посредством которого можно в том числе работать с любыми файлами на удаленном сервере.
Как и в случае с HTTP (о всех нюансах которого я сообщал тут), базовой составляющей действия этого протокола является взаимодействие «клиент-сервер», подробности которого мы непременно разберем в данной публикации.
Перед нами не стоит цель с головой окунуться в дебри и по косточкам разобрать абсолютно все разделы этой темы, но вот знание основ работы ФТП и его безопасных вариантов SFTP, FTPS, а также туннелирования посредством SSH-соединения может оказать вам практическую пользу в дальнейшем. В процессе повествования я постараюсь избежать ненужных заумных выражений и объяснить все простыми и понятными словами.
Что такое FTP и в чем его отличие от HTTP
Итак, аббревиатура FTP означает «File Transfer Protocol» и переводится с английского на русский как «протокол передачи файлов». Как и HTTP, файловая передача основывается на модели, состоящей из совокупности протоколов TCP/IP (Transmission Control Protocol/Internet Protocol), на которой и базируется современный интернет.
Если HTTP, который также является протоколом, был изначально предусмотрен создателями для осуществления передачи гипертекста (что это такое?) и небольших текстовых файликов, то ФТП служит для «транспортировки» практически любых файлов.
Вообще, чтобы получше понять суть сегодняшней темы и осмыслить те нюансы, которые будут разобраны нами далее, лучше сразу обратить внимание на основные отличия между FTP и HTTP, выделенные в ниже следующей табличке:
ФТП-соединение по умолчанию происходит через port 21, если не установлен другой порт. Важно также отметить, что этот протокол снабжен двоичным (бинарным) режимом передачи, что экономит трафик и сокращает время обмена данными при передачи больших файлов.
Взаимодействие между Клиентом и Сервером по ФТП
Перед тем, как продолжить, необходимо определиться с еще некоторыми терминами, которые будут совсем не лишними для восприятия картины в целом.
FTP server — это сервер, который предусматривает возможность использования протокола передачи файлов. Он обладает определенными особенностями, отличающими его от обычных вэбсерверов, а именно теми, которые в основном также присущи одноименному протоколу и представлены в табличке выше:
Ярким примером ФТП-сервера может служить server хостинга (что означает этот термин), на котором «живет» сайт. Эта информация для вебмастеров не является тайной за семью печатями, но вот тем, кто только планирует заняться сайтостроением, будет как раз к месту.
FTP client — это программа, позволяющая подключиться к удаленному серверу по ФТП и также выполнять на нем необходимые действия с элементами файловой системы. К слову, клиентом вполне может быть браузер, в адресную строку которого следует ввести урл, представляющий собой путь (c протоколом FTP) до определенного каталога или файла на удаленном сервере, в соответствии с общей блок-схемой URL:
Или применить более сложный вариант, ежели используется порт, отличный от 21:
Однако же, использование веб-обозревателя в таком разрезе позволит лишь просмотреть или скачать интересующие файлы. Для того, чтобы в полной мере задействовать все плюсы FTP, в качестве клиента следует применить специализированный софт наподобие Файлзиллы (в этом мануале даны все нужные инструкции по установке, настройке и работе с данной программой):
Чтобы подключиться через уже настроенный клиент FileZilla к удаленному серверу, необходимо ввести название хоста, в качестве которого используется IP-адрес сайта, соответствующий его домену (что такое доменное имя и как его приобрести), имя пользователя, пароль и порт.
Кстати, в статье о Файлзилле дана не только стандартная информация, но и практические советы по устранению ее уязвимости в плане безопасности (несмотря на кучу плюсов, проблемы такого рода у ней есть, впрочем, как и у других программ подобного профиля), поэтому настоятельно рекомендую прочитать этот материал, перейдя по чуть выше предоставленной ссылке.
Но продолжим. Схематически взаимодействие «клиент-сервер» при ФТП-соединении можно наглядно представить следующим образом:
Если расписать этот процесс по пунктам, то получится примерно следующее:
Если пользователь является администратором сайта, который расположен на удаленном сервере, то после аутентификации и подключения он в силах совершать любые возможные действия.
Однако, в интернете довольно много бесплатных ФТП-серверов, по сути являющихся библиотеками разного рода файлов, которые предназначены для хранения и скачивания текстовых документов, музыки, фото, видео, дистрибутивов программ и т.п.
В этом случае зарегистрированный пользователь после авторизации имеет весьма ограниченный доступ к определенным каталогам и может осуществлять только лишь некоторые установленные операции с их содержимым (скажем, просматривать и скачивать файлики).
Кроме стандартного соединения с сервером, предусматривающего ввод данных аутентификации, существует понятие анонимного FTP, когда любой пользователь может подключиться к серверу без предоставления персональных данных. Если при этом использовать браузер в качестве клиента, то адрес доступа к файлу может быть упрощен и представлен так:
На практике при анонимном ФТП обычно в качестве логина для доступа применяется известное в сети слово «anonymous», а в качестве пароля — адрес электронной почты, который, впрочем, в большинстве случаев не проверяется.
Безопасный ФТП (SFTP, FTPS и с использованием SSH)
Этот протокол изначально не задумывался как защищенный, так ка разрабатывался в далеком 1971 году и использовался поначалу лишь в научно-исследовательской сети APRANET, доступ в которую имели только несколько военных объектов и университетов.
Но с развитием Мировой Паутины ее частью стал помянутый APRANET, а, следовательно, и технология FTP перекочевала туда же, поскольку обладала многими преимуществами. Однако, одновременно на несколько порядков возросла опасность несанкционированного доступа.
Поэтому возникла насущная необходимость защиты серверов от различного рода атак. Обычный ФТП не обладает возможностью передачи данных в зашифрованном виде, вследствие чего имена пользователей, пароли, команды и другая информация могут при желании легко и просто быть перехвачены злоумышленниками.
По этой причине были разработаны несколько методов, позволяющих зашифровать передаваемую посредством ФТП информацию. Вкупе все эти способы получили обобщающее и емкое название «Безопасный FTP». Вот какие разновидности протокола соответствуют этому термину:
1. FTPS (FTP + SSL) — фактически это расширение стандартного протокола передачи файлов, которое обеспечено криптографическим протоколом SSL (Secure Sockets Layer — уровень защищенных сокетов). На сегодняшний день более передовым его аналогом является TLS (Transport Layer Security — защита транспортного уровня). При этом есть два метода предоставления безопасности:
1.1. Неявный является устаревшим и использует стандартный протокол, требующий применения SSL или TLS, которые могут обеспечить шифрование информации. При таком методе обязательно нужно использовать порты, отличные от обычных, что создает неудобства, поскольку нарушается совместимость клиентов и серверов, не поддерживающих FTPS.
1.2. Явный — намного более удобный, так как применяет команды стандартного протокола FTP, но при отправке ответа зашифровывает информацию, что позволяет сохранить совместимость, поскольку в этом случае применяются одни и те же порты как для FTPS, так и для FTP. При этом для шифрования данных клиентом отправляется команда «AUTH TLS» или «AUTH SSL».
2. SFTP (SSH FTP) — протокол прикладного уровня для передачи файлов, который работает поверх безопасного канала, его не следует путать с «Simple File Transfer Protocol», имеющего такую же аббревиатуру. Если FTPS является просто расширением FTP, то SFTP это отдельный и никак не связанный с ФТП протокол, который снабжен SSH (Secure Shell — безопасная оболочка).
Главное, в чем заключается его отличие от стандартного ФТП и ФТПС, это то, что СФТП шифрует абсолютно все команды, имена пользователей, пароли и другую конфиденциальную информацию. Так как это совершенно другая конфигурация, клиенты FTP (FTPS) не могут соединиться с SFTP-сервером.
3. FTP через SSH — производит обычную FTP-сессию через SSH-туннель, то есть этот вариант нельзя путать с SFTP, который является отдельным независимым протоколом. Этот метод нельзя назвать стопроцентно безопасным. Почему?
Дело в том, что если несколько SSH-клиентов устанавливают туннель для управляющего канала, который изначально осуществляется через 21 порт (а такая ситуация практически всегда и наблюдается), то защищенным окажется именно этот канал. При передаче же данных клиентское программное обеспечение откроет новые TCP-соединения, которые будут находиться уже вне воздействия защитной оболочки SSH.
Надеюсь, вы не запутались во всех этих вариантах безопасных протоколов. Для того, чтобы как-то облегчить понимание, позволю себе сделать краткое резюме. Объективно обеспечивающим самую высокую степень защиты является SFTP. Немного уступает ему в надежности явный FTPS, однако он более удобен, поскольку дает возможность пользоваться обычными портами. Какой из них выбрать, зависит от вида задачи, которая перед вами стоит и, конечно, настроек сервера.
Протокол передачи данных SFTP
В статье рассмотрим, что такое SFTP-порт и как настроить SFTP-сервер в панели управления ISPmanager и через консоль.
Что такое FTP
Сетевой протокол — это набор правил, которые описывают, как именно информация должна передаваться между устройствами в интернете. К распространённым протоколам относятся: TCP/IP, HTTP, FTP, POP3 и SMTP и др. У каждого из них своя область использования:
по протоколу HTTP передаются данные со страниц в интернете (гиперссылки),
протоколы POP3 и SMTP задают правила для получения/отправки почты.
Протокол FTP (File Transfer Protocol) используется для передачи данных с одного компьютера/сервера на другой в интернете.
На практике с передачей по FTP сталкиваются владельцы сайтов, когда им нужно загрузить информация со своего компьютера в папку сайта на хостинге. Они, конечно, могут передавать данные и через панель управления. Это проще, но у метода есть ограничения по объёму/скорости передачи.
Поэтому часто владельцы сайтов используют FTP. Для этого они подключаются к FTP-серверу. Это сервер, который специально настроен для обмена данными. Чтобы подключиться к FTP-серверу, нужно создать FTP-аккаунт и использовать FTP-клиент (программу Filezilla, Total Commander и др.). Мы рассматривали подключение по FTP в отдельной статье.
Протокол SFTP и FTPS
При передаче по FTP данные никак не шифруются. Так получилось, потому что при разработке (1971 г.) этот протокол использовали только в университетах и военных организациях США. Система была закрытой, и нужды защищать информацию не было.
По мере роста интернета и увеличения количества пользователей появилась необходимость шифровать передачу данных. Сначала для этого использовали расширение на FTP. Расширение FTPS добавляет к стандартному протоколу криптографическое шифрование SSL/TLS. Сейчас оно считается устаревшим.
SFTP (SSH SFTP) — ещё один протокол передачи данных, который выполняет операции с файлами поверх надёжного SSH-протокола. Это значит, что он шифрует всю информацию: команды, пользователей и пароли. Несмотря на похожие названия, FTP и SFTP — разные технологии. Они работают через разные порты.
Зачем использовать SFTP
FTP можно использовать только в доверенных сетях. Протокол SFTP гарантирует безопасность передачи данных во всех случаях. Подключаясь по SFTP, вы используете надежный канал, защищенный протоколом SSH. Он аутентифицирует клиент и сервер, исключая возможность того, что сессию взломает злоумышленник.
Также у SFTP есть дополнительные преимущества по сравнению с FTP и FTPS. Он может:
прерывать передачу файлов,
удалять или возобновлять передачу,
использоваться на большем количестве платформ.
Настройка SFTP
На виртуальном хостинге REG.RU SFTP настроен автоматически.
Если вы используете VPS или Облачные серверы, нужно создать SFTP-пользователя. Вы можете сделать это:
в панели управления ISPmanager (если на сервер установлено это приложение),
Как создать пользователя SFTP в панели ISPmanager
Перейдите в раздел «Учётные записи» — «Пользователи» и нажмите Создать:
Также вы можете настроить доступ по SFTP у существующего пользователя. Для этого выберите нужную запись в списке и нажмите Изменить. На открывшейся странице поставьте галочку напротив пункта Доступ к shell и сохраните изменения.
Заполните обязательные поля в блоке «Основное»:
Пролистайте страницу вниз до блока «Доступ», поставьте галочку напротив пункта Доступ к shell и нажмите Далее:
Настройка «Доступ к shell» обеспечивает безопасность по SFTP- и SSH-протоколам
На следующей странице введите домен сайта, для которого планируете использовать SFTP, и нажмите Далее:
Завершите создание аккаунта для подключения по SFTP:
Готово! Теперь вы сможете передавать данные по SFTP.
Как настроить SFTP-доступ через консоль
Если вы пользуетесь облачным хостингом REG.RU, отдельно создавать SFTP-аккаунт не нужно.
Используйте для подключения IP-адрес сервера и пароль root-пользователя. Эта информация отправляется на почту после создания сервера и дублируется в Личном кабинете.
Если подключиться по SFTP не получается, откройте консоль вашей ОС и введите команду:
Как подключиться по SFTP
Подключиться по SFTP можно с помощью нескольких программ: FileZilla, CWinSCP и другие. Выберите подходящую в зависимости от вашей ОС, установите её и выполните следующие действия (на примере FileZilla):
Хост — IP-адрес сервера;
Имя пользователя — root или имя созданного ранее SFTP-аккаунта;
Пароль — пароль SSH или пароль SFTP-аккаунта;
Порт — SFTP-порт по умолчанию (22).
Нажмите Быстрое соединение:
Готово! После подключения вы сможете безопасно обмениваться данными с удалённым сервером.