Какие ограничения накладываются на пользователя в операционной системе ubuntu

Обновлено: 02.07.2024

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

Службы VPN реализуются с использованием ряда различных протоколов, таких как протокол туннелирования "точка-точка" (PPTP), протокол туннелирования второго уровня (L2TP), IPSec и SSL. В этом рецепте мы настроим бесплатный VPN-сервер OpenVPN. OpenVPN — это решение SSL VPN с открытым исходным кодом, которое предоставляет широкий спектр конфигураций. OpenVPN можно настроить для использования протоколов TCP или UDP. В этом рецепте мы настроим OpenVPN с UDP-портом по умолчанию 1194.

Предпосылки

Вам потребуется один сервер и одна клиентская система, а также корневой или эквивалентный доступ к обеим системам.

Установка и настройка OpenVPN

$ sudo apt-get update $ sudo apt-get install openvpn easy-rsa

Теперь настройте свой собственный центр сертификации и сгенерируйте сертификат и ключи для сервера OpenVPN.

Далее нам нужно отредактировать файлы OpenVPN, принадлежащие пользователю root, а скрипту build-ca требуется доступ root при записи новых ключей. Временно перейдите на учетную запись root с помощью sudo su :

  • Теперь отредактируйте /etc/openvpn/easy-rsa/vars и измените переменные в соответствии с вашей средой:
  • Создайте главный сертификат с помощью следующих команд:
  • Затем создайте сертификат и закрытый ключ для сервера. Замените имя сервера на имя вашего сервера:

Нажмите клавишу Enter, когда будет предложено ввести пароль и название компании.

Когда вас попросят подписать сертификат, введите y и нажмите клавишу Enter.

Построить параметры Диффи Хеллмана для сервера OpenVPN:

  • Скопируйте все сгенерированные ключи и сертификаты в /etc/openvpn :
  • Затем создайте сертификат для клиента с помощью следующих команд:
  • Скопируйте сгенерированный ключ, сертификат и сертификат сервера в клиентскую систему. Используйте безопасный механизм передачи, такой как SCP:

/etc/openvpn/ca.crt /etc/openvpn/easy-rsa/keys/clientname.crt /etc/openvpn/easy-rsa/keys/clientname.key

Теперь настройте сервер OpenVPN. Используйте примеры файлов конфигурации, предоставленные OpenVPN:

$ gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf

  • Убедитесь, что путь к сертификату и ключу задан правильно:

ca ca.crt cert servername.crt key servername.key dh dh2048.pen

Разрешить клиентам перенаправлять свой веб-трафик через VPN-сервер. Раскомментируйте следующую строку:

push "redirect-gateway def1 bypass-dhcp"

  • Чтобы защититься от утечек DNS, передайте настройки DNS на VPN-клиенты и раскомментируйте следующие строки:

push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220"

Предыдущие строки указывают на серверы OpenDNS. Вы можете установить их на любой DNS-сервер по вашему выбору.

Наконец, настройте OpenVPN для работы с непривилегированным пользователем и группой и раскомментируйте следующие строки:

пользователь none группа nogroup

При желании вы можете включить сжатие для VPN-соединения. Найдите и раскомментируйте следующую строку:

Сохраните изменения и выйдите из редактора.

  • Обновите настройки sysctl с помощью следующей команды:
  • Теперь запустите сервер. Вы должны увидеть вывод, подобный следующему:
  • При успешном запуске OpenVPN создает новый сетевой интерфейс с именем tun0. Это можно проверить с помощью команды ifconfig:
  • Если сервер не запускается нормально, вы можете проверить журналы в /var/log/syslog . В нем должны быть перечислены все шаги, выполненные службой OpenVPN.

Как работает OpenVPN:

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

В этой статье мы установили и настроили сервер OpenVPN. Чтобы использовать службу VPN из вашей локальной системы, вам понадобится клиентский инструмент VPN.

Ниже приведены шаги по установке и настройке VPN-клиента в системах Ubuntu:

  • Установите клиент OpenVPN с помощью команды, аналогичной той, которую мы использовали для установки сервера:

$ sudo apt-get update $ sudo apt-get install openvpn

  • Скопируйте образец файла конфигурации client.conf:

$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/

  • Скопируйте сертификаты и ключи, сгенерированные для этого клиента:

$ scp [электронная почта защищена]:/etc/openvpn/easy-rsa/keys/client1.key /etc/openvpn

Вы можете использовать другие инструменты, такие как SFTP или WinSCP, в системах Windows.

Теперь отредактируйте client.conf , включите режим клиента и укажите имя или адрес сервера:

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

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

Эта глава из книги

Эта глава из книги

Эта глава из книги 

Поскольку Linux является многопользовательской операционной системой, безопасность часто основывается на учетных записях. Каждому человеку предоставляется учетная запись пользователя (подробности см. в Главе 7, «Управление учетными записями пользователей»), и каждая учетная запись пользователя является членом одной или нескольких групповых учетных записей.

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

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

ПОСЛЕ ПРОЧТЕНИЯ ЭТОЙ ГЛАВЫ И ВЫПОЛНЕНИЯ УПРАЖНЕНИЙ ВЫ СМОЖЕТЕ СДЕЛАТЬ СЛЕДУЮЩЕЕ:

Понятие о группах Linux

Управление группами, включая создание, изменение и удаление групповых учетных записей

Знакомство с функцией безопасности, называемой личными группами пользователей (UPG)

Узнайте, как создавать администраторов групп

Для чего используются группы?

Каждому лицу, имеющему доступ к системе Linux, предоставляется учетная запись пользователя. Эта учетная запись пользователя предлагает несколько различных функций, включая имя пользователя и пароль. Кроме того, каждый пользователь является членом одной или нескольких групповых учетных записей.

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

Основные и дополнительные группы

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

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

Вывод команды id описан в таблице 6-1.

Таблица 6-1. Вывод команды id

Значение

Описание

uid=1002(студент)

Идентификатор пользователя и имя пользователя для текущего пользователя

gid=1002(ученик)

Идентификатор основной группы и имя группы для текущего пользователя

groups=1002(учащиеся),60(игры),1001(ocs)

Идентификаторы дополнительных групп и имена групп для текущего пользователя

Выходные данные команды groups включают все группы, членом которых является текущий пользователь. Основная группа всегда указывается первой.

Команды id и groups по умолчанию отображают информацию о текущем пользователе. Обе команды также принимают в качестве аргумента другое имя учетной записи пользователя:

Самое важное различие между первичным и вторичным членством в группе связано с тем, когда пользователь создает новый файл. Каждый файл принадлежит идентификатору пользователя и идентификатору группы. Когда пользователь создает файл, членство пользователя в основной группе используется для группового владения файлом:

После создания файла пользователь может изменить групповое владение файлом на другую группу с помощью команды chgrp:

ЧТО МОЖЕТ ПОЛУЧИТЬСЯ НЕ ТАК?

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

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

Пользователь может временно изменить свою основную группу на другую группу, но это зависит от функции безопасности, известной как файл /etc/group, о котором пойдет речь далее.

Файл /etc/group

Информация о группе хранится в нескольких файлах:

Файл /etc/passwd содержит информацию об учетной записи пользователя, включая членство в основной группе для каждого пользователя. Подробности о содержимом этого файла обсуждаются в Главе 7. Для целей обсуждения групп в этой главе это первичное членство в группе сохраняется с использованием GID группы, как показано в следующем примере:

В файле /etc/group хранится информация о каждой группе, включая имя группы, идентификатор группы (GID) и членство дополнительного пользователя.

В файле /etc/gshadow хранится дополнительная информация о группе, включая администраторов группы и пароль группы. Подробности о содержимом этого файла обсуждаются далее в этой главе в разделе «Файл /etc/gshadow».

Пример 6-1 демонстрирует часть типичного файла /etc/group.

Пример 6-1 Файл /etc/group

