Что такое Secure Boot?
Технология Secure Boot нацелена на предотвращение исполнения недоверенного кода при загрузке операционной системы. Устройства с Secure Boot содержат в энергонезависимой памяти базу данных открытых ключей, которыми проверяются подписи загружаемых UEFI-приложений вроде загрузчиков ОС и драйверов. Приложения, подписанные доверенным ключом и с правильной контрольной суммой, допускаются к загрузке, остальные блокируются. Если подписанное приложение предоставляет возможность недобросовестного использования напрямую или путём загрузки других приложений, оно становится угрозой безопасности всех пользователей, доверяющих этому приложению.
Убедитесь, что ваша система поддерживает Secure Boot. Это можно сделать в настройках UEFI/BIOS.
Пакеты, которые обеспечивают поддержку Secure Boot в Debian:
Более подробно: https://habr.com/ru/articles/308032/
#security #theory
Технология Secure Boot нацелена на предотвращение исполнения недоверенного кода при загрузке операционной системы. Устройства с Secure Boot содержат в энергонезависимой памяти базу данных открытых ключей, которыми проверяются подписи загружаемых UEFI-приложений вроде загрузчиков ОС и драйверов. Приложения, подписанные доверенным ключом и с правильной контрольной суммой, допускаются к загрузке, остальные блокируются. Если подписанное приложение предоставляет возможность недобросовестного использования напрямую или путём загрузки других приложений, оно становится угрозой безопасности всех пользователей, доверяющих этому приложению.
Убедитесь, что ваша система поддерживает Secure Boot. Это можно сделать в настройках UEFI/BIOS.
Пакеты, которые обеспечивают поддержку Secure Boot в Debian:
shim-signed, grub-efi-amd64-signed, и mokutil.Более подробно: https://habr.com/ru/articles/308032/
#security #theory
👍7❤🔥3
Что такое GRUB?
GRUB (GRand Unified Bootloader) в основном предназначен для загрузки операционной системы. Он управляет процессом загрузки, позволяя пользователю выбрать операционную систему или ядро, которое он хочет загрузить, и затем передает управление этому выбранному ядру.
Основная функция загрузчика Linux включает в себя возможность выполнять следующие задачи:
* выбирать одно из нескольких ядер;
* переключаться между наборами параметров ядра;
* разрешить пользователю вручную переопределять и редактировать имена и параметры образов ядра;
* обеспечить поддержку загрузки других операционных систем;
Файл конфигурации GRUB, который отображается при нажатии кнопки
2. Процесс выключения (или перезагрузки) управляется самим операционным ядром (kernel) и операционной системой, которые выполняют последовательность действий для корректного завершения всех процессов, демонтирования файловых систем и отключения питания.
Таким образом, когда вы выключаете систему, GRUB не играет никакой роли. Его задача завершается после того, как операционная система была успешно загружена.
#kernel #theory
GRUB (GRand Unified Bootloader) в основном предназначен для загрузки операционной системы. Он управляет процессом загрузки, позволяя пользователю выбрать операционную систему или ядро, которое он хочет загрузить, и затем передает управление этому выбранному ядру.
Основная функция загрузчика Linux включает в себя возможность выполнять следующие задачи:
* выбирать одно из нескольких ядер;
* переключаться между наборами параметров ядра;
* разрешить пользователю вручную переопределять и редактировать имена и параметры образов ядра;
* обеспечить поддержку загрузки других операционных систем;
Файл конфигурации GRUB, который отображается при нажатии кнопки
e в меню GRUB, можно прочитать в файле /boot/grub/grub.cfg на диске. Однако, не рекомендуется редактировать этот файл напрямую, так как он обычно генерируется автоматически с помощью команды update-grub, которая использует шаблоны и настройки из /etc/default/grub и скриптов в /etc/grub.d/
1. GRUB не участвует в процессе выключения. Его роль ограничивается начальной фазой загрузки системы.2. Процесс выключения (или перезагрузки) управляется самим операционным ядром (kernel) и операционной системой, которые выполняют последовательность действий для корректного завершения всех процессов, демонтирования файловых систем и отключения питания.
Таким образом, когда вы выключаете систему, GRUB не играет никакой роли. Его задача завершается после того, как операционная система была успешно загружена.
#kernel #theory
✍11❤🔥3👍2
Debian Gnu/Linux installer menu (BIOS mode) - это меню, которое появляется при запуске установочного образа Debian на компьютере с BIOS (или в режиме совместимости с BIOS, если используется UEFI). Это меню позволяет пользователю выбрать различные опции установки и запуска.
Установщик находится на самом установочном ISO-образе Debian. Когда вы создаете загрузочный носитель (например, USB накопитель или DVD) с этим образом, установщик становится доступным для запуска на компьютере. Установщик включает в себя все необходимые компоненты и программы для выполнения установки операционной системы на ваш диск.
Установщик включается в установочный ISO-образ разработчиками и поддерживающими проект сообществом Debian.
Установщик обеспечивает распаковку и установку пакетов, настройку системы, создание учетных записей, настройку загрузчика (включая GRUB), разметку диска, настройку сети и другие критически важные шаги для успешной установки операционной системы.
#debian
Установщик находится на самом установочном ISO-образе Debian. Когда вы создаете загрузочный носитель (например, USB накопитель или DVD) с этим образом, установщик становится доступным для запуска на компьютере. Установщик включает в себя все необходимые компоненты и программы для выполнения установки операционной системы на ваш диск.
Установщик включается в установочный ISO-образ разработчиками и поддерживающими проект сообществом Debian.
Установщик обеспечивает распаковку и установку пакетов, настройку системы, создание учетных записей, настройку загрузчика (включая GRUB), разметку диска, настройку сети и другие критически важные шаги для успешной установки операционной системы.
#debian
⚡8❤2
UEFI vs Legacy BIOS (режимы загрузки)
UEFI новый BIOS, а Legacy старый (синий экран).
UEFI:
* быстрее загружается
* есть функция безопасности Secure Boot
* драйвера грузятся в UEFI и передаются затем ОС
* имеет современный GUI
* формат загрузки дисков GPT
Legacy BIOS:
* драйвера загружаются во время запуска ОС, после загрузки BIOS
* синий привычный экран, старый интерфейс
* формат загрузки дисков MBR
#theory
UEFI новый BIOS, а Legacy старый (синий экран).
UEFI:
* быстрее загружается
* есть функция безопасности Secure Boot
* драйвера грузятся в UEFI и передаются затем ОС
* имеет современный GUI
* формат загрузки дисков GPT
Legacy BIOS:
* драйвера загружаются во время запуска ОС, после загрузки BIOS
* синий привычный экран, старый интерфейс
* формат загрузки дисков MBR
#theory
⚡11👍3❤1
Что такое Аудит и для чего он нужен?
Нужен для отслеживания критичных с точки зрения безопасности системных событий:
* запуск и завершение работы системы;
* чтение, запись и изменение прав доступа к файлам;
* инициация сетевых соединений;
* попытки неудачной авторизации в системе;
* изменение сетевых настроек;
* изменение информации о пользователях и группах;
* запуск и остановка приложений;
* выполнение системных вызовов;
Ни одно из названных событий не может произойти без использования системных вызовов ядра. Чтобы их отслеживать, достаточно просто перехватывать соответствующие системные вызовы. Именно это и делает подсистема аудита. Когда я работал системным программистом, то часто приходилось взаимодействовать с аудитом (для отладки).
Конфигурация:
После
События 1000 пользователя:
Поиск событий по коду выхода:
Искать события open:
Номера всех системных вызовов:
#kernel #security #utils
Нужен для отслеживания критичных с точки зрения безопасности системных событий:
* запуск и завершение работы системы;
* чтение, запись и изменение прав доступа к файлам;
* инициация сетевых соединений;
* попытки неудачной авторизации в системе;
* изменение сетевых настроек;
* изменение информации о пользователях и группах;
* запуск и остановка приложений;
* выполнение системных вызовов;
Ни одно из названных событий не может произойти без использования системных вызовов ядра. Чтобы их отслеживать, достаточно просто перехватывать соответствующие системные вызовы. Именно это и делает подсистема аудита. Когда я работал системным программистом, то часто приходилось взаимодействовать с аудитом (для отладки).
$ apt-get install -y auditd
$ systemctl status auditd
Конфигурация:
/etc/audit/auditd.conf
Выполнить программу и отследить ее события (работает наподобие strace):$ autrace <path-to-program>
После
autrace:$ ausearch -i -p <pid>
События 1000 пользователя:
$ ausearch -ui 1000
Поиск событий по коду выхода:
$ ausearch -i -e -13
Искать события open:
$ ausearch -ui 1000 -sc open
Номера всех системных вызовов:
$ ausyscall --dump
#kernel #security #utils
✍7👍1
ВКС
В последнее время видеоконференции (ВКС) стали довольно популярными в IT-компаниях. Так называемая обязательная болтовня ни о чём. В адекватных отделах подобная болтовня проходит раз в неделю. В неадекватных - чуть ли не каждый день: они болтают и болтают вместо того, чтобы поработать =) Я сделал вывод: чем больше в отделе ВКС, тем менее он продуктивен, потому что лить воду можно бесконечно, а работать - меньше. Сейчас всё более популярной становится Agile-методика разработки программного обеспечения.
Agile - это методика разработки программного обеспечения, акцентирующая внимание на гибкости и адаптивности к изменениям. В IT-компаниях она предполагает разбитие проекта на короткие циклы (итерации или спринты), что позволяет регулярно получать обратную связь, быстро вносить изменения и улучшения, а также тесно сотрудничать с клиентами и внутри команды. Основные принципы Agile включают инкрементальную разработку, постоянное взаимодействие и адаптацию к изменениям.
Хочу заметить, что в некоторых компаниях есть так называемый "фанатичный/тревожный Agile", когда взаимодействие внутри компании переходит личные границы, и вам могут названивать/написывать не в рабочее время. Ведь внутри отдела уже просто-напросто привыкли переписываться, всё контролировать и что-то обсуждать (из таких компаний стоит бежать). Да и вообще, чрезмерное ежедневное общение даже в рабочее время лично для меня не очень понятно. Ведь есть Jira, в которой можно оставить комментарий к задаче, обновить её статус, прикрепить лог, скриншот, номер коммита и так далее. Зачем дублировать этот комментарий голосом? Мне это непонятно. Чрезмерное общение заменяет разработку, и ты уже не разработчик, а черт пойми кто. Это частая проблема: вместо того чтобы создавать продукт и выполнять свои задачи, инженеры просто болтают.
Я пользовался различными сервисами для ВКС - все они плюс-минус отвратительны, плохо работают и только нервируют. Ещё не стоит забывать, что такая связь работает по протоколу UDP, что говорит о том, что голос и звук могут пропадать. Вообще, всё это довольно забавно: у кого-то собака гавкает дома, у кого-то ребёнок кричит, кто-то картавит, а кто-то просто несвязно говорит, и никто не понимает, что он хочет сказать, плюс какие-то внешние шумы - в общем, цирк =) И вот эта часовая болтовня ни к чему в итоге не приводит. Просто сбор сотрудников для галочки. Ненавижу.
#thoughts
В последнее время видеоконференции (ВКС) стали довольно популярными в IT-компаниях. Так называемая обязательная болтовня ни о чём. В адекватных отделах подобная болтовня проходит раз в неделю. В неадекватных - чуть ли не каждый день: они болтают и болтают вместо того, чтобы поработать =) Я сделал вывод: чем больше в отделе ВКС, тем менее он продуктивен, потому что лить воду можно бесконечно, а работать - меньше. Сейчас всё более популярной становится Agile-методика разработки программного обеспечения.
Agile - это методика разработки программного обеспечения, акцентирующая внимание на гибкости и адаптивности к изменениям. В IT-компаниях она предполагает разбитие проекта на короткие циклы (итерации или спринты), что позволяет регулярно получать обратную связь, быстро вносить изменения и улучшения, а также тесно сотрудничать с клиентами и внутри команды. Основные принципы Agile включают инкрементальную разработку, постоянное взаимодействие и адаптацию к изменениям.
Хочу заметить, что в некоторых компаниях есть так называемый "фанатичный/тревожный Agile", когда взаимодействие внутри компании переходит личные границы, и вам могут названивать/написывать не в рабочее время. Ведь внутри отдела уже просто-напросто привыкли переписываться, всё контролировать и что-то обсуждать (из таких компаний стоит бежать). Да и вообще, чрезмерное ежедневное общение даже в рабочее время лично для меня не очень понятно. Ведь есть Jira, в которой можно оставить комментарий к задаче, обновить её статус, прикрепить лог, скриншот, номер коммита и так далее. Зачем дублировать этот комментарий голосом? Мне это непонятно. Чрезмерное общение заменяет разработку, и ты уже не разработчик, а черт пойми кто. Это частая проблема: вместо того чтобы создавать продукт и выполнять свои задачи, инженеры просто болтают.
Я пользовался различными сервисами для ВКС - все они плюс-минус отвратительны, плохо работают и только нервируют. Ещё не стоит забывать, что такая связь работает по протоколу UDP, что говорит о том, что голос и звук могут пропадать. Вообще, всё это довольно забавно: у кого-то собака гавкает дома, у кого-то ребёнок кричит, кто-то картавит, а кто-то просто несвязно говорит, и никто не понимает, что он хочет сказать, плюс какие-то внешние шумы - в общем, цирк =) И вот эта часовая болтовня ни к чему в итоге не приводит. Просто сбор сотрудников для галочки. Ненавижу.
#thoughts
👍20👎2
Вы только посмотрите! Финская проститутка проявляет характер. Детский сад. Они видимо забыли какой характер у русских людей ... так мы можем напомнить =) И это будет посильнее этих ребячеств. Вообще, обидно, что в мире Open Source тоже проскальзывает политика, это напрягает. Это не место для политики. Open Source должен объединять людей, сплачивать их, а не наоборот. А Линус просто закапывает себя и ведет себя как мальчишка. В твое вонючее ядро сделали вклад, ты должен уважать этих людей, а не удалять их из списка ... Низость.
#people
#people
👍59🤡28👎10⚡1❤1🔥1😁1😢1💯1
Перевод: Как страстный любитель истории, вы, кажется, забыли, что Финляндия воевала на стороне нацистов. Так что да, мы прекрасно знаем, что вы не любите русских, если только они не в концлагерях. Что вы сейчас и делаете: сегрегируете по национальному признаку. Лишаете кредитов и имен. Нацист - всегда нацист. Так что идите вы на хуй.
#people
#people
💯49🤡18👍14👎6❤2👏1😢1🫡1
Kernel panic - это критическая ошибка в операционной системе, когда система не может продолжать работу из-за серьезных проблем. Часто это связано с аппаратными сбоями, такими как неисправность оперативной памяти, процессора. Также это может быть вызвано невозможностью найти и смонтировать корневую файловую систему, запуском некорректных драйверов или ошибок в процессе инициализации (initramfs). Система может пытаться использовать несуществующие ресурсы, что приводит к этому состоянию.
#kernel #theory
#kernel #theory
👀6✍5🔥2🤡1
trap
С помощью trap можно перехватывать/обрабатывать сигналы. Например:
Команда trap используется в оболочке для перехвата сигналов и выполнения функции или команды в ответ на эти сигналы. В данном случае функция
#shell
С помощью trap можно перехватывать/обрабатывать сигналы. Например:
func()
{
echo "This is SIGINT"
}
trap func SIGINT
Команда trap используется в оболочке для перехвата сигналов и выполнения функции или команды в ответ на эти сигналы. В данном случае функция
func будет вызвана при получении сигнала SIGINT.#shell
✍14👍5
Как создать чистую переменную PATH?
Переменная окружения PATH определяет в каких каталогах система будет искать исполняемые файлы команд. Чтобы создать чистую переменную PATH, можно использовать команду (так же можно прописать это в
Эта команда задает новый порядок поиска команд, начиная с каталогов, содержащих программное обеспечение, установленное пользователем или системным администратором, и заканчивая стандартными системными каталогами. Такой подход позволяет лучше контролировать версии исполняемых файлов и уменьшает риск запуска нежелательных или вредоносных программ, которые могли бы находиться в неавторизованных каталогах. Установка чистого PATH может быть полезна при написании скриптов или настройке серверов, где важна безопасность и предсказуемость исполняемых команд.
#shell
Переменная окружения PATH определяет в каких каталогах система будет искать исполняемые файлы команд. Чтобы создать чистую переменную PATH, можно использовать команду (так же можно прописать это в
~/.bashrc):export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Эта команда задает новый порядок поиска команд, начиная с каталогов, содержащих программное обеспечение, установленное пользователем или системным администратором, и заканчивая стандартными системными каталогами. Такой подход позволяет лучше контролировать версии исполняемых файлов и уменьшает риск запуска нежелательных или вредоносных программ, которые могли бы находиться в неавторизованных каталогах. Установка чистого PATH может быть полезна при написании скриптов или настройке серверов, где важна безопасность и предсказуемость исполняемых команд.
#shell
✍10👍1🤯1
diff и patch
Патчи нужны для модификации существующего ПО, работа с исходными кодами проекта. Вообще, все программисты в процессе своей совместной работы над проектом обмениваются исключительно отдельными правками, а не пересылают друг другу актуальные версии проектов целиком. Сама правка, текстовые изменения в исходном коде проектов и есть патч или "заплатка". Патч содержит не только новые изменения, но и служебную информацию, нужную для установки этого патча. Таким образом, патч - это текстовый файл определенного формата, содержащий в себе данные и инструкции для привидения конечного файла (или проекта) к нужному или актуальному виду.
Patch File генерируется с помощью утилиты
Показать различия:
Создать файл-патч с изменениями:
Показать различия с номерами строк:
Рекурсивно сравнить содержимое каталогов и их подкаталогов:
Популярный метод сравнения:
Флаг
Флаг
Игнорировать .git директорию при сравнении:
Показать разницу построчно:
Поднять Orig файл до состояния patch:
Отменить изменения patch в Orig файле (откат):
Пропустить первый уровень каталогов в путях файлов внутри патча:
При возникновении ошибок, начнут появляться файлы
#utils
Патчи нужны для модификации существующего ПО, работа с исходными кодами проекта. Вообще, все программисты в процессе своей совместной работы над проектом обмениваются исключительно отдельными правками, а не пересылают друг другу актуальные версии проектов целиком. Сама правка, текстовые изменения в исходном коде проектов и есть патч или "заплатка". Патч содержит не только новые изменения, но и служебную информацию, нужную для установки этого патча. Таким образом, патч - это текстовый файл определенного формата, содержащий в себе данные и инструкции для привидения конечного файла (или проекта) к нужному или актуальному виду.
Patch File генерируется с помощью утилиты
diff, а с помощью утилиты patch изменения можно применить.Показать различия:
$ diff a b
Создать файл-патч с изменениями:
$ diff a b > main.patch
Показать различия с номерами строк:
$ diff -c a b
Рекурсивно сравнить содержимое каталогов и их подкаталогов:
$ diff -r a/ b/ > r.patch
Популярный метод сравнения:
$ diff -ruN a/ b/ > project.patch
Флаг
-u выводит различия в унифицированном формате, который более компактен и удобочитаем.Флаг
-N сравнивает файлы, которых нет в одном из каталогов, как пустые, что позволяет включать новые и удаленные файлы в патч.Игнорировать .git директорию при сравнении:
$ diff -ruN --exclude='.git' a/ b/
Показать разницу построчно:
$ sdiff a b | less
Поднять Orig файл до состояния patch:
$ patch Orig < patch
Отменить изменения patch в Orig файле (откат):
$ patch -R Orig < patch
Пропустить первый уровень каталогов в путях файлов внутри патча:
$ patch -p1 < ../patch
При возникновении ошибок, начнут появляться файлы
*.rej*.rej файлы описывают куски, которые не получается применить.*.orig файлы создаются для того, чтобы сохранить оригинальный вид, потому что текущий исходник (например main.c) изменился, а main.c.orig остался прежним.#utils
🔥11👍4
1к
Друзья! Нас уже более 1000 человек. Большое спасибо, что читаете, ставите реакции, делитесь. Чтобы о моем канале узнало больше людей, я покупал рекламу, так как без нее довольно трудно продвигать канал. Траты на рекламу составили 65,750 рублей. Хорошего дня!
#info
Друзья! Нас уже более 1000 человек. Большое спасибо, что читаете, ставите реакции, делитесь. Чтобы о моем канале узнало больше людей, я покупал рекламу, так как без нее довольно трудно продвигать канал. Траты на рекламу составили 65,750 рублей. Хорошего дня!
#info
❤22😨14👍3🙊2
——— НАВИГАЦИЯ ———
GIT: #git
Жвачка: #fun
Ядро: #kernel
Разное: #misc
ПО: #software
Игры: #games
Книги: #books
Люди: #people
Сборка: #build
Утилиты: #utils
Теория: #theory
Debian: #debian
Оболочка: #shell
СПО: #opensource
Память: #memory
Терминал: #terminal
Мои мысли: #thoughts
Безопасность: #security
Информация канала: #info
Конфигурационные файлы: #dotfiles
Кто я: https://news.1rj.ru/str/krxnotes/246
Откуда берется информация: https://news.1rj.ru/str/krxnotes/500
Поддержать канал:
GIT: #git
Жвачка: #fun
Ядро: #kernel
Разное: #misc
ПО: #software
Игры: #games
Книги: #books
Люди: #people
Сборка: #build
Утилиты: #utils
Теория: #theory
Debian: #debian
Оболочка: #shell
СПО: #opensource
Память: #memory
Терминал: #terminal
Мои мысли: #thoughts
Безопасность: #security
Информация канала: #info
Конфигурационные файлы: #dotfiles
Кто я: https://news.1rj.ru/str/krxnotes/246
Откуда берется информация: https://news.1rj.ru/str/krxnotes/500
Поддержать канал:
2202 2036 6907 4603
Спасибо, что читаете!👍21❤2
Блокировка/автовыход из терминала/консоли
Автовыход из терминала (bash): Переменная окружения
Автоблокировка: Для автоблокировки можно использовать утилиту
Заблокировать текущую консоль:
Заблокировать все консоли:
Обе эти настройки помогут повысить безопасность, особенно в многопользовательских системах или в условиях, где доступ к терминалу должен быть ограничен в ваше отсутствие.
#shell #utils #security
Автовыход из терминала (bash): Переменная окружения
TMOUT задает таймаут в секундах для автоматического выхода из сессии bash. Сессия завершится через 60 секунд неактивности:export TMOUT=60
Автоблокировка: Для автоблокировки можно использовать утилиту
vlock. Это утилита, которая блокирует текущую виртуальную консоль, требуя ввода пароля для разблокировки. Это удобно для временной блокировки доступа к терминалу, когда вам необходимо отойти, не выходя из сессии.$ apt-get install -y vlock
Заблокировать текущую консоль:
$ vlock
Заблокировать все консоли:
$ vlock -a
Обе эти настройки помогут повысить безопасность, особенно в многопользовательских системах или в условиях, где доступ к терминалу должен быть ограничен в ваше отсутствие.
#shell #utils #security
👍17❤1
Оболочки (Shells)
Shell - это общее название для командных интерпретаторов, которые позволяют взаимодействовать с операционной системой через командную строку. Bash (Bourne Again SHell) - это один из видов Shell, который является стандартным и наиболее распространенным в Linux-системах. Таким образом, Bash - это конкретный тип shell, но не единственный.
Покажет все доступные оболочки:
#shell
Shell - это общее название для командных интерпретаторов, которые позволяют взаимодействовать с операционной системой через командную строку. Bash (Bourne Again SHell) - это один из видов Shell, который является стандартным и наиболее распространенным в Linux-системах. Таким образом, Bash - это конкретный тип shell, но не единственный.
Покажет все доступные оболочки:
$ cat /etc/shells
#shell
🔥8👍3❤1
Руководство по созданию пакетов Debian. Краткое и понятное руководство, этих знаний вполне достаточно, чтобы собирать deb-пакеты.
Ссылка: https://www.debian.org/doc/manuals/packaging-tutorial/packaging-tutorial
#debian #books
Ссылка: https://www.debian.org/doc/manuals/packaging-tutorial/packaging-tutorial
#debian #books
✍5👍1🤨1