По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Использование REST API является полезной функцией для реализации ваших сценариев. Вы можете получить доступ к новым функциям, а также расширить возможности создания новых, более продвинутых сценариев. Опыт многих пользователей показывает, что, когда начинаешь использовать REST API в скриптах, то чувствуешь себя довольно неуклюже и непривычно. В этой заметке мы обсудим: Что такое REST API Как читать документацию Как использовать API REST с PowerShell Некоторые советы и подсказки, как облегчить и улучшить практику Что такое "REST"? REST, или RESTful API, это API, который использует HTTP запросы для получения, добавления, удаления или манипулирования данными в различных сервисах. Как правило, то, что нужно сделать с данными, решается тем, какой HTTP-метод вы используете. Вот краткий список методов HTTP и их применение в REST API: GET-Read POST-Create PATCH-Partial update/modify PUT-Update/replace DELETE-Remove Данные, которые возвращает API REST, обычно представляются в формате JSON. Теперь давайте начнём с нашего первого API запроса! Что такое API Работа с документацией Для использования различных API REST необходимо научиться читать и интерпретировать документацию. К счастью, если вы знаете, как читать один тип документации, вы сможете быстро научиться читать другие. В этой статье мы используем petstore.swagger.io, так как он использует популярный фреймворк Swagger, который довольно часто используется в разработке. На предыдущем рисунке показана наиболее важная информация о конечных точках REST API: HTTP-метод-GET/POST/DELETE и т.д. URL-адрес, связанный с конечной точкой REST API (Базовый URL, как правило, представлен в верхней части страницы документации) Краткое описание Подробности Первая страница документации просто замечательная, и, как правило, с помощью этой информации можно выполнить большинство запросов, требующих использования метода HTTP GET. Но такие методы, как POST и SET, обычно требуют, чтобы вы щелкнули и развернули строку, чтобы получить больше информации. Если вы нажмете на одну из строк, то получите информацию, которая выглядит так: Здесь мы представили конечную точку REST, которая может создать новый объект pet. Здесь указывается, как должен выглядеть JSON, предоставленный в теле POST, и какой тип контента он принимает. Другие конечные точки REST указывают, что это за параметры, каким типом данных они должны быть и т.д. Это основы для чтения документации. Теперь, когда общие принцип более-менее ясны, пора начать использовать REST API с PowerShell. Получение первых данных (GET) Используя REST API с PowerShell обычно довольно просто, используется встроенные командлеты, таким образом, нет необходимости в дополнительных модулях. Мы собираемся извлечь данные с помощью метода GET в конечной точке /pet/{ petId}. Если развернуть конечную точку /pet/{ petId} в документации, можно увидеть, что {petId} на самом деле является параметром, который принимает целое число. Это делает URL-адрес для выборки объекта pet с идентификатором 1: https://petstore.swagger.io/v2/pet/1 В документации SWAGGER REST API обычно отображается базовый URL-адрес в верхней части страницы. Теперь начнем с PowerShell. Откройте окно терминала и введите: PS51 > Invoke-RestMethod -Method GET -ContentType "application/json" -Uri "https://petstore.swagger.io/v2/pet/1" id : 1 category : @{id=0; name=string} name : doggie photoUrls : {string} tags : {@{id=0; name=string}} status : available Поскольку в ответе от сервера возвращается тип содержимого "application/json" используется метод Invoke-RestMethod, который автоматически преобразует возвращаемый JSON в объект. Ошибка 404 Not found, как правило, означает, что объект не найден или URL-адрес введен неправильно. Итак, мы выполнили первый вызов REST API. Но возможности метода GET для получения данных довольно ограничены, так что давайте создадим что-нибудь с помощью метода POST. Создание объекта методом POST Метод POST чаще всего используется для создания, например, пользователей или записей и т.д. Запрос POST отправляет BODY, содержащий информацию, конечной точке REST, обычно в формате JSON, но он также может быть в виде формы с кодировкой URL. Вы узнаете, как создать объект JSON, который можно отправить в конечную точку/pet. Можно увидеть, как должен выглядеть JSON, если развернуть строку POST/pet в документации. Начнем с создания хэштаблицы, который можно преобразовать в объект JSON. Raw JSON следует избегать в скриптах PowerShell, поскольку он ограничивает его возможности. $Body = @{ id = 19 category = @{ id = 45 name = "Whatever" } name = "Dawg" photoUrls = @( "string" ) tags = @( @{ id = 0 name = "string" } ) status = "available" } Если вам трудно создать хештаблицу, который преобразуется в нужный JSON, установите модуль PsdKit и используйте команду $ JsonString | ThreadTo-Psd Теперь имеется хэш-таблица, которую можно преобразовать в строку JSON и POST в конечную точку/pet: $JsonBody = $Body | ConvertTo-Json $Uri = "https://petstore.swagger.io/v2/pet" Invoke-RestMethod -ContentType "application/json" -Uri $Uri -Method Post -Body $JsonBody id : 19 category : @{id=45; name=Whatever} name : Dawg photoUrls : {string} tags : {@{id=0; name=string}} status : available При создании объекта он обычно получает созданный для подтверждения объект. Использование DELETE. Метод DELETE используется для удаления данных, а применение очень схоже с методом GET. PS51 > Invoke-RestMethod -Method DELETE -ContentType "application/json" -Uri "https://petstore.swagger.io/v2/pet/1" Только убедитесь, что не удалите ничего важного Использование PUT Метод PUT используется для обновления данных. Это делается аналогично методу POST путем представления полного или частичного объекта JSON: PS51> $Body = [PSCustomObject]@{ id = 19 name = "Dawg with a new name" } PS51> $JsonBody = $Body | ConvertTo-Json PS51> $Uri = "https://petstore.swagger.io/v2/pet" PS51> Invoke-RestMethod -ContentType "application/json" -Uri $Uri -Method PUT -Body $JsonBody id name photoUrls tags -- ---- --------- ---- 19 Dawg with a new name {} {} Обычно API REST возвращает объект JSON с использованными и/или обновленными данными. Можно увидеть, что объект был обновлен с помощью метода GET: PS 51> Invoke-RestMethod -ContentType "application/json" -Uri "https://petstore.swagger.io/v2/pet/19" id : 19 category : @{id=45; name=Whatever} name : Dawg with a new name photoUrls : {string} tags : {@{id=0; name=string}} status : available Создание функций Писать эти команды каждый раз вручную может стать довольно утомительным и на самом деле не масштабируемым. Если мы вызываем конечную точку несколько раз, то лучше создать для нее функцию. Это довольно просто и нужно написать всего несколько строк: Function Get-PetstorePet { [cmdletbinding()] param( # Id of the pet [Parameter(Mandatory,ValueFromPipeline)] [int]$Id ) Begin{} Process{ $RestMethodParams = @{ Uri = "https://petstore.swagger.io/v2/pet/$Id" ContentType = "application/json" Method = "GET" } Invoke-RestMethod @RestMethodParams } End{} } После создания функции ее можно вызвать в сценарии: PS51> Get-PetstorePet -Id 1 id name photoUrls tags -- ---- --------- ---- 1 Doggie {http://picture.url} {} Это можно сделать и для метода POST для создания нового объекта pet в Petstore: Function Add-PetstorePet { [cmdletbinding()] param( # Id of the pet [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [int]$Id, # Name of the pet [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [string]$Name, # Status of the pet (available, sold etc) [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [string]$Status, # Id of the pet category [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [int]$CategoryId, # Name of the pet category [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [string]$CategoryName, # URLs to photos of the pet [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [string[]]$PhotoUrls, # Tags of the pets as hashtable array: @{Id=1;Name="Dog"} [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [Hashtable[]]$Tags ) Begin{} Process{ $Body = @{ id = $Id category = @{ id = $CategoryId name = $CategoryName } name = $Name photoUrls = $PhotoUrls tags = $Tags status = $Status } $BodyJson = $Body | ConvertTo-Json $RestMethodParams = @{ Uri = "https://petstore.swagger.io/v2/pet/" ContentType = "application/json" Method = "Post" Body = $BodyJson } Invoke-RestMethod @RestMethodParams } End{} } И вызов этой функции PowerShell намного упрощает задачу: PS51> $AddPetStorePetsParams = @{ Id = 44 Name = "Birdie" Status = "available" CategoryId = 50 CategoryName = "Hawks" PhotoUrls = "https://images.contoso.com/hawk.jpg" Tags = @( @{ Id=10 Name="Not eagles" } ) } PS51> Add-PetStorePet @AddPetStorePetsParams id : 44 category : @{id=50; name=Hawks} name : Birdie photoUrls : {https://images.domain.com/hawk.jpg} tags : {@{id=0}} status : available Возможно, что многие модули, которые вы ежедневно используете, состоят из функций, который за кулисами используют REST API. Заключение Обучение работы с REST API, главным образом основано на чтении документации. Мы использовали документацию на основе SWAGGER в этом посте, так как она представляет, как могут выглядеть другие стили документации. Кроме того, преобразование вызовов API в функцию может сэкономить много времени, упростить работу и очистить сценарии.
img
Типичный эксплойт может начать с получения злоумышленником доступа к учетной записи с меньшими привилегиями. После входа в систему злоумышленники будут изучать систему для выявления других уязвимостей, которые они могут использовать в дальнейшем. Затем они используют привилегии для олицетворения фактических пользователей, получения доступа к целевым ресурсам и выполнения различных необнаруженных задач. Атаки типа эскалации привилегий бывают вертикальными и горизонтальными. В вертикальном типе злоумышленник получает доступ к учетной записи, а затем выполняет задачи в качестве этого пользователя. Для горизонтального типа злоумышленник сначала получит доступ к одной или нескольким учетным записям с ограниченными привилегиями, а затем скомпрометирует систему, чтобы получить больше прав на выполнение административных ролей. Такие права позволяют злоумышленникам выполнять административные задачи, развертывать вредоносные программы или выполнять другие нежелательные действия. Например, они могут нарушить работу, изменить параметры безопасности, украсть данные или скомпрометировать системы таким образом, чтобы оставить открытые бэкдоры для использования в будущем. Как правило, подобно кибератакам, эскалация привилегий использует систему и обрабатывает уязвимости в сетях, службах и приложениях. Таким образом, их можно предотвратить, сочетая передовые методов и инструменты обеспечения безопасности. В идеале организация должна развертывать решения, которые могут сканировать, обнаруживать и предотвращать широкий спектр потенциальных и существующих уязвимостей и угроз безопасности. Рекомендации по предотвращению атак эскалации привилегий Организации должны защищать все критически важные системы и данные, а также другие области, которые могут выглядеть непривлекательными для злоумышленников. Все, что требуется злоумышленнику – это проникнуть в систему. Находясь внутри, они могут искать уязвимости, которые используют в дальнейшем, чтобы получить дополнительные привилегии. Помимо защиты активов от внешних угроз, важно принять достаточные меры для предотвращения и внутренних атак. Хотя применяемые методы могут отличаться в зависимости от систем, сетей, среды и других факторов, ниже приведены некоторые методы, которые организации могут использовать для защиты своей инфраструктуры. Защита и сканирование сети, систем и приложений В дополнение к развертыванию решения по обеспечению безопасности в режиме реального времени необходимо регулярно проверять все компоненты ИТ-инфраструктуры на наличие уязвимостей, которые могут привести к новым угрозам проникновения. Для этого можно использовать эффективный сканер уязвимостей для поиска незащищенных операционных систем и приложений, неправильных настроек, слабых паролей и других недостатков, которые могут быть использованы злоумышленниками. Хотя можно использовать различные сканеры уязвимостей для выявления слабых мест в устаревшем программном обеспечении, обычно трудно или нецелесообразно обновлять, или исправлять все системы. В частности, это является проблемой при работе с устаревшими компонентами или крупномасштабными производственными системами. В таких случаях можно развернуть дополнительные уровни безопасности, такие как брандмауэры веб-приложений (WAF), которые обнаруживают и останавливают вредоносный трафик на сетевом уровне. Как правило, WAF обеспечивает защиту базовой системы даже в том случае, если на нем не установлены необходимые патчи или устарела. Правильное управление учетными записями с привилегиями Важно управлять привилегированными учетными записями и гарантировать, что все они безопасны, используются в соответствии с передовыми практиками и не раскрываются. Группы безопасности должны иметь список всех привилегированных учетных записей, их расположение и для чего они используются. Другие меры включают: Минимизация количества и объема привилегированных учетных записей, мониторинг и ведение журнала их деятельности; Анализ каждого привилегированного пользователя или учетной записи для выявления и устранения любых рисков, потенциальных угроз, источников и намерений злоумышленников; Основные виды атак и меры по предотвращению; Соблюдайте принцип наименьших привилегий; Запретить администраторам предоставлять общий доступ к учетным записям и учетным данным. Мониторинг поведения пользователей Анализ поведения пользователя позволяет определить наличие скомпрометированных учетных записей. Обычно злоумышленники нацеливаются на пользователей, которые обеспечивают доступ к системам организации. Если им удастся получить учетные данные, они войдут в сеть и могут остаться незамеченными в течение некоторого времени. Поскольку трудно вручную контролировать поведение каждого пользователя, оптимальным подходом является развертывание решения UEBA (User and Entity Behavior Analytics). Такой инструмент непрерывно отслеживает активность пользователя за определённое время. Затем создает нормальный базовый уровень поведения, который используется для обнаружения необычных действий. Это один из показателей скомпрометированных учетных записей. Результирующий профиль содержит такую информацию, как местоположение, ресурсы, файлы данных и услуги, к которым обращается пользователь, и их частота, конкретные внутренние и внешние сети, количество хостов, а также выполняемые процессы. С помощью этой информации инструмент может идентифицировать подозрительные действия или параметры, которые отклоняются от базовой линии. Создание и применение политики надёжных паролей Создайте и применяйте надежные политики, чтобы пользователи имели уникальные и трудноугадываемые пароли. Кроме того, многофакторная аутентификация добавляет дополнительный уровень безопасности при преодолении уязвимостей, которые могут возникнуть, когда трудно вручную применить надежные политики паролей. Группы безопасности также должны развернуть необходимые средства, которые могут сканировать системы, выявлять и отмечать слабые пароли или предлагать действия. Это аудиторы паролей, средства защиты политик и другие. Средства принудительного применения гарантируют наличие у пользователей надежных паролей с точки зрения длины, сложности и политик компании. Организации также могут использовать корпоративные средства управления паролями, помогающие пользователям создавать и использовать сложные и безопасные пароли, соответствующие политикам служб, требующих проверки подлинности. Дополнительные меры, такие как многофакторная аутентификация для разблокировки диспетчера паролей, повышают его безопасность, что делает практически невозможным доступ злоумышленников к сохраненным учетным данным. Типичные корпоративные менеджеры паролей включают Keeper, Dashlane, 1Password. Обезопасить пользовательские вводы и защитить базы данных Злоумышленники могут использовать уязвимые поля пользовательского ввода, а также базы данных для ввода вредоносного кода, получения доступа и компрометации систем. По этой причине группы безопасности должны использовать такие передовые методы, как строгая аутентификация и эффективные инструменты для защиты баз данных и всех типов полей ввода данных. В дополнение к своевременному установлению патчей баз данных и защите всех пользовательских входных данных, хорошей практикой считается шифрование всех передаваемых и хранящихся данных. Не лишним будет назначение файлам атрибута только для чтения, а доступ для записи предоставлять группам и пользователям по запросу. Обучение пользователей Пользователи являются самым слабым звеном в цепочке обеспечения безопасности организации. Поэтому важно расширить их возможности и обучить тому, как безопасно выполнять свои задачи. В противном случае один щелчок пользователя может привести к компрометации всей сети или системы. Некоторые из рисков включают открытие вредоносных ссылок или вложений, посещение веб-сайтов с нарушением безопасности, использование слабых паролей и многое другое. В идеале организация должна иметь регулярные программы повышения уровня безопасности. Кроме того, они должны иметь методологию проверки эффективности обучения. Средства предотвращения атак эскалации привилегий Предотвращение атак эскалации привилегий требует сочетания инструментов. Они включают, но не ограничиваются приведенными ниже решениями. Решение для анализа поведения пользователей и объектов (UEBA) 1. Exabeam Платформа Exabeam Security Management - это быстрое и простое в развертывании решение для анализа поведения на основе ИИ, которое помогает отслеживать действия пользователей и учетных записей в различных службах. С помощью Exabeam можно также получать журналы из других ИТ-систем и средств безопасности, анализировать их, выявлять и отмечать опасные действия, угрозы и другие проблемы. Функции: Ведение журнала и предоставление полезной информации для расследования инцидентов. К ним относятся все сеансы, когда конкретная учетная запись или пользователь впервые получили доступ к службе, серверу, приложению или ресурсу, учетная запись входит в систему с нового VPN-соединения, из другой страны и т.д; Масштабируемое решение применимо для развертывания в одном экземпляре, облаке и локально; Создает всеобъемлющую временную шкалу, которая четко показывает полный путь злоумышленника на основе нормальной и ненормальной учетной записи или поведения пользователя. 2. Cynet 360 Платформа Cynet 360 - это комплексное решение, обеспечивающее поведенческую аналитику, защиту сети и конечных точек. Она позволяет создавать профили пользователей, включая их геолокации, роли, часы работы, шаблоны доступа к локальным и облачным ресурсам и т.д. Платформа помогает выявлять необычные виды деятельности, такие как; Вход в систему или ресурсы в первый раз Вход с нового места или использование нового VPN-подключения Несколько параллельных подключений к нескольким ресурсам в течение очень короткого времени Учетные записи, получающие доступ к ресурсам в нерабочее время Средства защиты паролей 3. Password Auditor Средства аудита паролей сканируют имена хостов и IP-адреса, чтобы автоматически идентифицировать слабые учетные данные для таких сетевых служб и веб-приложений, как веб-формы HTTP, MYSQL, FTP, SSH, RDP, сетевые маршрутизаторы и другие, требующие аутентификации сервисы. Затем он пытается войти в систему с использованием слабых, а также часто используемых комбинаций имен пользователей и паролей для идентификации и оповещения об учетных записях со слабыми учетными данными. 4. Password Manager Pro Менеджер паролей ManageEngine pro предоставляет комплексное решение по управлению, контролю, мониторингу и аудиту привилегированной учетной записи на протяжении всего ее жизненного цикла. Он может управлять привилегированной учетной записью, SSL-сертификатом, удаленным доступом, а также привилегированным сеансом. Функции: Автоматизация и обеспечение частого сброса паролей для критически важных систем, таких как серверы, сетевые компоненты, базы данных и другие ресурсы Хранение и организация всех привилегированных и конфиденциальных учетных записей и паролей в централизованном и безопасном хранилище. Позволяет организациям выполнять критические аудиты безопасности, а также соответствовать нормативным требованиям, таким как HIPAA, PCI, SOX и т.д. Позволяет участникам группы безопасно обмениваться административными паролями. Сканер уязвимостей 5. Netsparker Netsparker - это масштабируемое автоматизированное решение для поиска уязвимостей и управления, которое может масштабироваться в соответствии с требованиями любой организации. Это средство может сканировать сложные сети и среды, обеспечивая прозрачную интеграцию с другими системами, включая решения CI/CD, SDLC и другие. Она обладает расширенными возможностями и оптимизирована для сканирования и выявления уязвимостей в сложных средах и приложениях. Кроме того, Netsparker можно использовать для проверки веб-серверов на наличие неправильных настроек безопасности, которые могут использоваться злоумышленниками. Как правило, средство обнаруживает возможность SQL-инъекций, удаленное включение файлов, межсайтовый скриптинг (XSS) и другие уязвимости из Top-10 OWASP в веб-приложениях, веб-службах, веб-страницах, API и т.д. 6. Acunetix Acunetix - это комплексное решение со встроенными средствами поиска уязвимостей, управления и простой интеграции с другими средствами безопасности. Это помогает автоматизировать такие задачи управления уязвимостями, как сканирование и исправление, что позволяет экономить ресурсы. Функции: Интегрируется с другими инструментами, вроде Jenkins, GitHub, Jira, Mantis и многое другое; Локальные и облачные варианты развертывания; Возможность настройки в соответствии со средой и требованиями заказчика, а также межплатформенная поддержка; Быстрое выявление и реагирование на широкий спектр проблем безопасности, включая распространенные веб-атаки, межсайтовые скриптинг (XSS), SQL- инъекции, вредоносные программы, неправильные настройки, незащищенные ресурсы и т.д. Решения PAM (Privileged Access Management) 7. JumpCloud Jumpcloud - это решение Directory as a Service (DaaS), которое обеспечивает безопасную аутентификацию и подключение пользователей к сетям, системам, службам, приложениям и файлам. Как правило, масштабируемый облачный каталог представляет собой службу, которая управляет, аутентифицирует и авторизирует пользователей, приложения и устройства. Функции: Создает безопасный и централизованный авторитетный каталог; Поддержка межплатформенного управления доступом пользователей; Предоставляет функции единого входа, поддерживающие управление доступом пользователей к приложениям через LDAP, SCIM и SAML 2.0; Обеспечивает безопасный доступ к локальным и облачным серверам; Поддержка многофакторной аутентификации; Автоматизированное администрирование безопасности и связанных с ней функций, вроде ведения журнала событий, создания сценариев, управления API, PowerShell и многое другое 8. Ping Identity Ping Identity - это интеллектуальная платформа, обеспечивающая многофакторную аутентификацию, единый вход, службы каталогов и многое другое. Это позволяет организациям повысить безопасность и эффективность идентификации пользователей. Особенности: Единый вход, обеспечивающий безопасную и надежную аутентификацию и доступ к услугам; Многофакторная аутентификация, добавляющая дополнительные уровни безопасности; Улучшенное управление данными и способность соблюдать правила конфиденциальности; Службы каталогов, обеспечивающие безопасное управление идентификационными данными пользователей и данными; Гибкие возможности развертывания облачных сред, такие как Identity-as-a-Service (IDaaS), контейнерное программное обеспечение и т.д. 9. Foxpass Foxpass - это масштабируемое решение для управления идентификацией и доступом корпоративного уровня для локальных и облачных развертываний. Она предоставляет функции управления ключами RADIUS, LDAP и SSH, которые обеспечивают доступ каждого пользователя только к определенным сетям, серверам, VPN и другим услугам в разрешенное время. Средство легко интегрируется с другими службами, такими как Office 365, Google Apps и т.д. 10. AWS Secrets Manager AWS Secrets Manager предоставляет надежные и эффективные средства защиты паролей и других данных, необходимых для доступа к службе, приложениям и другим ресурсам. Она позволяет легко управлять ключами API, учетными данными базы данных и т.д. Заключение Подобно кибератакам, эскалация привилегий использует уязвимости в системе, сетях, службах и приложениях. Таким образом, их можно предотвратить, развернув правильные средства и методы обеспечения безопасности. Эффективные меры включают обеспечение наименьших привилегий, надежных паролей и политик проверки подлинности, защиту конфиденциальных данных, уменьшение поверхности атаки, защиту учетных данных пользователей и многое другое. Не будет лишним своевременное обновление и исправление всех систем, программного обеспечения и встроенного ПО, мониторинг поведения пользователей и обучение пользователей методам безопасной работы с вычислительными системами.
img
Часто бывает, что на системе Linux произошла незапланированная или по неизвестным очевидным причинам, перезагрузка. Поиск и устранение первопричины может помочь предотвратить повторение таких проблем и избежать незапланированных простоев. Есть несколько способов выяснить, что вызвало перезагрузку. В этой статье мы обсудим эти способы и способы использования доступных утилит и журналов в системе Linux для устранения таких сценариев. Проверка времени перезагрузки Чтобы посмотреть, когда именно произошла перезагрузка системы можно воспользоваться командами who и last Проверка системных журналов Кроме того, можно сопоставить время перезагрузки, которую требуется диагностировать, с системными сообщениями. Для систем CentOS/RHEL журналы можно найти по адресу /var/log/messages, а для систем Ubuntu/Debian - по адресу /var/log/syslog. Для фильтрации или поиска конкретных данных можно использовать команду tail или любимый текстовый редактор. Как видно из приведенных ниже журналов, такие записи предполагают завершение работы или перезагрузку, инициированную администратором или пользователем root. Эти сообщения могут варьироваться в зависимости от типа ОС и способа запуска перезагрузки или завершения работы, но вы всегда найдете полезную информацию, просматривая системные журналы, хотя этого не всегда может быть достаточно, чтобы определить причину. Ниже приведена одна такая команда, которую можно использовать для фильтрации системных журналов: sudo grep -iv ': starting|kernel: .*: Power Button|watching system buttons|Stopped Cleaning Up|Started Crash recovery kernel' /var/log/messages /var/log/syslog /var/log/apcupsd* | grep -iw 'recover[a-z]*|power[a-z]*|shut[a-z ]*down|rsyslogd|ups' Зафиксированные события не всегда могут быть конкретными. Всегда отслеживайте события, которые дают признаки предупреждений или ошибок, которые могут привести к выключению или сбою системы. Проверка журнала auditd Для систем, использующих auditd – это отличное место для проверки различных событий с помощью инструмента ausearch. Используйте приведенную ниже команду для проверки последних двух записей из журналов аудита. $ sudo ausearch -i -m system_boot,system_shutdown | tail -4 Появится сообщение о двух последних остановках или перезагрузках. Если это сообщает о SYSTEM_SHUTDOWN, за которым следует SYSTEM_BOOT, все должно быть хорошо. Но, если он сообщает две строки SYSTEM_BOOT подряд или только одно сообщение SYSTEM_BOOT, то, скорее всего, система некорректно завершила работу. Вывод при нормальной работе должен быть примерно следующим: $ sudo ausearch -i -m system_boot,system_shutdown | tail -4 ---- type=SYSTEM_SHUTDOWN msg=audit(Saturday 13 February 2021 A.852:8) : pid=621 uid=root auid=unset ses=unset subj=system_u:system_r:init_t:s0 msg=' comm=systemd-update-utmp exe=/usr/lib/systemd/systemd-update-utmp hostname=? addr=? terminal=? res=success' ---- type=SYSTEM_BOOT msg=audit(Saturday 13 February 2021 A.368:8) : pid=622 uid=root auid=unset ses=unset subj=system_u:system_r:init_t:s0 msg=' comm=systemd-update-utmp exe=/usr/lib/systemd/systemd-update-utmp hostname=? addr=? terminal=? res=success' В приведенных ниже выходных данных перечислены два последовательных сообщения SYSTEM_BOOT, которые могут указывать на аварийное завершение работы, хотя результаты нужно скорректировать с данными системного журнала. $ sudo ausearch -i -m system_boot,system_shutdown | tail -4 ---- type=SYSTEM_BOOT msg=audit(Saturday 13 February 2021 A.852:8) : pid=621 uid=root auid=unset ses=unset subj=system_u:system_r:init_t:s0 msg=' comm=systemd-update-utmp exe=/usr/lib/systemd/systemd-update-utmp hostname=? addr=? terminal=? res=success' ---- type=SYSTEM_BOOT msg=audit(Saturday 13 February 2021 A.368:8) : pid=622 uid=root auid=unset ses=unset subj=system_u:system_r:init_t:s0 msg=' comm=systemd-update-utmp exe=/usr/lib/systemd/systemd-update-utmp hostname=? addr=? terminal=? res=success' Анализ журнала systemd Чтобы сохранить журнал системных логов на диске, необходимо иметь постоянный системный журнал, иначе логи будут очищаться при перезагрузке. Для этого можно либо внести изменения в /etc/systemd/journald.conf, либо создать каталог самостоятельно с помощью следующих команд: $ sudo mkdir /var/log/journal $ sudo systemd-tmpfiles --create --prefix /var/log/journal 2>/dev/null $ sudo systemctl -s SIGUSR1 kill systemd-journald После этого можно дополнительно перезагрузить систему для ввода нескольких записей перезагрузки в журнал, хотя это и не требуется. Приведенную ниже команда позволяет выводить список записанных событий о загрузке из журнала: $ journalctl --list-boots Вот его выходные данные на моем сервере: Как видно на рисунке, в системе есть несколько событий загрузки. Для дальнейшего анализа причины конкретной перезагрузки используйте: $ journalctl -b {num} –n Здесь {num} будет индексом, заданным в команде journalctl --list-boots в первом столбце. В приведенных выше выходных данных можно просмотреть сообщения, зарегистрированные в журнале, и отследить аномалии, если таковые имеются. Заключение Не всегда можно определить причину перезагрузки Linux с помощью одной команды или из одного файла журнала. Поэтому всегда удобно знать команды и журналы, которые фиксируют события, связанные с системой, и могут сократить время, необходимое для поиска первопричины. Приведенные выше примеры дают вам возможность начать поиск и устранение неисправностей. Используя комбинацию таких инструментов и журналов, вы можете быть уверены в том, что произошло и как перезагрузилась ваша система.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59