Шаг 1 – Создайте аккаунт
Прежде всего, создайте учетную запись пользователя для доступа по sftp.
Для этого руководства мы создадим пользователя с именем sftpuser без доступа к оболочке.
Также установите надежный пароль для пользователя.
sudo adduser --shell /bin/false sftpuser sudo passwd sftpuser
Changing password for user sftpuser. New password: Retype new password: passwd: all authentication tokens updated successfully.
Шаг 2 – Создайте каталог
Теперь создайте структуру каталогов, которая будет доступна пользователю по sftp.
Мы ограничим нового пользователя только этим каталогом.
Таким образом, пользователь не может получить доступ к файлам в других каталогах.
sudo mkdir -p /var/sftp/files
sudo chown sftpuser:sftpuser /var/sftp/files
sudo chown root:root /var/sftp sudo chmod 755 /var/sftp
Шаг 3 – Настройте SSH для SFTP
Как мы знаем, SFTP работает по протоколу SSH, поэтому нам нужно настроить это в файле конфигурации.
Отредактируйте файл конфигурации SSH в текстовом редакторе.
sudo vim /etc/ssh/sshd_config
Match User sftpuser ForceCommand internal-sftp PasswordAuthentication yes ChrootDirectory /var/sftp PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no
Сохраните конфигурацию и перезапустите службу SSH, чтобы применить изменения.
sudo systemctl restart sshd.service
Все готово, ваша система готова принять только sftp-соединение для созданной учетной записи.
Давайте проверим соединение sftp, а также убедимся, что пользователь не авторизован к SSH.
Шаг 4 – Проверьте соединение SFTP
Я использую FileZilla для подключения по SFTP из моих систем Windows.
Пользователи Linux могут также использовать Filezilla для подключения.
sftp sftpuser@sftp.itsecforu.ru
Connecting to sftp.itsecforu.ru... sftpuser@sftp.itsecforu.ru's password: sftp>
ssh sftpuser@sftp.itsecforu.ru
sftpuser@sftp.itsecforu.ru's password: This service allows sftp connections only. Connection to sftp.tecadmin.net closed.
Приведенное выше сообщение (This service allows sftp connections only) показывает, что у пользователя есть только sftp-доступ.
Пользователи не могут подключиться к серверу через SSH.