Архив рубрики: Публикации

MikroTik – статические маршруты.

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

Освоить MikroTik Вы можете с помощью онлайн-куса
«Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

Схема сетей.

В обоих сетях работают роутеры MikroTik RB750Gr3 с прошивкой 6.48.

В первые порты подключены патч-корды внешних сетей.

Во вторые порты подключен патч-корд между двумя роутерами (красный).

В пятые порты подключены патч-корды до коммутаторов ЛВС (синие).

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

Обозначим роутеры №1 и №2.

Базовые настройки помещены под спойлер.


СПОЙЛЕР Настройки роутера №1.

Подключаемся к роутеру через WinBox из локальной сети. (как это сделать)

Reset Configuration.

Сбрасываем конфигурацию без сохранения настроек по умолчанию.

Через командную строку терминала:



Подключаемся к роутеру по MAC-адресу.

 

Ports.

Переименуем порты, чтоб не путаться в процессе настройки.

ether1-WAN (внешняя сеть – Интернет)

ether2-ROUTE (роутер №2)

ether3-ether5 – LAN (локальная сеть)

Через командную строку терминала:



 

Bridge.

Создаем мост для внутренней локальной сети.

Через командную строку терминала:



 

Bridge ports.

Добавляем в мост порты ether3-ether5

Через командную строку терминала:



 

Bridge address.

Назначим мосту статический IP-адрес.

Через командную строку терминала:



 

Ether2-ROUTE address.

Назначим статический адрес порту в направлении второго роутера.

Через командную строку терминала:



 

DHCPclient.

Создадим получение IP-адреса от вышестоящего роутера (провайдера) в автоматическом режиме.

Создаем DHCP Client соединение.

Через командную строку терминала:



 

DHCPserver для локальной сети.

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

Через командную строку терминала:



 

Укажем сеть для DHCP-сервера.

Через командную строку терминала:



 

Создадим DHCP Server.

Через командную строку терминала:



 

Привяжем полученный IP-адрес к MAC-адресу ПК пользователя.

Через командную строку терминала:



 

DNS.

Динамический DNS будет присвоен автоматически, или его можно указать вручную.

Allow Remote Requests – отмечаем галочкой.

Через командную строку терминала:



 

NAT.

NAT masquerade подменяет IP-адреса локальной сети на внешний IP при отправке запросов и обратная ситуация при возвращении ответов.

Через командную строку терминала:



После этих действий Интернет заработает в локальной сети.

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


Routes.

Создадим маршрут от первого до второго роутера. Это можно сделать в меню  IP >> Routes.

Через командную строку терминала:



Этот маршрут означает что при необходимости попасть в сеть 192.168.20.0/24 будет использован шлюз 172.16.0.20.

 


СПОЙЛЕР Настройки роутера №2.

Подключаемся к роутеру через WinBox из локальной сети. (как это сделать)

Reset Configuration.

Сбрасываем конфигурацию без сохранения настроек по умолчанию.

Через командную строку терминала:



Подключаемся к роутеру по MAC-адресу.

 

Ports.

Переименуем порты, чтоб не путаться в процессе настройки.

ether1-WAN (внешняя сеть – Интернет)

ether2-ROUTE (роутер №1)

ether3-ether5 – LAN (локальная сеть)

Через командную строку терминала:



 

Bridge.

Создаем мост для внутренней локальной сети.

Через командную строку терминала:



 

Bridge ports.

Добавляем в мост порты ether3-ether5

Через командную строку терминала:



 

Bridge address.

Назначим мосту статический IP-адрес.

Через командную строку терминала:



 

Ether2-ROUTE address.

Назначим статический адрес порту в направлении первого роутера.

Через командную строку терминала:



 

DHCPclient.

Создадим получение IP-адреса от вышестоящего роутера (провайдера) в автоматическом режиме.

Создаем DHCP Client соединение.

Через командную строку терминала:



 

DHCPserver для локальной сети.

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

Через командную строку терминала:



 

Укажем сеть для DHCP-сервера.

Через командную строку терминала:



 

Создадим DHCP Server.

Через командную строку терминала:



 

Привяжем полученный IP-адрес к MAC-адресу ПК пользователя.

Через командную строку терминала:



 

DNS.

Динамический DNS будет присвоен автоматически, или его можно указать вручную.

Allow Remote Requests – отмечаем галочкой.

Через командную строку терминала:



 

NAT masquerade.

Через командную строку терминала:



После этих действий Интернет заработает в локальной сети.

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


Routes.

Создадим маршрут от второго роутера к первому роутера. Переходим в боковом меню в  IP >> Routes.

Через командную строку терминала:



Этот маршрут означает что при необходимости попасть в сеть 192.168.10.0/24 будет использован шлюз 172.16.0.10.

Настроенная система прошла успешное тестирование. Доступ между сетями может ограничивать антивирус или правила Firewall в роутерах.

Освоить MikroTik Вы можете с помощью онлайн-куса
«Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.



2021-04-02T16:37:28
Настройка ПО

POP! _OS против Linux Mint

