Thank you for reading this post, don't forget to subscribe!
Нужно заблокировать сервер Linux, чтобы определенные удаленные пользователи могли получить доступ только к определенному каталогу и только для загрузки и выгрузки файлов
Когда у вас есть сервер с доступом по SSH, если вы не настроили его иначе, любой пользователь с учетной записью в этой системе может войти в систему и, если у него есть права и навыки, посеять хаос на вашем сервере.
Что вы можете сделать, так это ограничить этих пользователей с помощью chroot jail.
Этим вы существенно ограничиваете возможности этих пользователей в вашей системе.
Фактически, любой пользователь, ограниченный chroot jail, может:
- Получить доступ к серверу только через sftp
- получить доступ только к определенному каталогу
Как создать группу с ограниченным доступом и добавить пользователей на сервере Linux
Первое, что мы должны сделать, это создать новую группу и добавить в нее пользователей.
Создайте группу:
sudo groupadd restricted
Затем добавьте пользователя в группу с помощью команды:
sudo usermod -g restricted USERNAME
Где USERNAME – пользователь, которого вы хотите добавить в группу с ограниченным доступом.
Как настроить SSH
Откройте файл конфигурации демона SSH с помощью:
sudo nano /etc/ssh/sshd_config
Найдите строку (рядом с нижней частью):
Subsystem sftp /usr/lib/openssh/sftp-server
Измените эту строку на:
Subsystem sftp internal-sftp
В нижней части файла добавьте следующее:
1 2 3 4 5 |
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.
Чтобы любой пользователь из группы с ограниченным доступом мог войти на сервер, он должен использовать sftp следующим образом:
1 |
sftp USERNAME@SERVER |
Где USERNAME – имя пользователя, а SERVER – IP-адрес или домен сервера.
После успешного входа в систему они окажутся в приглашении sftp, где смогут передавать файлы туда и обратно с помощью команд put и get.
Ограниченные пользователи могут загружать файлы только в свои домашние каталоги.
Когда пользователь с ограниченными правами входит в систему, он находится в каталоге /home.
Поэтому для успешной загрузки им придется перейти в свой домашний каталог, выполнив такую команду, как:
cd olivia
Попав в свой домашний каталог, можно выполнить команду типа:
put file1
Пока этот файл находится в текущем рабочем каталоге машины, с которой они вошли на сервер, он будет загружаться нормально.
Если этим пользователям нужно только загрузить файлы на локальную машину, они могут использовать такую команду, как:
get file1
это очень ограниченная конфигурация с очень ограниченными случаями использования