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

Примеры синхронизации Rsync

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




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




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




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




ОСОБЕННОСТИ RSYNC




Давайте сначала рассмотрим примечательные особенности Rsync:




  • Возможность поддерживать синхронизацию целых деревьев каталогов;
  • Можно сохранять символические ссылки, жесткие ссылки,  владельцев и права файла, метаданные и время создания;
  • Не требует особых привилегий;
  • Передача файлов одним потоком;
  • Поддержка RSH, SSH в качестве транспорта;
  • Поддержка анонимного Rsync.




СИНТАКСИС RSYNC




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




 sudo apt-get install rsync




А теперь, уже по традиции подобных статей, рассмотрим синтаксис команды rsync:




$ rsync опции источник приемник




В качестве источника и приемника может выступать удаленная или локальная директория. Например, ssh, rsync, samba сервер или локальная директория. Опции задают дополнительные параметры rsync.




ОПЦИИ RSYNC




Теперь давайте кратко рассмотрим параметры rsync. Здесь перечислены не все опции. Для более подробной информации смотрите man rsync:




  • -v — Выводить подробную информацию о процессе копирования;
  • -q — Минимум информации;
  • -c — Проверка контрольных сумм для файлов;
  • -a — Режим архивирования, когда сохраняются все атрибуты оригинальных файлов;
  • -R — Относительные пути;
  • -b — Создание резервной копии;
  • -u — Не перезаписывать более новые файлы;
  • -l — Копировать символьные ссылки;
  • -L — Копировать содержимое ссылок;
  • -H — Копировать жесткие ссылки;
  • -p — Сохранять права для файлов;
  • -g — Сохранять группу;
  • -t — Сохранять время модификации;
  • -x — Работать только в этой файловой системе;
  • -e — Использовать другой транспорт, например, ssh;
  • -z — Сжимать файлы перед передачей;
  • —delete — Удалять файлы которых нет в источнике;
  • —exclude — Исключить файлы по шаблону;
  • —recursive — Перебирать директории рекурсивно;
  • —no-recursive — Отключить рекурсию;
  • —progress — Выводить прогресс передачи файла;
  • —stat — Показать статистику передачи;
  • —version — Версия утилиты.




НАСТРОЙКА СЕРВЕРА RSYNC




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




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




Сначала создайте конфигурационный файл со следующим содержимым:




sudo vi /etc/rsyncd.conf

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsync.log

[share]

path = /tmp/share/

hosts allow = 192.168.56.1

hosts deny = *

list = true

uid = root

gid = root

read only = false







Здесь мы задаем путь к нашей папке для синхронизации, разрешаем доступ к серверу только с ip адреса (192.168.56.1) и запрещаем все остальные подключения. Параметры uid и gid указывают пользователя и группу, от которых будет запущен демон. Лучше не использовать root, а указать пользователя nobody и выдать ему права на ту папку, в которую будет выполняться синхронизация каталогов rsync.




Настройка rsync завершена, остается сохранить файл, запустить сервер rsync и добавить его в автозагрузку:




sudo systemctl start rsync

sudo systemctl enable rsync







Сервер будет предоставлять доступ к файлам без запроса пароля.




ПРИМЕРЫ СИНХРОНИЗАЦИИ RSYNC




Дальше давайте рассмотрим использование rsync, примеры синхронизации.




1. КОПИРОВАНИЕ И СИНХРОНИЗАЦИЯ ФАЙЛОВ НА ЛОКАЛЬНОМ КОМПЬЮТЕРЕ




Rsync позволяет синхронизировать файлы и папки в пределах одной машины. Давайте сначала рассмотрим использование rsync для синхронизации файла на локальном компьютере:




rsync -zvh file /tmp/backups/







Указав опцию —progress вы можете видеть сколько процентов уже скопировано, а сколько еще осталось:




rsync -zvh --progress file /tmp/backups/







2. СИНХРОНИЗАЦИЯ ПАПОК НА ЛОКАЛЬНОЙ МАШИНЕ




Синхронизация папок rsync выполняется так же просто, как и файлов:




rsync -zvh /home/user/documents /tmp/backups/




Если вы хотите, чтобы все атрибуты файлов, такие, как дата изменения и создания сохранялись, необходимо использовать опцию -a:




rsync -azvh /home/user/documents /tmp/backups/







3. СИНХРОНИЗАЦИЯ С УДАЛЕННЫМ СЕРВЕРОМ




Ненамного сложнее синхронизировать файлы с удаленным сервером. Скопируем локальную папку documents, на удаленный сервер:




 rsync -avz /home/sergiy/tmp/ root@192.168.56.102:/home/




По умолчанию rsync попытается использовать транспорт ssh. Если вы хотите использовать ранее созданный сервер rsync, нужно указать это явно:




rsync -avz /home/sergiy/tmp/ rsync://192.168.56.102:/share




Точно также можно синхронизировать файлы с rsync из удаленного сервера:




rsync -avz root@192.168.56.102:/home/ /home/sergiy/tmp/




Адрес удаленного сервера записывается в таком формате:




имя_пользователя@адрес_машины/папка/на/удаленной_машине




Синхронизация папок rsync будет выполняться на стандартном порту.




4. СИНХРОНИЗАЦИЯ ФАЙЛОВ ПО SSH




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




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




 rsync -avzhe ssh root@192.168.56.102:/root/install.log /tmp/




Если вы используете другой порт для ssh, то здесь его можно указать:




rsync -avzhe "ssh -p 22" root@192.168.56.102:/root/install.log /tmp/







А теперь передадим данные на тот же сервер:




 rsync -avzhe ssh backup.tar root@192.168.0.101:/backups/




5. ПРОСМОТР ПРОГРЕССА ПРИ СИНХРОНИЗАЦИИ




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




 rsync -avzhe ssh --progress /home/user/documents root@192.168.56.102:/root/documents




6. СИНХРОНИЗАЦИЯ НЕ ВСЕХ ФАЙЛОВ В RSYNC




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




Например, скопируем все файлы, начинающиеся на букву R:




 rsync -avze ssh --include 'R*' --exclude '*' root@192.168.56.102:/root/documents/ /root/documents




7. УДАЛЕНИЕ ПРИ СИНХРОНИЗАЦИИ




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




Например:




 rsync -avz --delete root@192.168.56.102:/documents/ /tmp/documents/




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




8. МАКСИМАЛЬНЫЙ РАЗМЕР ФАЙЛОВ




Вы можете указать максимальный размер файлов, которые нужно синхронизировать. Для этого используется опция —max-size. Например, будем синхронизировать только файлы меньше 200 килобайт:




 rsync -avzhe ssh --max-size='200k' /user/documents/ root@192.168.56.102:/root/documents




9. УДАЛЕНИЕ ИСХОДНЫХ ФАЙЛОВ




Есть возможность удалять исходные файлы после завершения синхронизации с удаленным сервером:




 rsync --remove-source-files -zvh backup.tar /tmp/backups/




Таким образом, файл backup.tar будет удален после завершения копирования в папку /tmp/backups.




10. РЕЖИМ СИМУЛЯЦИИ RSYNC




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




 rsync --dry-run --remove-source-files -zvh backup.tar /tmp/backups/




11. ОГРАНИЧИТЬ СКОРОСТЬ ПЕРЕДАЧИ




Вы можете ограничить использование пропускной способности сети с помощью опции —bwlimit:




 rsync --bwlimit=100 -avzhe ssh /user/home/documents/ root@192.168.56.102:/root/documents/




Как я уже писал выше, rsync синхронизирует только части файла, если вы хотите синхронизировать файл целиком используйте опцию -W:




 rsync -zvhW backup.tar /tmp/backups/backup.tar

backup.tar




12. АВТОМАТИЧЕСКАЯ СИНХРОНИЗАЦИЯ ПАПОК RSYNC




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




Создаем ключ:




 ssh-keygen -t rsa




Загружаем ключ на сервер к с которым собираемся синхронизироваться:




 ssh-copy-id -i /home/sk/.ssh/id_rsa.pub sk@192.168.1.250




Теперь можем переходить к настройке расписания cron. Будем запускать синхронизацию каждый день:




crontab -e

00 05 * * * rsync -azvre ssh /home/user/Downloads/ 192.168.56.102:/share




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




ВЫВОДЫ




Теперь вы знаете все что нужно, чтобы настройка rsync была выполнена правильно. Мы рассмотрели некоторые примеры rsync синхронизации. И теперь вы можете использовать все это для решения своих задач. Я упустил какую-то полезную информацию или у вас остались вопросы? Напишите в комментариях!




Источник: https://losst.ru/rsync-primery-sinhronizatsii



2021-03-10T23:03:25
Утилиты командной строки

MikroTik – Firewall защита доступа

К каким результатам мы пришли:
У нас встает вопрос безопасности нашей локальной сети, ведь китайские боты не спят и постоянно сканируют доступное сетевое пространство на наличие дыр и уязвимостей.
Имея статический IP мы подвержены риску быть взломанными. Т.к. наш статический IP доступен в интернете, он может подвергаться различного рода «атакам из вне».
Поэтому нам нужно сделать так, чтобы только мы могли подключаться к нашим роутерам и другим сервисам в локальной сети.
В принципе жесткую защиту мы делать не будем. У нас ведь не корпоративная сеть, а домашняя. Данной статьей мы попробуем закрыть самые распространенные пробелы в защите нашего роутера и локальной сети в общем. Не будем допускать банальных ошибок.




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




За все операции обработки трафика в сетевых устройствах отвечает так называемый “Межсетевой экран” (Eng – Firewall)
Именно он определяет куда отправлять тот или иной пакет, как обрабатывать соединения и многое, многое другое…
Чтобы охватить весь спектр работы Firewall-а не хватит не только одной статьи, но и 10 или 20 статей точно. Настолько велики его возможности и вариации применения.
Кстати это касается не только MikroTik RouterOS, а принципа фильтрации трафика в общем в операционных системах (даже на Windows)!




Официальные данные на MikroTik Wiki: IP/Firewall/Filter [ENG]




Давайте взглянем, где находится этот самый Межсетевой экран в наших устройствах(ведь RouterOS одинакова на всем оборудовании MikroTik):
Он находится по пути IP -> Firewall




Путь до межсетевого экрана




Окно для ввода правил фильтрации




Кратко пробежимся по основным вкладкам Firewall:
1 – Filter Rules – тут основные разрешающие и блокирующие правила.
2 – NAT – тут формируются перенаправления трафика.
3 – Mangle – тут происходит маркировка соединений и пакетов, отлов определенного вида трафика для дальнейшей его обработки.
Остальные вкладки пока рассматривать не будем, они нам не пригодятся.
4 – Raw – тут можно правилами отловить паразитный трафик и тем самым снизить нагрузку на CPU. Полезно для смягчения DOS атак.
5 – Service Ports – Для некоторых сетевых протоколов требуется прямое двустороннее соединение между конечными точками. Это не всегда возможно, поскольку трансляция сетевых адресов широко используется для подключения клиентов к сети. Это подменю позволяет настроить «помощники отслеживания соединений» для вышеупомянутых протоколов. Эти «помощники» используются для обеспечения правильного обхода NAT.
6 – Connections – тут отображаются все текущие соединения проходящие через маршрутизатор.
7 – Address List – тут списки адресов брандмауэра позволяют пользователю создавать списки IP-адресов, сгруппированных под общим именем. Затем фильтры брандмауэра, Mangle и NAT могут использовать эти списки адресов для сопоставления пакетов с ними.
8 – Layer7 Protocols – тут можно создавать шаблоны для поиска в потоках ICMP / TCP / UDP. L7 собирает первые 10 пакетов соединения или первые 2KB соединения и ищет шаблон в собранных данных.




Часть терминов может показаться непонятной, но в этом нет ничего страшного, мы будем работать только с первым пунктом Filter Rules. Хотя в нем тоже, очень много вариантов создания правил.
Сразу нужно оговориться, что полной безопасности Вам никто не обеспечит и это важно понимать! Но боятся не стоит, мы ведь не популярная корпорация за которой ведется промышленный шпионаж, нам достаточно превентивных мер ))))




Конфигурация по умолчанию:




На MikroTik Wiki представлена базовая конфигурация в таком виде: Basic universal firewall script [ENG]




Вы можете использовать её или нет )
Я делаю несколько по своему, возможно что-то тут не идеально, и Вы обладая большим опытом подскажите мне в комментариях, как сделать лучше ))




1. Перейдем к созданию правил в Firewall Filter Rules




Отступление: А ты засейвился? (Кнопка Safe Mode)




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










Правила добавляются по уже знакомой нам кнопке плюс…







1.1. Перво наперво нам нужно разрешить уже установленные(Established) и связанные(Related) соединения и сбросить некорректные(Invalid) соединения для проходящих (маршрутизируемых) пакетов в цепочке Forward и предназначенных локальной системе в цепочке Input.
Так мы снизим нагрузку на маршрутизатор обработав эти данные сразу.
Зачем повторно обрабатывать эти соединения если они уже и так установлены или неизвестны. Экономим ресурсы процессора. Т.е. эти правила будут в самом начале нашей таблицы.




Добавление правил 1.1. через WinBox (Изображения)




Правило 0




Правило 0




Правило 1




Правило 1




Правило 2




Правило 2




Правило 3




Правило 3







Консольно:




/ip firewall filter
add action=accept chain=forward comment="1.1. Forward and Input Established and Related connections" connection-state=established,related
add action=drop chain=forward connection-state=invalid
add action=accept chain=input connection-state=established,related
add action=drop chain=input connection-state=invalid




Дополнительно: Защита локальной сети от атак из публичного интернета
Очень часто люди используют настройки по умолчанию на своих маршрутизаторах. Это также означает, что можно угадать, какой локальный адрес используется за маршрутизатором. Обычно это 192.168.88.0/24 для устройств, работающих на RouterOS. Это означает, что в общедоступной сети злоумышленник может создать простой маршрут, который говорит, что 192.168.88.0/24 находится за вашим общедоступным IP-адресом.
Таким образом злоумышленник может атаковать ваши локальные сетевые устройства.
Чтобы защитить вашу локальную подсеть от этих атак, можно использовать очень простое правило фильтра брандмауэра. Это правило отбрасывает все пакеты, которые предназначены для локальной сети, но не являются NAT




/ip firewall filter
add action=drop chain=forward connection-nat-state=!dstnat connection-state=new in-interface-list=Internet




1.2. Далее необходимо обеспечить защиту. Продолжим мы с Лимита входящих соединений.




Это даст нам некоторую защиту от DDoS атак.
Далее, большинство правил будут включать в себя параметр Списков интерфейсов In Interface List. Это замена для параметра In Interface.
Позволяет группировать интерфейсы и применять правила Firewall обращаясь сразу к нескольким интерфейсам.
Более подробно про данные списки можно почитать в отдельной статье: MikroTik RouterOS – Списки интерфейсов “Interface List”
Чтобы дальнейшие правила отработали корректно Вы должны внести WAN интерфейс в список Internet, а все локальные интерфейсы в список Local.
Сами списки также нужно создать. Имена списков Вы можете задавать свои не обязательно, как у меня.
Вся информация по тому, как это делать по ссылке выше в статье MikroTik RouterOS – Списки интерфейсов “Interface List”




Добавление правил 1.2. через WinBox (Изображения)




Правило 4




Правило 4




Правило 4




Правило 5




Правило 5




Правило 5




Правило 5







Консольно:




/ip firewall filter
add action=add-src-to-address-list address-list=ddos-blacklist address-list-timeout=1d chain=input comment="1.2. DDoS Protect - Connection Limit" connection-limit=100,32 in-interface-list=Internet protocol=tcp
add action=tarpit chain=input connection-limit=3,32 protocol=tcp src-address-list=ddos-blacklist




1.3. Следом идет защита от SYN флуда.
Что это такое можно почитать тут: https://ru.wikipedia.org/wiki/SYN-флуд или в более профильных изданиях.
Защищать мы будем, как проходящий трафик, так и входящий трафик. Путем создания отдельной цепочки SYN-Protect




Добавление правил 1.3. через WinBox (Изображения)




Правило 6




Правило 6




Правило 6




Правило 7




Правило 7




Правило 7




Правило 8




Правило 8




Правило 8




Правило 8




Правило 9




Правило 9




Правило 9







Консольно:




/ip firewall filter
add action=jump chain=forward comment="1.3. DDoS Protect - SYN Flood" connection-state=new jump-target=SYN-Protect protocol=tcp tcp-flags=syn
add action=jump chain=input connection-state=new in-interface-list=Internet jump-target=SYN-Protect protocol=tcp tcp-flags=syn
add action=return chain=SYN-Protect connection-state=new limit=200,5:packet protocol=tcp tcp-flags=syn
add action=drop chain=SYN-Protect connection-state=new protocol=tcp tcp-flags=syn




1.4. Защита от сканеров портов (PSD – Port Scan Detection).
На счет данного правила есть разные мнения, кто-то считает, что оно не нужно, кто-то, что нужно.
Я же предпочитаю немного себя подстраховать. Тем более, что благодаря данному правилу Address Lists заполняется какими-то забугорными IP адресами )




Добавление правил 1.4. через WinBox (Изображения)




Правило 10




Правило 10




Правило 10




Правило 11




Правило 11




Правило 11







Консольно:




/ip firewall filter
add action=drop chain=input comment="1.4. Protected - Ports Scanners" src-address-list="Port Scanners"
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input in-interface-list=Internet protocol=tcp psd=21,3s,3,1




1.5. Защита WinBox порта от перебора.
Логика обработки тут следующая.
1. Когда мы подключаемся к роутеру на порт 8291, то мы имеет состояние соединения new, правило добавляет наш IP в список уровня 1
2. Если мы не авторизовались и отключились, а после снова пытаемся подключиться, то мы опять будем иметь состояние соединения new. При этом наш IP адрес уже будет в Списке 1
Соответственно наш IP попадет в список уровня 2 и т.д до тех пор пока нас не заблокирует Правило 13, и уже после этого Правило 12 не будет нам давать возможность новых подключений к роутеру по порту 8291.
3. А если мы авторизовались, то наше соединение перейдет из состояния new в состояние established и обработка соединения уже будет вестись самым верхним правилом 2, которое нам все разрешает.
По сути у злоумышленника может быть всего четыре возможности Авторизоваться у нас на роутере через порт WinBox




Добавление правил 1.5. через WinBox (Изображения)




Правило 12




Правило 12




Правило 12




Правило 13




Правило 13




Правило 13




Правило 14




Правило 14




Правило 14




Правило 15




Правило 15




Правило 15




Правило 16




Правило 16




Правило 17




Правило 17







Консольно:




/ip firewall filter
add action=drop chain=input comment="1.5. Protected - WinBox Access" src-address-list="Black List Winbox"
add action=add-src-to-address-list address-list="Black List Winbox" address-list-timeout=none-dynamic chain=input connection-state=new dst-port=8291 in-interface-list=Internet log=yes log-prefix="BLACK WINBOX" protocol=tcp src-address-list="Winbox Stage 3"
add action=add-src-to-address-list address-list="Winbox Stage 3" address-list-timeout=1m chain=input connection-state=new dst-port=8291 in-interface-list=Internet protocol=tcp src-address-list="Winbox Stage 2"
add action=add-src-to-address-list address-list="Winbox Stage 2" address-list-timeout=1m chain=input connection-state=new dst-port=8291 in-interface-list=Internet protocol=tcp src-address-list="Winbox Stage 1"
add action=add-src-to-address-list address-list="Winbox Stage 1" address-list-timeout=1m chain=input connection-state=new dst-port=8291 in-interface-list=Internet protocol=tcp
add action=accept chain=input dst-port=8291 in-interface-list=Internet protocol=tcp




1.6. Защита OpenVPN порта от перебора.
Данная защита делается абсолютно аналогично пункту 1.5.
Единственным отличием будут названия OpenVPN вместо WinBox и входящий TCP порт 1194
Поэтому просто повторяем действия
Консольно:




/ip firewall filter
add action=drop chain=input comment="1.6. Protected - OpenVPN Connections" src-address-list="Black List OpenVPN"
add action=add-src-to-address-list address-list="Black List OpenVPN" address-list-timeout=none-dynamic chain=input connection-state=new dst-port=1194 in-interface-list=Internet log=yes log-prefix="BLACK OVPN" protocol=tcp src-address-list="OpenVPN Stage 3"
add action=add-src-to-address-list address-list="OpenVPN Stage 3" address-list-timeout=1m chain=input connection-state=new dst-port=1194 in-interface-list=Internet protocol=tcp src-address-list="OpenVPN Stage 2"
add action=add-src-to-address-list address-list="OpenVPN Stage 2" address-list-timeout=1m chain=input connection-state=new dst-port=1194 in-interface-list=Internet protocol=tcp src-address-list="OpenVPN Stage 1"
add action=add-src-to-address-list address-list="OpenVPN Stage 1" address-list-timeout=1m chain=input connection-state=new dst-port=1194 in-interface-list=Internet protocol=tcp
add action=accept chain=input dst-port=1194 in-interface-list=Internet protocol=tcp




1.7. Разрешающее правило для прохождения любого трафика по VPN туннелям.




Добавление правил 1.7. через WinBox (Изображения)




Правило 24




Правило 24







Консольно:




/ip firewall filter
add action=accept chain=input comment="1.7. Access OpenVPN Tunnel Data" in-interface-list=VPN




1.8. Разрешающее правило для прохождения только нормальных PING запросов.




Добавление правил 1.8. через WinBox (Изображения)




Правило 25




Правило 25




Правило 25







Консольно:




/ip firewall filter
add action=accept chain=input comment="1.8. Access Normal Ping" in-interface-list=Internet limit=50/5s,2:packet protocol=icmp




1.9. Запрещающее правило
Нормально закрытый Firewall должен обязательно обладать таким правилом. Иначе все бессмысленно.
Выше мы обрабатываем соединения и разрешаем только то, что нам необходимо. Все остальное блокируем.
Это намного правильней, чем Разрешить все и блокировать только нужное Вам. А всего, что нужно заблокировать Вы наверняка не знаете.







Консольно:




/ip firewall filter
add action=drop chain=input comment="1.9. Drop All Other" in-interface-list=Internet




 
 
2. Для ленивых
Если Вы дочитали до конца, значит у Вас пытливый ум и Вы хорошо представляете с чем столкнулись. Вы молодец.
Еще раз хотелось бы обозначить, что данная конфигурация не является идеальной. Я просто старался показать некоторые способы фильтрации трафика. Вам решать, использовать это у себя простым копипастом или подумать и сделать лучше! Но я уверен, что моё решение тоже не плохое =)




Все вышеизложенное в едином виде:







Консольно:




/ip firewall filter
add action=accept chain=forward comment="1.1. Forward and Input Established and Related connections" connection-state=established,related
add action=drop chain=forward connection-state=invalid
add action=drop chain=forward connection-nat-state=!dstnat connection-state=new in-interface-list=Internet
add action=accept chain=input connection-state=established,related
add action=drop chain=input connection-state=invalid
add action=add-src-to-address-list address-list=ddos-blacklist address-list-timeout=1d chain=input comment="1.2. DDoS Protect - Connection Limit" connection-limit=100,32 in-interface-list=Internet protocol=tcp
add action=tarpit chain=input connection-limit=3,32 protocol=tcp src-address-list=ddos-blacklist
add action=jump chain=forward comment="1.3. DDoS Protect - SYN Flood" connection-state=new jump-target=SYN-Protect protocol=tcp tcp-flags=syn
add action=jump chain=input connection-state=new in-interface-list=Internet jump-target=SYN-Protect protocol=tcp tcp-flags=syn
add action=return chain=SYN-Protect connection-state=new limit=200,5:packet protocol=tcp tcp-flags=syn
add action=drop chain=SYN-Protect connection-state=new protocol=tcp tcp-flags=syn
add action=drop chain=input comment="1.4. Protected - Ports Scanners" src-address-list="Port Scanners"
add action=add-src-to-address-list address-list="Port Scanners" address-list-timeout=none-dynamic chain=input in-interface-list=Internet protocol=tcp psd=21,3s,3,1
add action=drop chain=input comment="1.5. Protected - WinBox Access" src-address-list="Black List Winbox"
add action=add-src-to-address-list address-list="Black List Winbox" address-list-timeout=none-dynamic chain=input connection-state=new dst-port=8291 in-interface-list=Internet log=yes log-prefix="BLACK WINBOX" protocol=tcp src-address-list="Winbox Stage 3"
add action=add-src-to-address-list address-list="Winbox Stage 3" address-list-timeout=1m chain=input connection-state=new dst-port=8291 in-interface-list=Internet protocol=tcp src-address-list="Winbox Stage 2"
add action=add-src-to-address-list address-list="Winbox Stage 2" address-list-timeout=1m chain=input connection-state=new dst-port=8291 in-interface-list=Internet protocol=tcp src-address-list="Winbox Stage 1"
add action=add-src-to-address-list address-list="Winbox Stage 1" address-list-timeout=1m chain=input connection-state=new dst-port=8291 in-interface-list=Internet protocol=tcp
add action=accept chain=input dst-port=8291 in-interface-list=Internet protocol=tcp
add action=drop chain=input comment="1.6. Protected - OpenVPN Connections" src-address-list="Black List OpenVPN"
add action=add-src-to-address-list address-list="Black List OpenVPN" address-list-timeout=none-dynamic chain=input connection-state=new dst-port=1194 in-interface-list=Internet log=yes log-prefix="BLACK OVPN" protocol=tcp src-address-list="OpenVPN Stage 3"
add action=add-src-to-address-list address-list="OpenVPN Stage 3" address-list-timeout=1m chain=input connection-state=new dst-port=1194 in-interface-list=Internet protocol=tcp src-address-list="OpenVPN Stage 2"
add action=add-src-to-address-list address-list="OpenVPN Stage 2" address-list-timeout=1m chain=input connection-state=new dst-port=1194 in-interface-list=Internet protocol=tcp src-address-list="OpenVPN Stage 1"
add action=add-src-to-address-list address-list="OpenVPN Stage 1" address-list-timeout=1m chain=input connection-state=new dst-port=1194 in-interface-list=Internet protocol=tcp
add action=accept chain=input dst-port=1194 in-interface-list=Internet protocol=tcp
add action=accept chain=input comment="1.7. Access OpenVPN Tunnel Data" in-interface-list=VPN
add action=accept chain=input comment="1.8. Access Normal Ping" in-interface-list=Internet limit=50/5s,2:packet protocol=icmp
add action=drop chain=input comment="1.9. Drop All Other" in-interface-list=Internet




Бонус:
Работая с Firewall на родительском hEx роутере, обнаружил большой объем заблокированного трафика.
Решил посмотреть, в чем дело, включил логирование в правилах и обнаружил интересную ситуацию.
Оказалось, что местный провайдер не закрыл широковещательный трафик службы имен NetBIOS Name Service – UDP порт 137 (Остальные порты и информация: 
https://ru.wikipedia.org/wiki/NetBIOS)
И какой-то “Сосед” воткнул интернет кабель в простой ПК с Windows, тем самым создав тот самый паразитный трафик. Такие запросы с одного ПК могут занимать около 30 кбит/сек на вашем WAN порту.
Думаю можно себе представить если таких ПК в сети будет 100-150. Написали провайдеру, а пока он латает свои дыры, добавил правило блокировки. Только не в Firewall Filter, а в Firewall Raw.
Данная таблица полезна для уменьшения нагрузки на CPU и позволяет блокировать трафик на этапе Prerouting-а
Вот это правило:




/ip firewall raw
add action=drop chain=prerouting dst-port=137,138,139 in-interface-list=Internet protocol=udp




Бонус 2:




Правила для роутера за серым IP провайдера




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




/ip firewall filter
add action=fasttrack-connection chain=forward connection-state=established,related
add action=accept chain=forward comment="ALLOW - Established, Related and connections" connection-state=established,related
add action=accept chain=input connection-state=established,related
add action=drop chain=forward comment="DROP - Invalid connections" connection-state=invalid
add action=drop chain=input connection-state=invalid
add action=jump chain=input comment="DDoS - SYN flood protection" connection-state=new in-interface-list=Internet jump-target=SYN-Protect protocol=tcp tcp-flags=syn
add action=return chain=SYN-Protect limit=200,5:packet tcp-flags=""
add action=add-src-to-address-list address-list=ddos-blacklist address-list-timeout=1w3d chain=SYN-Protect log-prefix="DDoS: SYN-Protect" tcp-flags=""
add action=jump chain=input comment="DDoS - Main protection" connection-state=new in-interface-list=Internet jump-target=DDoS-Protect
add action=return chain=DDoS-Protect dst-limit=15,15,src-address/10s
add action=add-src-to-address-list address-list=ddos-blacklist address-list-timeout=1w3d chain=DDoS-Protect log-prefix="DDoS: MAIN-Protect"
add action=drop chain=input comment="DROP - Block all other input/forward connections on the WAN" in-interface-list=Internet
add action=drop chain=forward in-interface-list=Internet
/ip firewall raw
add action=drop chain=prerouting comment="DDoS - Drop blacklist IP" in-interface-list=Internet src-address-list=ddos-blacklist







Источник: https://gregory-gost.ru/sozdanie-domashney-seti-na-baze-ustroystv-mikrotik-chast-6-firewall-zashhita-dostupa/



2021-03-10T22:47:49
Network

MikroTik RouterOS – Списки интерфейсов “Interface List”

Данная статья будет небольшой и она будет посвящена Спискам интерфейсов в MikroTik RouterOS. В ней я постараюсь рассказать, что такое “Списки интерфейсов” и для чего они нужны.

Все действия производились на прошивке 6.42.9 (Long-Term)
Описание на MikroTik WIki: Manual:Interface/List [ENG]

Сами списки интерфейсов в RouterOS V6 (на 10.10.2018) присутствуют довольно давно, тогда они еще были очень простыми. Читать

Мониторинг Mysql в Zabbix

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




Введение




Напоминаю одну важную деталь. Если вы ставите Zabbix Server не с нуля, а обновляете старую версию, у вас не обновляются стандартные шаблоны. А они последнее время сильно изменились, плюс появились новые. Посмотреть их можно на github — https://github.com/zabbix/zabbix/tree/master/templates.




В данном случае я буду использовать шаблон из директории /db/mysql_agent/. Он написан для старого агента. Напомню, что начиная с версии 4.4 доступна новая версия агента, написанная на Go — zabbix_agent2. Для него появился новый функционал и новые шаблоны. Я пока буду использовать старого агента, так как с новым еще не разбирался.




Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:




  1. Установка CentOS 8.
  2. Настройка CentOS 8.
  3. Установка и настройка zabbix сервера.




То же самое на Debian 10, если предпочитаете его:




  1. Установка Debian 10.
  2. Базовая настройка Debian.
  3. Установка и настройка zabbix на debian.




Ставьте себе сервер и погнали настраивать.




Подготовка mysql к мониторингу




Для примера настроим мониторинг Mysql на самом сервере мониторинга Zabbix. Так как это часто узкое место производительности системы, мониторинг базы zabbix лишним не будет. Первым делом добавим новые параметры в агенте. Для этого создаем конфигурационный файл /etc/zabbix/zabbix_agentd.d/template_db_mysql.conf следующего содержания.




UserParameter=mysql.ping[*], mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*], mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*], mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*], mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*], mysql -h"$1" -P"$2" -sN -e "SELECT COALESCE(SUM(DATA_LENGTH + INDEX_LENGTH),0) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"




После этого сразу перезапустим zabbix-agent.




systemctl restart zabbix-agent




Дальше идем в консоль mysql и создаем пользователя, от которого будет работать мониторинг. Ему достаточно ограниченных прав на чтение.




mysql -uroot -p
> CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY 'TTRy1bRRgLIB';
> GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
> quit




Теперь смотрим, где у нас домашняя директория пользователя zabbix.




cat /etc/passwd | grep zabbix
zabbix:x:990:986:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin




У меня ее не было, так что создаем.




mkdir /var/lib/zabbix




Кладем в эту директорию конфиг .my.cnf с реквизитами доступа к серверу mysql.




[client]
user='zbx_monitor'
password='TTRy1bRRgLIB'




Назначаем пользователя zabbix владельцем своей домашней директории и файла в ней. Файлу ограничиваем доступ.




chown -R zabbix. /var/lib/zabbix
chmod 400 /var/lib/zabbix/.my.cnf




Подготовка к мониторингу mysql сервера завершена. Идем теперь в web интерфейс системы мониторинга Zabbix.




Настройка мониторинга Mysql сервера




В веб интерфейсе идем в раздел Настройка -> Шаблоны и импортируем шаблон template_db_mysql_agent.xml.







После этого прикрепляем добавленный шаблон к хосту, где мы только что настроили zabbix-agent и добавили пользователя mysql. Для того, чтобы сразу увидеть все метрики, принудительно выполним сбор данных. Для начала вручную запустим правила автообнаружения, так как у них интервал проверок 1 час. Не хочется столько времени ждать данных. Идем в хост, далее во вкладку Правила обнаружения. Выбираем 2 правила от шаблона mysql и запускаем их.







Ждем несколько секунд и переходим на вкладку Элементы данных. Фильтруем элементы по названию группы MySQL и Zabbix raw items.







Теперь переходим к списку элементов данных. Выделяем все элементы, которые относятся к Mysql и имеют тип Zabbix Agent и запускаем их принудительную проверку. Основной элемент тут — MySQL: Get status variables. Почти все итемы получаются в результате предобработки данных с него.




После этого идем в раздел Мониторинг -> Последние данные и наблюдаем собираемые метрики.







На этом по базовой настройке мониторинга сервера mysql все. Дальше раскрою некоторые нюансы.




Мониторинг репликации MySQL




Вообще, шаблон достаточно навороченный. Там и автообнаружение, и зависимые элементы с предобработкой xml, и предобработка с помощью JavaScript. Рассмотрю отдельно некоторые моменты представленного шаблона zabbix по мониторингу mysql. Во-первых, некоторые параметры задаются с помощью макросов. Вот их список.







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




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







Для мониторинга репликации автоматически создаются 4 триггера.







  1. Replication lag is too high (over {$MYSQL.REPL_LAG.MAX.WARN} for 5m) — отставание реплики больше заданного в макросе времени. По умолчанию 30 минут.
  2. The slave I/O thread is not connected to a replication master — Демон по сбору бинарного лога запущен, но не подключен к мастеру. Его параметр slave_io_running имеет значение не Yes.
  3. The slave I/O thread is not running — демон по сбору бинарного лога не запущен. Его параметр slave_io_running равен No.
  4. The SQL thread is not running — демон выполнения команд локального relay лога не запущен. Его парметр slave_sql_running равен No.




В целом, этих четырех метрик достаточно для мониторинга репликации. Я так же настраивал мониторинг именно их.




Триггеры шаблона




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







  1. Buffer pool utilization is too low (less {$MYSQL.BUFF_UTIL.MIN.WARN}% for 5m) — под innodb пул выделено слишком много памяти и она не используется вся. Триггер чисто информационный, делать ничего не надо, если у вас нет дефицита памяти на сервере. Если нехватка оперативной памяти есть, то имеет смысл забрать немного памяти у mysql и передать другому приложению. Настраивается потребление памяти пулом параметром innodb_buffer_pool_size.
  2. Failed to get items (no data for 30m) — от mysql сервера не поступают новые данные мониторинга в течении 30 минут. Имеет смысл уменьшить этот интервал до 5-10 минут.
  3. Refused connections (max_connections limit reached) — срабатывает ограничение на максимальное количество подключений к mysql. Увеличить его можно параметром mysql сервера — max_connections. Его необходимо увеличить, если позволяют возможности сервера. Напомню, что увеличенное количество подключений требует увеличения потребления оперативной памяти. Если у вас ее уже не хватает, нет смысла увеличивать число подключений. Нужно решать вопрос с потреблением памяти.
  4. Server has aborted connections (over {$MYSQL.ABORTED_CONN.MAX.WARN} for 5m) — сервер отклонил подключений выше заданного порога в макросе. Надо идти в лог mysql сервера и разбираться в причинах этого события. Скорее всего там будут подсказки.
  5. Server has slow queries (over {$MYSQL.SLOW_QUERIES.MAX.WARN} for 5m) — количество медленных запросов выше установленного макросом предела. Надо идти и разбираться с медленными запросами. Тема не самая простая. Надо заниматься профилированием запросов и решать проблемы по факту — добавлением индексов, редактированием запросов, увеличения ресурсов mysql сервера и т.д.
  6. Service has been restarted (uptime < 10m) — информационный триггер, срабатывающий на перезапуск mysql сервера (не ребут самого сервера).
  7. Service is down — служба mysql не запущена.
  8. Version has changed (new version value received: {ITEM.VALUE}) — версия mysql сервера изменилась. Тоже информационный триггер, сработает, к примеру, после обновления mysql сервера.




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




Заключение




Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!




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




Источник: https://serveradmin.ru/monitoring-mysql-v-zabbix/



2021-03-10T21:51:20
Software

Обновление Zabbix 4.4 до 5.0

Недавно вышла новая версия сервера Zabbix 5.0. Сегодня я расскажу, как обновить предыдущую версию zabbix 4.4 до актуальной 5.0. Делать это придется в обязательном порядке всем, так как версия 4.4 не LTS и имеет ограниченное время поддержки. В то время 5.0 как раз LTS с циклом поддержки в 5 лет.




Введение




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




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




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




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




Подготовка к обновлению




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




systemctl stop zabbix-server




У меня что-то активно писалось в базу, поэтому сервер выключался долго. При этом systemd выдал ошибку:




Failed to stop zabbix-server.service: Connection timed out

See system logs and 'systemctl status zabbix-server.service' for details.




Я проверил лог zabbix-server, чтобы убедиться в корректном выключении. Там все нормально было, сервер штатно завершил работу, дописав то, что у него там накопилось. Так что бэкапим.




/usr/bin/mysqldump --opt -v --databases zabbix -uzabbix -p'password' | /usr/bin/gzip -c > /root/zabbix.sql.gz




zabbixназвание базы данных заббикса
-uzabbixключ -u и дальше имя пользователя базы данных
-p’password’ключ -p и дальше пароль пользователя бд, если в пароле есть спецсимволы, экранируйте их одиночными кавычками




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




cp -R /usr/share/zabbix /root




Centos 7




Подключаем репозиторий версии zabbix 5.0:




rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm




Centos 8




rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm




Старый репозиторий от версии 4.4 будет автоматически удален.




Очищаем и пересоздаем кэш yum:




yum clean all
yum makecache




Debian 10




Удаляем пакет текущего репозитория:




rm -Rf /etc/apt/sources.list.d/zabbix.list




Подключаем новый:




wget https://repo.zabbix.com/zabbix/5.0/debian/pool/main/z/zabbix-release/zabbix-release_5.0-1+buster_all.deb

dpkg -i zabbix-release_5.0-1+buster_all.deb




Обновляем информацию о репозиториях:




apt update




Ubuntu 18




Удаляем пакет текущего репозитория:




rm -Rf /etc/apt/sources.list.d/zabbix.list




Подключаем новый:




wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+bionic_all.deb

dpkg -i zabbix-release_5.0-1+bionic_all.deb




Обновляем информацию о репозиториях:




# apt update




Ubuntu 20




Удаляем пакет текущего репозитория:




rm -Rf /etc/apt/sources.list.d/zabbix.list




Подключаем новый:




wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb

dpkg -i zabbix-release_5.0-1+focal_all.deb




Обновляем информацию о репозиториях:




apt update




Если у вас другие версии систем, то простой найдите ссылки пакетов под свою версию в официальном репозитории — https://repo.zabbix.com/zabbix/5.0/ Дальнейшее обновление не будет отличаться от текущего.




К обновлению подготовились, можно приступать.




Установка обновления zabbix 4.4 до 5.0




Centos 8




Устанавливаем само обновление zabbix на сервер Centos следующей командой:




yum upgrade zabbix-server-mysql zabbix-web-mysql zabbix-web zabbix-agent







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




rpm -qa | grep zabbix
zabbix-agent-4.4.8-1.el8.x86_64
zabbix-web-4.4.8-1.el8.noarch
zabbix-release-5.0-1.el8.noarch
zabbix-web-mysql-4.4.8-1.el8.noarch
zabbix-server-mysql-4.4.8-1.el8.x86_64
zabbix-get-4.4.8-1.el8.x86_64
zabbix-sender-4.4.8-1.el8.x86_64




В приведенном примере есть еще пакеты zabbix-get и zabbix-sender. Обновляем все сразу:




yum upgrade zabbix-server-mysql zabbix-web zabbix-agent zabbix-get zabbix-sender




Centos 7




В Centos 7 обновить Zabbix с 4-й вертки на 5-ю может оказать не такой простой задачей. Связано это с тем, что необходима версия php 7.2, в ее в базовых репозиториях Centos 7 нет. Необходимо подключать репозиторий centos-release-scl и ставить пакеты из него. Но просто так взять и поставить не получится, будет конфликт с текущими версиями пакетов. Так что нужно аккуратно что-то удалить, а что-то добавить. Действуем аккуратно и внимательно.




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




yum remove zabbix-web-*




Подключаем репозиторий centos-release-scl:




yum install centos-release-scl




Редактируем файл /etc/yum.repos.d/zabbix.repo, разрешая обновляться пакетам из zabbix-frontend. Не забудьте проверить, что у вас подключился репозиторий от 5-й версии.




[zabbix-frontend]name=Zabbix Official Repository frontend - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591




Устанавливаем новые пакеты:




yum install zabbix-web-mysql-scl zabbix-apache-conf-scl




Обновляем существующие:




yum update zabbix-*




Теперь убедитесь, что у вас активирован новый конфиг zabbix для apache. У вас должен быть файл /etc/httpd/conf.d/zabbix.conf, а в нем следующая строка:




SetHandler "proxy:unix:/var/opt/rh/rh-php72/run/php-fpm/zabbix.sock|fcgi://localhost"




Она отвечает за использования новой версии php 7.2 из пакета php-fpm. Перезапускаем все службы:




systemctl restart zabbix-server httpd

systemctl enable --now rh-php72-php-fpm




После этого у вас должно корректно пройти обновление zabbix на 5-ю версию в Centos 7.




Debian / Ubuntu




Устанавливаем само обновление zabbix на сервер с Debian или Ubuntu следующей командой:




apt-get install --only-upgrade zabbix-server-mysql zabbix-frontend-php zabbix-agent




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




systemctl start zabbix-server




В момент запуска произойдет обновление базы данных. Для маленькой базы (1-2 гб) это не займет много времени. Вы можете даже не заметить процесса. Если база больше, то надо подождать, пока не закончится обновление. Следить за ним можно с помощью просмотра лог файла zabbix сервера.




tail -f /var/log/zabbix/zabbix_server.log







После завершения обновления базы, сервер запустится. После этого можно запустить и агент.




systemctl start zabbix-agent




В логах агента и сервера можно посмотреть версию запущенных сервисов.




Starting Zabbix Agent [Zabbix server]. Zabbix 5.0.0 (revision 9665d62db0).
Starting Zabbix Server. Zabbix 5.0.0 (revision 9665d62db0).




Теперь можно идти в веб интерфейс и смотреть на обновленную версию zabbix server. Перед этим почистите кэш браузера и удалите куки от страницы заббикса. Если этого не сделать, то могут быть проблемы и ошибки, с чем я не раз сталкивался. Если у вас в качестве веб сервера используется nginx, не забудьте поменять владельца директории /etc/zabbix/web на nginx, в том случае, если веб сервер работает от него. После обновления он будет принадлежать apache, а web интерфейс не заработает.




chown -R nginx:nginx /etc/zabbix/web




Можете лицезреть обновленную версию web интерфейса.







Сначала провел обновление на небольшом сервере. У меня весь процесс прошел без ошибок и накладок. Новый интерфейс сразу заработал.




Основные изменения в интерфейсе Zabbix 5.0




Я потратил некоторое время, пока искал привычные настройки на новых местах. Чтобы сэкономить вам время, дам несколько подсказок.




Web проверки и графики теперь живут в разделе Узлы сети.







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




Для того, чтобы посмотреть на одном экране набор произвольных графиков хотса, надо перейти в Узлы сети, открыть графики конкретного хоста. Затем перейти в Фильтр и там выбрать необходимые графики. Стало удобно.







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







Настройка шаблонов оповещений теперь находится в способах оповещений. Все старые шаблоны, что были в действиях, удалены. Так что сохраняйте их перед обновлением.







Вот подтверждение того, что несмотря на обновление zabbix server до 5.0, шаблон остался старый.







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




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




Источник: https://serveradmin.ru/obnovlenie-zabbix-4-4-do-5-0/



2021-03-10T21:45:24
Software

Нужно ли устанавливать антивирус на Андроид?

Android — это операционная система с открытым исходным кодом (на основе ядра Linux). Это позволяет её легко модифицировать, практически для каждого Android-смартфона выходит масса кастомных прошивок. Но открытость ОС используется активно и мошенниками, которые создают вирусное ПО, что способно обходить все защитные механизмы Android. Да, Google регулярно выпускает патчи безопасности, но это происходит лишь после того, как «дыра» в защите будет обнаружена хакерами. Так подвержен ли Андроид заражению вирусами? Нужен ли антивирус на телефон и почему не каждый из них можно использовать?

 

Что делает антивирус

Такая программа не просто выполняет проверку установленных приложений, но ещё и отслеживает их работу в фоне. И в случае «подозрительных» действий (например, приложение для прослушивания музыки запрашивает доступ к камере или местоположению) — обязательно запрещает это и уведомляет пользователя.

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

 

Нужен ли смартфону антивирус

Пользователь подвергает свой Android-смартфон заражению в следующих случаях:

  • был разблокирован загрузчик (для установки неподписанных версий Андроид);
  • на телефоне получен root-доступ (позволяет вносить изменения в системный раздел, где находится ОС и её резервные копии);
  • на телефон установлены приложения из неизвестных источников (через APK-файлы);
  • телефон от ненадежного производителя (в устройства от малоизвестных китайских производителей нередко уже изначально интегрировано рекламное ПО);
  • в телефоне включена функция «Отладка по USB» (это позволяет дистанционно управлять его системным разделом, когда смартфон подключен к ПК через USB-кабель);
  • в настройках GooglePlay отключена проверка установленных программ на вирусы.

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

Ещё один распространенный вариант обмана пользователя — это использование фишинговых сайтов. Они маскируются под обычные веб-ресурсы (например, интернет-магазины), предлагают совершить покупку и ввести платежные реквизиты. Для пользователя это не выглядит чем-то опасным, но на деле он самостоятельно передает свои данные мошенникам. Android от подобных атак защитить смартфон не может. А вот установленный антивирус предупредит пользователя о том, что используемый им сайт является подозрительным.

Так надо ли устанавливать антивирус на телефон? Однозначно да! Ведь к смартфону сейчас привязаны и банковские сервисы, и электронные кошельки. И если к нему будет получен несанкционированный доступ, то это теоретически может привести к краже личных данных и фото, паролей, платежных реквизитов. Да и на https://www.itsdelta.ru/catalog/laboratoriya-kasperskogo/kaspersky-internet-security-dlya-android/ Касперский для Андроида цена не из тех, что стоит экономить и рисковать.

 

Безопасен ли GooglePlay

Недавно компания Symantec провела массивную проверку приложений из GooglePlay (для США региона). И было обнаружено 7 вредоносных программ, которые теоретически могли предоставить возможность для дистанционного управления устройством третьим лицам. Вскоре их удалили, но утилиты и сейчас можно скачать, установить через сторонние магазины приложений (типа ApkMirror).

Поэтому на 100% быть уверенным в том, что в GooglePlay нет вирусов — нельзя. Устанавливаемая из данного магазина программа может и не содержать зловредного кода, но при запуске она его загружает с удаленного сервера, а после — настоятельно запрашивает права доступа у пользователя. Этот механизм взлома остается актуальным даже сейчас.

 

Патчи безопасности

Нужен ли антивирус для Android, если у пользователя «свежий» телефон с последней версией ОС? Тоже да. Потому что у многих производителей обновления системы безопасности — редкие. Google патчи выпускает регулярно, но после этого их нужно адаптировать под установку на каждое устройство. Этим занимается сам производитель. Но некоторые из них могут задерживать обновления более чем на 12 месяцев. И всё это время в безопасности девайса есть «дыра», которой могут воспользоваться мошенники.

Самыми «злостными» в этом плане являются компании Oppo, ZTE, Lenovo, Fairphone. Так что даже на «свежие» смартфоны данных производителей антивирус устанавливать нужно в обязательном порядке.

 

Платный или бесплатный антивирус

В GooglePlay есть сотни бесплатных антивирусов. Но в 2020 году один из них — Loapi, был заподозрен в наличии зловредного кода. Детальная проверка показала, что в него интегрирован скрипт, нагружающий CPU устройства до 100% для выполнения несанкционированных задач (вероятней всего, для майнинга криптовалюты). А вот в качестве баз данных сигнатур по вирусному ПО Loapi использовал данные от Avast. Можно ли считать, что такой антивирус является надежным?

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

Итого, нужен ли антивирус на телефон Андроид? Обязательно, причем для него нужно регулярно загружать свежие базы сигнатур. И в дополнение к этому не следует устанавливать программы не из GooglePlay, пользоваться не обновленной прошивкой. В этом случае пользователь будет защищен на 99,9% от возможного заражения.



2021-03-10T15:45:12
Безопасность