Дистрибутивы Linux разработаны для обеспечения отличной совместимости, функций и расширенных возможностей администрирования. Однако всегда сложно выбрать один из этих дистрибутивов Linux, который может удовлетворить требования, поскольку в Интернете доступно несколько типов ОС Linux. Мы рассмотрели наиболее важную информацию о двух известных Pop! _OS и Linux Mint. К концу статьи вы получите все необходимые сведения о Pop! _OS и Linux Mint, которые помогут вам выбрать одну из этих ОС Linux.

 

POP! _OS

Pop! _OS основан на Ubuntu и предлагает среду с открытым исходным кодом в качестве операционной системы Linux. Эта ОС Linux по умолчанию состоит из настраиваемого рабочего стола GNOME и разработана американским производителем компьютеров Linux System76.

Pop! _OS против Zorin OS

 

Последняя версия этой ОС Linux — 20.04, основанная на последней версии Ubuntu: 20.04 LTS. Таким образом, POP! _OS обеспечивает надежную и стабильную поддержку программного обеспечения, устраняя все предыдущие ошибки. Последняя версия Pop! _ OS также включает новую систему поддержки библиотек для управления репозиториями; пользователи могут легко изменить зеркала системного репозитория по умолчанию и восстановить зеркала по умолчанию.

 

Особенности Pop! _OS

Итак, вот список функций, включенных в последнюю версию Pop! _OS:

  • Эта операционная система Linux имеет автоматическую мозаику окон.
  • Пользователи могут использовать последнюю версию средства запуска новых приложений.
  • Эта ОС Linux имеет функцию стекирования и расширенную поддержку гибридной графики.
  • Pop! _Shop теперь поддерживает плоские пакеты.
  • Он имеет поддержку GNOME 3.36 и Linux Kernel 5.8.

 

Linux Mint

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

Как полностью удалить пакет в Linux Mint 20

 

Согласно отзывам пользователей, Linux mint — один из предпочтительных вариантов для перехода с Windows или Mac на среду Linux. Этот дистрибутив Linux существует с 2006 года и теперь стал одной из лучших операционных систем, удобных для пользователя.

 

Особенности Linux Mint

Linux Mint предлагает несколько функций, поэтому вот их список:

  • В последней версии улучшены Cinnamon 3.8 и XApps.
  • В Linux Mint есть великолепный экран приветствия и менеджер обновлений.
  • В последней версии есть exFat, который поддерживается инструментом форматирования USB-накопителей.
  • В этом дистрибутиве Linux есть фантастический менеджер программного обеспечения.
  • Linux Mint имеет мультимедийные кодеки, включая шрифты Microsoft.

 

POP! _OS против Linux Mint: системные требования







Минимальные требованияLinux MintPop! _OS
Лучше всего дляУстройство среднего уровняУстройство среднего уровня
Требования к оперативной памятиТребуется минимум 1 ГБ, но рекомендуется 2 ГБТребуется минимум 2 ГБ, но рекомендуется 4 ГБ
Требования к процессору32-битный процессор X86Рекомендуется двухъядерный 64-битный

 

POP! _OS против Linux Mint: таблица сравнения













ФакторыLinux MintPop! _OS
СозданДистрибутив, управляемый сообществом, на основе Ubuntu.System76 (производитель AmericanLinux)
Требуется навыкНовичокНовичок
На основеUbuntu и DebianВыпуск Ubuntu LTS
Лучше всего дляЛучше всего для общих целей.Лучше всего для общих целей.
Поддержка программного обеспеченияУ него отличная система поддержки программного обеспечения.Система поддержки программного обеспечения не лучше Linux Mint.
Требования к оборудованиюТребования к оборудованию среднего уровняТребования к оборудованию среднего уровня
Легкость использованияЭто простая в использовании операционная система Linux.Лучше всего для начинающих пользователей.
СтабильностьЭто очень стабильная ОС Linux.Стабильность не лучше, чем у Linux Mint.
Циклы выпускаУ него есть фиксированный цикл выпуска, который происходит один раз в месяц.У него фиксированный цикл выпуска: раз в два года.

 

Заключение

Это завершает полное сравнение POP! _OS и Linux Mint, которое поможет вам выбрать один из этих дистрибутивов Linux в соответствии с вашими требованиями. Эти дистрибутивы Linux предлагают отличную совместимость и функции для новичков. Если вы переключитесь с Windows или Mac на Linux, вы можете выбрать одну из этих ОС Linux, чтобы предложить пользователям простые в использовании параметры и пользовательский интерфейс. На наш взгляд, Linux Mint лучше всего подходит для тех, кому нужен дистрибутив для рабочей станции, но Pop! _OS лучше всего для тех, кто хочет иметь игровой дистрибутив на основе Ubuntu.



2021-04-02T16:30:23
Linux Mint

Уязвимости состояния гонки в веб-приложениях

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

Различные процессы могут взаимодействовать друг с другом без адекватных мер. Эти атаки также известны как атака Time of Check, атака Time of Use или атаки TOC/TOU. Уязвимости в условиях гонки возникают в первую очередь из-за базовых программных ошибок, которые обычно создают разработчики, и эти сбои оказались дорогостоящими. Злонамеренные организации использовали расовые условия для множества злонамеренных целей, например, от получения бесплатных ваучеров до кражи денег с онлайн-счетов и инвестиционных фирм.

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

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

 

