Совет по Linux 💡
Как анализировать системные вызовы в Linux?
Вы можете наблюдать, как происходит обмен данными между программой пользовательского пространства и ядром.
Как анализировать системные вызовы в Linux?
Strace
- это утилита командной строки, которая перехватывает и записывает все системные вызовы, которые выполняет программа в пользовательском пространстве, и все сигналы, которые она получает.Вы можете наблюдать, как происходит обмен данными между программой пользовательского пространства и ядром.
❤3👍2
Утилита динамического мониторинга процессов Nmon
Это утилита измерения и настройки производительности. Она может отображать информацию о ЦП, оперативной памяти, сети, дисках (в виде мини графиков или числовых данных), файловых системах, NFS, самых нагружающих процессах, ресурсах.
Устанавливается командой:
sudo pamcan -S nmon
Для запуска утилиты необходимо выполнить команду:
nmon
https://telegra.ph/Utilita-dinamicheskogo-monitoringa-processov-Nmon-04-15
Это утилита измерения и настройки производительности. Она может отображать информацию о ЦП, оперативной памяти, сети, дисках (в виде мини графиков или числовых данных), файловых системах, NFS, самых нагружающих процессах, ресурсах.
Устанавливается командой:
sudo pamcan -S nmon
Для запуска утилиты необходимо выполнить команду:
nmon
https://telegra.ph/Utilita-dinamicheskogo-monitoringa-processov-Nmon-04-15
👍4❤1
3 довольно неизвестных команды Docker, которые помогут вам в самых различных ситуациях
Если вы какое-то время используете Docker, у вас, вероятно, уже есть адаптированный для вас простой и эффективный рабочий процесс, который включает в себя некоторые из ваших любимых команд Docker (если это технически правильные подкоманды).
https://telegra.ph/3-dovolno-neizvestnyh-komandy-Docker-kotorye-pomogut-vam-v-samyh-razlichnyh-situaciyah-09-26
Если вы какое-то время используете Docker, у вас, вероятно, уже есть адаптированный для вас простой и эффективный рабочий процесс, который включает в себя некоторые из ваших любимых команд Docker (если это технически правильные подкоманды).
https://telegra.ph/3-dovolno-neizvestnyh-komandy-Docker-kotorye-pomogut-vam-v-samyh-razlichnyh-situaciyah-09-26
❤3
Наглядное руководство по туннелированию SSH и переадресации портов
Если говорить коротко, то я жалею, что не знал о пробросе портов и туннелировании раньше. В этой статье я пытаюсь лучше понять это и поделиться с вами некоторым опытом и советами.
Темы: сценарии использования, конфигурация, SSH jumphosts, локальная/удаленная/динамическая переадресация портов и ограничения
Если говорить коротко, то я жалею, что не знал о пробросе портов и туннелировании раньше. В этой статье я пытаюсь лучше понять это и поделиться с вами некоторым опытом и советами.
Темы: сценарии использования, конфигурация, SSH jumphosts, локальная/удаленная/динамическая переадресация портов и ограничения
👍2❤1
Что такое DPI Engine?
Для людей, кто знаком с термином DPI (Deep Packet Inspection), в большинстве случаев возникает неприятная ассоциация: блокировки, регуляторы, цензура, закручивание гаек, и всё в таком духе. На самом деле, DPI – это только название технологии, суть которой заключается в глубоком анализе трафика.
https://habr.com/ru/articles/889082/
Для людей, кто знаком с термином DPI (Deep Packet Inspection), в большинстве случаев возникает неприятная ассоциация: блокировки, регуляторы, цензура, закручивание гаек, и всё в таком духе. На самом деле, DPI – это только название технологии, суть которой заключается в глубоком анализе трафика.
https://habr.com/ru/articles/889082/
❤2
Процесс загрузки Linux
Диаграмма ниже показывает этапы:
Шаг 1 - Когда мы включаем питание, загружается прошивка BIOS (Basic Input/Output System) или UEFI (Unified Extensible Firmware Interface) из энергонезависимой памяти и выполняет POST (Power On Self Test).
Шаг 2 - BIOS/UEFI обнаруживает устройства, подключенные к системе, включая процессор, оперативную память и устройства хранения данных.
Шаг 3 - Выбирается устройство для загрузки операционной системы. Это может быть жесткий диск, сетевой сервер или CD-ROM.
Шаг 4 - BIOS/UEFI запускает загрузчик (GRUB), который предоставляет меню для выбора операционной системы или функций ядра.
Шаг 5 - После подготовки ядра происходит переход в пользовательское пространство. Ядро запускает systemd как первый процесс в пользовательском пространстве, который управляет процессами и службами, проверяет оставшееся оборудование, монтирует файловые системы и запускает рабочую среду.
Шаг 6 - systemd по умолчанию активирует target unit при загрузке системы. Также выполняются другие анализирующие модули.
Шаг 7 - Система выполняет набор скриптов для настройки среды.
Шаг 8 - Пользователям отображается окно входа в систему. Система готова к работе.
Диаграмма ниже показывает этапы:
Шаг 1 - Когда мы включаем питание, загружается прошивка BIOS (Basic Input/Output System) или UEFI (Unified Extensible Firmware Interface) из энергонезависимой памяти и выполняет POST (Power On Self Test).
Шаг 2 - BIOS/UEFI обнаруживает устройства, подключенные к системе, включая процессор, оперативную память и устройства хранения данных.
Шаг 3 - Выбирается устройство для загрузки операционной системы. Это может быть жесткий диск, сетевой сервер или CD-ROM.
Шаг 4 - BIOS/UEFI запускает загрузчик (GRUB), который предоставляет меню для выбора операционной системы или функций ядра.
Шаг 5 - После подготовки ядра происходит переход в пользовательское пространство. Ядро запускает systemd как первый процесс в пользовательском пространстве, который управляет процессами и службами, проверяет оставшееся оборудование, монтирует файловые системы и запускает рабочую среду.
Шаг 6 - systemd по умолчанию активирует target unit при загрузке системы. Также выполняются другие анализирующие модули.
Шаг 7 - Система выполняет набор скриптов для настройки среды.
Шаг 8 - Пользователям отображается окно входа в систему. Система готова к работе.
👍4
mRemoteNG
Это форк mRemote: мультипротокольный менеджер удаленных соединений с открытым исходным кодом для Windows. mRemoteNG добавляет исправления ошибок и новые функции в mRemote и позволяет просматривать все ваши удаленные соединения в простом, но мощном интерфейсе с вкладками.
Поддерживаемые протоколы:
RDP (Remote Desktop Protocol)
VNC (Virtual Network Computing)
SSH (Secure Shell)
Telnet (TELecommunication NETwork)
HTTP/HTTPS (Hypertext Transfer Protocol)
rlogin (Remote Login)
Raw Socket Connections
Powershell remoting
https://mremoteng.org/
https://github.com/mRemoteNG/mRemoteNG
Это форк mRemote: мультипротокольный менеджер удаленных соединений с открытым исходным кодом для Windows. mRemoteNG добавляет исправления ошибок и новые функции в mRemote и позволяет просматривать все ваши удаленные соединения в простом, но мощном интерфейсе с вкладками.
Поддерживаемые протоколы:
RDP (Remote Desktop Protocol)
VNC (Virtual Network Computing)
SSH (Secure Shell)
Telnet (TELecommunication NETwork)
HTTP/HTTPS (Hypertext Transfer Protocol)
rlogin (Remote Login)
Raw Socket Connections
Powershell remoting
https://mremoteng.org/
https://github.com/mRemoteNG/mRemoteNG
❤3
Процесс загрузки Linux
Диаграмма ниже показывает этапы:
Шаг 1 - Когда мы включаем питание, загружается прошивка BIOS (Basic Input/Output System) или UEFI (Unified Extensible Firmware Interface) из энергонезависимой памяти и выполняет POST (Power On Self Test).
Шаг 2 - BIOS/UEFI обнаруживает устройства, подключенные к системе, включая процессор, оперативную память и устройства хранения данных.
Шаг 3 - Выбирается устройство для загрузки операционной системы. Это может быть жесткий диск, сетевой сервер или CD-ROM.
Шаг 4 - BIOS/UEFI запускает загрузчик (GRUB), который предоставляет меню для выбора операционной системы или функций ядра.
Шаг 5 - После подготовки ядра происходит переход в пользовательское пространство. Ядро запускает systemd как первый процесс в пользовательском пространстве, который управляет процессами и службами, проверяет оставшееся оборудование, монтирует файловые системы и запускает рабочую среду.
Шаг 6 - systemd по умолчанию активирует target unit при загрузке системы. Также выполняются другие анализирующие модули.
Шаг 7 - Система выполняет набор скриптов для настройки среды.
Шаг 8 - Пользователям отображается окно входа в систему. Система готова к работе.
Диаграмма ниже показывает этапы:
Шаг 1 - Когда мы включаем питание, загружается прошивка BIOS (Basic Input/Output System) или UEFI (Unified Extensible Firmware Interface) из энергонезависимой памяти и выполняет POST (Power On Self Test).
Шаг 2 - BIOS/UEFI обнаруживает устройства, подключенные к системе, включая процессор, оперативную память и устройства хранения данных.
Шаг 3 - Выбирается устройство для загрузки операционной системы. Это может быть жесткий диск, сетевой сервер или CD-ROM.
Шаг 4 - BIOS/UEFI запускает загрузчик (GRUB), который предоставляет меню для выбора операционной системы или функций ядра.
Шаг 5 - После подготовки ядра происходит переход в пользовательское пространство. Ядро запускает systemd как первый процесс в пользовательском пространстве, который управляет процессами и службами, проверяет оставшееся оборудование, монтирует файловые системы и запускает рабочую среду.
Шаг 6 - systemd по умолчанию активирует target unit при загрузке системы. Также выполняются другие анализирующие модули.
Шаг 7 - Система выполняет набор скриптов для настройки среды.
Шаг 8 - Пользователям отображается окно входа в систему. Система готова к работе.
❤3
Шпаргалка по nftables
nftables - это инструменту для фильтрации пакетов в Linux, пришедшему на смену iptables.
1. Запуск
2. Добавление правил
- Принять пакеты от локального хоста:
- Блокировать входящий трафик на порт 80:
- Разрешить весь исходящий трафик:
3. Удаление
4. Сохранение и загрузка конфигурации
5. Создание логирования
🔵 Типы объектов
1. Таблицы (tables) – В nftables таблицы служат для организации правил. Каждая таблица привязывается к семейству (например, ip, ip6).
2. Цепочки (chains) – Цепочки представляют собой наборы правил. Основные встроенные цепочки:
3. Правила (rules) – Условия и действия, выполняемые на пакетах, такие как
🔵 Основные операторы
- accept – Разрешить пакет.
- drop – Заблокировать пакет.
- reject – Отклонить с ответом.
- log – Вести лог пакетов.
🔵 Примеры сложных правил
1. Ограничение скорости (rate limiting):
2. Использование сетов для IP-адресов:
3. Redirect на другой порт:
- Используйте
- Включайте логирование при тестировании правил для отладки (
- nftables имеет более гибкий синтаксис, чем iptables, и поддерживает более сложные условия и комбинации.
nftables - это инструменту для фильтрации пакетов в Linux, пришедшему на смену iptables.
1. Запуск
nft list ruleset # Показать все правила
nft add table ip filter # Создать таблицу filter для IPv4
nft add chain ip filter input # Создать цепочку input в таблице filter
2. Добавление правил
- Принять пакеты от локального хоста:
nft add rule ip filter input ip saddr 127.0.0.1 accept
- Блокировать входящий трафик на порт 80:
nft add rule ip filter input tcp dport 80 drop
- Разрешить весь исходящий трафик:
nft add rule ip filter output accept
3. Удаление
nft delete rule ip filter input handle <номер> # Удалить правило по handle
nft delete chain ip filter input # Удалить цепочку input
nft delete table ip filter # Удалить таблицу filter
4. Сохранение и загрузка конфигурации
nft list ruleset > /etc/nftables.conf # Сохранить правила
nft -f /etc/nftables.conf # Загрузить правила из файла
5. Создание логирования
nft add rule ip filter input log prefix "IN: " level debug
1. Таблицы (tables) – В nftables таблицы служат для организации правил. Каждая таблица привязывается к семейству (например, ip, ip6).
2. Цепочки (chains) – Цепочки представляют собой наборы правил. Основные встроенные цепочки:
input
, output
, forward
.3. Правила (rules) – Условия и действия, выполняемые на пакетах, такие как
accept
, drop
, reject
, log
.- accept – Разрешить пакет.
- drop – Заблокировать пакет.
- reject – Отклонить с ответом.
- log – Вести лог пакетов.
1. Ограничение скорости (rate limiting):
nft add rule ip filter input limit rate 5/second accept
2. Использование сетов для IP-адресов:
nft add set ip filter blacklist { type ipv4_addr; }
nft add rule ip filter input ip saddr @blacklist drop
nft add element ip filter blacklist { 192.168.1.1, 10.0.0.0/8 }
3. Redirect на другой порт:
nft add rule ip nat prerouting tcp dport 80 redirect to 8080
- Используйте
nft monitor
для слежения за изменениями правил в реальном времени.- Включайте логирование при тестировании правил для отладки (
log prefix "TEST: "
).- nftables имеет более гибкий синтаксис, чем iptables, и поддерживает более сложные условия и комбинации.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
Shell скрипт для управления Linux- пользователями
Функциональные возможности
Создание пользователей
Просмотр списка существующих пользователей
Сброс пароля для существующих пользователей
Блокировка / Разблокировка пользовтеля
Просмотр всех заблокированных пользователей
Создание резервной копии домашнего каталога пользователя
Генерирование SSH ключей для пользователя
Повышение пользователя до админа и обратно
Удаление пользователя
Запись всех действий в журнал actions.log
Резервные копии
Скрипт создает каталог резервных копий в папке скрипта и создает архив tar.gz с именем, содержащим - имя пользователя и текущую дату
Генерация SSH ключа
Для генерации используется ssh-keygen, в результате будут отображены сведения о том, куда был сохранен ключ и отображено содержимое публичного ключа:
https://github.com/m0zgen/user-manager
Функциональные возможности
Создание пользователей
Просмотр списка существующих пользователей
Сброс пароля для существующих пользователей
Блокировка / Разблокировка пользовтеля
Просмотр всех заблокированных пользователей
Создание резервной копии домашнего каталога пользователя
Генерирование SSH ключей для пользователя
Повышение пользователя до админа и обратно
Удаление пользователя
Запись всех действий в журнал actions.log
Резервные копии
Скрипт создает каталог резервных копий в папке скрипта и создает архив tar.gz с именем, содержащим - имя пользователя и текущую дату
Генерация SSH ключа
Для генерации используется ssh-keygen, в результате будут отображены сведения о том, куда был сохранен ключ и отображено содержимое публичного ключа:
https://github.com/m0zgen/user-manager
GitHub
GitHub - m0zgen/user-manager: ⚙ Linux script for user management
⚙ Linux script for user management. Contribute to m0zgen/user-manager development by creating an account on GitHub.
👍3❤2
📁 Работа с файлами и каталогами в Linux
В этом руководстве для начинающих пользователей мы ознакомимся с основными командами для работы с файлами и каталогами (иногда их еще называют директориями) в Linux-системах.
https://telegra.ph/Rabota-s-fajlami-i-katalogami-v-Linux-09-19
В этом руководстве для начинающих пользователей мы ознакомимся с основными командами для работы с файлами и каталогами (иногда их еще называют директориями) в Linux-системах.
https://telegra.ph/Rabota-s-fajlami-i-katalogami-v-Linux-09-19
❤2👍2
Объединение команд - последовательное и параллельное выполнение в bash
Символы групповых операций
Мы уже изучили достаточно команд и наверняка возникал вопрос как применить данные команды сразу к группе файлов. Например, за раз скопировать несколько файлов в каталог или наоборот удалить ненужные файлы. Делать одну и ту же операцию один за другим довольно утомительное и ненужное занятие.
Поэтому в Linux имеются специальные символы, которые позволяют проводить данные операции над несколькими файлами.
https://telegra.ph/Obedinenie-komand---posledovatelnoe-i-parallelnoe-vypolnenie-v-bash-10-12
Символы групповых операций
Мы уже изучили достаточно команд и наверняка возникал вопрос как применить данные команды сразу к группе файлов. Например, за раз скопировать несколько файлов в каталог или наоборот удалить ненужные файлы. Делать одну и ту же операцию один за другим довольно утомительное и ненужное занятие.
Поэтому в Linux имеются специальные символы, которые позволяют проводить данные операции над несколькими файлами.
https://telegra.ph/Obedinenie-komand---posledovatelnoe-i-parallelnoe-vypolnenie-v-bash-10-12
❤3👍2
API-аналитик трафика для Kubernetes, обеспечивающий видимость на уровне протоколов K8s в реальном времени, захватывающий и отслеживающий весь трафик и полезную нагрузку, проходящие в, из и между контейнерами, подами, узлами и кластерами. Вдохновленный Wireshark, специально разработан для Kubernetes.
👍2❤1
Выводим список установленных пакетов в Linux по дате
Порой необходимо узнать когда тот или иной пакет был установлен в операционной системе (например, в целях аудита). В данной статье рассмотрим как вывести список установленных пакетов в Linux, отсортированный по дате установки - давайте разберемся!
https://telegra.ph/Vyvodim-spisok-ustanovlennyh-paketov-v-Linux-po-date-09-10
Порой необходимо узнать когда тот или иной пакет был установлен в операционной системе (например, в целях аудита). В данной статье рассмотрим как вывести список установленных пакетов в Linux, отсортированный по дате установки - давайте разберемся!
https://telegra.ph/Vyvodim-spisok-ustanovlennyh-paketov-v-Linux-po-date-09-10
🔥3👍1
Продвинутая работа с логами в Linux
journalctl - Работа со структурированными логами
Журнал событий, это компонент systemd, который захватывает сообщения Syslog, логи ядра, все события при инициализации системы (RAM, диск, boot, STDOUT/STDERR для всех сервисов), индексирует их и затем предоставляет удобной пользовательский интерфейс для поиска и фильтрации логов. Журнал (systemd journal) можно использовать вместе или вместо syslog или syslog-ng.
Утилита командной строки journalctl, если сравнивать ее с традиционным инструментами для работы с логами в UNIX (tail, grep, sed, awk) более широкие возможности.
Давайте рассмотрим основные возможности которые предоставляет журнал systemd и способы их применения.
https://habr.com/ru/articles/749714/
journalctl - Работа со структурированными логами
Журнал событий, это компонент systemd, который захватывает сообщения Syslog, логи ядра, все события при инициализации системы (RAM, диск, boot, STDOUT/STDERR для всех сервисов), индексирует их и затем предоставляет удобной пользовательский интерфейс для поиска и фильтрации логов. Журнал (systemd journal) можно использовать вместе или вместо syslog или syslog-ng.
Утилита командной строки journalctl, если сравнивать ее с традиционным инструментами для работы с логами в UNIX (tail, grep, sed, awk) более широкие возможности.
Давайте рассмотрим основные возможности которые предоставляет журнал systemd и способы их применения.
https://habr.com/ru/articles/749714/
❤2