🐧 Как ограничить доступ пользователей сервера к определенному каталогу в Linux |

🐧 Как ограничить доступ пользователей сервера к определенному каталогу в Linux

Мануал

Нужно заблокировать сервер Linux, чтобы определенные удаленные пользователи могли получить доступ только к определенному каталогу и только для загрузки и выгрузки файлов?

Давайте рассмотрим, как это сделать.

Когда у вас есть сервер с доступом по SSH, если вы не настроили его иначе, любой пользователь с учетной записью в этой системе может войти в систему и, если у него есть права и навыки, посеять хаос на вашем сервере.

Что вы можете сделать, так это ограничить этих пользователей с помощью chroot jail.

Этим вы существенно ограничиваете возможности этих пользователей в вашей системе.

Фактически, любой пользователь, ограниченный chroot jail, может:

  • Получить доступ к серверу только через sftp
  • получить доступ только к определенному каталогу

🐧 Что такое chroot jail и как им пользоваться?

Что вам понадобится

Чтобы все получилось, вам понадобится запущенный экземпляр Linux и пользователь с привилегиями sudo.

Вот и все.

Давайте творить магию безопасности.

Как создать группу с ограниченным доступом и добавить пользователей на сервере Linux

Первое, что мы должны сделать, это создать новую группу и добавить в нее пользователей.

Создайте группу:

sudo groupadd restricted

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

sudo usermod -g restricted USERNAME

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

🐧 Добавление, удаление и предоставление Sudo привилегий пользователям в Fedora

Как настроить SSH

Откройте файл конфигурации демона SSH с помощью:

sudo nano /etc/ssh/sshd_config

Найдите строку (рядом с нижней частью):

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

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

Subsystem sftp internal-sftp

В нижней части файла добавьте следующее:

Match group restricted
  ChrootDirectory /home/
  ForceCommand internal-sftp
  AllowTcpForwarding no
  X11Forwarding no

Сохраните и закройте файл.

Перезапустите SSH с помощью:

sudo systemctl restart ssh

Теперь вернитесь на другую машину и попытайтесь войти на сервер по SSH с пользователем, например:

ssh olivia@192.168.1.147

Вы увидите предупреждение:

This service allows sftp connections only. Connection to 192.168.1.147 closed.

🐧 LFCA: основные советы по безопасности для защиты системы Linux

Чтобы любой пользователь из группы с ограниченным доступом мог войти на сервер, он должен использовать sftp следующим образом:

sftp USERNAME@SERVER

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

После успешного входа в систему они окажутся в приглашении sftp, где смогут передавать файлы туда и обратно с помощью команд put и get.

Ограниченные пользователи могут загружать файлы только в свои домашние каталоги.

Когда пользователь с ограниченными правами входит в систему, он находится в каталоге /home.

Поэтому для успешной загрузки им придется перейти в свой домашний каталог, выполнив такую команду, как:

cd olivia

Попав в свой домашний каталог, можно выполнить команду типа:

put file1

Пока этот файл находится в текущем рабочем каталоге машины, с которой они вошли на сервер, он будет загружаться нормально.

Если этим пользователям нужно только загрузить файлы на локальную машину, они могут использовать такую команду, как:

get file1

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

Это один из способов сделать это.

 

 

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