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

Revision as of 10:08, 18 January 2023 by Krotesk (talk | contribs) (Created page with "На самом базовом уровне файлы обозначаются как ''r''ead (чтение), ''w''rite (запись) или e''x''ecute (выполнени...")
Other languages:
English • ‎Türkçe • ‎русский

Обзор

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


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

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

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


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


sudo

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

user $ sudo nano /etc/fstab COPY TO CLIPBOARD



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


sudo vs su

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


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


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

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


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


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

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

user $ passwd COPY TO CLIPBOARD



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

user $ sudo passwd USERNAME COPY TO CLIPBOARD



Группы

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


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

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


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

groups USERNAME


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

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


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

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

To get the permissions on the file we can use the command ls -l.

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


That first group of letters and dashes indicate the permissions. It is 10 characters long and the dashes indicate a lack of permissions.

  • The first character "-", represents the file type, "-" indicates that it is a normal files.
  • The next three characters "rw-" indicate the permissions for the user or owner of the file. In this case reading and writing are allowed but not executing.
  • The next three characters "rw-" indicate the permissions for members of the group who owns the file. In this case reading and writing are allowed but not executing.
  • The next three characters "r--" indicate the permissions for other users. In this case reading is allowed but not writing or executing.


From more detailed information on how file permissions are broken down take a look at this Wikipedia article


Changing File Permissions

The command chmod can be used to change permissions on a file or directory. It is probably easier to demonstrate than explain.


Add read rights to the user(owner) of the file

chmod u+r filename


Remove execute rights to members of the group owner of filename

chmod g-x filename


Set the rights for the other group to read only

chmod o=r filename


Of course, in normal use you would combine everything like this:

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


This adds read and write to the owner, set the group as read only and remove read, write and execute from other users


The chmod command can do a lot more than that. For more information take a look at Wikipedia's chmod reference


Firewalls

The Firewalls article has a full description of the Firewall solutions available on Manjaro.


File Integrity Monitoring

Your first line of defense should always be security practices that prevent an intrusion such as firewalls, intrusion prevention systems and keeping your system patched and up-to-date. However, it is also useful to try to ensure that your system has not been compromised. One way to help with this is by using a file integrity monitoring solution. These solutions work by comparing the checksums or the files on your system to their previous versions and alerting about changes.

An open source tool which provides this service is AIDE(Advanced Intrusion Detection Environment. You can install it with the command:

pamac install aide


Sandboxing

A Sandbox is a security mechanism for separating running programs, usually in an effort to mitigate system failures or software vulnerabilities from spreading.


One method of sandboxing is using Firejail. Please the Firejail Wiki page for more information on installing and configuring Firejail.