Как показано в примере 6-1, обычные пользователи (не администраторы) могут просматривать файл /etc/group. Это подчеркивает необходимость предотвращения несанкционированного доступа к системе, поскольку даже обычный пользователь может получить ценную информацию о системе, просмотрев файл /etc/group. Обратите внимание, что администраторам не следует изменять права доступа к файлу /etc/group, так как это может привести к некорректной работе некоторых программ.

Имейте в виду, что это не редкость для операционных систем, поскольку обычные пользователи могут видеть основную информацию о группе в других операционных системах, включая Unix, macOS и Microsoft Windows.

Каждая строка в файле /etc/group описывает одну группу. Каждая строка разделена на поля данных с символом двоеточия (:) в качестве разделителя полей. Табл. 6-2 описывает эти поля на примере строки adm:x:4:syslog,bo.

Таблица 6-2 Поля файла /etc/group

Поле

Описание

админ

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

х

Заполнитель пароля. Групповые пароли раньше помещались в файл /etc/group, но в целях безопасности были перенесены в файл /etc/gshadow. Это связано с тем, что файл /etc/group доступен для просмотра всем пользователям, а файл /etc/gshadow доступен для просмотра только пользователю root. Подробности относительно групповых паролей обсуждаются далее в этой главе в разделе «Файл /etc/gshadow».

4

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

системный журнал

Это список участников группы. Чтобы добавить пользователя в группу в качестве дополнительного члена, администраторы добавляют имя пользователя в это поле. Обычно это делается с помощью команды usermod или gpasswd (см. разделы «Добавление пользователей в группы» и «Администраторы групп» далее в этой главе).

Обычно файл /etc/group не изменяется вручную. Администраторы используют такие команды, как groupadd, groupdel и groupmod, для изменения содержимого файла /etc/group. Однако файл /etc/group можно изменить вручную; в результате могут возникнуть ошибки в файле. Чтобы узнать, есть ли какие-либо ошибки в файле /etc/group, выполните команду grpck, войдя в систему как пользователь root.

Специальные группы

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

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

Администраторы, занимающиеся вопросами безопасности, должны знать об этих специальных групповых учетных записях, поскольку эти учетные записи могут предоставлять функции безопасности или создавать угрозы безопасности. В Таблице 6-3 показаны наиболее важные учетные записи специальных групп (описание каждой специальной группы выходит за рамки этой книги).

Таблица 6-3 Аккаунты специальных групп

Группа

Описание

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

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

Это одна из многих групп (включая tty, mail и cdrom), используемых операционной системой для предоставления доступа к определенным файлам. Обычно обычные пользователи не добавляются в эти группы, поскольку они используются фоновыми процессами, называемыми демонами.

Эта группа используется вместе с командой sudo. Команда sudo подробно рассматривается в главе 7.

Группа по умолчанию, которая традиционно использовалась в системах Unix, но редко используется в современных дистрибутивах Linux.

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

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

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

Личные группы пользователей

Обычно при создании учетной записи пользователя также создается группа для этого пользователя. Это сделано для преодоления ситуации, которая была распространена на заре Linux, когда системные администраторы регулярно добавляли всех пользователей в одну группу (обычно называемую «пользователями» или «персоналом»).

Эта практика привела к ситуации, когда пользователям предоставлялся доступ к файлам, к которым у них не должно было быть доступа. Поместив всех в одну группу, каждый новый файл, созданный каждым пользователем, принадлежал этой группе, а это означало, что либо все в организации имели доступ к файлу через разрешения группы, либо пользователь должен был помнить об удалении всех разрешений для group для каждого нового создаваемого файла. На рис. 6-1 показаны проблемы, создаваемые этим сценарием (file1.txt демонстрирует угрозу безопасности, а file2.txt демонстрирует, когда пользователь не забывает удалить все разрешения для группы).

Рисунок 6-1

Рис. 6-1 Проблема с наличием глобальной группы для всех

Концепция создания группы для каждого пользователя называется личными группами пользователей (UPG), где каждый пользователь имеет свою собственную группу в качестве своей частной группы, что означает угрозу безопасности, связанную с тем, что все пользователи могут получить доступ к файлам всех других пользователей. ограничено.

К сожалению, этот подход также создает риски для безопасности, если системный администратор неправильно обрабатывает членство в группах. UPG фактически делает основную группу пользователя бесполезной (по крайней мере, по умолчанию), потому что пользователь является единственным членом этой частной группы. Если пользователь не входит в дополнительные группы, то для предоставления доступа к файлу конкретному пользователю часто используется другой набор разрешений. Это в конечном итоге дает доступ всем в системе, что является той самой проблемой, для избежания которой был разработан UPG. На рис. 6-2 показаны проблемы, создаваемые этим сценарием.

Рисунок 6-2

Рис. 6-2 Возможная проблема с UPG

UPG предлагает решение, но только частичное. Администратор также должен внедрить политику безопасности, включающую одно или несколько из следующих действий:

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

План обучения правильному использованию разрешений для всех пользователей. Подробное обсуждение этой темы можно найти в Главе 9, «Разрешения на доступ к файлам».

Администратору следует разрешить пользователям добавлять новых пользователей в свои частные группы. Подробное обсуждение этой темы приведено в следующем разделе «Файл /etc/gshadow».

План обучения пользователей использованию списков управления доступом (ACL) — метода назначения разрешений определенным пользователям или группам. Подробное обсуждение этой темы можно найти в главе 9.

РАЗГОВОРНОЕ ОБУЧЕНИЕ™ — ГРУППЫ ПЛАНИРОВАНИЯ

Гэри: Привет, Джулия. У вас есть минутка, чтобы я мог поковыряться в ваших мозгах?

Юлия: Конечно, что тебе нужно?

Гэри: Я пытаюсь составить план создания групп Linux, которые нужны нашей организации, но не знаю, с чего начать.

Юлия: Обычно в Linux создаются группы, чтобы пользователи могли обмениваться файлами друг с другом, используя групповые разрешения. Например, у каждого отдела в вашей организации должна быть своя группа.

Гэри: Это все? Просто создать группу для каждого отдела?

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

Гэри: Итак, создайте группы для каждого отдела, а также для проектов, которым требуется общий доступ к файлам. Что-нибудь еще?

Юлия: Даже если в проекте не участвуют люди из разных отделов, вы можете создать для него группу. Таким образом, вместо того, чтобы делиться файлами со всеми в отделе, доступ к файлам есть только у избранных в отделе.

Гэри: Есть ли другие распространенные причины для создания групп?

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

Гэри: Хорошо, отлично. Это дает мне хорошее представление о том, с чего начать. Спасибо за помощь!

Юлия: В любое время!

Файл /etc/gshadow

Файл /etc/group содержит некоторую информацию об учетной записи группы, но больше можно найти в файле /etc/gshadow. Этот файл доступен для просмотра только пользователю root, поэтому более конфиденциальные данные хранятся в файле /etc/gshadow.

Пример 6-2 демонстрирует часть типичного файла /etc/gshadow.

Пример 6-2 Файл /etc/gshadow

Каждая строка в файле /etc/gshadow описывает одну группу. Каждая строка разделена на поля данных с символом двоеточия (:) в качестве разделителя полей. Табл. 6-4 описывает эти поля на примере строки adm:*:student:syslog,bo,student.

Таблица 6-4 Поля файла /etc/gshadow

Поле

Описание

админ

Имя группы. Это совпадает с именем группы в файле /etc/group.

Групповой пароль. Значение * или ! означает «действительный пароль не установлен». Этот пароль используется командой newgrp и устанавливается командой gpasswd. Дополнительные сведения об этом пароле см. в обсуждении после этой таблицы.

студент

Администратор группы. Администраторы группы могут добавлять и удалять пользователей из группы. См. раздел «Администраторы группы» далее в этой главе.

системный журнал,бо,студент

Это список участников группы. Это должно совпадать с соответствующим полем в файле /etc/group.

Поле пароля в файле /etc/gshadow предназначено для того, чтобы пользователи могли временно изменить свою основную группу с помощью команды newgrp. По умолчанию любой пользователь, являющийся членом группы, может изменить свою основную группу:

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

После установки пароля пользователь может изменить свою основную группу, введя групповой пароль в приглашении при запуске команды newgrp:

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

Дополнительную информацию см. на рис. 6-3.

Рисунок 6-3

Рис. 6-3 Поддержка текста™ — изменение основных групп

В этом руководстве объясняются основы администрирования сервера Linux с помощью системных журналов. Системный журнал — это файл, содержащий информацию о событиях, произошедших в системе во время выполнения.

В этой статье вы изучите следующие основы ведения журналов в Linux:

  • Где хранятся файлы журналов Linux, как они форматируются и как их читать.
  • Как читать наиболее важные журналы (например, системный журнал).
  • Как настроить демон системного журнала Ubuntu.
  • Что такое ротация журналов Linux и как использовать утилиту logrotate.

Предпосылки

Прежде чем перейти к остальной части этого руководства, убедитесь, что у вас есть базовые знания о работе с командной строкой Linux. Хотя многие концепции, обсуждаемые в этой статье, в целом применимы ко всем дистрибутивам Linux, мы будем демонстрировать их только в Ubuntu, поэтому обязательно настройте сервер Ubuntu 20.04, который включает пользователя без полномочий root с доступом sudo.

Шаг 1. Поиск системных журналов Linux

Все системные журналы Ubuntu хранятся в каталоге /var/log. Перейдите в этот каталог в терминале с помощью команды ниже:

Вы можете просмотреть содержимое этого каталога, выполнив следующую команду:

Вы должны увидеть результат, аналогичный следующему:

Давайте рассмотрим несколько важных файлов системного журнала, которые могут находиться в каталоге /var/log, и их содержимое:

  • /var/log/syslog: хранит общую информацию о любых глобальных действиях в системе.
  • /var/log/auth.log : отслеживает все действия, связанные с безопасностью (вход в систему, выход из системы или активность пользователя root).
  • /var/log/kern.log: хранит информацию о событиях, происходящих из ядра Linux.
  • /var/log/boot.log : хранит сообщения о запуске системы.
  • /var/log/dmesg: содержит сообщения, связанные с драйверами устройств.
  • /var/log/faillog: отслеживает неудачные попытки входа в систему, что может пригодиться при расследовании попыток нарушения безопасности.

Каталог /var/log также используется для хранения различных журналов приложений. Например, если ваш дистрибутив связан с Apache или MySQL или установлен позже, их файлы журналов также будут найдены здесь.

Шаг 2. Просмотр содержимого файла журнала Linux

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

Прежде чем мы сможем читать файлы журналов, мы должны знать, как они отформатированы. Давайте рассмотрим два основных подхода к форматированию и хранению файлов журнала: обычный текст и двоичные файлы.

Обычные файлы журнала

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

  1. Отметка времени указывает время создания записи журнала в формате МММ дд ЧЧ:мм:сс (например, 28 сентября 19:00:00 ). Обратите внимание, что этот формат не включает год.
  2. Имя хоста – это хост или система, которая изначально создала сообщение.
  3. Приложение — это приложение, которое создало сообщение.
  4. Сообщение содержит фактические сведения о событии.

Давайте рассмотрим некоторые файлы журналов в текстовом формате. Выполните приведенную ниже команду, чтобы распечатать содержимое файла /var/log/syslog с помощью утилиты tail:

Представьте себе этот сценарий. Вы хотите разрешить пользователю выполнять только определенные задачи и выполнять определенные команды. Пользователь не должен изменять переменные/пути среды. Он/она не может посещать другие каталоги, кроме своего домашнего каталога, и не может переключаться на других пользователей и т. д. Пользователь может выполнять только несколько команд, назначенных системным администратором. Это возможно? Да! Здесь на помощь приходит Restricted Shell. Используя Restricted Shell, мы можем легко ограничить доступ пользователя к системе Linux. После того, как вы поместите пользователей в ограниченный режим оболочки, им будет разрешено выполнять только ограниченный набор команд. В этом кратком руководстве мы поговорим о том, как это сделать в Linux. Я протестировал это руководство на минимальном сервере CentOS 7. Однако он будет работать в большинстве Unix-подобных дистрибутивов.

