🤽♀️ Как использовать SFTP c chroot jail |

🤽♀️ Как использовать SFTP c chroot jail

Мануал

Если у вас есть серверы центров обработки данных Linux, которые требуют, чтобы пользователи могли отправлять и получать файлы через SFTP, вы можете подумать о защите этой системы с помощью chroot-jail.

Делая это, вы гарантируете, что те, кому нужно работать с SFTP, заблокированы в определенном каталоге и не могут получить доступ к структуре каталогов сервера.

Как вы это сделаете?

Используя chroot jail.

Позвольте мне показать вам, как.

Что вам нужно

Единственное, что вам нужно, это работающий сервер Linux и пользователь с привилегиями sudo. Вот и все.

Создание новой группы

Первое, что нужно сделать, это создать новую группу для пользователей SFTP. Откройте окно терминала и введите команду:

sudo groupadd sftponly

Добавление и изменение пользователей

Далее нам нужно добавить пользователей в эту новую группу.

Если вам нужно создать новых пользователей (и добавить их в группу), это можно сделать с помощью команды useradd следующим образом:

sudo useradd -g sftponly -s /bin/false -m -d /home/USERNAME USERNAME

Где USERNAME – имя пользователя, которого нужно добавить.

Приведенная выше команда гарантирует, что пользователь не сможет войти в систему через SSH, так как система назначает /bin/false в качестве оболочки пользователя.

После добавления нового пользователя обязательно установите пароль с помощью команды:

sudo passwd USERNAME

Где USERNAME – это имя только что добавленного пользователя.

Если у вас уже есть пользователи, которых вы хотите добавить в группу, вы можете сделать это с помощью команды:

sudo usermod -G sftponly -s /bin/false USERNAME

Где USERNAME – добавляемый пользователь, и его оболочка будет изменена.

Обратите внимание, однако, что если пользователь требует входа по SSH, он не сможет сделать это, как только вы внесете это изменение.

Если это так, рассмотрите возможность создания нового пользователя специально для его нужд SFTP.

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

Для этого выполните следующие команды:

sudo chown root: /home/USERNAME
sudo chmod 755 /home/USERNAME

Поскольку пользовательские каталоги теперь принадлежат пользователю root, они не смогут создавать файлы и / или каталоги.

Чтобы обойти это (чтобы они могли загружать и скачивать файлы), создайте новые подкаталоги (в своем домашнем каталоге), к которым у них будет доступ, с помощью следующих команд:

sudo mkdir /home/USERNAME/{ftp_up,ftp_down}
sudo chmod 755 /home/USERNAME/{ftp_up,ftp_down}
sudo chown USERNAME:sftponly /home/USERNAME/{ftp_up,ftp_down}

Примечание: вы можете назвать ftp_up и ftp_down как угодно.

Настройка SSH

Теперь нам нужно настроить SSH. Выполните команду:

sudo nano /etc/ssh/sshd_config

В этом файле найдите строку:

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

Измените эту строку на:

Subsystem sftp internal-sftp

Прокрутите до конца файла и добавьте следующее:

Match Group sftponly
   ChrootDirectory %h
   ForceCommand internal-sftp
   AllowTcpForwarding no
   X11Forwarding no

Сохраните и закройте файл. Перезапустите демон SSH с помощью команды:

sudo systemctl restart sshd

Тестирование

Теперь мы можем реально протестировать нашу новую настройку.

Войдите в систему с одним из вновь созданных пользователей (или существующим пользователем) с помощью команды:

sftp USERNAME@SERVER_IP

Где USERNAME – это имя пользователя, а SERVER_IP – это IP-адрес хост-сервера.

После успешной аутентификации введите команду pwd, чтобы проверить текущий рабочий каталог.

Система должна сообщить / (рисунок) и не позволить этому пользователю получить доступ к чему-либо за пределами этого каталога.

Затем введите команду ls, чтобы увидеть вновь созданные каталоги, к которым пользователь имеет доступ:

 

И это все, что нужно сделать.

Теперь у вас есть настройка SFTP, которая позволяет пользователям получать доступ только к определенным каталогам.

Обязательно заблокируйте каждого пользователя, которому нужно работать с SFTP на этом сервере, и все будет в порядке.

 

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий