Рекомендуется ли изменять права доступа к корневой директории для повышения безопасности?

Вопрос или проблема

У меня есть сервер с Ubuntu 20.04 Server. Я купил свой сервер в Digital Ocean около года назад и каждый месяц стараюсь улучшить его безопасность, и, к счастью, у меня это получается. Но по поводу организации пользователей у меня всегда есть сомнения.

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

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

 0 lrwxrwxrwx   1 root root     7 May 14  2020 bin -> usr/bin
 4 drwxr-xr-x   4 root root  4096 Feb 10 06:59 boot
 0 drwxr-xr-x  16 root root  3820 Oct 12 02:34 dev
12 drwxr-xr-x 110 root root 12288 Feb 16 18:11 etc
 4 drwxr-xr-x   4 root root  4096 Apr  3  2021 home
 0 lrwxrwxrwx   1 root root     7 May 14  2020 lib -> usr/lib
 0 lrwxrwxrwx   1 root root     9 May 14  2020 lib32 -> usr/lib32
 0 lrwxrwxrwx   1 root root     9 May 14  2020 lib64 -> usr/lib64
 0 lrwxrwxrwx   1 root root    10 May 14  2020 libx32 -> usr/libx32
16 drwx------   2 root root 16384 May 14  2020 lost+found
 4 drwxr-xr-x   2 root root  4096 May 14  2020 media
 4 drwxr-xr-x   2 root root  4096 May 14  2020 mnt
 4 drwxr-xr-x   3 root root  4096 Dec 18 13:48 opt
 0 dr-xr-xr-x 197 root root     0 Jun 12  2021 proc
 4 drwx------  10 root root  4096 Feb  6 19:31 root
 0 drwxr-xr-x  31 root root  1040 Feb 16 13:04 run
 0 lrwxrwxrwx   1 root root     8 May 14  2020 sbin -> usr/sbin
 4 drwxr-xr-x   8 root root  4096 Feb 16 17:56 snap
 4 drwxr-xr-x   3 root root  4096 Apr  3  2021 srv
 0 dr-xr-xr-x  13 root root     0 Jun 12  2021 sys
 4 drwxrwxrwt  20 root root  4096 Feb 16 18:39 tmp
 4 drwxr-xr-x  15 root root  4096 Aug  6  2021 usr
 4 drwxr-xr-x  16 root root  4096 Dec  4 18:50 var

Вы можете видеть, сколько файлов имеет права выполнения для others groups, но действительно ли это необходимо? Права x означают, что любой пользователь может выполнить

 cd /boot

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

Моя цель заключается в том, чтобы каждый пользователь не мог делать ничего с дополнительными полномочиями (входить в /dev или /boot), только пользовательские действия.

Но я боюсь что-то сломать, изменяя права доступа.

Моя идея такая: я владелец сервера и я могу получить root, поэтому мой первый шаг:

В корневом каталоге я бы выполнил sudo chown root:power, где power — это группа, в которую я могу добавить некоторых пользователей, которые могут делать больше, чем обычно, затем chmod 750 на все (кроме temp, например)

Но я слышал, что если вы делаете такие вещи, например, www-data не сможет управлять службами apache или что-то изменить.

Так что мне придется добавить к группе power пользователя www-data, хорошо, тогда он сможет управлять своими ресурсами, но я думаю, что есть много других системных пользователей/групп, которым нужны аналогичные настройки, о которых я не осведомлен в данный момент.

Я надеюсь, вы можете более или менее понять, что я хочу сделать, и какова моя цель: изменить сервер для лучшего управления пользователями, ограничивая по roles, например. Но я немного потерян в том, с чего начать.

Спасибо всем.

Нет.

Права и владельцы системных файлов уже настроены для обеспечения безопасности.

Единственное, что вы достигнете, меняя владельцев и права доступа к системным файлам, это сломать свою систему.

Это очень опасный способ мышления, особенно если вы не знакомы с использованием Linux. Играться с системой в целом нормально, если вы знаете, что делаете. Но Стремление улучшить то, что не сломано, обычно не является хорошей идеей.

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

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

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

Это означает, что если вы попытаетесь сделать что-то необычное, но не совсем опасное, есть большая вероятность, что вам это разрешено.

Специалисты по безопасности не любят такой подход. Они хотят, чтобы вещи были закрыты максимально и открывались только в случае необходимости. Так меньше неприятных сюрprises. Похоже, ваши инстинкты находятся в этом лагере.

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

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

Таким образом, это вопрос приоритетов: что для вас важнее, безопасность или удобство использования? Есть версии Unix, которые более закрыты, чем Ubuntu. Их разработали эксперты по безопасности, которые провели тяжелую работу по обнаружению этих неопубликованных зависимостей.

С учетом всего вышесказанного, ответ Nmath также верен. Множество очень умных людей рассмотрели безопасность Ubuntu и признали ее адекватной. Вероятность того, что вас поразит неизвестная уязвимость, очень и очень мала.

