Нужно заблокировать сервер 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.
Это один из способов сделать это.
- 👥 Как отключить доступ учетной записи пользователя Linux к shell
- 🐧 Как заблокировать и разблокировать несколько пользователей Linux
- 👥 Добавление, удаление и предоставление прав sudo пользователям Arch Linux
- 🐧 Советы по обеспечению безопасности сервера CentOS — часть 2
- 🐧 Как (правильно) изменить UID и GID пользователя / группы в Linux
- 🐧 Как добавлять, удалять и предоставлять привилегии Sudo пользователям в Linux
- 🐧 Как переименовать пользователя в Linux (также переименовать группу и домашний каталог)
- 🐳 Как запустить Docker от пользователя без полномочий root в Linux
- 🐳 Как защитить Docker в производственной среде?
- 🐳 Установите Docker и Docker Compose на Kali Linux