Настройка SFTP и Chroot на Ubuntu 14.04


В этой статье рассматривается настройка sftp сервера и изоляция пользователей в их домашних каталогах (chroot) на базе Linux Ubuntu 14.04.

Sftp - протокол обмена файлами через безопасное сетевое соединение.
Chroot - изолированая среда.

Для начала создадим группу с пользователями:

groupadd sftpusers

Поскольку sftp - подсистема ssh, то и настройки е находятся в файле sshd_config. Его и нужно подредактировать:

nano /etc/ssh/sshd_config

Находим и коментируем строку:

#Subsystem sftp /usr/lib/openssh/sftp-server

Добавляем прямо под ней строку:

Subsystem sftp internal-sftp

Добавляем следующее в конец документа:

Match Group sftpusers
        X11Forwarding no
        AllowTcpForwarding no
        ChrootDirectory %h
        ForceCommand internal-sftp
        PasswordAuthentication yes

Перезапускаем демон ssh что бы изменения вступили в силу:

initctl restart ssh

Теперь можно и пользователя создать:

useradd -g sftpusers -d /home/username -m -s /bin/false username

На самом деле оболочка "/bin/false" отсутствует в файле "/etc/shells", но это не вызывает проблем с логином через sftp. На всякий случай ее лучше добавить:

echo "/bin/false" >> /etc/shells

Важным шагом является изменение собственника папки пользователя. Пользователям нельзя писать в свои домашние каталоги:

chown root:root /home/username

Если Вам нужно создать папку с правом на запись:

mkdir /home/username/upload
chown username:sftpusers /home/username/upload

Share Button
(Visited 2 301 times, 1 visits today)

3 комментария на «“Настройка SFTP и Chroot на Ubuntu 14.04”»

  1. Не работает ваш рецепт. Результат — сервер отказывается вообще по всем логинам пускать! Ubuntu 14.04 x64
    Перепробовал три раза. Я не знаю как теперь обращатьс к хостеру с просбой восстановить мне доступ к серверу…сервер физический(((

  2. Denis,

    Только что проверил метод. Все работает ровно. Единственное, что меня смущало это отсутствие оболочки «/bin/false» в файле «/etc/shells», но это не вызывает проблем с логином через sftp.

    Я не сомневаюсь, что Ваш хостинг провайдер сможет Вам помочь получить доступ к серверу.

    На будущее рекомендую не разрывать соединение с сервером, пока не удостоверитесь, что изменения в настройках ssh не повлияли на доступ.

    На самом деле вы можете остановить демон sshd имея активное ssh соединение и все еще иметь доступ к серверу. Но если демон останется остановленным, а вы закроете окно клиента ssh, то все станет очень печально.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *