Как ограничить команду Su авторизованными пользователями в Linux
Ограничение использования команды su в Linux для лучшей защиты.
Команда su
— это мощный инструмент, который можно использовать для переключения на учетную запись другого пользователя. Однако злоумышленники также могут использовать его для получения несанкционированного доступа к вашей системе. Ограничивая использование команды su, вы можете защитить свою систему Linux от несанкционированного доступа.
Введение
В нашем предыдущем руководстве мы узнали, как «предоставить или запретить доступ sudo к группе» в Linux, чтобы повысить безопасность и улучшить управление группами. Однако одного этого может быть недостаточно.
Если злоумышленник получит доступ к учетной записи без привилегий sudo, он все равно может попытаться войти в систему как root
или другой пользователь с привилегиями sudo, используя команда su
. Как вы уже знаете, команда su
позволяет пользователям выполнять команды от имени других учетных записей, включая учетную запись root
.
Чтобы решить эту проблему, нам необходимо убедиться, что только определенные учетные записи имеют право использовать команду su
. Этот дополнительный шаг повысит безопасность нашей системы. В этом кратком руководстве мы узнаем, как ограничить использование команды su авторизованными пользователями в Linux.
Вот некоторые причины, по которым вы можете захотеть ограничить использование команды su:
- Чтобы предотвратить доступ неавторизованных пользователей к конфиденциальным данным.
- Для предотвращения внесения неавторизованными пользователями изменений в настройки системы.
- Чтобы предотвратить установку вредоносного программного обеспечения неавторизованными пользователями.
1. Ограничьте использование команды Su отдельными пользователями в Debian и его производных.
Чтобы ограничить круг лиц, которые могут использовать команду su
, нам нужно создать специальную группу и разрешить только членам этой конкретной группы использовать команду su
. Давайте посмотрим, как это сделать.
1. Для целей данного руководства я собираюсь создать двух пользователей, а именно user1 и user2.
sudo adduser user1
sudo adduser user2
2. Затем создайте новую группу под названием adminmembers.
sudo groupadd adminmembers
3. Добавьте в группу пользователей «user1» и «user2».
sudo usermod -aG adminmembers user1
sudo usermod -aG adminmembers user2
Аналогично добавьте в эту группу всех остальных пользователей.
Вы можете проверить членов этой группы с помощью команды:
getent group adminmembers
Пример вывода:
adminmembers:x:1005:user1,user2
4. Теперь выполните следующую команду, чтобы разрешить использование команды su
только членам группы 'adminmembers':
sudo dpkg-statoverride --update --add root adminmembers 4750 /bin/su
Здесь команда sudo dpkg-statoverride --update --add
используется для переопределения прав доступа к файлам и владения определенным файлом в дистрибутиве Linux на основе Debian. В данном случае команда устанавливает специальное разрешение и право собственности на двоичный файл /bin/su
.
Давайте разберем команду:
sudo
: используется для запуска команды с правами суперпользователя (root). Для изменения системных файлов вам потребуются права администратора.dpkg-statoverride
: это инструмент командной строки в системах на базе Debian, который позволяет вам переопределять права доступа к файлам и право собственности на пакеты, управляемые менеджером пакетов.--update
: этот параметр указываетdpkg-statoverride
обновить указанное переопределение, если оно уже существует.--add
: этот параметр указывает, что мы хотим добавить новое переопределение.root
: указывает пользователя, чье право собственности будет установлено для файла.adminmembers
: указывает группу, чье право собственности будет установлено для файла.4750
: это числовое представление прав доступа к файлу. Значение4750
представляет собой специальное разрешение, называемое «SetUID» (установить идентификатор пользователя) при выполнении. Если в двоичном файлеsu
установлен бит SetUID, он запускается с эффективным идентификатором пользователя владельца файла (root), а не пользователя, выполнившего его. Это позволяет обычным пользователям временно переключаться на привилегии пользователя root при запускеsu
./bin/su
: это путь к файлу, для которого устанавливается переопределение. В данном случае это двоичный файл/bin/su
, который позволяет пользователям переключаться на учетную запись другого пользователя (часто пользователя root) после предоставления необходимого пароля.
Таким образом, команда добавляет переопределение разрешений и владения двоичным файлом /bin/su
. Он устанавливает владельца файла как root
, группу как adminmembers
и дает разрешение SetUID для файла. Это означает, что когда пользователи запускают команду su
, она будет выполняться с привилегиями root, что позволит им переключиться на пользователя root или другого пользователя с привилегиями суперпользователя после предоставления соответствующего пароля. Лица, не являющиеся членами группы «adminmembers», не могут использовать команду su
, даже если у них есть привилегии sudo.
Давайте проверим это. Прямо сейчас я вошел в свою систему как пользователь с именем «ostechnix», и у этого пользователя есть привилегии sudo.
sudo -lU ostechnix
[sudo] password for ostechnix:
Matching Defaults entries for ostechnix on debian12:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin,
use_pty
User ostechnix may run the following commands on debian12:
(ALL : ALL) ALL
Как вы видите в приведенном выше выводе, пользователь «ostechnix» может запускать все команды.
Теперь давайте воспользуемся командой su
и посмотрим, что произойдет.
su - user1
Пример вывода:
-bash: /usr/bin/su: Permission denied
Видеть? Пользователь ostechnix не может использовать команду su
, несмотря на наличие привилегий sudo, поскольку он не является членом группы adminmembers. Потому что мы ограничили использование команды su
только членами этой конкретной группы.
Переключение пользователя с помощью команды su
Теперь выйдите из текущего сеанса и снова войдите в систему как «пользователь1», «пользователь2» или любой член группы «adminmembers».
И проверьте, работает ли команда su
:
user1@debian12:~$ whoami
user1
user1@debian12:~$
user1@debian12:~$ su - user2
Password:
user2@debian12:~$
user2@debian12:~$ whoami
user2
user2@debian12:~$
user2@debian12:~$ su - user1
Password:
user1@debian12:~$
user1@debian12:~$ whoami
user1
user1@debian12:~$
Ограничьте использование команды Su отдельными пользователями
Как вы можете видеть в приведенном выше выводе, и «user1», и «user2» имеют возможность переключаться между разными учетными записями пользователей с помощью команды su
, поскольку они оба являются членами группы «adminmembers».
1.1. Верните команду su к исходной конфигурации.
Чтобы отменить изменения, внесенные командой sudo dpkg-statoverride --update --add root adminmembers 4750 /bin/su
, вам необходимо удалить переопределение, установленное для /bin/ su
двоичный. Команда dpkg-statoverride
позволяет вам управлять правами доступа к файлам и владением пакетами в системах на базе Debian.
Чтобы удалить переопределение двоичного файла /bin/su
, выполните следующие действия:
1. Проверьте текущую конфигурацию dpkg-statoverride
:
Прежде чем удалять переопределение, рекомендуется проверить, существует ли переопределение для /bin/su
и какова текущая конфигурация. Запустите следующую команду, чтобы просмотреть текущие настройки dpkg-statoverride
:
dpkg-statoverride --list /bin/su
Эта команда покажет вам текущие разрешения и права собственности для двоичного файла /bin/su
.
Пример вывода:
root adminmembers 4750 /bin/su
2. Удалите запись dpkg-statoverride
:
Чтобы удалить переопределение, используйте следующую команду:
sudo dpkg-statoverride --remove /bin/su
Эта команда удалит запись переопределения для /bin/su
.
3. Сбросьте исходные разрешения (при необходимости):
Если вы хотите сбросить разрешения /bin/su
до значения по умолчанию, используйте следующую команду:
sudo chmod 4755 /bin/su
Значение 4755
устанавливает бит SetUID в файле, что позволяет команде su
запускаться с правами root.
Верните команду su к исходной конфигурации.
Выполнив эти действия, вы должны отменить изменения, внесенные начальной командой sudo dpkg-statoverride --update --add root adminmembers 4750 /bin/su
, и вернуть /bin/su
двоичный файл в исходную конфигурацию.
Предупреждение. Всегда соблюдайте осторожность при изменении конфигурации системы, особенно при работе с правами доступа к файлам и владением ими, поскольку неправильные изменения могут повлиять на безопасность и стабильность системы.
2. Ограничьте использование команды Su в системах на базе RHEL.
Предыдущий метод предназначен только для Debian и его производных, таких как Ubuntu. Процесс ограничения использования команд su
в RPM отличается. Давайте посмотрим, как это сделать.
Чтобы ограничить использование команды su
в системах на базе RHEL, выполните следующие действия:
1. Создайте нового пользователя (например, «user1») и добавьте его в группу «wheel»:
sudo adduser user1
sudo passwd user1
sudo usermod -G wheel user1
Это предоставляет пользователю «user1» доступ к команде su
через группу «wheel», которая часто настраивается на особые привилегии.
2. Откройте файл конфигурации PAM для su
с помощью текстового редактора:
sudo nano /etc/pam.d/su
3. Добавьте следующую строку в конец файла или раскомментируйте эту строку, если она уже существует:
auth required /lib/security/pam_wheel.so use_uid
Альтернативно вы можете раскомментировать или добавить эту строку:
auth required pam_wheel.so use_uid
4. Сохраните изменения и закройте файл.
Благодаря этим шагам использование команды su
будет ограничено, и ее смогут использовать только пользователи, принадлежащие к группе «wheel».
Когда вы попытаетесь использовать команду su
из группы, не являющейся членом группы Wheel, вы увидите вывод, подобный приведенному ниже:
[user3@Almalinux9ct ~]$ su - user1
Password:
su: Module is unknown
Ограничить использование команды Su в системах на базе RHEL
Чтобы вернуться к исходным настройкам, просто закомментируйте или удалите строку, добавленную на предыдущем шаге.
Часто задаваемые вопросы
Вопрос: Что такое команда su
в Linux?
О: Команда su
, сокращенно от «переключить пользователя», позволяет пользователям выполнять команды от имени другого пользователя, часто root-пользователя с привилегиями суперпользователя.
Вопрос: Почему я должен ограничивать использование команды su
?
О: Ограничение использования команды su
повышает безопасность, ограничивая доступ к привилегированным операциям и снижая риск того, что неавторизованные пользователи получат неограниченный контроль над системой.
Вопрос: Как я могу ограничить использование команды su
?
О: Вы можете ограничить использование команды su
, настроив файл PAM (подключаемые модули аутентификации), разрешив доступ только определенным группам или пользователям, например группе «wheel».
Вопрос: Как предоставить доступ к su
определенной группе?
О: Добавьте нужных пользователей в назначенную группу (например, «wheel») и настройте файл /etc/pam.d/su
, чтобы требовать членства в этой группе для su
. командный доступ.
Вопрос: Как проверить, ограничена ли команда su
соответствующим образом?
О: Используйте команду su
с непривилегированным пользователем, чтобы убедиться, что доступ ограничен только авторизованными пользователями или группами.
Заключение
Ограничение использования команды su
в Linux — жизненно важный шаг на пути к усилению безопасности системы Linux и защите конфиденциальной информации. Тщательно контролируя доступ к привилегированным командам, таким как su
, мы можем снизить риск того, что неавторизованные пользователи получат повышенные привилегии и потенциально скомпрометируют систему.
Реализация этих ограничений в сочетании с другими передовыми методами обеспечения безопасности создает более отказоустойчивую и безопасную среду Linux.
Связанное чтение:
- Как запускать команды от имени другого пользователя через Sudo в Linux