#HEX • IT
389 subscribers
504 photos
104 videos
64 files
480 links
Channel by @alexeev_dev.

Авторский блог.

IT, статьи и другая информация.
Download Telegram
Forwarded from /dev/stdout (Humacedeus)
🤣3👏1😁1
Замена системных вызовов с помощью модулей ядра

Из книги https://tldp.org/LDP/lkmpg/2.6/lkmpg.pdf:
You can even write modules to replace the kernel's system calls, which we'll do shortly. Crackers often make use of this sort of thing for backdoors or trojans, but you can write your own modules to do more benign things, like have the kernel write Tee hee, that tickles! everytime someone tries to delete a file on your system.

Другими словами: существует возможность создания модулей для ядра операционной системы, которые могут заменять системные вызовы. Это может использоваться как злоумышленниками для создания бэкдоров и троянов, так и для более безобидных задач, таких как добавление пользовательского сообщения при попытке удаления файла.
👍1👨‍💻11
Что вам не хватает в интернете? Какой микро сервис, выполняющий конкретно одну задачу быстро и четко? То есть без лишних движений, просто, качественно. Как говорится, соблюдая принцип UNIX - каждая программа должна выполнять одну задачу. Никаких сложных меню, просто одна кнопка "Сделать все хорошо".

Какой вам сайт, расширение, хотелось бы иметь всегда под рукой?

Напишите в комментариях 👇
👍1🔥1
Media is too big
VIEW IN TELEGRAM
⚡️ Загрузка Linux на Intel 4004 just for fun.

Энтузиаст запустил Debian на 4-разрядный микропроцессор Intel 1971 года выпуска -это первый микропроцессор в мире - 4004.

Это настоящее ядро Linux с рутфайлом Debian на реальной плате, единственным процессором которой является Intel 4004 1970-х годов.

На видео показан процесс запуска. Часы и календарь в видео отображаются точно.

📌 Подробнее про процесс запуска
👍1👨‍💻1
Флибуста закрывается

У создателя обнаружили глиобластому (неизлечимо).

Проект Flibusta была запущена в 2009 году, туда загружаются книги на русском и других языках. После многочисленных претензий правообладателей суд в 2016 году вынес решение о пожизненной блокировке проекта.

О самом Stiver известно лишь то, что он постоянно проживает в Германии.

Великий человек, великий проект
😢8
Процесс компиляции программы на C/C++

Двоичные файлы создаются в процессе компиляции, то есть трансляции понятного человеку исходного кода, например на языке программирования C/C++, в машинный код, исполняемый процессором.

Компиляция C/C++, или другого кода состоит из четырех этапов — препроцессирование, компиляция, ассемблирование и компоновка. На практике современные компиляторы часто объединяют некоторые или даже все этапы, но для демонстрации можно будет использовать их по отдельности.
21🔥1
Механика работы TLS/SSL #сети #полезное

TLS и SSL используют:

Ассиметричная криптография для аутентификации. Кстати, этот тип шифрования более ресурсоемкий, поэтому его комбинируют с симметрическим шифрованием.

Симметричное шифрование для конфиденциальности.

Коды аутентичности сообщений для сохранения целостности сообщений.

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

Когда пользователь заходит на какой-то сайт по HTTPS, браузер запрашивает сертификат у сервера, который высылает копию SSL-сертификата с открытым ключом шифрования. После браузер проверяет и подтверждает этот сертификат. Кроме того, проверяется дата действия сертификата и наличие корневого сертификата, выданного надежным центром сертификации. Если браузер доверяет сертификату, то он генерирует предварительный секрет (pre-master secret) сессии на основе открытого ключа, используя максимально высокий уровень шифрования, который поддерживают обе стороны. Сервер расшифровывает предварительный секрет с помощью своего закрытого ключа, соглашается продолжить коммуникацию и создать общий секрет (master secret), используя определенный вид шифрования. Теперь обе стороны используют симметричный ключ, который действителен только для данной сессии. После ее завершения ключ уничтожается, а при следующем посещении сайта процесс рукопожатия запускается сначала.

Принцип работы SSL и TLS — практически один и тот же. Поверх протокола TCP/IP устанавливается защищенный канал, внутри которого передаются данные по прикладному протоколу (HTTP, DNS, FTP, SMTP и другие).

Прикладной протокол находится в канале TLS/SSL, а тот в свою очередь уже в TCP/IP. По сути данные передаются именно по TCP/IP, но суть в том, что данные зашифрованы, и расшифровать их может только машина, которая установила соединения.
👍1👨‍💻1
Алгоритм Диффи-Хеллмана #криптография

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

Алгоритм Диффи-Хеллмана используется для того, чтобы две стороны могли создать общий секретный ключ, его еще называют "транспортный ключ", который затем используется для шифрования и дешифрования сообщений.
👍11
Вы бы хотели поддержать канал финансово?
Anonymous Poll
50%
Да
50%
Нет
2
Большое руководство по сетям и шифрованию, 1 и 2 часть #архив #статья #хабр #моё

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

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

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

+ Первая часть
+ Вторая часть
🔥1👨‍💻11
#HEX • IT
Вы бы хотели поддержать канал финансово?
Если кто хочет, может задонатить

Сбер, СПБ: +79538762319
Ton coin: UQCeNdt_oTXg9Y-oHuA7RDBA7MEzNKg-u-KCi6VH95VS9Tlh
USDT (trc20): TEWSFXhZmYmSm1ozVcE3615UzkZvRp5HVr

Часть средств пойдет на оплату сервера для нашего сайта.

Благодарю.
2👍2
Для анализа системы существует утилита systemd-analyze.
Итак, если вы запустите ее, то вы увидите следующее (на скрине)

Как мы видим, за 7 секунд загрузилось ядро а за 11 секунд — пользовательское пространство. Всего система загрузилась за 18.5 секунд.

Если вам этого недостаточно, то можно использовать команду systemd-analyze blame, которая показывает также время запуска сервисов:

$ systemd-analyze blame
3.869s dev-sda2.device
2.288s NetworkManager.service
1.606s user@1000.service
1.467s systemd-tmpfiles-setup-dev-early.service
1.445s upower.service
1.215s systemd-udev-trigger.service
996ms systemd-journal-flush.service
996ms systemd-journald.service
919ms systemd-rfkill.service
900ms iio-sensor-proxy.service
769ms systemd-tmpfiles-setup.service
653ms systemd-logind.service
546ms accounts-daemon.service
518ms polkit.service
459ms systemd-udevd.service
445ms systemd-tmpfiles-clean.service
425ms systemd-userdbd.service
395ms udisks2.service
384ms systemd-timesyncd.service
# ...
👍22
#HEX • IT pinned «Если кто хочет, может задонатить Сбер, СПБ: +79538762319 Ton coin: UQCeNdt_oTXg9Y-oHuA7RDBA7MEzNKg-u-KCi6VH95VS9Tlh USDT (trc20): TEWSFXhZmYmSm1ozVcE3615UzkZvRp5HVr Часть средств пойдет на оплату сервера для нашего сайта. Благодарю.»
Journalctl — это утилита из состава systemd, отвечающая за работу с журналами и демоном journald.

Итак, чтобы просто просмотреть логи, можно просто ввести команду journalctl.

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

Итак, но допустим, мы не хотим читать абсолютно все логи, и нам нужны только ошибки.

Для уровней важности, приняты следующие обозначения:

0: emergency (неработоспособность системы)
1: alerts (предупреждения, требующие немедленного вмешательства)
2: critical (критическое состояние)
3: errors (ошибки)
4: warning (предупреждения)
5: notice (уведомления)
6: info (информационные сообщения)
7: debug (отладочные сообщения)

Для того, чтобы указать код важности, требуется флаг -p. Когда мы, например, будем использовать journalctl -p 3, то в журнале будут сообщения с 0, 1, 2 и 3 уровнем (то есть включая предыдущие).
👍2111
#шпаргалка journalctl

Ниже я представил некоторые базовые флаги для просмотра информации о службах и журналах:

journalctl -n 100 — показывает первые 100 записей в журнале (вместо 100 можно использовать любое другое число)
journalctl _SYSTEMD_UNIT=earlyoom.service — просмотр записей, связанных с юнитом earlyoom.service
journalctl _COMM=sshd — показывает все записи, связанные с процессом sshd
journalctl _PID=1000 — показывает все записи, связанные с PID 1000
journalctl _UID=1000 — показывает все записи, связанные с UID 1000
journalctl _GID=1000 — показывает все записи, связанные с GID 1000
journalctl _HOSTNAME=linux — показывает все записи, связанные с хостом linux
journalctl --since 2024-01-01 — показывает все записи, начиная с указанной даты
journalctl --until 2024-01-01 — показывает все записи, заканчивая указанной датой
journalctl --since -1h — показывает все записи за последний час
journalctl --since -1days — показывает все записи за последние сутки
journalctl --vacuum-size=10M — удаляет записи, пока журнал не станет весом 10МБ.
journalctl --vacuum-time=1week — удаляет записи старше 1 недели.
journalctl --output=short — показывает записи в компактном виде
journalctl --output=verbose — показывает записи в расширенном виде
journalctl --output=json — показывает записи в json-формате
journalctl --verify — проверяет целостность журнала
journalctl -xeu "service" — отображает записи в формате JSON (-x) и единого события (-e) по указанной службе (-u).
journalctl -feu "service" — отображает записи в режиме реального времени (-f) и единого события (-e) по указанной службе (-u).
journalctl --list-boots — отображеает журналы, которые были созданы при загрузке системы
journalctl -b 0 — просмотреть журнал с текущего старта системы
journalctl -b -1 — просмотреть журнал с предыдущего старта системы
journalctl -k — просмотр сообщений ядра
👍1🔥1
Работа с сервисами через systemD #шпаргалка

systemctl — специальная утилита для взаимодействия с сервисами и systemd.

Основные команды я вынес ниже:

systemctl start "служба" — запуск определенной службы
systemctl stop "служба" — остановка определенной службы
systemctl restart "служба" — перезапуск службы
systemctl reload "служба" — перезагрузка конфига службы
systemctl status "служба" — статус службы
systemctl enable "service" — включение автозапуска службы
systemctl disable "service" — выключение автозапуска службы
systemctl is-enabled "service" — включен ли автозапуск службы
systemctl poweroff — выключение системы
systemctl suspend — перевод системы в спящий режим системы
systemctl hibernate — гибернация системы
systemctl reboot — перезагрузка системы
systemctl list-units — отображает все активные юниты
systemctl list-unit-files — отображает все доступные юнит-файлы
systemctl show "название юнита" — отображает подробную информацию об указанном юните
systemctl daemon-reload — перезагрузка и перечитывание всех конфигов юнитов.
systemctl isolate "системный уровень, таргет" — переключает систему в указанный системный уровень
systemctl mask "название юнита" — запрещает запуск данного юнита, маскирует его
systemctl unmask "название юнита" — разрешает запуск данного юнита
systemctl --failed — показывает все службы, которые не смогли запуститься из-за ошибки.
👍1🔥1
Адреса памяти #система #компьютер

Память состоит из неких секций, ячеек. Каждая из них может хранить порцию информацию. Каждая ячейка имеет номер, который называется адресом. По адресу программы могут ссылаться на определенную ячейку. Если память содержит N ячеек. Они будут иметь адреса от 0 до N-1. Все ячейки памяти содержат одинаковое количество битов. Если ячейка состоит из k бит, она может содержать любую из 2^k комбинаций.

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

Ячейка — минимальная адресуемая единица памяти. В последние годы практически все производители выпускают компьютеры с 8-разрядными ячейками, которые называются байтами (иногда октетами). Байты группируют в слова. В компьютере с 32-разрядным словами на каждое слово приходится 4 байт, а в 64 разрядном — 8 байт. Таким образом, 32 разрядная машина содержит 32-разрядные регистры и команды для манипуляций с 32 разрядными словами, а 64 разрядная машина имеет уже 64 разрядные регистры и манипуляции с соответствующими словами.

Байты в слове могут нумероваться слева направо или наоборот. Нумерация с высшего порядка, она относится к прямому порядку следования байтов (big endian). А также наоборот — обратный порядок следования байтов (little endian).

Фан-факт: эти термины взяты из книги Джонатана Свифта «Путешествия Гулливера» — он иронизировал по поводу спора королей, с какого конца разбивать яйца. Введены эти термины в статье Коэна 1981 года.


Важно понимать, что в обеих системах 32-разрядное целое число (например, 6) представлено битами 110 в трех крайних правых битах слова, а остальные 29 бит — нули. Если байты нумеруются слева направо, то биты 110 находятся в байте 0 (или 4, или 8, или 16 и т.д). В обеих системах слово содержащее это целое число, имеет адрес 0.
👍1👨‍💻1
X11: Архитектура и графический стек

X Window System (X11, или просто X) — это оконная система для растровых дисплеев, распространенная в Unix-подобных операционных системах.

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


X был создан как часть проекта "Athena" в MIT в 1984 году. Протокол X имеет версию 11 (отсюда X11) с сентября 1987 года. Фонд X.Org возглавляет проект X с текущей эталонной реализацией, X.Org Server, доступный в виде открытого бесплатного программного обеспечения под лицензией MIT.


X11 (сам протокол) разрабатывался с целью быть расширяемым (т.е. с возможностью добавления новых фич без создания принципиально нового протокола и без потери обратной совместимости со старыми клиентами). Для примера, xeyes и oclock выглядят, скажем так, «нестандартно», из-за Shape Extension, которое позволяет использовать окна непрямоугольной формы. Если вам не очень понятно, с помощью какой магии эта функциональность появляется из ниоткуда, то вот ответ: магия тут ни при чём. Поддержка расширения должна быть добавлена на обеих сторонах — и у клиента, и у сервера. В базовой спецификации протокола есть специальный функционал для получения клиентами информации от сервера о доступных расширениях. С помощью этого функционала клиенты могут решать, что использовать, а что — нет.
👍11