Безопасность Linux

Revision as of 11:03, 18 January 2023 by Krotesk (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Other languages:
English • ‎Türkçe • ‎русский

Обзор

Системная безопасность - это сложная тема, которую люди изучают в течение многих лет. Было бы нецелесообразно передавать даже часть этих знаний в статье Wiki. На этой странице мы попытаемся дать начальный курс по самым основным элементам безопасности Linux и определить общие подводные камни для новичков.


Пользователи

Учетные записи пользователей используются для входа в систему и являются одним из основных строительных блоков для разрешений. Пользователей можно условно разделить на несколько категорий:

  • Учетные записи обычных пользователей, например, созданные для вас во время установки.
  • Учетные записи, используемые для запуска определенных процессов. Эти пользователи обычно называются в честь службы, которую они запускают. Например, пользователи dbus - это пользователи для запуска главного процесса dbus.
  • Учетная запись root.


Учетная запись root - это учетная запись администратора или суперпользователя. Эта учетная запись имеет доступ ко всему в системе и должна использоваться с особой осторожностью. В большинстве случаев ее вообще не следует использовать. Вместо этого используйте sudo.


sudo

Команда sudo позволяет выполнить команду от имени пользователя root, не переключаясь на root. Во многих случаях это безопаснее, чем прямое использование root, поскольку от имени root выполняется только одна команда. Например, ваша обычная учетная запись не сможет редактировать файл /etc/fstab, поскольку он принадлежит root. Однако вы можете отредактировать его с помощью sudo следующим образом:

sudo nano /etc/fstab


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


sudo vs su

Хотя sudo и su выглядят похоже и оба подразумевают получение root-доступа - они очень разные. sudo запускает одну команду от имени другого пользователя и запрашивает пароль Вашей обычной учетной записи. su позволяет вам *стать* root и запрашивает пароль пользователя root. В общем, обычно безопаснее использовать sudo чем su.


Внимание
Никогда не запускайте графические программы от имени root или с помощью sudo - они должны использоваться только с программами командной строки


Почему меня просят ввести пароль

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


Замечание
Обычно эти запросы пароля запрашивают пароль вашей учетной записи, но иногда им требуется пароль root.


Смена паролей

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

passwd


Чтобы изменить пароль другого пользователя в той же системе - вы должны использовать sudo:

sudo passwd USERNAME


Группы

Пользователи в системе Linux обычно объединены в группы. Группа пользователей - это удобный способ назначить нескольким пользователям доступ к общим задачам, таким как воспроизведение звука, мультимедиа, печать, монтирование съемных дисков и т.д.


Список текущих групп можно увидеть в системе с помощью команды:

getent group | awk -F : '{print $1}'


Чтобы посмотреть, к каким группам принадлежит данный пользователь, используйте команду:

groups USERNAME


Основные группы

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


Разрешения файлов

На самом базовом уровне разрешения на файлы обозначаются как read (чтение), write (запись) и/или execute (выполнение) для user (владельца), group (группы) и other (прочих). Чтобы понять, как это работает - давайте рассмотрим пример из реального мира.

Для получения разрешений на файл мы можем использовать команду ls -l.

ls -l /etc/fstab
-rw-r--r-- 1 root root 539 Dec 26 23:07 /etc/fstab


Первая группа букв и тире указывает на разрешения. Она состоит из 10 символов, а тире указывает на отсутствие разрешений.

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


Более подробную информацию о том, как распределяются права доступа к файлам, можно найти в этой статье Википедии.


Изменение разрешений файлов

Команда chmod используется для изменения прав доступа к файлу или каталогу. Вероятно, это легче продемонстрировать, чем объяснить.


Добавить права на чтение пользователю (владельцу) файла

chmod u+r filename


Удалить права на выполнение для членов группы-владельца файла

chmod g-x filename


Установите для группы прочих права только на чтение

chmod o=r filename


Конечно, при обычном использовании вы будете сочетать все именно так:

chmod u+rw,g=r,o-rwx filename


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


Команда chmod может делать гораздо больше. Для получения дополнительной информации посмотрите ссылку на chmod в Википедии.


Брандмауэры

Статья Брандмауэры содержит полное описание решений брандмауэра, доступных в Manjaro.


Мониторинг целостности файлов

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

Инструментом с открытым исходным кодом, предоставляющим такую услугу, является AIDE (Advanced Intrusion Detection Environment). Вы можете установить его с помощью команды:

pamac install aide


Песочница

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


Одним из методов "песочницы" является использование Firejail. Дополнительную информацию об установке и настройке Firejail можно найти на странице Firejail Wiki.