К основному контенту

Сообщения

Сообщения за февраль, 2025

Как настроить доступ к одному IP-адресу в локальной сети через два VPN-туннеля в схеме site-to-site?

Настроить доступ к одному IP-адресу в локальной сети через два VPN-туннеля (site-to-site) можно несколькими способами, в зависимости от того, какой эффект вы хотите получить: Резервирование (Failover) – Один VPN используется как основной, а второй как резервный, если первый выходит из строя. Балансировка нагрузки (Load Balancing) – Трафик распределяется между двумя туннелями. Маршрутизация (Policy-Based Routing) – Определенный трафик идет через один туннель, другой – через второй. Настройка резервирования (Failover) В этом сценарии маршруты на VPN-роутерах (или серверах) настраиваются с разными приоритетами. Шаги: Настроить оба VPN-туннеля (например, используя IPsec или OpenVPN). Добавить статические маршруты на клиентской стороне : Основной маршрут с меньшим metric (например, 10 ). Резервный маршрут с большим metric (например, 20 ). ip route add 192.168.1.100 via 10.10.10.1 dev tun0 metric 10 ip route add 192.168.1.100 via 10.10.20.1 dev tun1 metric 20 Настроить проверку доступн...

🔹 Что такое dRAID в ZFS: принципы работы, отличие от RAID-Z, преимущества и применение в Proxmox

ZFS — одна из самых мощных файловых систем, используемых в виртуализации и серверных решениях, таких как Proxmox VE. В последние годы появился новый тип RAID-массива в ZFS — dRAID (Distributed RAID) , который решает многие недостатки классических конфигураций RAID-Z и значительно ускоряет процесс восстановления данных. Разберем подробнее, как работает dRAID, в чем его преимущества и когда стоит его использовать. Основные принципы работы dRAID dRAID (Distributed RAID) — это распределенный RAID-массив , который обеспечивает быстрое восстановление данных , встроенные резервные блоки (hot spare) и равномерное распределение нагрузки . В отличие от классического RAID-Z, в котором резервные блоки (parity) располагаются последовательно, dRAID распределяет их по всей структуре пула, что делает процесс восстановления данных намного эффективнее. Ключевые отличия dRAID от RAID-Z 🔹 Распределенное резервирование В RAID-Z резервные блоки хранятся последовательно, что при восстановлении может замедл...

Как посмотреть системные вызовы в Linux, определить причину отказа в запуске приложения и что такое strace

Чтобы посмотреть системные вызовы, которые осуществляет приложение в Linux, можно использовать утилиту strace . Она позволяет отслеживать системные вызовы и сигналы, которые получает процесс. Как использовать strace : Запуск процесса с strace strace -f -o trace.log ./my_application -f — отслеживать дочерние процессы. -o trace.log — записать вывод в файл для последующего анализа. Отладка уже запущенного процесса Если приложение зависло или не работает как ожидается, можно подключиться к нему по PID: strace -p <PID> Фильтрация системных вызовов Если интересно только открытие файлов, можно использовать: strace -e open,openat, read ,write ./my_application Как определить, почему приложение не запускается Посмотреть ошибки в strace Ошибки ENOENT указывают на отсутствие файла или библиотеки. Ошибки EACCES говорят о проблемах с правами доступа. Ошибки ENOMEM означают нехватку памяти. segfault или SIGSEGV указывает на ошибку в коде приложения. Проверить зависимости с помощью ldd ld...

Полное руководство по типам юнитов systemd

В systemd есть несколько типов юнитов, каждый из которых отвечает за управление различными аспектами системы. Вот основные типы юнитов: 1. Service (.service) Используется для управления фоновыми службами (демонами). Запускает, останавливает и перезапускает процессы. Может зависеть от других юнитов. Поддерживает разные стратегии запуска ( Type= ). Пример: [Unit] Description =Example Service [Service] ExecStart =/usr/bin/example Restart =always Type =simple [Install] WantedBy =multi-user.target 2. Target (.target) Группирует другие юниты и задаёт состояние системы (например, multi-user.target похож на runlevel 3 в SysV). Пример: [Unit] Description =Custom Target Requires =network.target 3. Socket (.socket) Управляет сокетами, позволяя systemd запускать службы по запросу при первом соединении. Пример: [Socket] ListenStream = 12345 Accept = yes 4. Timer (.timer) Запускает сервисы по расписанию (замена cron). Пример: [Timer] OnBootSec = 5 min OnUnitActiveSec = 1 h 5. Path (.path...

Команда top в linux: подробный разбор и что такое Load Average

Команда top — это мощный инструмент для мониторинга процессов и использования ресурсов системы в реальном времени. Она показывает загрузку процессора, использование памяти, список процессов и другую важную информацию. 1. Запуск top и его интерфейс Простое выполнение команды: top После запуска появится таблица с данными о системе и процессах. Выход из top : Нажмите q для выхода. 2. Основные разделы вывода top Вывод top делится на несколько частей: 1. Строка общей информации (Summary Information) Верхние строки содержат общие показатели системы. Пример вывода: top - 15 : 32 : 45 up 3 days, 4 : 21 , 1 user , load average: 0.72 , 0.85 , 0.90 15:32:45 — текущее время. up 3 days, 4:21 — время работы системы (3 дня, 4 часа 21 минута). 1 user — количество пользователей в системе. load average: 0.72, 0.85, 0.90 — средняя загрузка системы за 1, 5 и 15 минут. Значение > 1 означает, что есть процессы, ожидающие выполнения. Как читать Load Average в Linux на разных конфигурациях ...

Что такое Redfish API? Развертывание серверов через Redfish API: подробное руководство с примерами

Введение в Redfish API Redfish API — это стандартный интерфейс управления серверами, разработанный DMTF (Distributed Management Task Force). Он предоставляет RESTful API для взаимодействия с серверными системами, включая включение/выключение, мониторинг состояния и развертывание операционной системы. Этот API позволяет автоматизировать управление серверами без необходимости физического доступа или использования устаревших интерфейсов, таких как IPMI. Требования Прежде чем приступить к работе, необходимо подготовить следующее: Сервер с поддержкой Redfish (например, HPE iLO, Dell iDRAC, Lenovo XClarity, Cisco UCS и др.). Доступ к Redfish API через сеть. Учетные данные для аутентификации. Инструмент для работы с API (cURL, Postman, Python с библиотекой requests ). Подключение и аутентификация Для взаимодействия с Redfish API используется стандартный HTTP-запрос с аутентификацией по логину и паролю. Например, для проверки работоспособности интерфейса можно выполнить GET-запрос ...

Как внедрять Observability в микросервисах?

Observability (наблюдаемость) в микросервисной архитектуре играет ключевую роль в обеспечении стабильности, быстрого обнаружения и устранения проблем. В отличие от традиционного мониторинга, который фокусируется на заранее определенных метриках, Observability позволяет анализировать внутреннее состояние системы на основе логов, метрик и трассировки. В этой статье мы подробно разберем, как правильно внедрять Observability в микросервисную архитектуру, какие инструменты использовать и на что обращать внимание. Основные компоненты Observability В Observability выделяют три ключевых компонента: Метрики (Metrics) – количественные показатели состояния системы (загрузка CPU, использование памяти, время отклика и т. д.). Логи (Logs) – структурированные или неструктурированные записи событий в системе. Трассировка (Tracing) – детальный путь запроса через распределенную систему, позволяющий определить узкие места и задержки. Эти три компонента дополняют друг друга, обеспечивая полный обзор ра...

Как защитить бизнес от кибератак в 2025 году?

 В 2025 году киберугрозы становятся все более изощренными, а бизнесу необходимо принимать проактивные меры для защиты данных, систем и репутации. В этой статье мы рассмотрим актуальные угрозы и предложим эффективные стратегии кибербезопасности. 1. Основные киберугрозы в 2025 году Фишинг и социальная инженерия Атаки с использованием поддельных писем, сообщений и звонков становятся все более сложными. Современные алгоритмы машинного обучения позволяют хакерам создавать правдоподобные поддельные коммуникации. Вредоносное ПО и программы-вымогатели Программы-вымогатели (ransomware) продолжают эволюционировать, нацеливаясь на критические бизнес-системы и требуя выкуп за дешифровку данных. Угрозы облачным сервисам С ростом использования облачных технологий увеличиваются и риски утечки данных, а также атак на облачную инфраструктуру. Взлом IoT-устройств Интернет вещей (IoT) все чаще становится объектом атак из-за недостаточного уровня безопасности и слабых паролей. Атаки на цепочку поставо...

Настройка защиты SSH с помощью Fail2Ban

 Fail2Ban помогает защитить SSH от брутфорс-атак, блокируя IP-адреса, с которых поступает слишком много неудачных попыток входа. 1. Установка Fail2Ban На Debian/Ubuntu: sudo apt update && sudo apt install fail2ban -y На CentOS/RHEL: sudo yum install epel-release -y sudo yum install fail2ban -y Запускаем и включаем автозапуск: sudo systemctl enable --now fail2ban 2. Создание конфигурации для SSH Файл /etc/fail2ban/jail.local (если его нет — создаем): sudo nano /etc/fail2ban/jail.local Добавляем или редактируем блок: [sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log bantime = 600 findtime = 600 maxretry = 3 bantime – время блокировки (в секундах, -1 для постоянной блокировки). findtime – временной интервал для подсчета неудачных попыток. maxretry – максимальное количество попыток до блокировки. На CentOS/RHEL путь к логам может быть другим: logpath = /var/log/secure 3. Перезапуск Fail2Ban и проверка Применяем настройки: sudo systemc...