Если я могу добавить свои два цента: делиться своим логином в оболочке опасно, так как вектор атаки значительно открывается, и это гораздо более опасно, если открывать его случайным людям, которых вы никогда не встречали лично. Доверяйте с осторожностью всему, что кто-либо говорит о безопасности Ubuntu, или безопасности RHEL, или безопасности HardenedBSD, или любого общедоступного сетевого хоста, потому что самой распространенной причиной проблем с безопасностью компьютера являются пользователи, и если вы позволяете им войти, вы также впускаете этот риск в свой хост. SELinux — это хорошая идея, но я нахожу, что это очень сложно. Это для меня крайне сложное программное обеспечение для мира Linux, но крайне впечатляющее, когда используется правильно. Я не знаю, есть ли у Ubuntu целевая политика, которую вы можете загрузить, в Debian есть такая для Debian 11 в последний раз, когда я это делал, однако дистрибутивы корпоративного Linux, такие как Rocky Linux, RHEL, OpenSUSE или Fedora, гораздо более дружелюбны по отношению к SELinux (за исключением LTS OpenSUSE Leap), и я получил выгоду от установки OpenSUSE Tumbleweed (обновление в реальном времени) с использованием целевых и обязательных политик SELinux. Я думаю, что Fedora использует это по умолчанию, поправьте меня, если я неправ. Если это то, что вы хотите, подготовьте ясную таблицу и много времени для изучения. Это было бы невероятно полезно!

Я рекомендую учитывать это, но также скачать этот совершенно революционный инструмент для аудита безопасности, он с открытым исходным кодом и находится на github: https://github.com/CISOfy/lynis (или с помощью apt install lynis для возможно немного старой версии, но это не критично).

Мои серверы обычно не подвергаются атакам, и если это происходит, я вижу, как это начинает происходить, наблюдая за журналами, тестируя свое программное обеспечение безопасности и следя за необъяснимой аномальной активностью и даже атакуя свой собственный хост. Хорошая частая проверка предупреждений журнала, остановленных служб systemd, работы брандмауэра, просмотр ваших сетевых подключений watch -n0.2 "netstat --inet -anep6 | sort -g " (или команды ss). Также, как только вы отдаляетесь от конфигурации, над которой работаете, полезно быть как можно более уверенным в том, что конфигурация, а также любое связанное абстрактное программное обеспечение или устройства или порты или адреса находятся в порядке, и если у вас есть сомнения, то полезно читать больше или попросить о помощи.

Возможно, используйте свои порты доступа пользователей на :22, но перенаправляйте из контейнера LXC в некое подобие тюрьмы там. Docker может сделать это довольно просто, но в зависимости от того, что нужно вашим пользователям. Или посмотрите на настройки пользователей SSH chroot, это тоже возможно. Lynis посоветует вам множество техник аудита сервера SSH! Умный администратор быстро это обнаружит ^^ Удачи!

Ответ или решение

Изменение разрешений каталога root в Unix-подобных системах, таких как Ubuntu Server, является весьма тонким вопросом, требующим глубокого понимания принципов безопасности и структуры операционной системы. Ваша цель улучшить безопасность системы вполне оправдана, однако не следует поддаваться соблазну менять разрешения в корневом каталоге без убедительных оснований и предварительного анализа последствий.

1. Почему не стоит изменять разрешения root-каталога?

Основные разрешения в Ubuntu и других дистрибутивах Linux ориентированы на баланс между функциональностью и безопасностью. Разрешения, выставленные по умолчанию, разработаны для того, чтобы минимизировать риски, не нарушая при этом работоспособность системы. Например, ваши настройки, такие как drwxr-xr-x для каталогов /boot или /etc, позволяют обычным пользователям просматривать содержимое данных каталогов, но не изменять его. Это важно для работы системных процессов и обеспечения совместимости различных служб и демонов.

2. Риски изменения разрешений

Изменив разрешения на каталогах, вы можете столкнуться с рядом проблем:

  • Нарушение функциональности: Многие приложения и службы зависят от определённых разрешений. Например, если вы закроете доступ www-data к некоторым каталогам, это может привести к сбоям в работе веб-сервера Apache или неработоспособности веб-приложений.
  • Сложности с поддержкой: Если в будущем вам понадобится провести администрирование или настройку системы, вы можете столкнуться с непонятными ошибками. Изменение разрешений может вызвать непредсказуемое поведение программ без явной причины.
  • Отсутствие документации: Ubuntu и другие дистрибутивы не проектировались с учетом того, что системные администраторы будут широко менять разрешения. Это может привести к отсутствию документации и поддерживаемым решениям при возникновении проблем.

3. Рекомендации по улучшению безопасности

Вместо изменения разрешений в корневом каталоге рекомендуется рассмотреть другие методы повышения безопасности вашего сервера:

  • Использование групп доступа: Создайте специфические группы для пользователей, которым необходимо больше прав. Например, добавьте пользователей в группу sudo, чтобы они могли выполнять команды от имени суперпользователя, сохраняя при этом разделение прав.
  • Управление SSH-доступом: Настройте доступ через SSH, ограничив пользователей, которые могут подключаться к серверу. Использование SSH-ключей вместо паролей значительно повысит безопасность.
  • Мониторинг и аудит: Используйте инструменты для аудита системы, такие как Lynis, для анализа и рекомендации по устранению уязвимостей.
  • Настройка файервола: Убедитесь, что ваши правила файервола ограничивают доступ к необходимым сервисам и портам, минимизируя возможные точки входа для злоумышленников.

4. Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...