Что такое ограниченная оболочка?

Во-первых, позвольте мне пояснить, что такое Restricted Shell. Это не отдельная оболочка, как Bash, Korn Shell и т. д. Если вы запустите любую существующую оболочку с параметрами «rbash», «--restricted», «-r», она станет ограниченной оболочкой. Например, оболочку Bourne можно запустить как оболочку с ограниченным доступом с помощью команды bsh -r, а оболочку Korn с помощью команды ksh -r.

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

  • Это не позволит вам выполнить команду cd. Так что никуда ты не пойдешь. Вы можете просто остаться в текущем рабочем каталоге.
  • Это не позволит вам изменить значения $PATH, $SHELL, $BASH_ENV или $ENV переменные окружения.
  • Это не позволит вам выполнить программу, содержащую символ / (косая черта). Например, вы не можете запустить команду /usr/bin/uname или ./uname. Однако вы можете выполнить команду uname. Другими словами, вам разрешено запускать команды только по текущему пути.
  • Вы не можете перенаправить вывод, используя ‘ > ’, ‘ >| ’, ‘ <> ’, ‘ >& ’, ‘ &> ’ и ‘ >> ’ операторы перенаправления.
  • Это не позволит вам выйти из ограниченного режима оболочки внутри скриптов.
  • Это не позволит вам отключить ограниченный режим оболочки с помощью «set +r» или «set +o limited».

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

Ограничить доступ пользователя к системе Linux с помощью Restricted Shell

Сначала создайте символическую ссылку с именем rbash из Bash, как показано ниже. Следующие команды следует запускать от имени пользователя root.

Затем создайте пользователя с именем "ostechnix" с rbash в качестве оболочки входа по умолчанию.

Установите пароль для нового пользователя.

Создайте каталог bin в домашней папке нового пользователя.

Теперь нам нужно указать, какие команды может выполнять пользователь.

Здесь я позволю пользователю запускать только команды "ls", "mkdir" и "ping". Вы можете назначить любые команды по вашему выбору.

Для этого выполните следующие команды:

Теперь вы понимаете, почему мы создали каталог "bin" на предыдущем шаге. Пользователи не могут запускать никакие команды, кроме трех вышеперечисленных команд.

Затем запретите пользователю изменять .bash_profile.

Редактировать файл /home/ostechnix/.bash_profile:

Измените переменную PATH, как показано ниже.

Изменить переменную PATH

Нажмите клавишу ESC и введите :wq, чтобы сохранить и закрыть файл.

Теперь, когда пользователь входит в систему, ограниченная оболочка (rbash) будет запускаться как оболочка входа по умолчанию и считывать .bash_profile, который установит PATH в $HOME/bin, так что пользователь сможет запускать только ls , mkdir и команды ping. Оболочка с ограниченным доступом не позволит пользователю изменить PATH, а разрешения на .bash_profile не позволят пользователю изменить среду, чтобы обойти ограничения во время следующего сеанса входа в систему.

Проверка Rbash

Теперь выйдите из системы от имени пользователя root и снова войдите в систему с помощью вновь созданного пользователя, в нашем случае ostechnix.

Затем запустите несколько команд, чтобы проверить, работает это или нет. Например, я хочу очистить Терминал.

Пример вывода:

Вы не можете использовать команду cd для перехода в другой каталог.

Пример вывода:

Вы также не можете перенаправить вывод с помощью оператора >.

Пример вывода:

Ограничение пользователя

Пользователю "ostechnix" разрешено использовать только команды, назначенные вами (конечно, системным администратором). В нашем случае пользователь может выполнять команды ls, mkdir и ping.

Ограниченная оболочка в CentOS

Помимо этих трех команд пользователь ничего не может выполнять. Он/она полностью под вашим контролем.

Рекомендуемое чтение:

Разрешить пользователям новые команды

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

Читайте также: