Безопасно ли аннулировать групповой доступ к каждому каталогу в файловой системе?

Я пытаюсь защитить учетную запись на нашем сервере с именем ssh_user, которая используется исключительно для подключения через SSH к нашему серверу. Все члены нашей команды входят в эту учетную запись через защищенное PSK-соединение ssh и туннелируют на определенный порт для нашей системы контроля версий. Безопасность поддерживается каждым, имеющим свой PSK в файле / etc / ssh / ssh_user / авторизованный_пользователь

Учетная запись ssh_user была создана с помощью sudo adduser -r -s / bin / sh ssh_user сделать пользователя системной учетной записью, без домашнего каталога и максимально ограниченной оболочки.

Несмотря на то, что это уже доверенные пользователи, всегда возникает вопрос о том, какой доступ действительно необходим этой учетной записи, потому что я все еще могу перечислять каталоги в корневой файловой системе через эту учетную запись и читать конфигурационные файлы в / etc / ssh / .. ., поэтому я задаюсь вопросом, является ли эта проблема такой же простой, как выдача отзыва всего доступа к группе «другие» во всей файловой системе с помощью sudo chmod go-rwx / * ? Я, однако, не знаю, что (если вообще что-то) может сломаться при установке Ubuntu 16.04 по умолчанию.

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

Спасибо!

1
задан 29 June 2016 в 06:32

2 ответа

Повторитесь после меня: Работа ЛЮБОЙ команды разрешения / не зная точно то, что Вы делаете, является отличным способом повредить Вашу систему. Даже если Вы знаете то, что Вы делаете, это - все еще, вероятно, неправильный поступок.

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

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


Опция 1: Никакой Shell Во Всем (Лучший способ)


Вы используете SSH, чтобы позволить пользователям туннелировать в защищенный сервер, правильно? Почему пользователям даже нужна оболочка в этом случае? Просто блокируйте их доступ к оболочке и только позвольте им туннелировать!

Чтобы сделать это, просто создайте новую названную группу noaccess или подобный. Затем копия и вставка ниже в Ваш /etc/ssh/sshd_config файл:

Match Group noaccess
    AllowTcpForwarding yes
    X11Forwarding no

Если Вы хотите быть еще более безопасными путем ограничения, где они могут туннелировать, можно добавить параметр PermitOpen к конфигурации SSH. Например, если бы Вы хотите только позволить пользователям передавать порту 1337 на текущем сервере, Вы добавили бы PermitOpen localhost:1337 к Вашему файлу конфигурации, прямо под AllowTcpForwarding директива, как так:

Match Group noaccess
    AllowTcpForwarding yes 
    PermitOpen localhost:1337
    X11Forwarding no
    ...

Наконец, установите оболочку пользователей к /bin/true путем выполнения команды chsh -s /bin/true <username>. Пользователи будут тихо (и сильно) отвечены ударом на удар, если они попытаются запустить какой-либо вид интерактивной сессии. Если Вы хотите включать "дружественное" сообщение об ошибке, можно создать оболочку "фальшивки" quick-n-dirty, которая плюнет назад сообщением об ошибке.

SSH скорее раздражается, когда она не может получить доступ к оболочке, таким образом, необходимо передать параметр командной строки -N к команде OpenSSH, как так:

ssh user@example.com -N -L 3307:localhost:3306

При использовании PuTTY удостоверьтесь, что выделенный флажок устанавливается:

Don't start a shell or command at all

Я шел вперед и сделал действительно простую (непротестированную) оболочку, что слюна поддерживает сообщение об ошибке, и также сохраняет окно терминала открытым так, чтобы -N является ненужным. Можно найти источник здесь, если Вы хотите скомпилировать и использовать его. Даже с этим, необходимо все еще использовать -N, но это больше не абсолютно необходимо.


Опция 2: Позвольте им быть


У пользователей в Linux уже есть довольно приемлемый набор полномочий. Они могут считать файлы, которые относятся к ним и важны для функциональности системы. В то же время, файлы, которые "защищены" (как закрытые ключи и /etc/shadow) уже запретите чтения от неавторизованных пользователей.

Если Ваши пользователи уже защищены (и на самом деле будут рабочими в Вашей системе), это - наилучший вариант - за счет хранения пользователей из того, где они не принадлежат


Опция 3: выборочное предназначение


Если Опция 2 все еще слишком небезопасна для Ваших потребностей, Вы можете chmod o-rwx файлы, что Вы не хотите их к доступу. Примеры их включают "безопасные" файлы конфигурации. Однако необходимо быть очень осторожными, что Вы не заставляете сервисы и приложения терять доступ к файлам, которые необходимы, чтобы сделать их задание.

Вы могли также использовать Списки управления доступом для блокирования групп пользователей файлов, не устанавливая их как группа владения. Я предостерегаю, однако, что это справедливо включено, и это открывает способ позволить пользователям "выходить" из своего ограниченного набора, если они находят покрытого оболочкой пользователя, который не находится в заблокированной группе.


Опция 4: chroot


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

Если Вам интересно, этот вопрос объясняет это скорее хорошо.

5
ответ дан 29 June 2016 в 06:32
  • 1
    @qwr Да, они - определения для кодировок символов в X11. То, что они однако, является несущественным к вопросу " это должно хорошо удалить их, " который является вообще соответствующим " нет, удаление файлов вручную, которыми управляют пакеты, не является хорошей идеей " – dobey 16 November 2017 в 12:38

Выполнение

sudo chmod go-rwx /*

только позволило бы корню получать доступ к чему-либо в Вашей системе, которая повредится обо всем.

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

0
ответ дан 29 June 2016 в 06:32
  • 1
    Don' t удаляют " microsoft" файлы из источника ядра, если Вы хотите создать ядро. – Joshua 16 November 2017 в 16:43

Другие вопросы по тегам:

Похожие вопросы: