obit_admin

Графический процессор (GPU)

Графический процессор (GPU или Graphics Processing Unit) — это устройство для управления памятью видеокарт и вывода графики на экран. Этот микропроцессор может присутствовать в видеокартах различных устройств: от смартфонов и приставок до ПК и суперкомпьютеров. Его применяют для сложных расчетов, с помощью которых изображение проецируется на экран, а также для обработки больших данных.

Отличие GPU от CPU

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

Принцип работы GPU

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

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

Встроенные и дискретные графические процессоры

Принято разделять iGPU и дискретные GPU:

  • iGPU — встроенный микропроцессор без кеша и собственной оперативной памяти, который размещается на плате с CPU и работает на одной линии питания с центральным процессором. Такие GPU отличаются меньшей производительностью и большей экономичностью
  • Дискретный графический процессор помещается на видеокарте, отдельно от CPU. Такие устройства отличаются высокой производительностью и не менее высоким расходом электроэнергии. 

Сфера применения графических процессоров

Чаще всего GPU используют в графических и видеоредакторах, в современных видеоиграх, для 3D-визуализации, исследований, майнинга, AI, IoT и суперкомпьютеров — везде, где нужны максимальные мощности.

Data Vault

Data Vault — модель хранилища, которая подходит для длительного хранения большого массива разнородных данных.

При размещении данных в Data Vault ставятся временные отметки. С их помощью можно проследить, как со временем менялась хранящаяся информация. Это позволяет использовать такой вид хранилища в системах управления взаимоотношений с клиентами, системах анализа, аудиторских системах и др.

История

Модель хранилища Data Vault была создана Дэном Линстедтом в конце 20 века и стала доступна для разработчиков в 2000 году. Ее создатель описал общую концепцию, правила создания таблиц, способы обработки запросов пользователей и загрузки данных. 13 лет спустя в Data Vault 2.0 появился разбор бесшовной интеграции хранилища, а также его применения в NoSQL, при работе с неструктурированными данными и Big Data.

Основные особенности Data Vault

Модель относится к хранилищам с измерениями, однако отличается от других моделей этого типа. Она была разработана в ответ на потребность отказаться от последовательного изменения связанных таблиц при внесении изменений в одну из них. В Data Vault добавлены таблицы Satellite, которые содержат дополнительные описания к таблицам Hub и Link, структура которых сохраняется на протяжении жизненного цикла. Изменения, которые вносятся в Satellite, не затрагивают связанные таблицы.

Благодаря тому, что версии хранятся в Satellite, а не полноразмерных таблицах, общий объем базы данных сокращается. Структура хранилища становится более простой и понятной, что упрощает доступ к информации.

Составляющие Data Vault

  • Hub — таблица фактов для хранения ключевых данных о сущностях базы данных. Записи в ней не изменяются в процессе работы с хранилищем, что обеспечивает стабильность структуры базы данных.
  • Link — таблица для связи между таблицами фактов. Такие таблицы содержат ссылки на суррогатные ключи связанных таблиц фактов.
  • Satellite — описательные атрибуты сущностей Hub и Link. Здесь хранятся изменяемые атрибуты сущностей. 

Плюсы модели Data Vault

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

Что такое файловый сервер и как его выбрать

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

Прокси-сервер

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

В разных сценариях эти посредники служат различным целям:

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

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

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

Типы прокси-серверов

Прокси-серверы бывают разных типов, каждый из которых служит определенным целям. Рассмотрим основные классификации прокси-серверов, проливающие свет на их функциональные возможности:

  • Прозрачный прокси. Этот тип прокси-сервера не скрывает никакой информации от посещаемого сайта. Он открыто сообщает сайту о своей прокси-природе и выдает IP-адрес пользователя посещаемому ресурсу. Прозрачные прокси часто встречаются в государственных учреждениях и школах.
  • Анонимный прокси. Считается более предпочтительным, если анонимный прокси информирует посещаемый ресурс о своем прокси-статусе, но не передает персональные данные пользователя. Таким образом, обе стороны получают обезличенную информацию. Однако поведение сайта, знающего о взаимодействии с прокси, остается неопределенным.
  • Искажающий прокси. Искажающие прокси честно идентифицируют себя, но вместо передачи подлинных данных о пользователе предоставляют фальшивую информацию. В результате сайты воспринимают взаимодействие с такими прокси как подлинное, что позволяет получить доступ к контенту, ограниченному для определенных регионов.
  • Private Proxy. Частные прокси, предназначенные для лиц, для которых приоритетом является конфиденциальность, регулярно меняют IP-адреса, постоянно предоставляют фальшивые данные и значительно снижают вероятность отслеживания веб-ресурсами трафика пользователя и его привязки к нему.

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

Контейнеризация

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

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

Всплеск интереса к контейнерным решениям и их повсеместное внедрение привели к созданию стандартов упаковки программного кода в контейнеры. В 2015 году компания Docker и другие лидеры отрасли объединились в проект Open Container Initiative (OCI) для разработки этих стандартов. Стандарты OCI позволяют пользователям использовать технологии контейнеризации от любого поставщика, сертифицированного OCI.

Типы контейнеров

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

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

Контейнеры и виртуальные машины: отличия

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

Виртуальная машина (ВМ) — это, по сути, операционная система (ОС), развернутая внутри другой операционной системы. ВМ обладает собственным ядром и определенными изолированными ресурсами.

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

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

Применение контейнеризации

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

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

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

Какие преимущества у контейнеризации

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

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

Управление контейнерами

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

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

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

Kubernetes – что это?

Kubernetes (K8S) представляет собой комплексную среду для оркестровки приложений, заключенных в контейнеры. K8S автоматизирует инициализацию контейнеров, облегчает их масштабирование и обеспечивает координацию их работы в рабочем пространстве.

Основные возможности Kubernetes включают:

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

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

Установка сервера 1С на Ubuntu 22.04

Нужно открыть сайт: https://releases.1c.ru/total

Получение унифицированного дистрибутива «1С:Предприятия» для Linux облегчается, начиная с версии 8.3.20. В предыдущих выпусках все модули «1С» распространялись в виде пакетов .deb, и примеры установки более ранних версий «1С» рассмотрены в данном руководстве.

После того как дистрибутив загружен, с помощью утилиты WinSCP загрузите его на сервер. Убедитесь, что дистрибутив помещен в корневой каталог пользователя root.

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

Начните с установки библиотеки libenchant1c2a. Добавьте в файл /etc/apt/sources.list ссылку на репозиторий главной вселенной фокуса http://cz.archive.ubuntu.com/ubuntu.

Далее обновите список пакетов:

Переход в режим суперпользователя:

sudo -s

Обновить список пакетов:

sudo apt-get update

Установите libenchant1c2a:

apt install libenchant1c2a

Установите набор программ для чтения и редактирования:

sudo apt-get install imagemagick

Установите менеджер драйверов ODBC:

sudo apt-get install unixodbc

Установите набор шрифтов Microsoft:

sudo apt-get install ttf-mscorefonts-installer

sudo apt-get install libgsf-1-114

Распакуйте загруженный архив:

bash

tar -xzf server64_8_3_21_1484.tar.gz

Запустите установку дистрибутива:

bash

./setup-full-8.3.21.1484-x86_64.run —mode unattended —enable-components server,ws,server_admin

В данном сценарии мы устанавливаем кластер серверов 1С, сервер администрирования кластера и модули расширения веб-сервера в пакетном режиме.

Пакетный режим включается включением в командную строку программы установки команды —mode unattended. Команда —enable-components задает компоненты для установки, перечисленные через «,». Параметры этой команды могут включать:

Здесь приведены идентификаторы и описания различных компонентов в процессе установки:

additional_admin_functions: Установка утилиты административной консоли.

client_full: Установка толстого клиента и включение работы в конфигураторе.

client_thin: Установка тонкого клиента без возможности работы с файловым вариантом информационной базы.

client_thin_fib: Установить тонкий клиент, позволяющий работать с любым вариантом информационной базы.

config_storage_server: Установка сервера хранения конфигурации.

integrity_monitoring: Установка утилиты мониторинга целостности.

liberica_jre: Установить среду выполнения Liberica Java Runtime Environment (JRE).

server: Установить кластер серверов «1С:Предприятие».

server_admin: Установить сервер администрирования для кластера серверов «1С:Предприятие».

ws: Установить модули расширения веб-сервера.

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

Начиная с версии 8.3.21, «1С» начала использовать подсистему systemd. В комплект поставки входит системный скрипт для запуска кластера серверов и сервера администрирования (ras), а также их конфигурационные файлы. Эти файлы обычно находятся в папке платформы, обычно по адресу /opt/1cv8/x86_64/platform_number.

Установите сервер 1С с помощью следующих команд:

Свяжите скрипт systemd:

bash

systemctl link /opt/1cv8/x86_64/8.3.21.1484/srv1cv8-8.3.21.1484@.service

Запустите сервер 1С:

bash

sudo systemctl start srv1cv8-8.3.21.1484@default.service

Добавить в автозапуск:

bash

sudo systemctl enable srv1cv8-8.3.21.1484@default.service

Проверить состояние сервера 1С:

bash

sudo systemctl status srv1cv8-8.3.21.1484@default.service

После этого установите PostgreSQL 14 или PostgreSQL 15 и приступайте к подключению лицензий и созданию баз данных 1С.

Для администрирования сервера используйте веб-консоль RUN, инструкция по установке и использованию которой доступна здесь. Установка сервера 1С выполняется следующими командами:

Подключите скрипт systemd:

bash

systemctl link /opt/1cv8/x86_64/8.3.21.1484/srv1cv8-8.3.21.1484@.service

Запустите сервер 1С:

bash

sudo systemctl start srv1cv8-8.3.21.1484@default.service

Добавить в автозапуск:

bash

sudo systemctl enable srv1cv8-8.3.21.1484@default.service

Проверить состояние сервера 1С:

bash

sudo systemctl status srv1cv8-8.3.21.1484@default.service

После этого установите PostgreSQL 14 или PostgreSQL 15 и приступайте к подключению лицензий и созданию баз данных 1С.

Для администрирования сервера используйте веб-консоль RUN, инструкции по установке и использованию которой доступны здесь.

Установка Apache на Ubuntu 22.04

Термин «Apache» обычно обозначает Apache HTTP Server, широко распространенный в мире сервер веб-приложений. Apache известен тем, что является бесплатным программным обеспечением с открытым исходным кодом.

Первоначально Apache HTTP Server был выпущен в 1995 году и разработан Робертом МакКулом в Университете штата Иллинойс (UIUC).

В этом руководстве мы рассмотрим процесс установки веб-сервера Apache на сервер Ubuntu 22.04 с помощью терминала командной строки.

Процесс установки Apache на Ubuntu 22.04

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

sudo apt update

Теперь приступим к установке пакета apache2:

sudo apt install apache2 -y

Убедитесь в правильности установки, проверив состояние службы Apache:

systemctl status apache2

Ожидаемый результат должен выглядеть следующим образом:

  • apache2.service — HTTP-сервер Apache

     Загружен: загружен (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)

     Активен: активен (работает) с Fri 2022-10-28 07:16:16 MSK; 9s ago

       Документы: https://httpd.apache.org/docs/2.4/

   Основной PID: 54163 (apache2)

      Задачи: 55 (лимит: 4580)

     Память: 4.8M

        CPU: 18 мс

     CGroup: /system.slice/apache2.service

             ├─54163 /usr/sbin/apache2 -k start

             ├─54165 /usr/sbin/apache2 -k start

             └─54166 /usr/sbin/apache2 -k start

Чтобы Apache2 запускался автоматически, добавьте его в автозагрузку:

sudo systemctl enable apache2

Настройка Firewall

Если UFW не установлен в системе, установите его с помощью команды:

sudo apt install ufw -y

Включите запуск UFW при загрузке:

sudo ufw enable

Учитывая, что Apache использует порты 80 (http) и 443 (https), необходимо обязательно предоставить доступ к этим портам. К счастью, Apache автоматически регистрирует несколько профилей во время установки, упрощая процесс настройки. Для подтверждения выполните следующую команду:

sudo ufw app list

В результате должны появиться следующие данные:

Доступные приложения:

Apache

Apache Full

Apache Secure

OpenSSH

Выберите профиль «Apache Full» и разрешите доступ:

sudo ufw allow ‘Apache Full’

Убедитесь, что правила брандмауэра действуют:

sudo ufw status

Ожидаемый результат:

Статус: активен

To Action From

— —— —-

Apache Full ALLOW Anywhere

Apache Full (v6) ALLOW Anywhere (v6)

Если UFW настроен правильно, то вы должны иметь возможность получить доступ к целевой странице Apache в своем веб-браузере, используя IP-адрес сервера:

http://your_server_ip

Как настроить VPN-сервер WireGuard на CentOS

WireGuard — это приложение, предназначенное для создания защищенной виртуальной частной сети (VPN) с удобным интерфейсом и простой настройкой. Используя надежные криптографические протоколы и алгоритмы, программа обеспечивает шифрование данных. Изначально разработанная для ядра Linux, программа WireGuard была расширена до совместимости с Windows, macOS, FreeBSD, iOS и Android.

Шаг 1. Установка сервера WireGuard на CentOS

Для начала получите последние обновления, выполнив следующие команды:

sudo yum update 

sudo dnf update

Для установки необходимых модулей ядра и инструментов WireGuard включите репозитории EPEL и Elrepo:

sudo dnf install epel-release elrepo-release -y

Убедитесь, что репозиторий PowerTools активен, поскольку пакеты EPEL могут полагаться на его компоненты:

sudo yum install ‘dnf-command(config-manager)’

sudo yum config-manager —set-enabled PowerTools

Перед установкой модуля ядра WireGuard активируйте его официальный репозиторий:

sudo yum copr enable jdoss/wireguard

Наконец, перейдите к установке WireGuard:

sudo yum install wireguard-dkms wireguard-tools

Шаг 2. Генерация закрытого и открытого ключей

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

Перед созданием пары ключей перейдите в каталог.

Перейдите в каталог WireGuard с помощью команды:

cd /etc/wireguard

Настройте разрешения для этого каталога:

umask 077

Для генерации пары ключей выполните следующую команду:

wg genkey | tee private.key | wg pubkey > public.key

Проверьте сгенерированные ключи с помощью команд:

ls -l privatekey publickey

sudo cat privatekey

sudo cat publickey

Запишите оба ключа, так как они потребуются в дальнейшем.

Шаг 3. Настройка серверной конфигурации

Для начала настройки сервера WireGuard перейдите в папку /etc/wireguard и создайте файл wg0.conf с помощью команды:

sudo nano /etc/wireguard/wg0.conf

Добавьте в конфигурационный файл последующие директивы, заполнив данные ключами, сгенерированными ранее:

[Interface]

PrivateKey = <contents-of-server-privatekey>

Address = 10.0.0.1/24

PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

ListenPort = 51820

[Peer]

PublicKey = <contents-of-client-publickey>

AllowedIPs = 10.0.0.0.2/32

Извлеките сгенерированный ранее закрытый ключ и вставьте его в поле PrivateKey.

Затем сгенерируйте пару ключей для клиента, скопируйте открытый ключ клиента и вставьте его в поле PublicKey. Для копирования значения ключа воспользуйтесь следующими командами:

sudo cat /etc/wireguard/public.key

sudo cat /etc/wireguard/private.key

Шаг 4. Настройка FireWall

По умолчанию брандмауэр ограничивает все соединения между внутренней сетью (wg0) и публичной сетью (eth0). Давайте изменим эту конфигурацию с помощью следующих команд:

sudo firewall-cmd —add-interface=wg0 —zone=internal

sudo firewall-cmd —permanent —zone=internal

Шаг 5. Запуск WireGuard и включение его при загрузке

Теперь сервер готов к запуску. Для запуска WireGuard воспользуйтесь командой wg-quick и укажите имя нового интерфейса:

wg-quick up wg0

Если конфигурация верна, то на экране появится следующее окно:

[WireGuard for CentOS — Screenshot].

Чтобы проверить состояние сервера WireGuard, введите:

wg show

Создание и удаление баз MySQL

В эпоху Больших Данных резко возросла потребность в эффективной работе с гетерогенными массивами данных, включающей такие задачи, как структурирование, хранение и использование информации. Хотя электронные таблицы и текстовые редакторы являются удобными инструментами, они зачастую не обеспечивают достаточной скорости выполнения задач и не обладают необходимой отказоустойчивостью для эффективного управления Большими Данными. В качестве решения для организации табличных данных появляется система управления базами данных (СУБД) MySQL, использующая декларативный подход к формированию запросов.

При использовании MySQL пользователь избавлен от необходимости разбираться в тонкостях методов поиска данных. Вместо этого они могут формулировать запросы на человекоподобном языке для получения нужной информации. Важнейшую роль в эффективном управлении этой системой играет язык программирования SQL.

Создать или удалить

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

mysql -u root -p -h localhost

Создайте базу данных командой ниже, затем нам нужно проверить, была ли она создана?

CREATE database product;

SHOW DATABASES;

Как видно, регистр букв может быть как прописным, так и строчным, хотя это различие относится только к синтаксическим командам. Создание нашей базы данных не представляет собой ничего сложного, как показано в таблице выше. Поясним синтаксис: «CREATE» служит командой для создания базы данных, «DATABASE» обозначает тип базы данных, а «product» — это просто метка для базы данных.

Для удаления нужная команда может быть выполнена следующим образом:

DROP DATABASE product;

SHOW DATABASES;

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

GRANT ALL on *.* to ‘your_user_name’@’domain_name’;

Вывод

В эпоху больших данных эффективная обработка, хранение, контроль, обновление и использование огромных наборов данных в режиме реального времени стали обязательными. Традиционным инструментам, таким как текстовые редакторы или базовые электронные таблицы, не хватает скорости и отказоустойчивости, необходимых для обработки обширных массивов данных. В ответ на эту проблему система управления базами данных MySQL (СУБД) стала надежным решением для управления таблицами.

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

Настройка прокси-сервера

Прокси-сервер на Windows

Для конфигурации Windows начните процесс с поиска «Proxy» в строке поиска или перейдите в раздел Настройки → Сеть и Интернет → Proxy Server.

Для Linux

Чтобы настроить прокси-сервер в Linux, зайдите в раздел «Настройки» и выберите значок шестеренки рядом с пунктом «Сетевой прокси».

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

  1. Откройте файл /etc/environment для редактирования, выполнив команду sudo nano /etc/environment.
  2. Перейдите в конец файла и включите в него строки, аналогичные следующим:

Protocol_proxy name=»Protocol name://user:pass@proxy:port/».

  1. Для применения изменений перезагрузите систему.

Для MacOS

Чтобы настроить прокси-сервер на macOS, запустите Safari и перейдите в раздел «Параметры». После того, как вы открыли панель с выбором параметров конфигурации выберите Дополнения и начните изменение настроек.

Также можно получить доступ к настройкам прокси-сервера, нажав на значок Wi-Fi или Интернета, а затем выбрав пункт Настройки Wi-Fi.

Выберите текущую подключенную сеть и нажмите кнопку Подробности. Затем перейдите на вкладку Прокси-сервер. В этом разделе выберите нужный тип прокси-сервера и введите указанные IP-адрес и порт. При необходимости укажите учетные данные для входа в систему.

Настройка сервера прокси в браузере

Чтобы настроить прокси-сервера в браузере не нужно использовать иные методы. В Google Chrome -> Настройки, ввести в строке поиска «Proxy». Далее выбрать «Открыть настройки прокси-сервера для компьютера», после чего браузер направит вас к настройкам прокси для вашей операционной системы. 

В Mozilla Firefox в строке поиска в меню настроек введите «Настройки сети». Этот пункт откроет доступ к настройкам соединения.

Пользователи браузера Opera могут настроить параметры прокси-сервера, набрав в строке поиска «Proxy» и выбрав пункт «Открыть настройки прокси-сервера для компьютера». Для Microsoft Edge процесс аналогичен:

Аналогичный процесс и для браузера Microsoft Edge:

Настройка прокси-сервера для телефонов или планшетов на Android и iOS

Для начала вам необходимо получить доступ в панель управления настройками. После этого выберите пункт «Подключения»; название раздела может отличаться на Android в зависимости от оболочки, в то время как на iOS он обозначен как Wi-Fi. В ручном режиме установите настройки конфигурации прокси. 

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

Заключение

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

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

Cloud-init

Cloud-init представляет собой комплекс сценариев, направленных на применение пользовательских данных к экземплярам виртуальных машин. Этот инструмент находит применение в различных операционных системах, включая Linux и FreeBSD, и функционирует на различных приватных и облачных платформах.

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

Функции:

  • Настройка сетевых интерфейсов;
  • Настройка разрешения имен сети;
  • Настройка временных точек монтирования;
  • Установка хостнейма;
  • Установка SSH-ключей для аутентификации отдельных пользователей;
  • Установка паролей пользователей;

Принцип работы

Cloud-init получает информацию о необходимых модификациях из источников данных. Метод извлечения метаданных во время загрузки определяется конкретными источниками данных, которые по умолчанию обнаруживаются автоматически.

Что такое почтовый сервер и как он работает

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

Чем отличается VDS от VPS-сервера и что выбрать для бизнеса

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

Как защитить корпоративную почту

RTP-запись для почтовых серверов

RTP/Pointer(англ. “указатель”) – ресурсная запись(или DNS-запись, с помощью которых можно внести служебную информацию о сервере), которая IP-адрес сервера связывает с доменом.

Оно защищает пользователей от спама. Почтовые службы проверяют, соответствует ли IP-адрес сервера настоящему домену компании. Все подозрительные письма отправляются в спам.

SPF-запись от фишинга

SPF(“Sender Policy Framework” с англ. “структура политики отправителя”) – ресурсная запись, которая находится внутри другой TXT-записи. Это код, точнее – список доверенных IP, с помощью которых можно отправлять письма от имени домена.

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

Механизмы шифрования SMPT

SMPT(“Simple Mail Transfer Protocol” с англ. “простой протокол передачи почты”) – протокол, который отвечает за отправку писем.

Перед отправкой электронного письма SMTP-сервер выполняет несколько задач. Он проверяет настройки на компьютере отправителя и устанавливает соединение с почтовым сервером получателя. Если настройки верны, письмо отправляется, и протокол подтверждает его доставку. В случае ошибки сервер выдает уведомление. Основные задачи SMTP-сервера-проверка параметров передачи, проверка на спам.

Email-аутентификации DKIM

DKIM – цифровая подпись для писем. Благодаря ему можно снизить вероятность попадания письма вашей компании в спам и обезопасить себя от фишинга.

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

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

Черные и белые списки адресов

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

Смена пароля раз в полгода

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

Отказ от бесплатных сервисов

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

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

Обучение сотрудников правилам безопасности

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

Сервер для Форекс

Для торговли на Forex важна автоматизация процесса онлайн-трейдинга. Специальные программы могут работать 24 часа в сутки. Однако для этого необходимо обеспечить устойчивое подключение к брокерским серверам.

Установка NextCloud на Ubuntu 20.10

Nextcloud — это мощная платформа для синхронизации и обмена файлами. Ниже приводится пошаговое руководство по установке Nextcloud на Ubuntu 20.10.

Шаг 1: Обновление и модернизация системных пакетов

Перед началом работы убедитесь, что система обновлена:

sudo apt update

sudo apt upgrade

Шаг 2: Установка необходимых пакетов

Установите необходимые пакеты, включая Apache, MariaDB (или MySQL), PHP и другие необходимые инструменты:

sudo apt install apache2 mariadb-server libapache2-mod-php7.4 php7.4-gd php7.4-json php7.4-mysql php7.4-curl php7.4-mbstring php7.4-intl php7.4-imagick php7.4-xml php7.4-zip

Шаг 3: Настройка базы данных

Защитите установку MariaDB и установите пароль для пользователя root:

sudo mysql -u root -p

CREATE DATABASE nextcloud;

CREATE USER ‘nextclouduser’@’localhost’ IDENTIFIED BY ‘your_password’;

GRANT ALL PRIVILEGES ON nextcloud.* TO ‘nextclouduser’@’localhost’;

FLUSH PRIVILEGES;

EXIT;

Шаг 4: Загрузка и настройка Nextcloud

Загрузите последнюю версию Nextcloud с официального сайта:

cd /var/www/html

sudo wget https://download.nextcloud.com/server/releases/latest.zip

sudo unzip latest.zip

sudo chown -R www-data:www-data nextcloud

sudo rm latest.zip

Шаг 5: Настройка Apache

Создайте новый файл конфигурации виртуального хоста Apache для Nextcloud:

sudo nano /etc/apache2/sites-available/nextcloud.conf

Добавьте следующее содержимое:

<VirtualHost *:80>

    ServerAdmin admin@example.com

    DocumentRoot /var/www/html/nextcloud

    ServerName your_domain.com

    Alias /nextcloud «/var/www/html/nextcloud/»

    <Directory /var/www/html/nextcloud/>

        Options +FollowSymlinks

        AllowOverride All

        Require all granted

        <IfModule mod_dav.c>

            Dav off

        </IfModule>

        SetEnv HOME /var/www/html/nextcloud

        SetEnv HTTP_HOME /var/www/html/nextcloud

    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log

    CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined

</VirtualHost>

Включите виртуальный хост:

sudo a2ensite nextcloud.conf

Отключите сайт Apache по умолчанию:

sudo a2dissite 000-default.conf

Включите необходимые модули Apache:

sudo a2enmod rewrite headers env dir mime

Перезапустите Apache для применения изменений:

sudo systemctl restart apache2

Шаг 6: Завершение установки Nextcloud

Откройте веб-браузер и перейдите по адресу http://your_domain.com/nextcloud. Следуйте указаниям мастера установки:

  • Задайте имя пользователя и пароль администратора.
  • В качестве типа базы данных выберите MariaDB/MySQL.
  • В качестве пользователя базы данных используйте nextclouduser и пароль, заданный ранее.
  • В качестве хоста базы данных используйте localhost.

Шаг 7: Защита Nextcloud

Отредактируйте конфигурационный файл Nextcloud, чтобы добавить доверенный домен:

sudo nano /var/www/html/nextcloud/config/config.php

Добавьте свой домен в массив trusted_domains:

‘trusted_domains’ => 

  array (

    0 => ‘your_domain.com’,

  ),

Шаг 8: Завершение установки

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

Как установить и настроить Active Directory 

Установка и настройка Active Directory (AD) предполагает создание централизованной системы аутентификации и управления для сетей на базе Windows. Здесь представлено полное пошаговое руководство по установке и настройке Active Directory.

Шаг 1: Подготовка среды

Убедитесь, что ваш сервер соответствует требованиям к аппаратному и программному обеспечению Windows Server, необходимому для работы AD. Установите статический IP-адрес для сервера, поскольку AD требует согласованной конфигурации сети.

Шаг 2: Установка доменных служб Active Directory

  1. Установите Windows Server на выбранную вами машину.
  2. После установки откройте Server Manager на панели задач.
  3. Нажмите на «Управление» в правом верхнем углу, затем выберите «Добавить роли и возможности».
  4. Пройдите через мастер, выбирая значения по умолчанию, пока не перейдете на страницу «Выбор ролей сервера».
  5. Отметьте «Active Directory Domain Services» и следуйте подсказкам для установки.

Шаг 3: Преобразование сервера в контроллер домена

  1. В диспетчере серверов нажмите «Перевести этот сервер в контроллер домена».
  2. Выберите «Добавить новый лес» и укажите имя корневого домена.
  3. Установите пароль режима восстановления служб каталогов (DSRM).
  4. Выберите функциональные уровни домена и леса.
  5. Настройте параметры DNS и следуйте подсказкам для завершения установки.

Шаг 4: Настройка параметров Active Directory

  1. Откройте «Active Directory Users and Computers» из Administrative Tools.
  2. Создайте организационные единицы (OU) для организации пользователей и компьютеров.
  3. Используйте «Active Directory Sites and Services» для настройки репликации и топологии сайтов.
  4. Откройте «Управление групповыми политиками» для создания и управления групповыми политиками.

Шаг 5: Дополнительная конфигурация

Убедитесь, что DNS правильно настроен, поскольку AD в значительной степени полагается на DNS для разрешения имен.

Установите Trust Relationships, если у вас несколько доменов или лесов.

Создайте план резервного копирования и восстановления Active Directory, включая резервное копирование состояния системы.

SSH туннель: как создать и использовать? 

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

Шаг 1: Понимание туннелей SSH

Существует три типа туннелей SSH, которые можно использовать:

  1. Локальная переадресация портов. Перенаправляет трафик с локального порта на удаленный сервер через SSH-соединение. Применяется для доступа к службам удаленного сервера, которые в противном случае недоступны из-за ограничений брандмауэра или системы безопасности.
  2. Переадресация удаленного порта: Перенаправляет трафик с удаленного сервера на локальную машину через SSH-соединение. Применяется в тех случаях, когда необходимо открыть локальную службу для доступа к сети удаленного сервера.
  3. Динамическая переадресация портов (SSH SOCKS Proxy). Создает туннель динамической переадресации портов, позволяющий направлять весь сетевой трафик через удаленный сервер. Это может быть использовано для повышения уровня конфиденциальности или обхода сетевых ограничений.

Шаг 2: Создание туннеля SSH

Если у вас есть SSH-доступ к удаленному серверу, то вот как создать эти типы туннелей.

Локальная переадресация портов:

ssh -L local_port:remote_server:remote_port user@remote_server

Замените local_port, remote_server, remote_port и user на соответствующие значения.

Переадресация удаленного порта:

ssh -R remote_port:local_machine:local_port user@remote_server

Динамическая переадресация портов:

ssh -D local_port user@remote_server

Шаг 3: Использование туннеля SSH

После создания туннеля вы можете использовать его для безопасного доступа к удаленным сервисам или для маршрутизации сетевого трафика.

Локальная переадресация портов — откройте веб-браузер и перейдите по адресу http://localhost:local_port. Трафик будет безопасно туннелироваться на удаленный сервер и далее на указанный remote_port.

Переадресация удаленного порта — на удаленном сервере можно получить доступ к локальной службе, подключившись к http://localhost:remote_port.

Динамическая переадресация портов — настройте свои приложения (например, веб-браузеры) на использование SOCKS-прокси по адресу localhost:local_port. Это позволит направлять весь сетевой трафик через удаленный сервер.

Шаг 4: Закрытие SSH-туннеля

Чтобы закрыть SSH-туннель, просто прервите SSH-соединение, нажав Ctrl+C в терминале, в котором был создан туннель.

Создание и настройка .htaccess 

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

Шаг 1: Создание файла .htaccess

Откройте текстовый редактор, например Nano или Vim, или воспользуйтесь графическим редактором, например Gedit.

Создайте новый файл с именем .htaccess (обратите внимание на ведущую точку) в каталоге, где будут действовать его правила. Это может быть корневой каталог вашего сайта или любой подкаталог.

Шаг 2: Добавьте правила в .htaccess

Несколько распространенных вариантов использования файла .htaccess. 

  1. Включение переписывания URL:

Переписывание URL позволяет манипулировать URL-адресами и делать их более удобными для пользователей или SEO. Например, можно преобразовать example.com/page.php?id=123 в example.com/page/123.

Для включения функции перезаписи URL-адресов, необходимо включить модуль mod_rewrite в Apache и включить правила в файл .htaccess. Пример правила:

RewriteEngine On

RewriteRule ^page/([0-9]+)$ page.php?id=$1 [L]

  1. Блокировка доступа к файлам или каталогам:

С помощью .htaccess можно ограничить доступ к определенным файлам или каталогам. Например, чтобы запретить доступ к определенному файлу:

<Files «sensitive-file.txt»>

    Order allow,deny

    Deny from all

</Files>

  1. Настройка пользовательских страниц ошибок:

Вы можете создавать пользовательские страницы ошибок для различных кодов ошибок HTTP. Например, чтобы задать пользовательскую страницу ошибки 404 (Not Found):

ErrorDocument 404 /404.html

  1. Защита каталогов паролем:

С помощью .htaccess можно защитить каталоги паролем. Сначала создайте файл .htpasswd, содержащий комбинации имени пользователя и пароля. Затем добавьте в файл .htaccess следующее:

AuthType Basic

AuthName «Restricted Area»

AuthUserFile /path/to/.htpasswd

Require valid-user

Примечание: Обязательно замените /path/to/.htpasswd на реальный путь к файлу .htpasswd.

Шаг 3: Сохранить и протестировать

После добавления необходимых правил сохраните файл .htaccess. Убедитесь, что в имени файла нет дополнительных расширений.

Чтобы протестировать правила, зайдите на свой сайт и посмотрите, выполняется ли ожидаемое поведение. Если возникли ошибки, просмотрите файл .htaccess на предмет опечаток или неправильной конфигурации.

Установка Docker на Ubuntu 20.04 

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

Шаг 1: Обновление репозитория пакетов

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

sudo apt update

Шаг 2: Установка необходимых зависимостей

Для работы Docker требуются некоторые предварительные компоненты, которые можно установить с помощью следующей команды:

sudo apt install apt-transport-https ca-certificates curl software-properties-common

Шаг 3: Добавление репозитория Docker

Docker предоставляет официальный репозиторий APT для Ubuntu. Чтобы добавить его, выполните команды:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg —dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo «deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable» | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Шаг 4: Установка Docker Engine

После добавления репозитория можно установить Docker:

sudo apt update

sudo apt install docker-ce

Шаг 5: Запуск и включение Docker

После установки Docker запустите службу Docker и включите ее запуск при загрузке:

sudo systemctl start docker

sudo systemctl enable docker

Шаг 6: Проверка установки Docker

Убедиться в успешной установке Docker можно, запустив простой контейнер hello-world:

sudo docker run hello-world

Если все настроено правильно, вы увидите вывод, свидетельствующий о корректной работе Docker.

Шаг 7: Управление Docker от имени не root-пользователя (необязательный пункт)

По умолчанию для работы Docker требуются привилегии root. Однако вы можете добавить своего пользователя в группу «docker», чтобы использовать Docker без sudo:

sudo usermod -aG docker $USER

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

Docker Swarm

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

Оркестровка контейнеров

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

Режим Swarm

Это интегрированное решение для оркестровки контейнеров, которое поставляется вместе с Docker. Вам не нужно устанавливать дополнительное программное обеспечение; режим Swarm активируется по умолчанию при настройке Docker на хост-машинах.

Узлы и кластеры

В Docker Swarm есть два типа сущностей: узлы и кластеры. Узлы — это отдельные экземпляры Docker, кластеры — это группы узлов, которые работают как единое целое для запуска контейнеров и управления ресурсами.

Terraform

Terraform — это инструмент с открытым исходным кодом (IAC), разработанный компанией HashiCorp. Он позволяет декларативно и последовательно определять, управлять и предоставлять инфраструктурные ресурсы, упрощая управление сложной инфраструктурой в среде различных облачных провайдеров и в локальных средах. 

Инфраструктура как код (IAC)

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

Декларативное конфигурирование

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

Независимость от провайдера

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

1С в облаке: преимущества, возможности, перенос данных

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

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

Простыми словами о Kubernetes

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

Как настроить CDN

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

Зарегистрируйте учетную запись

Зарегистрируйте учетную запись у выбранного провайдера CDN. Укажите необходимую информацию и завершите процесс регистрации.

Настройте DNS

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

Например, можно создать такую запись CNAME:

CNAME cdn.example.com YOUR_CDN_ENDPOINT

Замените cdn.example.com на желаемый поддомен CDN. Замените YOUR_CDN_ENDPOINT на домен или конечную точку CDN-провайдера.

Настройка SSL-сертификата (необязательно)

Если ваш сайт использует протокол HTTPS, вам необходимо установить SSL-сертификат для домена CDN. Многие провайдеры CDN предлагают интегрированные опции SSL. Следуйте инструкциям, предоставленным провайдером CDN, чтобы включить SSL для домена.

Настройка параметров CDN

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

Настройка сервера происхождения

Настройте сервер вашего сайта (исходный сервер) для работы с CDN. Обычно для этого необходимо разрешить доступ с IP-адресов провайдера CDN или настроить имя хоста сервера происхождения в настройках CDN. Инструкции по настройке CDN можно найти в документации или на ресурсах поддержки провайдера CDN.

Тестирование и мониторинг

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

Мониторинг и оптимизация

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

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

Как защититься от DDoS-атак

DDoS-атака — это попытка перегрузить целевой сервер или сетевую инфраструктуру путем направления на него огромного объема трафика или запросов. Подобный трафик генерируют большое количество ботнетов под управлением злоумышленников. Цель DDoS-атаки — нарушить работу атакуемого объекта и сделать его недоступным для пользователей.

Типы DDoS-атак

Объемные атаки направлены на насыщение пропускной способности сети цели за счет перегрузки ее большим объемом трафика.

TCP/IP-атаки используют уязвимости в стеке протоколов TCP/IP для исчерпания ресурсов сервера, таких как количество доступных соединений или вычислительная мощность.

Атаки на прикладном уровне направлены на конкретные приложения или сервисы, перегружая их легитимными запросами и истощая ресурсы сервера, такие как процессор или память.

Атаки на уровне протоколов используют слабые места в сетевых протоколах, таких как DNS, HTTP или NTP, чтобы нарушить работу служб объекта атаки.

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

Методы защиты

Чтобы защитить себя от DDoS-атак, реализуйте следующие меры.

Установите средства мониторинга сети для обнаружения аномальных моделей трафика и выявления потенциальных атак.

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

Разверните системы предотвращения вторжений (IPS), которые позволяют обнаруживать и предотвращать DDoS-атаки в режиме реального времени, анализируя сетевой трафик и его структуру.

Используйте службу CDN, которая позволяет распределять трафик по нескольким серверам для поглощения и смягчения последствий атак.

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

Настройте механизмы ограничения скорости, чтобы ограничить количество запросов в секунду с отдельных IP-адресов или подсетей.

Используйте маршрутизацию anycast для распределения входящего трафика между несколькими ЦОД или локациями — это затрудняет атаку на одну цель.

Рассмотрите услуги по защите от кибератак. Сторонние службы защиты, специализирующиеся на смягчении и поглощении DDoS-атак помогут до того, как они достигнут вашей инфраструктуры.

Что делать, если на сайт направлена DDoS-атака

Если вы обнаружили направленную на ваш сайт DDoS-атаку, выполните следующие действия:

  • Сохраняйте спокойствие — атаки направлены на нарушение работы сервисов, но, как правило, они не приводят к компрометации данных или систем.
  • Немедленно свяжитесь с хостинг-провайдером или сетевым администратором и сообщите им об атаке. Возможно, они смогут оказать помощь.
  • Задействуйте все имеющиеся у вас механизмы защиты от DDoS-атак.
  • Включите подробное протоколирование и мониторинг для сбора доказательств атаки. Эта информация может быть полезна при проведении расследования.
  • Если атака носит серьезный характер или является частью более масштабной киберпреступной кампании, следует привлечь местные правоохранительные органы.
  • Информируйте своих пользователей о ситуации, принимаемых мерах и возможном влиянии на работу сервисов. Регулярно обновляйте информацию по всем каналам связи.

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

Traceroute — трассировка сети в Linux

Traceroute — это инструмент диагностики сети, используемый в Linux и других ОС для отслеживания маршрута прохождения сетевых пакетов от источника к месту назначения. Traceroute предоставляет информацию о промежуточных маршрутизаторах, через которые проходят пакеты, а также время прохождения в оба конца (RTT) для каждого маршрутизатора.

Как работает Traceroute? 

Traceroute работает путем отправки серии UDP- или ICMP-пакетов с постепенно увеличивающимся временем жизни (TTL). Каждому пакету намеренно присваивается низкое значение TTL, что приводит к истечению срока его действия в каждом маршрутизаторе на пути следования. Когда срок действия пакета истекает, маршрутизатор отправляет ответное сообщение ICMP Time Exceeded, что позволяет Traceroute определить IP-адрес маршрутизатора. 

Повторяя этот процесс с увеличивающимися значениями TTL, Traceroute постепенно строит карту сетевого маршрута и измеряет время прохождения маршрута (RTT) до каждого хопа.

Настройка Traceroute

Чтобы использовать Traceroute, откройте терминал и выполните следующую команду:

traceroute <destination>

Замените <destination> на IP-адрес или доменное имя цели, которую вы хотите отследить.

Полезные опции Traceroute:

-I: использовать пакеты ICMP Echo Request вместо UDP. Некоторые маршрутизаторы могут блокировать UDP-пакеты, поэтому ICMP может быть более надежным.

-T: использовать пакеты TCP SYN вместо UDP. Это может быть полезно для отслеживания пути к определенному TCP-порту.

-p <port>: указание пользовательского номера порта назначения.

-q <queries>: устанавливает количество запросов, отправляемых за один переход.

-m <max_hops>: устанавливает максимальное количество переходов для трассировки.

-w <timeout>: установка таймаута для каждого зонда.

-n: не преобразовывать имена хостов в IP-адреса.

-r: обходить обычные таблицы маршрутизации и отправлять пакеты непосредственно на целевой хост в локальной сети.

-4 или -6: Принудительное использование протокола IPv4 или IPv6 соответственно.

Дополнительные опции и подробности можно найти на странице руководства Traceroute, выполнив команду:

man traceroute

Traceroute в ОС Windows.

В операционной системе Windows инструмент, эквивалентный Traceroute, называется tracert. Он функционирует аналогичным образом, но синтаксис команды и доступные опции несколько отличаются. Чтобы воспользоваться tracert, откройте командную строку и выполните команду:

tracert <destination>

Замените <destination> на IP-адрес или доменное имя, которое вы хотите отследить.

Чтобы просмотреть доступные опции и синтаксис для tracert в Windows, выполните команду:

tracert /?

Теперь вы знаете, как использовать Traceroute для трассировки сети в Linux, включая установку, базовое использование и некоторые полезные опции.

Установка и использование OpenVAS (GVM) на Ubuntu 

OpenVAS (Open Vulnerability Assessment System) — это open-source инструмент сканирования, выявления и управления уязвимостями в компьютерных системах и сетях с открытым исходным кодом. OpenVAS помогает организациям оценить уровень защищенности своей ИТ-инфраструктуры и определить приоритетность мер по ее устранению.

Установка и настройка OpenVAS 

Шаг 1: Обновление и модернизация.

Войдите на свой сервер Ubuntu, обновите списки пакетов и обновите существующие пакеты, выполнив следующие команды:

sudo apt update

sudo apt upgrade

Шаг 2: Установка необходимых зависимостей.

Установите необходимые зависимости для OpenVAS, выполнив следующую команду:

sudo apt install build-essential cmake pkg-config libglib2.0-dev libgpgme-dev libgnutls28-dev uuid-dev libssh-gcrypt-dev libhiredis-dev libxml2-dev libpcap-dev libunistring-dev

Шаг 3: Установка базы данных PostgreSQL.

Для хранения данных OpenVAS требуется база данных PostgreSQL. Команда для установки:

sudo apt install postgresql

В процессе установки вам будет предложено задать пароль для пользователя PostgreSQL `postgres`. Выберите надежный пароль и запомните его на будущее.

Шаг 4: Создание пользователя и базы данных PostgreSQL.

Переключитесь на пользователя `postgres` и откройте приглашение PostgreSQL, выполнив команду:

sudo -u postgres psql

Создайте нового пользователя для OpenVAS:

CREATE USER openvas WITH PASSWORD ‘your_password’;

Создайте новую базу данных для OpenVAS и предоставьте привилегии пользователю:

CREATE DATABASE openvas;

GRANT ALL PRIVILEGES ON DATABASE openvas TO openvas;

Выйдите из окна PostgreSQL:

\q

Шаг 5: Установка OpenVAS.

Добавьте репозиторий OpenVAS и обновите списки пакетов, выполнив следующие команды:

sudo add-apt-repository ppa:mrazavi/openvas

sudo apt update

Установите OpenVAS, выполнив команду:

sudo apt install gvm

В процессе установки вам будет предложено настроить OpenVAS. Выберите «да» в ответ на запрос о настройке сканера OpenVAS.

Шаг 6: Запуск OpenVAS.

Запустите службы OpenVAS, выполнив следующую команду:

sudo gvm-start

Шаг 7: Обновление каналов OpenVAS.

Обновите фиды OpenVAS, включая NVTs (тесты сетевых уязвимостей), выполнив команду:

sudo gvm-feed-update

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

Шаг 8: Доступ к веб-интерфейсу OpenVAS.

Откройте веб-браузер и введите следующий URL:

https://localhost:9392

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

Войдите в систему, используя стандартные учетные данные:

Имя пользователя: `admin`

Пароль: `admin`

Шаг 9: Изменение пароля администратора OpenVAS.

После входа в систему рекомендуется изменить стандартный пароль администратора. Перейдите в раздел «Администрирование» и выберите «Пользователи». Щелкните на значке карандаша рядом с пользователем «admin» и задайте новый пароль.

Теперь вы можете создавать цели, настраивать конфигурации сканирования, планировать сканирование и просматривать результаты сканирования с помощью веб-интерфейса OpenVAS.

Установка Nextcloud на дистрибутиве Ubuntu 22.04

В этой инструкции приведено пошаговое руководство по установке и настройке Nextcloud на Ubuntu 22.04, включая настройку MariaDB, Apache и обеспечение безопасности сервера с помощью SSL-сертификата.

Для установки и настройки Nextcloud на Ubuntu 22.04 вам понадобится:

  • сервер Ubuntu 22.04 с корневым доступом;
  • доменное имя, указывающее на IP-адрес вашего сервера;
  • базовые знания командной строки Linux.

Что такое Nextcloud? 

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

Установка и настройка Nextcloud 

Шаг 1: Обновление и модернизация

Войдите на сервер Ubuntu, обновите списки пакетов и существующие пакеты, выполнив следующие команды:

sudo apt update

sudo apt upgrade

Шаг 2: Установка Apache

Установите веб-сервер Apache, выполнив следующую команду:

sudo apt install apache2

Шаг 3: Установить MariaDB

Установите систему управления реляционными базами данных MariaDB, выполнив следующую команду:

sudo apt install mariadb-server

В процессе установки вам будет предложено задать пароль root. Обязательно выберите надежный пароль и запомните его на будущее.

Шаг 4: Защита MariaDB

Для защиты установки MariaDB выполните следующую команду:

sudo mysql_secure_installation

Вам будет предложено ввести пароль root, заданный во время установки. Следуйте подсказкам на экране.

Шаг 5: Установка PHP и необходимых расширений.

Установите PHP и необходимые расширения для Nextcloud, выполнив команду:

sudo apt install php libapache2-mod-php php-mysql php-curl php-gd php-xml php-mbstring php-zip php-intl php-ldap php-apcu

Шаг 6: Настройка Apache.

Включите необходимые модули Apache и настройте параметры конфигурации:

sudo a2enmod rewrite

sudo a2enmod headers

sudo a2enmod env

sudo a2enmod dir

sudo a2enmod mime

sudo systemctl restart apache2

Шаг 7: Создание базы данных для Nextcloud.

Войдите в MariaDB от имени пользователя root:

sudo mysql -u root -p

Создайте новую базу данных для Nextcloud:

CREATE DATABASE nextcloud;

Создайте нового пользователя и предоставьте привилегии базе данных Nextcloud:

CREATE USER ‘nextclouduser’@’localhost’ IDENTIFIED BY ‘your_password’;

GRANT ALL PRIVILEGES ON nextcloud.* TO ‘nextclouduser’@’localhost’;

FLUSH PRIVILEGES;

EXIT;

Обязательно замените “your_password” на надежный пароль.

Шаг 8: Загрузка и установка Nextcloud.

Перейдите в корневой каталог веб-сервера Apache:

cd /var/www/html

Загрузите последнюю стабильную версию Nextcloud с помощью `wget`:

sudo wget https://download.nextcloud.com/server/releases/latest.tar.bz2

Распакуйте загруженный архив:

sudo tar -xvf latest.tar.bz2

Смените права собственности на извлеченные файлы на права пользователя Apache:

sudo chown -R www-data:www-data nextcloud

Шаг 9: Настройка виртуального хоста Apache.

Создайте новый конфигурационный файл Apache для Nextcloud:

sudo nano /etc/apache2/sites-available/nextcloud.conf

Добавьте в файл следующее содержимое:

<VirtualHost *:80>

    ServerAdmin admin@example.com

    DocumentRoot /var/www/html/nextcloud/

    ServerName your_domain

    Alias /nextcloud «/var/www/html/nextcloud/»

    <Directory /var/www/html/nextcloud/>

        Options +FollowSymlinks

        AllowOverride All

        Require all granted

        Satisfy Any

    </Directory>

    <IfModule mod_headers.c>

       Заголовок всегда устанавливается Strict-Transport-Security «max-age=15552000; includeSubDomains»

    </IfModule>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Замените “admin@example.com” на ваш адрес электронной почты, “your_domain” — на ваше реальное доменное имя.

Включите виртуальный хост:

sudo a2ensite nextcloud.conf

Отключите виртуальный хост Apache по умолчанию:

sudo a2dissite 000-default.conf

Перезапустите Apache, чтобы изменения вступили в силу:

sudo systemctl restart apache2

Шаг 10: Доступ к Nextcloud и завершение установки.

Откройте веб-браузер и введите доменное имя вашего сервера (например, `http://your_domain/nextcloud`). Должна появиться страница установки Nextcloud.

Следуйте инструкциям на экране для завершения установки. При появлении запроса введите данные базы данных MariaDB:

Пользователь базы данных: `nextclouduser`.

Пароль базы данных, заданный на шаге 7.

Имя базы данных: `nextcloud`

Хост базы данных: `localhost`.

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

PostgreSQL

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

Сервер PostgreSQL 

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

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

Кроме того, PostgreSQL предлагает интерфейс командной строки (CLI) и графические инструменты, такие как pgAdmin, для администрирования, мониторинга и настройки производительности базы данных.

Почему PostgreSQL популярен

PostgreSQL славится широким набором дополнительных возможностей. СУБД поддерживает сложные запросы, включая оконные функции, общие табличные выражения (CTE) и рекурсивные запросы. Предлагаются механизмы индексирования, включая B-деревья, хэши и обобщенные инвертированные индексы. Кроме того, в PostgreSQL реализована поддержка расширенных типов данных, таких как массивы, hstore и JSON, что позволяет гибко моделировать и хранить данные.

В PostgreSQL большое внимание уделяется целостности и надежности данных. СУБД поддерживает свойства ACID (Atomicity, Consistency, Isolation, Durability), обеспечивающие надежную и последовательную обработку транзакций. Для обработки одновременных модификаций данных в PostgreSQL используется многоверсионный контроль параллелизма (MVCC), обеспечивающий эффективный и согласованный доступ к данным в средах с высокой интенсивностью работы.

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

MySQL

MySQL — широко используемая система управления реляционными базами данных (СУБД) с открытым исходным кодом. Она представляет собой эффективное и масштабируемое решение для хранения, управления и поиска данных.

Разница между MySQL и SQL

SQL (Structured Query Language) — язык программирования, используемый для управления и манипулирования реляционными базами данных. MySQL — СУБД, основанная на SQL и работающая по модели клиент-сервер. MySQL — это ПО, позволяющее использовать SQL для взаимодействия с базой данных.

MySQL-сервер

MySQL использует клиент-серверную архитектуру, при которой сервер выполняет задачи управления базой данных, а клиенты взаимодействуют с сервером для выполнения операций с БД. Сервер MySQL обеспечивает надежную и безопасную среду для хранения и управления данными. Он обеспечивает целостность данных за счет соответствия стандарту ACID (Atomicity, Consistency, Isolation, Durability) и поддерживает различные механизмы хранения данных, включая InnoDB, MyISAM.

Сервер обладает широкими возможностями конфигурирования, что позволяет администраторам оптимизировать параметры производительности, безопасности и использования ресурсов. Он поддерживает одновременные соединения с несколькими клиентами и работает с различными протоколами, включая TCP/IP, именованные каналы и общую память. 

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

Причины популярности MySQL

MySQL завоевал широкую популярность по нескольким причинам:

  • Открытый исходный код. MySQL свободно доступна для использования, модификации и распространения. 
  • Высокая масштабируемость. MySQL пригоден для использования в различных приложениях — от небольших до крупных корпоративных систем. 
  • Высокая производительность. MySQL способен выдерживать высокую нагрузку и эффективно обрабатывать большие объемы данных, обеспечивая быстрое выполнение запросов и время отклика.
  • Широкая поддержка платформ. MySQL может работать под управлением различных ОС: Windows, macOS, Linux и других. 
  • Широкий набор функций. MySQL различные типы данных, хранимые процедуры, триггеры и представления, обеспечивает надежную поддержку транзакций и предлагает развитые механизмы безопасности.
  • Сильное сообщество и экосистема. MySQL имеет активное сообщество разработчиков, которое вносит свой вклад в его постоянное развитие и совершенствование.

Как отключить SELinux на CentOS

Чтобы отключить SELinux в CentOS, вы можете выполнить следующие шаги:

  1. Откройте терминал на вашей системе CentOS.
  2. Отредактируйте файл конфигурации SELinux с помощью текстового редактора, например, nano или vi. Выполните следующую команду:

sudo nano /etc/selinux/config

  1. В конфигурационном файле найдите строку, определяющую параметр `SELINUX`. Она должна выглядеть следующим образом:

SELINUX=enforcing

  1. Измените значение параметра `SELINUX` на `disabled`:

SELINUX=disabled

  1. Сохраните изменения и выйдите из текстового редактора.
  2. Перезагрузите систему CentOS, чтобы изменения вступили в силу. Вы можете сделать это, выполнив следующую команду:

sudo reboot

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

Установка и запуск Nginx в Docker-контейнере на Ubuntu

Чтобы установить и запустить Nginx в контейнере Docker на Ubuntu, вы можете выполнить следующие шаги:

  1. Установите Docker на вашу систему Ubuntu. Откройте терминал и выполните следующие команды:

sudo apt update

sudo apt install docker.io

  1. Извлеките официальный образ Nginx из Docker Hub, выполнив следующую команду:

sudo docker pull nginx

  1. После загрузки образа вы можете запустить контейнер Docker с помощью следующей команды:

sudo docker run -d -p 80:80 nginx

Эта команда запускает контейнер в отсоединенном режиме (`-d`), сопоставляет порт 80 контейнера с портом 80 хоста (`-p 80:80`) и использует образ Nginx.

  1. Получите доступ к Nginx: После запуска контейнера вы можете получить доступ к Nginx, открыв веб-браузер и введя `http://localhost` или IP-адрес вашей системы Ubuntu. Если вы хотите обслуживать файлы из определенного каталога на вашей системе Ubuntu, вы можете назначить том с хоста на контейнер. Например, если файлы вашего сайта расположены в директории `/path/to/website`, вы можете изменить команду `docker run` следующим образом:

sudo docker run -d -p 80:80 -v /path/to/website:/usr/share/nginx/html nginx

Эта команда монтирует каталог `/path/to/website` на хосте в каталог `/usr/share/nginx/html` внутри контейнера, позволяя Nginx обслуживать файлы из этого места.

Теперь у вас есть Nginx, запущенный в контейнере Docker на Ubuntu. Не забывайте корректировать команды и пути в зависимости от ваших конкретных настроек и требований.

Как запустить веб-приложение на Nginx в Docker

Чтобы запустить веб-приложение на Nginx в Docker, необходимо выполнить следующие общие шаги:

  1. Убедитесь, что ваше веб-приложение готово и имеет все необходимые файлы и зависимости.
  2. Создайте Dockerfile в корневом каталоге вашего веб-приложения. Dockerfile содержит инструкции по созданию образа Docker.

# Use a base image

FROM nginx:latest

# Copy the application files to the container

COPY . /usr/share/nginx/html

# Expose the container port

EXPOSE 80

  1. Соберите образ Docker — откройте терминал, перейдите в каталог с Dockerfile и выполните команду для сборки образа Docker. Эта команда создаст образ с именем «my-webapp» на основе Dockerfile.

docker build -t my-webapp .

  1. Запустите контейнер Docker: После того как образ собран, вы можете запустить контейнер из него с помощью следующей команды.

docker run -d -p 80:80 my-webapp

Эта команда запускает контейнер в отсоединенном режиме (`-d`), сопоставляя порт 80 контейнера с портом 80 хоста (`-p 80:80`) и используя образ «my-webapp».

  1. Получите доступ к веб-приложению: После запуска контейнера вы можете получить доступ к вашему веб-приложению, открыв веб-браузер и введя `http://localhost` или соответствующий IP-адрес вашего хоста Docker.

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

OpenVPN vs WireGuard: какой VPN лучше?

OpenVPN и WireGuard — популярные протоколы VPN, у которых есть несколько ключевых различий. Решение о том, какой из них лучше, зависит от ваших конкретных потребностей и предпочтений.

OpenVPN

OpenVPN известен своими сильными функциями безопасности. Он использует библиотеку OpenSSL и поддерживает различные алгоритмы шифрования, включая AES, Blowfish и Camellia.

OpenVPN широко поддерживается и может использоваться на различных операционных системах, включая Windows, macOS, Linux и мобильные платформы. Он также хорошо работает с брандмауэрами и трансляцией сетевых адресов (NAT).

OpenVPN обладает высокой конфигурируемостью, позволяя вам настраивать параметры в соответствии с вашими требованиями. Он поддерживает как UDP (User Datagram Protocol), так и TCP (Transmission Control Protocol) для связи.

WireGuard

WireGuard — легкий и простой в использовании протокол. Он имеет более простую кодовую базу по сравнению с OpenVPN, что делает его более легким для аудита и потенциально более безопасным.

WireGuard разработан для обеспечения высокой эффективности и предлагает более высокую скорость по сравнению с OpenVPN. В нем используются современные криптографические протоколы, такие как ChaCha20 для шифрования и Curve25519 для обмена ключами, что обеспечивает преимущество в скорости.

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

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

Заключение

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

Повышение безопасности контейнеров Docker

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

Используйте официальные образы и проверенные репозитории

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

Регулярно обновляйте образы контейнеров

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

Используйте сканирование уязвимостей образов контейнеров

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

Используйте безопасные базовые образы

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

Реализуйте принцип наименьших привилегий

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

Включите Docker Content Trust

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

Изолируйте контейнеры с помощью правильной конфигурации сети

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

Используйте безопасный контейнерный хост

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

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

CDN

CDN расшифровывается как Content Delivery Network (сеть доставки контента). Это распределенная сеть серверов, расположенных в разных географических точках, которые совместно работают над доставкой веб-контента конечным пользователям. Контент может быть статическим или динамическим, таким как изображения, видео, файлы CSS, файлы JavaScript. Основной целью CDN является повышение производительности, доступности и надежности доставки контента при одновременном снижении нагрузки на исходный сервер.

Ключевые особенности и преимущества CDN

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

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

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

Балансировка нагрузки — CDN используют методы балансировки нагрузки для равномерного распределения трафика между несколькими серверами. Это гарантирует, что ни один сервер не будет перегружен, и повышает общую производительность и доступность.

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

Повышенная надежность — распределяя контент по нескольким серверам, CDN повышают отказоустойчивость. Если сервер или сетевое соединение выходят из строя, CDN может автоматически направлять запросы на альтернативные серверы, обеспечивая постоянную доступность контента.

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

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

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

Облачные базы данных (DBaaS)

DBaaS означает «база данных как услуга». Это модель облачных вычислений, которая предоставляет пользователям управляемую среду баз данных, избавляя их от необходимости создавать и поддерживать собственную инфраструктуру БД.

Ключевые характеристики и преимущества DBaaS

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

DBaaS обеспечивает масштабируемость, позволяя пользователям легко масштабировать свои БД в соответствии с их потребностями. Пользователи могут увеличивать или уменьшать ресурсы, выделенные для своих баз данных, такие как процессор, память и хранилище, без значительного ручного вмешательства.

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

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

DBaaS автоматизирует многие рутинные задачи по управлению базами данных, такие как резервное копирование, обновление ПО и мониторинг производительности. Это снижает сложность эксплуатации и позволяет пользователям более эффективно развертывать и управлять БД.

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

Популярные примеры предложений DBaaS включают Amazon RDS, Google Cloud SQL, Microsoft Azure SQL Database и Oracle Autonomous Database. Эти сервисы поддерживают различные технологии баз данных, такие как реляционные базы данных, например, MySQL, PostgreSQL, Oracle, SQL Server и базы данных NoSQL, такие как MongoDB и Cassandra.

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

Миграция в облако: раскрытие потенциала облачных вычислений

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

VDI: архитектура и принципы работы, преимущества и польза для бизнеса

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

Как настроить VPN IPsec

Виртуальная частная сеть (VPN) часто используется для создания безопасного туннеля передачи данных между локальным компьютером и удаленным сервером. Существуют различные протоколы туннелирования VPN, и в этой статье мы сосредоточимся на настройке L2TP через IPSec для Windows.

L2TP, или Layer 2 Tunneling Protocol, сам по себе не обеспечивает надежного шифрования. Именно здесь в игру вступает IPSec, поскольку он обеспечивает надежное шифрование данных, которыми обмениваются удаленный сервер и локальная машина. Комбинируя L2TP и IPSec, можно создать безопасное и зашифрованное VPN-соединение, обеспечивающее конфиденциальность и целостность передаваемых данных.

Введение

Технология IPsec VPN позволяет создать туннель для передачи трафика из частных сетей через публичный интернет. Это достигается путем шифрования данных для обеспечения их безопасности. VPN на базе IPsec обычно используются для соединений site-to-site, соединяющих две географически разделенные сети, например, различные центры обработки данных, когда выделенные каналы связи нецелесообразны.

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

Исходные данные 

  • виртуальная машина с Ubuntu 20.04
  • 1 порт имеет подключение к публичной сети (как default route)
  • 2 порт подключается к частной сети, в которой необходимо настроить маршрутизацию

Схема адресации

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

На стороне *** ваша виртуальная машина оснащена двумя портами, настроенными на IPsec. Первый порт имеет адрес 188.68.206.154 и подключен к публичной сети. Второй порт имеет адрес 192.168.10.10 и подключен к частной сети.

Настройка VPN с одним инстансом

Подключитесь к виртуальной машине по SSH и начните настройку. Первое, что нужно сделать, это установить демон strongSwan и включить его в автозагрузке:

sudo apt update

sudo apt install -y strongswan

sudo systemctl enable strongswan-starter

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

sudo cat << EOF > /etc/sysctl.d/99-vpn-ipsec.conf

net.ipv4.ip_forward = 1

net.ipv6.conf.all.forwarding = 1

net.ipv4.conf.all.accept_redirects = 0

net.ipv4.conf.all.send_redirects = 0

EOF

sudo sysctl -p /etc/sysctl.d/99-vpn-ipsec.conf

Создайте файл конфигурации IPsec для strongSwan:

sudo cat << EOF > /etc/ipsec.conf

config setup

        charondebug=»all»

        uniqueids=yes

        strictcrlpolicy=no

conn site-to-site-vpn

        type=tunnel

        authby=secret

        left=%defaultroute

        leftid=188.68.206.154

        leftsubnet=192.168.10.0/24

        right=51.250.46.166

        rightsubnet=192.168.20.0/24

        ike=aes256-sha2_256-modp1024!

        esp=aes256-sha2_256!

        keyingtries=0

        ikelifetime=1h

        lifetime=8h

        dpddelay=30

        dpdtimeout=120

        dpdaction=restart

        auto=start

EOF

Существуют важные параметры, которые требуют настройки в зависимости от конкретной среды и используемых адресов:

  • leftid: Это публичный IP-адрес самой виртуальной машины IPsec. В вашем случае это 188.68.206.154. Однако в другой среде этот адрес будет другим.
  • leftsubnet: Это относится к частной сети, созданной в облаке Selectel для других виртуальных машин. Это сеть, из которой вам нужен доступ к виртуальным машинам в другом облаке.
  • right: Это публичный IP-адрес удаленной виртуальной машины. В вашем случае это 51.250.46.166.
  • rightsubnet: Это удаленная частная сеть. Это сеть, созданная в другом облаке и используемая для виртуальных машин.

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

Создайте файл, который будет содержать ключ для подключения:

sudo cat << EOF > /etc/ipsec.secrets

188.68.206.154 51.250.46.166 : PSK «<SECRET>»

EOF

SECRET — пароль, указанный с обеих сторон тоннеля, то есть на обеих виртуальных машинах VPN IPsec.

Перезагружаем IPsec демон и проверяем статус подключения:

sudo systemctl restart strongswan-starter
ipsec status

Настройка отказоустойчивой схемы

В отличие от предыдущей схемы, в этой конфигурации используются VIP-адреса в качестве IP-адреса шлюза в приватной сети и основного адреса для VPN-туннеля. Перемещение VIP-адресов между виртуальными машинами осуществляется при помощи протокола VRRP.

Для настройки отказоустойчивой схемы необходимо добавить еще одну виртуальную машину для VPN. Она будет называться vpn2, а первая виртуальная машина — vpn1.

Настройки по умолчанию установите также на 2 ВМ:

sudo apt update
sudo apt install -y strongswan
sudo systemctl enable strongswan-starter
sudo cat << EOF > /etc/sysctl.d/99-vpn-ipsec.conf
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
EOF
sudo sysctl -p /etc/sysctl.d/99-vpn-ipsec.conf

Прежде чем настраивать IPsec, требуется установить и сконфигурировать демон keepalived для использования протокола VRRP. Следуйте инструкциям ниже для установки этой службы:

sudo apt install -y keepalived

Для достижения требуемой VRRP-конфигурации:

  1. Убедитесь, что оба VIP-адреса находятся в одной группе и перемещаются одновременно между виртуальными машинами. Это гарантирует, что обе виртуальные машины могут выступать в качестве MASTER и BACKUP для обслуживания запросов.
  2. Когда статус инстанса изменяется с MASTER на BACKUP и обратно, необходимо включать и отключать IPsec соответственно. Это обеспечит построение VPN-туннеля только с одной виртуальной машины в определенный момент времени.

Теперь перейдем к настройке VRRP на виртуальной машине vpn2:

sudo cat << EOF > /usr/local/sbin/notify-ipsec.sh

#!/bin/bash

TYPE=\$1

NAME=\$2

STATE=\$3

case \$STATE in

        «MASTER») /usr/sbin/ipsec restart

                  ;;

        «BACKUP») /usr/sbin/ipsec stop

                  ;;

        «FAULT»)  /usr/sbin/ipsec stop

                  exit 0

                  ;;

        *)        /usr/bin/logger «ipsec unknown state»

                  exit 1

                  ;;

esac

EOF

sudo chmod a+x /usr/local/sbin/notify-ipsec.sh

sudo cat << EOF > /etc/keepalived/keepalived.conf

vrrp_sync_group G1 {

    group {

        EXT

        INT

    }

    notify «/usr/local/sbin/notify-ipsec.sh»

}

vrrp_instance INT {

    state BACKUP

    interface eth1

    virtual_router_id 11

    priority 25

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass <SECRET>

    }

    virtual_ipaddress {

        192.168.120.100/24

    }

    nopreempt

    garp_master_delay 1

}

vrrp_instance EXT {

    state BACKUP

    interface eth0

    virtual_router_id 22

    priority 25

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass <SECRET>

    }

    virtual_ipaddress {

        188.68.206.158/29

    }

    nopreempt

    garp_master_delay 1

}

EOF

Следующие команды выполняют две задачи:

  1. Создают файл /usr/local/sbin/notify-ipsec.sh, который представляет собой скрипт, вызываемый при изменении статуса VRRP. Этот скрипт будет отвечать за выключение и включение IPsec соответствующим образом.
  2. Создают файл конфигурации /etc/keepalived/keepalived.conf, который будет использоваться keepalived для настройки двух групп.

После создания этих файлов необходимо перезагрузить keepalived и включить его автоматически при запуске системы.

sudo systemctl restart keepalived

sudo systemctl enable keepalived

После выполнения этих шагов можно приступить к настройке IPsec на виртуальной машине vpn2. Новая конфигурация файла будет отличаться, так как теперь туннель должен быть установлен с использованием VIP-адреса, а не адреса, связанного с интерфейсом.

sudo cat << EOF > /etc/ipsec.conf

config setup

        charondebug=»all»

        uniqueids=yes

        strictcrlpolicy=no

conn site-to-site-vpn

        type=tunnel

        authby=secret

        left=%defaultroute

        leftid=188.68.206.158

        leftsubnet=192.168.10.0/24

        right=51.250.46.166

        rightsubnet=192.168.20.0/24

        ike=aes256-sha2_256-modp1024!

        esp=aes256-sha2_256!

        keyingtries=0

        ikelifetime=1h

        lifetime=8h

        dpddelay=30

        dpdtimeout=120

        dpdaction=restart

        auto=start

EOF

После завершения настройки vpn2 мы переходим к настройке vpn1. На первой виртуальной машине также необходимо запустить VRRP и внести некоторые изменения в конфигурацию IPsec.

Поскольку данная схема разработана для обеспечения отказоустойчивости, большинство конфигурационных файлов будут идентичны настройкам vpn2. Единственное отличие заключается в том, что роль VRRP на этом инстансе будет MASTER. Сначала устанавливаем keepalived, затем создаем конфигурацию и скрипт для контроля IPsec:

sudo apt install -y keepalived

sudo cat << EOF > /usr/local/sbin/notify-ipsec.sh

#!/bin/bash

TYPE=\$1

NAME=\$2

STATE=\$3

case \$STATE in

        «MASTER») /usr/sbin/ipsec restart

                  ;;

        «BACKUP») /usr/sbin/ipsec stop

                  ;;

        «FAULT»)  /usr/sbin/ipsec stop

                  exit 0

                  ;;

        *)        /usr/bin/logger «ipsec unknown state»

                  exit 1

                  ;;

esac

EOF

sudo chmod a+x /usr/local/sbin/notify-ipsec.sh

sudo cat << EOF > /etc/keepalived/keepalived.conf

vrrp_sync_group G1 {

    group {

        EXT

        INT

    }

    notify «/usr/local/sbin/notify-ipsec.sh»

}

vrrp_instance INT {

    state MASTER

    interface eth1

    virtual_router_id 11

    priority 25

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass <SECRET>

    }

    virtual_ipaddress {

        192.168.120.100/24

    }

    nopreempt

    garp_master_delay 1

}

vrrp_instance EXT {

    state MASTER

    interface eth0

    virtual_router_id 22

    priority 25

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass <SECRET>

    }

    virtual_ipaddress {

        188.68.206.158/29

    }

    nopreempt

    garp_master_delay 1

}

EOF

sudo systemctl enable keepalived

Важно, чтобы пароль <SECRET>, указанный в конфигурации, был одинаковым на обеих виртуальных машинах VPN.

Далее необходимо обновить конфигурацию IPsec и конфигурацию секрета IPsec. В этих конфигурационных файлах необходимо изменить основной адрес на VIP-адрес. Таким образом, конфигурация IPsec и конфигурация секрета будут идентичными на vpn1 и vpn2.

sudo cat << EOF > /etc/ipsec.conf

config setup

        charondebug=»all»

        uniqueids=yes

        strictcrlpolicy=no

conn site-to-site-vpn

        type=tunnel

        authby=secret

        left=%defaultroute

        leftid=188.68.206.158

        leftsubnet=192.168.10.0/24

        right=51.250.46.166

        rightsubnet=192.168.20.0/24

        ike=aes256-sha2_256-modp1024!

        esp=aes256-sha2_256!

        keyingtries=0

        ikelifetime=1h

        lifetime=8h

        dpddelay=30

        dpdtimeout=120

        dpdaction=restart

        auto=start

EOF

sudo cat << EOF > /etc/ipsec.secrets

188.68.206.158 51.250.46.166 : PSK «<SECRET>»

EOF

После внесения изменений необходимо перезагрузить keepalived и проверить статус IPsec:

sudo systemctl restart keepalived

ipsec status

Сброс пароля root в MySQL

Если вы забыли пароль корня базы данных MySQL или хотите повысить безопасность, изменив его, вы можете сбросить пароль. В данном руководстве мы объясним, как это сделать с помощью командной строки Windows.

Остановите сервер MySQL

  1. Для начала убедитесь, что вы вошли в операционную систему Windows с правами администратора.
  2. Одновременно нажмите клавишу Windows (Win) и клавишу R на клавиатуре, чтобы открыть окно «Выполнить».
  3. В открывшемся поле введите «services.msc», а затем нажмите кнопку OK.
  4. Перейдите по списку служб и найдите запись для MySQL. Щелкните на ней правой кнопкой мыши и выберите «Остановить» из появившихся вариантов.
  5. Помните, что эти инструкции предназначены для операционных систем Windows. Если вы используете другую операционную систему, шаги могут отличаться.

Чтобы изменить пароль с помощью текстового редактора:

  1. Чтобы открыть Блокнот, вы можете найти его в меню или воспользоваться следующим путем: Меню Пуск > Аксессуары Windows > Блокнот.
  2. Открыв Блокнот, создайте новый текстовый документ.
  3. В текстовом редакторе введите следующую строку: ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘NewPassword’;
  4. Убедитесь, что вы точно указали кавычки и точку с запятой. Замените ‘NewPassword’ на желаемый новый пароль.
  5. Чтобы сохранить файл, перейдите в меню ‘Файл’ и выберите ‘Сохранить как’. Выберите осмысленное имя для файла и сохраните его в корневом каталоге жесткого диска (C:).
  6. Обратите внимание, что изменять учетные данные пользователя следует с осторожностью, и для защиты вашей системы необходимо следовать надлежащим правилам безопасности.

Примечание: Если вы собираетесь менять пароль по сети, замените ‘localhost’ на соответствующее имя хоста.

Выполнив эти шаги и выполнив команду SQL, вы сможете изменить пароль, связанный с пользователем ‘root’ в MySQL.

Чтобы открыть командную строку от имени администратора:

  1. Чтобы запустить диспетчер задач, нажмите одновременно клавиши Ctrl+Shift+Esc.
  2. После появления окна диспетчера задач нажмите на пункт «Файл», расположенный в меню.
  3. Среди доступных вариантов выберите «Начать новую задачу».
  4. В диалоговом окне «Создание новой задачи» введите «cmd.exe» в предоставленное текстовое поле.
  5. Чтобы запустить командную строку с привилегиями администратора, убедитесь, что установлен флажок «Создать эту задачу с привилегиями администратора».
  6. Наконец, нажмите на кнопку «OK», чтобы запустить командную строку с повышенными привилегиями.

Чтобы перезапустить сервер MySQL с обновленным файлом конфигурации, выполните следующие действия:

  1. Используя командную строку, перейдите в каталог, где установлен MySQL. Это можно сделать, выполнив следующую команду:
  2. cd «C:\Program Files\MySQL\MySQL Server 8.0\bin».
  3. Затем введите следующую команду:
  4. mysqld —init-file=C:\FILE_Name.txt
  5. Эта команда инициализирует MySQL, используя указанный файл инициализации (замените «FILE_Name» на реальное имя вашего файла, расположенного по адресу C:).
  6. Теперь вы можете войти на ваш сервер MySQL как пользователь root, используя новый пароль, который вы установили. Чтобы убедиться, что все работает правильно, войдите на сервер MySQL еще раз с обновленным паролем. Если у вас есть какие-либо специфические параметры конфигурации, например, запуск MySQL с флагом «-defaults-file», обязательно включите их, если это необходимо.
  7. После того, как вы запустили MySQL и подтвердили смену пароля, вы можете смело удалить файл, расположенный по адресу C:\FILE_Name.txt.

Поздравляем! Вы успешно сбросили пароль root для базы данных MySQL.

Как создавать таблицы в MySQL

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

Реляционные базы данных, с другой стороны, структурированы вокруг таблиц с предопределенными отношениями между данными. Информация хранится в строках и столбцах, где каждая строка представляет определенный объект или сущность. Известными примерами реляционных баз данных являются Oracle DB, PostgreSQL, MySQL и другие.

  • USE database_name;

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

CREATE TABLE table_name (

column_name_one column_type_one,

column_name_two column_type_two,

…,

column_name_X column_type_X

);

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

Если вы хотите создать новую таблицу путем копирования структуры и данных из существующей таблицы, вы можете использовать оператор CREATE TABLE с предложением SELECT. Вот пример:

CREATE TABLE new_table_name [AS] SELECT * FROM original_table_name;

Этот оператор создает новую таблицу с именем new_table_name на основе структуры и данных original_table_name.

Чтобы переименовать существующую таблицу, можно воспользоваться командой RENAME TABLE. Вот пример:

RENAME TABLE old_table_name TO new_table_name;

Выполнив эту команду, вы переименуете таблицу с old_table_name на new_table_name.

Не забудьте при выполнении этих команд заменить имена базы данных database_name, table_name, column_name, column_type, new_table_name и old_table_name на ваши конкретные значения.

Надеюсь, это объяснение поможет вам понять процесс эффективного создания, копирования и переименования таблиц MySQL.

Дополнительная параметры таблиц

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

PRIMARY KEY

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

AUTO_INCREMENT

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

UNIQUE

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

NOT NULL

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

DEFAULT

Этот параметр позволяет установить значение по умолчанию для столбца. Если новая запись будет вставлена без явного указания значения для столбца, будет использовано значение по умолчанию. Важно отметить, что этот параметр нельзя применять к некоторым типам данных, таким как BLOB, TEXT, GEOMETRY и JSON.

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

Названия таблиц и столбцов

При создании базы данных присвоение таблицам и столбцам осмысленных имен является важнейшим аспектом. Использование значимых имен гарантирует, что вы и другие разработчики сможете понять назначение и содержание каждого элемента даже по прошествии значительного количества времени. Рекомендуется избегать использования транслитераций или общих имен, таких как «table1» или «table2». Вместо этого выбирайте описательные и логичные имена, такие как «Пользователи», «Продажи» или «Звонки», которые точно передают характер данных, хранящихся в таблице.

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

Типы данных в MySQL 

Числа

MySQL предоставляет различные числовые типы данных для хранения различных видов чисел. Вот некоторые часто используемые числовые типы данных в MySQL:

  • INT:Этот тип представляет знаковые целые числа в диапазоне от -2147483648 до 2147483647. Он занимает 4 байта памяти.
  • DECIMAL: DECIMAL используется для хранения точных десятичных чисел, и количество занимаемых им байт зависит от выбранной точности. Он может принимать два параметра: DECIMAL(точность, масштаб). Этот тип рекомендуется для работы с валютными значениями и координатами.
  • TINYINT: TINYINT используется для хранения небольших целых чисел в диапазоне от -127 до 128. Он занимает 1 байт памяти. Атрибут UNSIGNED может быть добавлен, чтобы запретить отрицательные значения.
  • BOOL: BOOL используется для хранения одного двоичного значения 0 или 1, представляющего «ложь» или «истину» соответственно. Это также синоним BOOLEAN
  • FLOAT: FLOAT используется для хранения чисел с плавающей запятой и десятичной точкой. Он может содержать до 24 цифр после десятичной точки и занимает 4 байта памяти.

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

Время

В MySQL существуют различные временные типы данных:

DATE .

Тип данных DATE используется для хранения только дат в формате ‘YYYY-MM-DD’. Он позволяет хранить значения между 1000-01-01 и 9999-12-31. DATE обычно используется для хранения дат рождения, исторических дат и других дат, начиная с 11 века и далее. Он занимает 3 байта памяти.

TIME

Тип данных TIME используется для хранения только времени в формате ‘hh:mm:ss’. Он может хранить значения от ‘-838:59:59.00’ до ‘838:59:59.00’. TIME позволяет представлять время с точностью до секунды. Он также занимает 3 байта памяти.

DATETIME

Тип данных DATETIME объединяет дату и время. Он позволяет хранить значения от 1001 года до 9999 лет в формате ‘YYYY-ММ-DD чч:мм:сс’. DATETIME не зависит от часового пояса и может представлять время с точностью до секунды. Этот тип данных занимает 8 байт памяти.

TIMESTAMP

Тип данных TIMESTAMP служит для хранения информации о дате и времени в базе данных. Он представляет собой интервал времени между ‘1970-01-01 00:00:01’ и ‘2038-01-19 03:14:07’ и хранится как количество секунд (включая микросекунды). Фактическое значение TIMESTAMP зависит от настроек часового пояса сервера базы данных. Для хранения этого типа данных обычно требуется 4 байта памяти.

Бинарные типы данных

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

BLOB (Binary Large Object)

Тип данных BLOB используется для хранения больших объемов двоичных данных, таких как файлы, фотографии, документы, аудио- и видеоконтент. Он предназначен для хранения данных размером до 65 КБ.

LONGBLOB (длинный двоичный большой объект)

Тип данных LONGBLOB является эффективным выбором для хранения значительных объемов двоичных данных в базе данных. Он позволяет хранить данные размером до 4 ГБ. Обычно LONGBLOB используется для хранения больших файлов, фотографий, документов, а также аудио- и видеоматериалов.

Изменение структуры таблицы

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

ALTER TABLE Table_name

ADD COLUMN email VARCHAR(50),

ADD COLUMN age INT,

ADD COLUMN has_family BOOLEAN;

Эта команда ALTER TABLE эффективно модифицирует указанную таблицу, добавляя столбец email с максимальной длиной 50 символов, столбец age целочисленного типа и столбец has_family булевского типа для представления семейного положения сотрудников.

Удаление таблиц

Оператор DROP TABLE используется для удаления таблицы из базы данных. Это действие навсегда удаляет все данные, индексы, триггеры, ограничения и разрешения, связанные с указанной таблицей. Вот пример команды MySQL, которая может быть использована для удаления таблицы:

DROP TABLE Table_name;

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

Установка Hyper-V на Windows Server 2012

Введение

При развертывании облачных серверов под управлением Windows Server 2012 и попытке установить Hyper-V вы можете столкнуться с ошибкой, указывающей на то, что Hyper-V уже запущен. Эта ошибка возникает потому, что сам сервер развернут как виртуальная машина. Однако у этой проблемы есть решение: вы можете установить Hyper-V через консоль.

Зайдя в консоль виртуальной машины, вы можете перейти к ролям и функциям сервера и продолжить установку Hyper-V. Это позволит вам использовать возможности виртуализации внутри виртуальной машины, обеспечивая развертывание и управление дополнительными виртуальными машинами внутри нее.

Используя консоль, вы можете применить обходное решение для устранения ошибки и задействовать виртуализацию на облачном сервере Windows Server 2012 путем установки Hyper-V.

Установка Hyper-V с помощью консоли представляет собой эффективное решение для устранения ошибки и позволяет использовать возможности виртуализации на облачном сервере Windows Server 2012.

Установка Hyper-V в консоли

  1. Откройте консоль PowerShell.
  2. Включите Hyper-V с помощью команды:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

Установите инструменты администратора RSAT:

  • Install-WindowsFeature RSAT-Hyper-V-Tools -IncludeAllSubFeature

Далее установите службу кластера для поддержки кластера в Hyper-V:

  • Install-WindowsFeature RSAT-Clustering –IncludeAllSubFeature

Установите Multipath I/O, чтобы включить несколько путей к хранилищу:

  • Install-WindowsFeature Multipath-IO

Теперь сервер можно перезапустить. Введите команду:

Restart-Computer

Как правильно делать бэкапы

Как часто делать бэкапы

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

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

Как делать бэкапы 

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

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

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

Типичные ошибки

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

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

Правильно выполненное резервное копирование может уберечь компанию от значительных потерь. Если самостоятельное резервное копирование вызывает опасения, то делегирование этой задачи надежному облачному провайдеру может стать мудрым решением. Облачные сервисы, такие как Obit Cloud, предлагают безопасные резервные копии, хранящиеся в надежных центрах обработки данных TIER III, обеспечивая возможность полного восстановления данных в случае аварии.

GitLab

Git, GitHub и GitLab — это взаимосвязанные компоненты в сфере контроля версий и разработки программного обеспечения, хотя и с разными целями и функциями.

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

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

Одним из заметных различий является то, что GitLab включает в себя бесплатную возможность непрерывной интеграции (CI), в то время как GitHub предоставляет инструмент Actions, который обеспечивает бесплатную интеграцию исключительно для публичных репозиториев и требует оплаты для частных репозиториев. Кроме того, в GitLab встроена платформа развертывания Kubernetes, которая отсутствует в предложениях GitHub. Еще одним отличительным фактором является то, что GitLab предоставляет бесплатные репозитории для проектов с открытым исходным кодом, в то время как GitHub не придерживается подобной практики.

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

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

Определение GitLab

GitLab — это сервис совместной разработки, который призван повысить производительность и оптимизировать жизненный цикл продукта для команд разработчиков. Одной из его отличительных особенностей является единая система авторизации, которая устраняет необходимость в отдельных авторизациях для каждого инструмента. Установив разрешения один раз, доступ ко всем компонентам предоставляется каждому сотруднику организации.

Изначально GitLab был полностью бесплатным программным обеспечением с открытым исходным кодом, распространяемым по разрешительной лицензии MIT. Однако затем он был разделен на две различные версии: GitLab CE (Community Edition) и GitLab EE (Enterprise Edition). GitLab CE остался неизменным и продолжает оставаться продуктом с открытым исходным кодом, исходный код которого находится в свободном доступе. GitLab EE, с другой стороны, перешел на модель ограниченного лицензирования, но по-прежнему предоставляет открытый доступ к исходному коду.

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

GitLab предлагает широкий спектр возможностей, которые делают его ценным инструментом для команд разработчиков, включая:

  1. Написание, управление и изменение кода, а также синхронизация файлов.
  2. Встроенные инструменты CI/CD, интеграция с GitHub, обеспечение качества кода и нагрузочное тестирование.
  3. Двухфакторная аутентификация для доступа к проекту, поддержка токенов и единого входа (SSO), аналитика производительности для членов команды и отслеживание задач.
  4. Отслеживание производительности приложений, управление инцидентами и обработка данных журналов.
  5. Отслеживание задач и управление временем.
  6. Управление контейнерами и репозиториями, а также интеграция с Docker.
  7. Сканирование уязвимостей, поддержка статического тестирования безопасности приложений (SAST) и динамического тестирования безопасности приложений (DAST), а также сетевая безопасность проекта.
  8. Запуск CI/CD в различных средах, проведение безопасного тестирования кода с помощью канареечных или частичных релизов, а также оркестровка релизов.
  9. Поддержка Kubernetes и бессерверных вычислений.

Почему используют GitLab

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

IPMI

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

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

Хотя первая версия IPMI была разработана в конце 1990-х годов, она имела ряд недостатков и уязвимостей, которые были устранены в более поздних версиях. Важно также отметить, что производители разрабатывают свои собственные версии этого решения, например, порт iDRAC от Dell, IMM от Lenovo и IBM, а также популярный порт IPMI от Supermicro под названием SIM. Хотя каждый порт может отличаться способом отображения информации и набором функций, их базовая функциональность остается одинаковой.

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

Проблемы с доступом к серверу

Если доступ к серверу закрыт из-за неправильных настроек брандмауэра, IPMI может помочь устранить проблему и подключиться к серверу, даже если другие способы доступа недоступны.

Конфигурация сетевой карты

При аренде сервера в центре обработки данных сетевые параметры должны быть правильно сконфигурированы, чтобы обеспечить надлежащее управление системой. Если эти настройки не выполнены, единственным способом управления сервером будет IPMI.

Неудачная установка программного обеспечения

Иногда установка нового программного обеспечения может привести к «зависанию» сервера, делая его недоступным. Однако порт управления IPMI может удаленно перезагрузить сервер, что позволит восстановить доступ.

Хотя IPMI разработан для восстановления после сбоев и ошибок, бывают ситуации, когда он может стать недоступным. Это может произойти из-за сетевых или программных проблем, проблем с электропитанием или аппаратных сбоев, таких как перегрев оборудования или дефекты архитектуры.

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

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

Случаи, когда нет доступа к IPMI

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

Выводы

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

Apache Spark

Apache Spark — это система распределенных вычислений с открытым исходным кодом, предназначенная для обработки больших объемов данных в пакетном и потоковом режимах. Spark широко используется такими крупными компаниями, как Amazon, eBay и Yahoo! благодаря своей скорости и эффективности по сравнению с другими инструментами, такими как Hadoop. Разработчики выигрывают от использования высокоуровневых операторов Spark, которые позволяют быстрее кодировать и обрабатывать данные. Spark особенно полезен для обработки плохо структурированных и неструктурированных данных.

История

Матей Захария, румынско-канадский ученый, широко известен своим значительным вкладом в разработку Apache Spark. Захария начал работу над проектом во время учебы в аспирантуре Калифорнийского университета в 2009 году. Годом позже он выпустил проект под лицензией BSD. Первоначальная реализация Spark была написана в основном на языке Scala, но позже был добавлен код на Java, что позволило разработчикам создавать распределенные приложения и на этом языке.

В 2013 году, через три года после того, как Захария инициировал проект, Apache Spark был передан в Apache Software Foundation. К следующему году он стал основным проектом Apache, работающим под лицензией Apache 2.0.

Apache Spark использует архитектуру Resilient Distributed Dataset (RDD), которая эффективно управляет разнообразными данными на узлах кластера. Кластер представлен в виде циклического направленного графа, в котором узлы представляют наборы данных, а ребра — операции. Для работы с RDD используются такие абстракции, как Dataframe API и Dataset API. Многие организации используют Spark в кластерах, состоящих из тысяч узлов, демонстрируя его масштабируемость и широкое распространение.

Хотя Spark по своей сути не является частью Apache Hadoop, он полностью совместим с экосистемой Hadoop. Запуск Hadoop вместе со Spark не требует дополнительных навыков, а кластер Spark может быть запущен вручную. Узлы кластера могут быть запущены с помощью YARN, а данные могут храниться в распределенной файловой системе Hadoop (HDFS). Для целей разработки и тестирования можно использовать псевдо распределенный режим, при котором каждый узел кластера имеет одно вычислительное ядро CPU.

Особенности Apache Spark

Apache Spark обеспечивает высокий уровень гибкости и совместимости с рядом систем управления кластерами, включая Hadoop и Mesos. Он легко интегрируется с популярными системами хранения данных, такими как Hadoop Distributed File System (HDFS), OpenStack Swift, Cassandra и Amazon S3. Кроме того, Spark поддерживает множество языков программирования, таких как Scala, Python, Java, R, а также языки .NET, такие как C# и F#.

Чтобы облегчить разработку на различных языках, Spark предоставляет несколько API, включая Scala, Java, Python, R и Spark SQL. Эти API позволяют разработчикам использовать возможности Spark для пакетной и потоковой обработки неструктурированных данных, а также для создания эффективных и масштабируемых распределенных приложений. Кроме того, Spark предлагает богатый набор встроенных функций, которые упрощают работу с большими наборами данных и выполнение сложных операций.

Благодаря широкой языковой поддержке, универсальным API и встроенным функциям Apache Spark позволяет разработчикам эффективно обрабатывать и анализировать данные, что дает им возможность решать проблемы больших данных и создавать сложные приложения.

Почему используют именно Apache Spark

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

Помимо пакетной обработки, Spark предоставляет инструменты для обработки потоковых данных, включая SQL, Streaming, MLLib и GraphX. Это делает его особенно выгодным для приложений, связанных с системами Интернета вещей (IoT) и бизнес-приложениями на основе машинного обучения. Например, Spark можно использовать для таких задач, как прогнозирование оттока клиентов или оценка финансовых рисков.

Благодаря унифицированному набору библиотек моделирования, поддерживающих такие популярные языки программирования, как Python и R, а также интеграции с широко используемыми веб-фреймворками, такими как Node.js и Django, Spark привлекает как исследователей, так и веб-разработчиков. Он также широко используется в публичных облачных средах, где организации имеют возможность приобретать отдельные услуги, такие как хранение данных. Универсальность Spark в решении различных задач обработки данных способствовала его широкому распространению во многих отраслях.

Преимущества Apache Spark 

Apache Spark предлагает несколько ключевых преимуществ в области обработки больших данных:

  1. Скорость. Spark славится своими возможностями высокоскоростной обработки данных. Он может выполнять приложения в памяти, что позволяет значительно ускорить обработку данных по сравнению с Hadoop. Способность Spark минимизировать циклы чтения-записи на диск и использовать промежуточные данные для хранения в памяти способствует замечательной скорости. Он может выполнять приложения в сто раз быстрее в памяти и в десять раз быстрее на диске, чем Hadoop.
  2. Простота. Spark предоставляет полный набор библиотек, которые упрощают выполнение основных высокоуровневых операций над устойчивыми распределенными наборами данных (RDD). Простота использования отличает Spark от многих других инструментов для работы с большими данными, делая его более доступным для разработчиков и пользователей с разным уровнем знаний.
  3. Обработка больших данных. Spark оптимизирован для эффективной и быстрой вычислительной обработки, что делает его отличным выбором для работы с крупномасштабными данными. Однако его производительность может снижаться по сравнению с Hadoop MapReduce, когда ресурсов памяти недостаточно для обработки очень больших массивов данных.
  4. Функциональность. Spark предлагает широкий спектр функциональных возможностей, что отличает его от Hadoop MapReduce. Он может активировать операции в памяти, обеспечивая более быстрое время обработки. Spark также поддерживает обработку практически в реальном времени, что делает его хорошо подходящим для задач обработки графов. Кроме того, Spark включает специальный API под названием GraphX, который облегчает вычисления с графами.
  5. Машинное обучение (ML). Spark включает встроенную библиотеку ML, которая предоставляет богатый набор алгоритмов для решения задач машинного обучения. Это устраняет необходимость в установке дополнительного программного обеспечения или драйверов, что делает удобной интеграцию возможностей машинного обучения в приложения для разработчиков.

Аппаратная виртуализация

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

Гипервизор — это решение, которое позволяет использовать часть реального оборудования для создания виртуальных машин. Он выделяет необходимые ресурсы и создает виртуальную машину, на которую можно установить Linux. Таким образом, вы можете использовать обе операционные системы одновременно без необходимости перезагрузки.

Виртуализация зародилась в 1960-70-х годах, когда IBM и MIT проводили исследования по разделению вычислительных ресурсов между группами пользователей. Сегодня виртуализация является важной частью ИТ-инфраструктуры, а наиболее известными компаниями, работающими с виртуализацией, являются VMware, Microsoft, Citrix и Oracle. Также популярна аппаратная виртуализация Bluestacks, используемая для эмуляции систем Android. В России одним из аналогов этой технологии является платформа виртуализации vStack.

Определение аппаратной виртуализация

Аппаратная виртуализация — это технология, которая позволяет создавать виртуальные компьютерные среды на одном физическом сервере. Для этого используется гипервизор или диспетчер виртуальных машин, который устанавливается между программными решениями и железом. Наиболее распространенными гипервизорами являются VMware vSphere и Microsoft Hyper-V.

После установки гипервизора система виртуализации может получать информацию о доступных ресурсах и предоставлять возможность управлять ими. Виртуальные ресурсы группируются в виртуальные машины (ВМ), на которые можно устанавливать любые операционные системы и приложения.

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

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

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

Аппаратная виртуализация поддерживается технологиями, разработанными двумя основными производителями процессоров – Intel VT и AMD-V. Они позволяют использовать виртуализацию процессора для запуска нескольких систем на одном процессоре, работающих параллельно на разных уровнях вложенности.

Типы аппаратной виртуализации

Существует три основных метода виртуализации оборудования в ИТ-инфраструктуре.

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

Выбор подхода к виртуализации зависит от конкретных требований. 

Преимущества аппаратной виртуализации 

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

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

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

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

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

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

Выделенный сервер

Когда люди приступают к созданию веб-сайта, они часто сталкиваются с необходимостью выбора подходящего варианта хостинга, такого как виртуальный выделенный сервер (VPS), выделенный сервер или общий хостинг. Хотя эти варианты различаются по возможностям конфигурации, объему памяти и стоимости, все они опираются на физические серверы в качестве базовой инфраструктуры. Поэтому, прежде чем вникать в тонкости выделенных серверов, необходимо понять концепцию физического сервера.

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

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

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

Что такое выделенный сервер и в чем его преимущества?

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

Особенности выделенного сервера

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

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

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

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

Выбор конфигурации выделенного сервера

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

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

Оперативная память играет важнейшую роль в обеспечении стабильной работы любого сервера, независимо от его уровня и конфигурации. В настоящее время широко распространены два основных стандарта памяти — DDR3 и DDR4. DDR4 предлагает более высокую скорость передачи данных — от 2133 до 2666 МГц по сравнению с диапазоном 1333-1867 МГц DDR3.

Выбор дисковой системы зависит от задач вашего сервера. Диски SAS подходят для задач, требующих быстрого и многопоточного доступа, таких как высоконагруженные веб-серверы, RDBMS (системы управления реляционными базами данных), ERP-системы или крупномасштабные пользовательские системы. Диски SATA хорошо подходят для задач с интенсивным использованием данных, таких как потоковая передача, хранение данных, системы резервного копирования и файловые серверы. Кроме того, SSD-накопители набирают популярность благодаря энергонезависимым чипам памяти и более высокой скорости чтения и записи. Они особенно полезны для сложных проектов, требующих высокой производительности.

Протокол управления SNMP: упрощение управления сетью

Эффективное управление сетевыми устройствами имеет решающее значение для бесперебойного функционирования организаций. Чтобы упростить этот процесс, был разработан простой протокол управления сетью (SNMP).

Настройка NTP на сервере

Программа NTP (Network Time Protocol), как правило, уже присутствует в дистрибутивах Linux. Чтобы установить ее, вам понадобятся права root. Процесс установки NTP может немного отличаться в зависимости от используемого дистрибутива Linux:

  • sudo apt-get install ntp
  • sudo yum install ntp
  • sudo dnf install ntp

Для настройки NTP используется конфигурационный файл ntp.conf, который обычно находится в каталоге /etc/. Однако, при необходимости, файл можно расположить и в другом месте, указав путь к нему через параметр командной строки «ntpd -c». При запуске демон NTP читает этот файл для получения настроек. Демон может выполнять как роль сервера, так и роль клиента в сети. Чтобы внесенные изменения в файле конфигурации вступили в силу, необходимо перезапустить демона NTP. Конфигурационный файл ntp.conf соответствует стандартному формату и может быть изменен с помощью любого текстового редактора.

NTP использует эталонные серверы или одноранговые узлы для синхронизации локальных системных часов. В файл конфигурации можно добавить один или несколько одноранговых узлов с помощью параметра «server» и указать их адресы (доменные имена или IP-адреса).

При добавлении одноранговых узлов важно учитывать параметр «prefer», который указывает на предпочтительный узел. В случае, когда узлы равнозначны, предпочтительный узел будет выбран из списка. Обычно указывается только один предпочтительный узел.

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

Добавление файла «дрифта»

Для хранения информации о смещении частоты локального тактового генератора NTP использует файл «дрифта». В этом файле записывается значение смещения в миллионных долях (PPM). Служба NTP обновляет файл «дрифта» каждый час. Рекомендуется указать путь к файлу «дрифта», так как это позволяет NTP быстрее синхронизировать локальные часы при запуске системы. Обычно файл «дрифта» определяется следующим образом:

driftfile /var/lib/ntp/ntp.drift.

Таким образом, указывая путь к файлу «дрифта» в конфигурационном файле ntp.conf, вы позволяете NTP эффективнее корректировать и синхронизировать локальные системные часы при каждом запуске.

Указание файла статистики

Для указания каталога, в котором будут храниться файлы статистики, вы можете использовать команду «statsdir» в файле конфигурации NTP. Эти файлы статистики полезны для отслеживания производительности локальной синхронизации часов.

Чтобы задать путь к каталогу, где будут сохраняться файлы статистики, просто добавьте следующую строку в файле конфигурации ntp.conf:

statsdir <путь_каталога>

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

Включение и запуск службы NTP

Для включения и запуска NTP в системе Linux можно использовать команду systemctl, предоставляемую с правами root:

Чтобы включить службу NTP, выполните команду:

sudo systemctl enable ntpd

Для запуска службы NTP, используйте команду:

sudo systemctl start ntpd

Чтобы применить изменения в конфигурации NTP, требуется перезапустить службу. Вы можете сделать это с помощью команды:

sudo systemctl restart ntpd

Если вам потребуется остановить или отключить службу NTP, можно воспользоваться следующими командами:

sudo systemctl disable ntpd

sudo systemctl stop ntpd

Эти команды позволяют управлять службой NTP в вашей системе, включая ее включение, запуск, остановку и отключение в соответствии с вашими потребностями. Обратите внимание, что для выполнения этих команд требуются права root или администратора.

Rclone — настройка и установка

Особенности системы

Прежде чем приступить к установке, позвольте мне познакомить вас с основными функциями и возможностями этого приложения. Программа абсолютно бесплатна, мультиплатформенная и имеет открытый исходный код. Одной из ее ключевых особенностей является возможность монтирования различных типов файловых систем, таких как внутренние, облачные или виртуальные. Кроме того, она позволяет обслуживать внутренние или удаленные файлы по таким протоколам, как SFTP, HTTP, FTP и другим. Является аналогом Rsync в области облачных технологий.

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

Если вы столкнулись с трудностями при загрузке больших файлов, программа предлагает возможность сжать их или разделить на более мелкие части. Кроме того, она проверяет целостность сохраненных данных, гарантируя, что ваши файлы останутся нетронутыми и не поврежденными. Наконец, программа поддерживает те же команды, что и Linux/Unix, что делает ее простой в использовании для тех, кто знаком с этими системами.

Установка Rclone в Linux

Если вы хотите установить Rclone на систему Linux или Unix, есть несколько вариантов. Вы можете использовать официальный сценарий установки, менеджер пакетов или установить из исходных текстов. Ниже приведены шаги для каждого метода:

Использование сценария установки

Сценарий установки можно использовать для установки как стандартной, так и бета-версии Rclone. Чтобы воспользоваться скриптом, откройте терминал и введите следующую команду:

  • $ curl https://rclone.org/install.sh | sudo bash

Сценарий проверит, установлен ли уже Rclone в системе. Если он установлен, скрипт завершит работу без его переустановки. Чтобы установить бета-версию, выполните следующую команду:

  • $ curl https://rclone.org/install.sh | sudo bash -s beta

Использование менеджера пакетов

Большинство дистрибутивов Linux включают Rclone в свои репозитории по умолчанию. Чтобы установить Rclone с помощью менеджера пакетов, используйте соответствующую команду для вашей системы:

  •     Arch Linux, EndeavourOS и Manjaro Linux: sudo pacman -S rclone
  •     Alpine Linux: sudo apk add rclone
  •     Debian, Ubuntu, Linux Mint, Pop OS: sudo apt install rclone
  •     Fedora, RHEL, CentOS, AlmaLinux, Rocky Linux: sudo dnf install rclone

Для RHEL и подобных систем может потребоваться сначала включить репозиторий [EPEL] с помощью следующей команды:

  • $ sudo dnf install epel-release

Для OpenSUSE используйте следующую команду:

  • $ sudo zypper install rclone

Установка

Чтобы установить Rclone сначала убедитесь, что у вас установлен Go версии 1.4 или более поздней. Следуйте руководству по установке Go в Linux, затем введите следующую команду:

  • $ go get github.com/rclone/rclone

Чтобы установить бета-версию, используйте следующую команду:

  • $ go get github.com/rclone/rclone@master

Установка пакета моментальных снимков Rclone

Чтобы установить пакет моментальных снимков Rclone, выполните следующую команду:

  • $ sudo snap install rclone —classic

Проверка версии Rclone

После установки Rclone вы можете проверить установленную версию с помощью команды:

  • $ rclone version

В результате будет показан номер версии и некоторая информация о системе, такая как операционная система, версия ядра и версия Go.

Обращение за помощью

Чтобы получить помощь по работе с Rclone, используйте одну из следующих команд:

  • $ rclone help
  • $ rclone -h

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

  • $ rclone mount help

Это выведет справку по команде «mount».

Создание и настройка шаблонов в Zabbix

Шаблоны в Zabbix позволяют вам синхронизировать мониторинг группы хостов.

Создание шаблонов

Найдите вкладку “Конфигурация” — “Шаблоны”. Кликните на “Создать шаблон”. Установите имя для шаблона. Установите группу хостов для работы с этим шаблоном.

Настройка содержимого шаблона

Перейдите во вкладку “Шаблоны”, чтобы провести более гибкую настройку группы. 

Для добавления какого-либо элемента, найдите его и отметьте галочкой, после кликните “Copy”. 

Определите место копирования.

Назначение шаблонов для узлов сети

После создания шаблона, вы можете установить его для единственного хоста или для группы. “Конфигурация” — “Хосты”, найдите устройство, которому вы хотите назначить шаблон. Кликните на имя. 

Во вкладке “Шаблоны”, на панели управления хостом, кликните “Выбрать”. Далее, нажмите на “Добавить”, это нужно для закрепления шаблона к хосту. Аналогичные действия проделайте с другими хостами.

Настройка и создание триггеров в Zabbix

Триггер — абстрактная метка, с помощью которой происходит отслеживание определенных событий и метрик в системах. У триггера в программной системе Zabbix существуют несколько состояний:

  • ок — система (элемент системы) в норме 
  • проблема (возникает, когда триггер следит за изменениями метрики, срабатывает при превышении или понижении установленного порогового значения)
  • неизвестная внештатная ситуация — что-то произошло, система мониторинга не может классифицировать возникшую проблему

Инициализация триггеров

Найдите пункт “Конфигурация”, перейдите во вкладку “Хосты”, определите наблюдаемый узел, создайте триггер через вкладку “Триггер”. Заполните поля наиболее детальным и понятным образом, чтобы понимать релевантность триггера.

Поле “Выражение проблемы” отвечает за установку конкретного значения, которое впоследствии будет являться порогом изменения состояния триггера. Чтобы составить условие, функцию обработки события, откройте конструктор выражений. Выберите наблюдаемый элемент.

Нормальное состояние (ОК) означает стабильную работу элемента (или системы), без обработки триггеров. Вы можете принудительно отменить автоматическое изменения триггера в состояние OK, для этого выберите значение “Нет”.

У вас также есть возможность настроить режим генерации событий. Вы можете настроить оповещение о проблеме 1 раз или при каждом изменении состояния.

Опция “Ручное закрытие” позволит вам в ручном режиме управлять состояниями триггера. После того, как вы добавили триггер, перейдите в меню “Конфигурации”, после найдите пункт “Узлы сети”, далее “Триггеры”.

Установка Zabbix (Ubuntu 20.04 Vers.)

Zabbix — это программная система, предназначенная для мониторинга различных ИТ-инфраструктур, включая облачные сервисы, обычные сети и виртуальные частные серверы (VPS). Это решение с открытым исходным кодом является бесплатным и может использоваться для мониторинга широкого спектра параметров, таких как загрузка процессора, доступное место на жестком диске, ping, доступность хоста и загрузка сети. Оно также способно генерировать графики и отправлять предупреждения по результатам мониторинга.

Мониторинг Zabbix может быть реализован различными методами, включая использование программы-агента или задействование существующих ресурсов системы или устройства, таких как ICMP ping или SNMP. Это универсальная система, которая может отслеживать широкий спектр параметров, включая загрузку процессора, пространство на жестком диске, загрузку сети и доступность хоста. Zabbix также может строить графики данных и отправлять предупреждения для уведомления администраторов о потенциальных проблемах.

В настоящее время Zabbix обычно развертывается с использованием MySQL в качестве базы данных и Nginx в качестве веб-сервера на Ubuntu версии 20.04. Однако существуют и альтернативные варианты базы данных и веб-сервера, в зависимости от конкретных потребностей и предпочтений пользователя.

Подготовка 

Для установки и настройки мониторинга Zabbix вам понадобится сервер под управлением Ubuntu 20.04 с доступом root. Многие команды в процессе установки требуют root-доступа, поэтому убедитесь, что вы вошли в систему как root или ис