Объем атак на состояние расы:

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

Уязвимость Race condition была обнаружена Егором Хомаковым на сайте Starbucks. Он нашел способ создать бесконечное количество кредитов на подарочные ваучеры Starbucks бесплатно, используя разные браузеры с разными файлами cookie.

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

 

Реальные сценарии атак:

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

curl (withdraw 50000) & (withdraw 50000) & (withdraw 50000) & (withdraw 50000) & (withdraw 50000) & (withdraw 50000)

 

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

Более того, если вы отправляете асинхронные последующие запросы, вы будете следовать за пользователем несколько раз вместо отправки ответа об ошибке, то есть если вы добавите поддельный заголовок, содержащий %s, отбрасывая запросы с помощью turbo intruder, и вставите следующий код python:

def followReqs(target, wordlists):

engine = RequestEngine(endpoint=target.endpoint,

concurrentConnections=40,

requestsPerConnection=100,

pipeline=False

)



for i in range(40):

engine.queue(target.req, str(i), gate='check')



engine.openGate('check')

.complete(timeout=60)

def responseHandle(req, interesting):

table.add(req)

Вы увидите кнопку атаки. После нажатия этой кнопки Turbo Intruder отправляет 40 запросов и сканирует коды состояния. Если вы видите несколько ответов со статусом 201 сгенерированный, это означает, что вы несколько раз следили за этим человеком.

Существует уязвимость race condition, при которой вы можете получить доступ к нескольким консолям, предлагаемым для бесплатных учетных записей. Большинство сайтов, предоставляющих бесплатные консоли, имеют бесплатные учетные записи, стандартные и премиальные пакеты. Бесплатные аккаунты предоставляют только 2 или 3 консоли на одного пользователя. Чтобы нарушить это ограничение и использовать неограниченное количество консолей, вторгнитесь в запрос GET, используя нулевые полезные нагрузки несколько раз, например 100 или 200. А затем удалите любую из консолей вручную из пользовательского интерфейса во время выполнения потоков.

 

Вывод:

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



2021-04-01T23:42:08
Python

Резервное копирование Mikrotik через Oxidized

Итак сегодня речь пойдет об инструменте в задачу которого входит выполнение централизованного резервного копирования конфигурационных файлов (те которые выполняются с расширением rsc) оборудования Mikrotik. Плюс инструмент умеет отображать разницу в изменениях, а делает он это через складирование изменений посредством системы контроля версий GIT. Я если честно давно искал такой инструмент и вот я воплотил свою задумку разобрав от и до все шаги по разворачиванию сервиса oxidized в систему Ubuntu 18.04 Server amd64. Узнал я о нем это просматривая опубликованные презентации посвященные Mikrotik, к примеру если через поисковую систему Google ввести «Автоматизируем бэкап — MUM — MikroTik»




Предварительные действия: На всех Mikrotik(ах) для которых Вы хотите осуществлять резервное копирование нужно сделать учетную записи с минимальными правами, к примеру только на чтение:




ekzorchik@srv-bionic:~$ ssh -l admin 172.33.33.22
 
[admin@MikroTik] > user add name=test password=Aa1234567 group=read
 
[admin@MikroTik] > quit




Connection to 172.33.33.22 closed.




ekzorchik@srv-bionic:~$




Шаг №1: Настраиваю систему





ekzorchik@srv-bionic:~$ hg clone --insecure https://ekzorchik@172.35.35.8/hg/dproject
 
ekzorchik@srv-bionic:~$ sudo ./dproject/default




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




ekzorchik@srv-bionic:~$ uname -a && lsb_release -a




Linux srv-bionic 4.15.0-43-generic #46-Ubuntu SMP Thu Dec 6 14:45:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux




No LSB modules are available.




Distributor ID: Ubuntu




Description: Ubuntu 18.04.2 LTS




Release: 18.04




Codename: bionic




ekzorchik@srv-bionic:~




Шаг №2: Устанавливаю пакет Oxidized в систему Ubuntu 18.04 Server amd64:




ekzorchik@srv-bionic:~$ sudo apt-get install ruby ruby-dev libsqlite3-dev libssl-dev pkg-config cmake libssh2-1-dev libicu-dev -y
 
ekzorchik@srv-bionic:~$ gem install oxidized oxidized-script oxidized-web




Fetching: asetus-0.3.0.gem (100%)




ERROR: While executing gem ... (Gem::FilePermissionError)




You don't have write permissions for the /var/lib/gems/2.5.0 directory.




ekzorchik@srv-bionic:~$ sudo gem install oxidized oxidized-script oxidized-web




Done installing documentation for charlock_holmes, rack, tilt, rack-protection, sinatra, emk-sinatra-url-for, temple, haml, htmlentities, puma, rb-fsevent, ffi, rb-inotify, sass-listen, sass, backports, rack-test, multi_json, sinatra-contrib, oxidized-web after 675 seconds




22 gems installed




ekzorchik@srv-bionic:~$




Шаг №3: Cоздаю пользователя oxidized, с правами которого будет запускаться система бэкапа:




ekzorchik@srv-bionic:~$ sudo useradd -m -p 712mbddr@ -s /bin/bash oxidized




На время даю права повышения привилегий, в конце заметки заберу.




ekzorchik@srv-bionic:~$ sudo usermod -aG sudo oxidized




Шаг №4: Создаю структуру запуска приложения oxidized




ekzorchik@srv-bionic:~$ sudo su - oxidized




oxidized@srv-bionic:~$ oxidized -v




0.26.1




oxidized@srv-bionic:~$




oxidized@srv-bionic:~$ whereis oxidized




oxidized: /usr/local/bin/oxidized




oxidized@srv-bionic:~$ oxidized




edit ~/.config/oxidized/config




oxidized@srv-bionic:~$ mkdir ~/.config/oxidized/crashes




oxidized@srv-bionic:~$ mkdir ~/.config/oxidized/mikrotik/




oxidized@srv-bionic:~$ sudo find / -name oxidized




/home/oxidized




/home/oxidized/.config/oxidized




/run/sudo/ts/oxidized




/usr/local/bin/oxidized




/var/lib/gems/2.5.0/gems/oxidized-web-0.13.1/lib/oxidized




/var/lib/gems/2.5.0/gems/oxidized-0.26.1/lib/oxidized




/var/lib/gems/2.5.0/gems/oxidized-0.26.1/bin/oxidized




/var/lib/gems/2.5.0/gems/oxidized-script-0.6.0/lib/oxidized




/var/lib/gems/2.5.0/doc/oxidized-web-0.13.1/ri/lib/oxidized




oxidized@srv-bionic:~$




Шаг №5: Преднастраиваем GIT для устройств Mikrotik бекапы которых будут хранится в репозитарии:




oxidized@srv-bionic:~$ sudo apt-get install git -y




oxidized@srv-bionic:~$ git config --global user.email "oxidized@ekzorchik.ru"




oxidized@srv-bionic:~$ git config --global user.name "oxidized"




oxidized@srv-bionic:~/.config/oxidized$ git init oxidized.git




Initialized empty Git repository in /home/oxidized/.config/oxidized/oxidized.git/.git/




oxidized@srv-bionic:~/.config/oxidized$ git init devices.git




Initialized empty Git repository in /home/oxidized/.config/oxidized/devices.git/.git/




Шаг №6: Настраиваем конфигурационный файл




oxidized@srv-bionic:~$ nano ~/.config/oxidized/config




---
 
model: routeros
resolve_dns: true
 
#Как часто делать бекапы

interval: 3600
use_syslog: false
debug: false
threads: 30
timeout: 20
retries: 3
prompt: !ruby/regexp /^([w.@-]+[#>]s?)$/
rest: 0.0.0.0:8888
next_adds_job: false
vars: {}
groups: {}
models: {}
pid: "/home/oxidized/.config/oxidized/pid"
log: "/home/oxidized/.config/oxidized/log"
crash:
directory: "/home/oxidized/.config/oxidized/crashes"
hostnames: false
stats:
history_size: 10
input:

#Тип подключения к устройству

default: ssh
 
#Расширенное логирование отключено
 
debug: false
ssh:
secure: false
map:
verify_host_key: never
utf8_encoded: true
 
#где хранится конфигурации GIT
 
output:
default: git
git:
user: oxidized
email: oxidized@ekzorchik.ru
repo: "/home/oxidized/.config/oxidized/oxidized.git"
git:
user: oxidized
email: oxidized@ekzorchik.ru
repo: "/home/oxidized/.config/oxidized/devices/devices.git"

#Откуда берется информация об устройства которые бекапятся
 
source:
default: csv
csv:
file: "/home/oxidized/.config/oxidized/mikrotik/router.db"
delimiter: !ruby/regexp /:/
 
#Структура строки в router.db: name:model:ip:port:username:password
 
map:
name: 0
model: 1
ip: 2
port: 3
username: 4
password: 5
model_map:
cisco: ios
juniper: junos
mikrotik: routeros




На заметку: Если не настроена авторизация на Mikrotik через публичный ключ, т. е. Вход на Mikrotik с одним лишь указанием логина, то в конфигурационный файл oxidized следует добавить параметр: verify_host_key: never




Шаг №7: Копируем публичный ssh—ключ на Mikrotik:




oxidized@srv-bionic:~$ ssh-keygen




Your identification has been saved in /home/oxidized/.ssh/id_rsa.




Your public key has been saved in /home/oxidized/.ssh/id_rsa.pub.




oxidized@srv-bionic:~$ cp ~/.ssh/id_rsa.pub idrsa
 
oxidized@srv-bionic:~$ ftp 172.33.33.22




Connected to 172.33.33.22.




220 MikroTik FTP server (MikroTik 6.42.5) ready




Name (172.33.33.22:ekzorchik): admin




ftp> put idrsa




ftp> quit




oxidized@srv-bionic:~$
 
oxidized@srv-bionic:~$ ssh admin@172.33.33.22
 
[admin@MikroTik] > user ssh-keys import public-key-file=idrsa user=test
 
[admin@MikroTik] > quit




Connection to 172.33.33.22 closed.




oxidized@srv-bionic:~$




oxidized@srv-bionic:~$ ssh test@172.33.33.22 — подключение проходит без каких либо запросов на ввод пароля.




Шаг №8: Теперь создаю файл подключения к оборудованию Mikrotik:





oxidized@srv-bionic:~$ nano ~/.config/oxidized/mikrotik/router.db
 
mikrotik:routeros:172.33.33.22:22:test:Aa1234567




Шаг №9: Проверяю запуск и соответственно на предмет каких-либо ошибок препятствующих запуску:




oxidized@srv-bionic:~$ oxidized ~/.config/oxidized/config




Puma starting in single mode...




* Version 3.11.4 (ruby 2.5.1-p57), codename: Love Song




* Min threads: 0, max threads: 16




* Environment: development




* Listening on tcp://0.0.0.0:8888




Use Ctrl-C to stop







У каждой строчке есть колонка «Actions»







  • Первая иконка: Посмотреть текущий конфигурационный файл
  • Вторая иконка: Посмотреть историю изменений конфигурационного файла
  • Третья иконка: Это запуск процедуры снятия изменения в репозитарий




Шаг №10: См.логи если что-то пошло не так




ekzorchik@srv-bionic:~$ tail -f /home/oxidized/.config/oxidized/log




W, [2019-03-04T11:34:49.491810 #28328] WARN -- : /mikrotik status no_connection, retries exhausted, giving up




I, [2019-03-04T11:36:11.666786 #28380] INFO -- : Oxidized starting, running as pid 28380




I, [2019-03-04T11:36:11.669229 #28380] INFO -- : lib/oxidized/nodes.rb: Loading nodes




I, [2019-03-04T11:36:11.812262 #28380] INFO -- : lib/oxidized/nodes.rb: Loaded 1 nodes




I, [2019-03-04T11:36:14.351899 #28380] INFO -- : Configuration updated for /mikrotik




Шаг №11: Для того, чтобы oxidized стартовал как служба, сделайте следующее:




oxidized@srv-bionic:~$ sudo find / -name oxidized.service




/var/lib/gems/2.5.0/gems/oxidized-0.26.1/extra/oxidized.service




oxidized@srv-bionic:~$ sudo cp /var/lib/gems/2.5.0/gems/oxidized-0.26.1/extra/oxidized.service /lib/systemd/system/




oxidized@srv-bionic:~$ sudo nano /lib/systemd/system/oxidized.service




[Unit]
Description=Oxidized - Network Device Configuration Backup Tool
After=network-online.target multi-user.target
Wants=network-online.target
 
[Service]
ExecStart=/usr/local/bin/oxidized
User=oxidized
KillSignal=SIGKILL
Environment="OXIDIZED_HOME=/home/oxidized/.config/oxidized/"
 
[Install]
WantedBy=multi-user.target




oxidized@srv-bionic:~$ sudo systemctl enable oxidized.service




Created symlink /etc/systemd/system/multi-user.target.wants/oxidized.service → /lib/systemd/system/oxidized.service.




oxidized@srv-bionic:~$ sudo systemctl start oxidized




oxidized@srv-bionic:~$ sudo systemctl status oxidized | head -n5




● oxidized.service - Oxidized - Network Device Configuration Backup Tool




Loaded: loaded (/lib/systemd/system/oxidized.service; enabled; vendor preset: enabled)




Active: active (running) since Mon 2019-03-04 12:16:53 MSK; 9s ago




Main PID: 29039 (oxidized)




Tasks: 7 (limit: 2322)




Проверяю, что ожидаются соединения на порт 8888




oxidized@srv-bionic:~$ sudo netstat -tulpn | grep :8888




tcp 0 0 127.0.0.1:8888 0.0.0.0:* LISTEN 29039/puma 3.11.4 (




oxidized@srv-bionic:~$




Шаг №12: По умолчанию у сервиса нет возможности указать авторизацию, а потому в конфиге config изменяю доступ на 172.0.0.1




oxidized@srv-bionic:~$ nano ~/.config/oxidized/config




#rest: 0.0.0.0:8888

rest: 127.0.0.1:8888




oxidized@srv-bionic:~$ sudo apt-get install nginx -y




oxidized@srv-bionic:~$ sudo rm /var/www/html/index.nginx-debian.html




oxidized@srv-bionic:~$ sudo unlink /etc/nginx/sites-available/default




oxidized@srv-bionic:~$ sudo unlink /etc/nginx/sites-enabled/default




Создаю файл связки логина и пароля для аутентификации через Web—интерфейс:




oxidized@srv-bionic:~$ sudo sh -c "echo -n 'ekzorchik:' >> /var/www/html/.htpasswd"




oxidized@srv-bionic:~$ openssl passwd -apr1




Password: 712mbddr@




Verifying - Password: 712mbddr@




$apr1$rwseclUD$ANBsXcpdvR.07mthC2PLO.




oxidized@srv-bionic:~$ sudo sh -c "openssl passwd -apr1 >> /var/www/html/.htpasswd"




Password: 712mbddr@




Verifying - Password: 712mbddr@




oxidized@srv-bionic:~$ cat /var/www/html/.htpasswd




ekzorchik:$apr1$V6ZTHWcF$bdDbxqPJAQAzfdXw7Z9n/0




oxidized@srv-bionic:~$ sudo chown -R www-data:www-data /var/www/html/.htpasswd




oxidized@srv-bionic:~$ sudo nano /etc/nginx/sites-available/oxidized




server { 
listen 172.33.33.4:80; 
server_name _; 
root /usr/share/nginx/html; 
include /etc/nginx/default.d/*.conf; 
location / { 
auth_basic "UserName and Password Please"; 
auth_basic_user_file /var/www/html/.htpasswd; 
proxy_pass http://127.0.0.1:8888/; 
} 
}




oxidized@srv-bionic:~$ sudo ln -s /etc/nginx/sites-available/oxidized /etc/nginx/sites-enabled/oxidized




oxidized@srv-bionic:~$ sudo nginx -t




nginx: the configuration file /etc/nginx/nginx.conf syntax is ok




nginx: configuration file /etc/nginx/nginx.conf test is successful




oxidized@srv-bionic:~$ sudo systemctl restart nginx && sudo systemctl status nginx | head -n5




● nginx.service - A high performance web server and a reverse proxy server




Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)




Active: active (running) since Mon 2019-03-04 12:19:27 MSK; 34ms ago




Docs: man:nginx(8)




Process: 29084 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)




oxidized@srv-bionic:~$




Auth Basic авторизация в Oxidizing через NGINX




Вход успешно выполнен в систему Oxidizing на Ubuntu 18.04 Server




Работает! Итого я для себя разобрал, как использовать инструмент oxidized на Ubuntu 18.04 Server amd64 для создания резервных копий с оборудования Mikrotik и просмотра внесенных изменений через Web-интерфейс с применением системы контроля версий на базе GIT. Жалко что нельзя использовать Mercurial — мне данная система контроля версий ближе, у меня все на ней построено: скрипты, конфигурационные файлы и т. д. А пока на этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.













Источник: https://www.ekzorchik.ru/2019/03/backing-up-mikrotik-via-oxidized/







Git проекта: https://github.com/ytti/oxidized



2021-04-01T22:40:19
Software

Инструмент для сбора логов GrayLog2

Еще одна система по сбору логов в Web—интерфейс с целью наглядного отображения собираемого с систем, сервисов.




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




Так вот я хочу самостоятельно посмотреть что есть приложение/сервис Graylog2 который мне бы хотелось развернуть на Ubuntu Trusty Server. Как я понял Graylog2 (лог обработчик) имеет связку: ElasticSearch (Сервис хранения сообщений) + Java + MongoDB (Сервис хранения конфигурации и метаданных)




Текущие характеристики тестовой системы: RAM = 2,CPU =1,HDD = 50




По документации схема работы:







ekzorchik@srv-trusty:~$ sudo rm -Rf /var/lib/apt/lists/




ekzorchik@srv-trusty:~$ sudo apt-get update && sudo apt-get upgrade -y




ekzorchik@srv-trusty:~$ sudo apt-get install linux-generic-lts-xenial linux-image-generic-lts-xenial -y




ekzorchik@srv-trusty:~$ uname -a




Linux srv-trusty 4.4.0-79-generic #100~14.04.1-Ubuntu SMP Fri May 19 18:36:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux




Устанавливаю Java в систему, пусть будет пока восьмая версия:




ekzorchik@srv-trusty:~$ sudo apt-add-repository ppa:webupd8team/java




ekzorchik@srv-trusty:~$ sudo apt-get update && sudo apt-get install oracle-java8-installer -y




You MUST agree to the license available in http://java.com/license if you want to use Oracle JDK. - Ok




Do you accept the Oracle Binary Code license terms? - Yes




Как говорят различные руководства нужно в систему установить репозитарий установки MongoDB:




ekzorchik@srv-trusty:~$ echo 'deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list




deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen




ekzorchik@srv-trusty:~$ sudo apt-get update




ekzorchik@srv-trusty:~$ sudo gpg --keyserver keyserver.ubuntu.com --recv 9ECBEC467F0CEB10




ekzorchik@srv-trusty:~$ sudo bash -c "gpg --export --armor 9ECBEC467F0CEB10 | apt-key add -"




OK




ekzorchik@srv-trusty:~$ sudo apt-get update




ekzorchik@srv-trusty:~$ sudo apt-get install mongodb-org -y




ekzorchik@srv-trusty:~$ mongo --version




MongoDB shell version: 2.6.12




Далее устанавливаем ElasticSearch в систему по такому же принципу как добавления репозитария:




ekzorchik@srv-trusty:~$ wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -




OK




ekzorchik@srv-trusty:~$ echo "deb https://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list




deb https://packages.elastic.co/elasticsearch/2.x/debian stable main




ekzorchik@srv-trusty:~$ sudo apt-get update && sudo apt-get install elasticsearch -y




ekzorchik@srv-trusty:~$ sudo update-rc.d elasticsearch defaults 95 10




Далее нужно подправить параметр cluster.name конфигурационного файла ElasticSearch:




ekzorchik@srv-trusty:~$ sudo nano /etc/elasticsearch/elasticsearch.yml




cluster.name: srv-trusty




network.host: localhost




ekzorchik@srv-trusty:~$ sudo service elasticsearch restart




Для проверки, что ElasticSearch работает существует вот такой вот запрос через консоль: (если вывод есть, такой как представлен у меня то все работает)




ekzorchik@srv-trusty:~$ curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'




{




"cluster_name" : "srv-trusty",




"status" : "green",




"timed_out" : false,




"number_of_nodes" : 1,




"number_of_data_nodes" : 1,




"active_primary_shards" : 0,




"active_shards" : 0,




"relocating_shards" : 0,




"initializing_shards" : 0,




"unassigned_shards" : 0,




"delayed_unassigned_shards" : 0,




"number_of_pending_tasks" : 0,




"number_of_in_flight_fetch" : 0,




"task_max_waiting_in_queue_millis" : 0,




"active_shards_percent_as_number" : 100.0




}




Устанавливаем GrayLog2 в систему:




ekzorchik@srv-trusty:~$ sudo apt-get install apt-transport-https




ekzorchik@srv-trusty:~$ wget https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.deb




ekzorchik@srv-trusty:~$ sudo dpkg -i graylog-2.2-repository_latest.deb




ekzorchik@srv-trusty:~$ sudo apt-get update && sudo apt-get install graylog-server -y




Чтобы сервис graylog мог стартовать в автоматическом режиме при загрузке систему нужно:




ekzorchik@srv-trusty:~$ sudo rm -f /etc/init/graylog-server.override




ekzorchik@srv-trusty:~$ sudo service graylog-server start




graylog-server start/running, process 4206




Генерируем секретную фразу




ekzorchik@srv-trusty:~$ sudo apt-get install pwgen -y




ekzorchik@srv-trusty:~$ SECRET=$(pwgen -s 99 1)




ekzorchik@srv-trusty:~$ sudo -E sed -i -e 's/password_secret =.*/password_secret = '$SECRET'/' /etc/graylog/server/server.conf




Теперь создаем пароль на вход в Web—интерфейс Graylog:




ekzorchik@srv-trusty:~$ PASSWORD=$(echo -n 712mbddr@ | shasum -a 256 | awk '{print $1}')




ekzorchik@srv-trusty:~$ sudo -E sed -i -e 's/root_password_sha2 = .*/root_password_sha2 = '$PASSWORD'/' /etc/graylog/server/server.conf




ekzorchik@srv-trusty:~$ ip r




default via 10.7.8.100 dev eth0




10.7.8.0/23 dev eth0 proto kernel scope link src 10.7.9.130




ekzorchik@srv-trusty:~$ sudo nano /etc/graylog/server/server.conf




root_username = admin




#rest_listen_uri = http://127.0.0.1:9000/api/




rest_listen_uri = http://10.7.9.130:12900/




#web_listen_uri = http://127.0.0.1:9000/




web_listen_uri = http://10.7.9.130:9000/




#elasticsearch_index_prefix = graylog




elasticsearch_index_prefix = srv-trusty




После не забываем сохранить внесенные изменения и перезапускаем всю систему с установленным Graylog:




ekzorchik@srv-trusty:~$ sudo reboot




ekzorchik@srv-trusty:~$ sudo netstat -tulpn | grep :9000




tcp6 0 0 10.7.9.130:9000 :::* LISTEN 806/java




Затем открываю браузер и в строку адресу ввожу http://IP&DNS:9000 адрес сервера где составляю данную заметку установки Graylog в систему Ubuntu Trusty Server. В ответ у меня окно приглашения на аутентификацию:







После ввода в соответствующие поля (Username: admin, Password: 712mbddr@) данных нажимаю Sign in. Вот только странно, что меня не пускает, пишет: Invalid credentials, please verify them and retry.




Проверяю:




ekzorchik@srv-trusty:~$ PASSWORD=$(echo -n 712mbddr@ | shasum -a 256 | awk '{print $1}')




ekzorchik@srv-trusty:~$ echo $PASSWORD




0f4e548e505360ce63d651aedf0befd2d01f4cc488344dfa3efdb15ec3e2384e




ekzorchik@srv-trusty:~$ sudo grep root_password_sha2 /etc/graylog/server/server.conf




root_password_sha2 =

Странно, а где значения?




Исправляю.




ekzorchik@srv-trusty:~$ sudo -E sed -i -e 's/root_password_sha2 =.*/root_password_sha2 = '$PASSWORD'/' /etc/graylog/server/server.conf




Проблема была в том, что в первом поиске был символ пробела между символом равенства и точкой.




ekzorchik@srv-trusty:~$ sudo service graylog-server restart




На заметку: сервис стартует не сразу, а через некоторое время.




После переходу к URL вкладе где авторизовываюсь, введя данные нажимаю Sign In. Виже надпись We are preparing Graylog for you… и после меня перекидывает к тому чему я стремился к Web-интерфейсу управления логами. Нажимаю на уведомление в виде красного кружка и в качестве подтверждения что GrayLog работает должно быть только одно уведомление, что не настроены входящие потоки то все хорошо. Но у меня почему-то не так.













Еще раз смотрю документацию и вижу, что рекомендуется в качестве имени кластера использовать надпись graylog. Ну что ж попробую:




ekzorchik@srv-trusty:~$ sudo nano /etc/elasticsearch/elasticsearch.yml




cluster.name: graylog




ekzorchik@srv-trusty:~$ sudo service elasticsearch restart




ekzorchik@srv-trusty:~$ sudo nano /etc/graylog/server/server.conf




elasticsearch_index_prefix = graylog




#elasticsearch_index_prefix = srv-trusty




ekzorchik@srv-trusty:~$ sudo service graylog-server restart
















И вот теперь все хорошо. Graylog успешно запущен и ошибок со стороны кластера ElasticSearch нет. Вот оно оказывается как, да же именование имеет значение. Ну пока я разобрал для себя как установить Graylog2, а далее буду разбирать как им пользоваться. На этом я для себя шпаргалку составил. До новых встреч, с уважением автор блога Олло Александр aka ekzorchik.




Документация по Graylog: https://docs.graylog.org/en/3.2/




Ещё небольшая инструкция по GrayLog: http://samag.ru/archive/article/3828




Источник: https://www.ekzorchik.ru/2017/06/graylog2-log-collection-tool/



2021-04-01T22:18:21
Software

MX Linux против Ubuntu

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

 

MX Linux

MX Linux против Manjaro

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

Некоторые графические инструменты MX обеспечивают соответствующее удобство для выполнения различных задач при портативном использовании USB. Форум поддержки этого дистрибутива Linux потрясающий, так что пользователи могут легко устранять ошибки. MX Linux включает в себя несколько инструментов, таких как Firefox 82, VLC 3.0.11, Clementine 1.3.1, Thunderbird 68.12.0, LibreOffice 6.1.5 (x64), LuckyBackup 0.5.0-3 (Xfce) и так далее.

 

Особенности MX Linux

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

  • MX Linux имеет отличное распознавание оборудования с автоматической настройкой.
  • MX Linux обновил все инструменты MX.
  • Пользователи будут получать регулярные обновления важных приложений.
  • MX Tweak предоставляет различные вкладки для версий Fluxbox и KDE.
  • MX Linux обеспечивает локализацию различных приложений MX на нескольких языках.
  • MX Linux — это хороший и дружелюбный форум для поддержки пользователей.

 

Ubuntu

Операционная система Ubuntu

 

Ubuntu — это бесплатная операционная система Linux с открытым исходным кодом, основанная на Debian. Компания Canonical Ltd разработала этот дистрибутив Linux в Великобритании, и он поставляется с тремя редакциями:

  • Для рабочего стола
  • Для серверов
  • Для ядра устройств Интернета вещей

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

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

 

Особенности Ubuntu

Мы перечислили основные функции, предлагаемые последней версией Ubuntu:

  • Ubuntu поддерживает все обычное программное обеспечение Windows, такое как VLC, Firefox, Google Chrome и т. д.
  •  LibreOffice — это официальный офисный пакет Ubuntu.
  • Помимо офисного пакета, Ubuntu также имеет инструмент электронной почты, известный как Thunderbird, который обеспечивает доступ к электронной почте на других почтовых платформах.
  • Существует встроенный инструмент для управления видео, и пользователи могут легко делиться ими с другими.
  • Ubuntu предлагает интеллектуальную функцию поиска для быстрого поиска контента.
  • Ubuntu — это дистрибутив Linux с открытым исходным кодом, пользующийся большой поддержкой сообщества.

 

 MX Linux против Ubuntu: системные требования







ФакторыMX LinuxUbuntu
Лучше всего дляСреднийСредний
Требования к процессоруСовременный процессор i686 Intel или AMDДвухъядерный процессор 2 ГГц
Требования к оперативной памяти1 ГБ4ГБ

 

MX Linux против Ubuntu: таблица сравнения













ФакторыUbuntuMX Linux
СозданCanonical LtdСообщество MX
На основеDebianDebian
Требуются навыкиНовичокНовичок
Лучше всего дляUbuntu подходит для общих целей и лучше всего подходит для программирования и студентов.Ubuntu лучше всего подходит для общих целей и программирования.
Поддержка программного обеспеченияUbuntu — один из самых известных дистрибутивов Linux, поэтому для него доступны разные типы программного обеспечения.Доступно несколько программ, таких как Spotify, Skype, VLC player, Firefox, Slack, Atom, Chromium, PyCharm, Telegram.
Аппаратная поддержкаОн правильно поддерживает несколько сторонних драйверов.Он правильно поддерживает несколько сторонних драйверов.
Требования к оборудованиюТребования к оборудованию среднего уровня.Требования к оборудованию среднего уровня.
Поддержка сообществаЭто простая в использовании операционная система, предлагающая потрясающую поддержку сообщества.Он предлагает отличную поддержку сообщества, но не лучше, чем Ubuntu.
СтабильностьОн очень стабилен и обеспечивает фиксированный цикл выпуска.Он очень стабилен и обеспечивает фиксированный цикл выпуска.

 

Заключение

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



2021-04-01T20:37:52
MX Linux