Raspberry Pi IoT: датчики, InfluxDB, MQTT и Grafana

В этой статье мы разберемся как узнать текущий TCP порт, на котором слушает и ожидает подключения именованный или default экземпляр MS SQL Server, как изменить порт подключения SQL Server на статический/динамический и как используется служба SQL Server Browser клиентами при подключении к SQL.

Настройка Брандмауэра (netfilter) для SSH и тырем порт

По умолчанию для SSH соединения, используется порт ТСP-порт 22. Забегая перед следует сказать, что многие рекомендует его поменять, но я так не думаю. Смена порта не поможет, «любой» сканер без труда отыщет ваш порт куда вы его не запрятали. Способ смены порта хорошо известен и Хакеры пишут соответствующие скрипты. Ниже будут приведены меры безопасности, прочитав их вы можете решить стоит ли менять порт или нет. Чтобы узнать какой порт слушает демон (sshd) на сервере, нужно выполнить команду:

$ sudo grep -w ‘Port’ /etc/ssh/sshd_config #Port 22

Применив директиву Port поменяв значение, вы укажете демону (sshd) порт который нужно слушать;

Port 8822

Теперь демон (sshd) будет слушать порт 8822, для подключения к серверу, нужно воспользоваться на клиентской машине командой:

$ ssh -p8822 [email protected]

Ключ ‘-p‘ указывает порт, вместо user пишем имя пользователя, 127.0.0.1 меняем на IP своего сервера.

C портами разобрались, теперь нужно настроить брандмауэр. Можно воспользоваться средствами TUI дистрибутива.

Внимание! Будьте внимательны и последовательны в ваших действиях ! Неправильные действия могут привести к потере удалённого доступа.

Для Red-Hat based:

$ sudo yum install iptables system-config-securitylevel-tui $ sudo system-config-securitylevel-tui

Нужно открыть порты (SSH) ТСP-22, UDP-22 или соответственно открыть порт который указали в директиве Port

Для SuSE:

$ sudo yast

Заходим в /Безопасность и пользователи/ Брандмауэр / Разрешённые службы — добавляем «Сервер Secure Shell», если вы указали порт директивой Port то / Брандмауэр / Разрешенные службы /Дополнительно и добавляем порт TCP и UDP .

Читайте также:  Apple выпустила iOS 14 beta 5 для разработчиков

Для «ручной настройки» следует внимательно ознакомиться с правилами iptables и настройкой брандмауэра вашего дистрибутива.

Приведу пример открытия портов простыми правилами:

iptables -A INPUT -p tcp —dport 22 -j ACCEPT iptables -A OUTPUT -p udp —sport 22 -j ACCEPT

Внимание ! Следует понимать, что к примеру SuSEfirewall2 генерирует правила для iptables из конфигурационного файла /etc/sysconfig/SuSEfirewall2, в каждом дистрибутиве есть свои особенности управления брандмауэром.

Основы Iptables

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

Можно создать несколько таблиц. В каждой таблице может содержаться несколько цепочек. Цепочка — это набор правил. Каждое правило определяет, что делать с пакетом, если он соответствует условиям. При соответствии пакета над ним выполняется целевое действие (TARGET). Это может быть проверка следующей цепочкой или один из следующих вариантов:

  • ACCEPT: разрешить передачу пакета.
  • DROP: запретить передачу пакета.
  • RETURN: пропустить текущую цепочку и перейти к следующему правилу в цепочке, которая ее вызвала.

В данном руководстве мы будем работать с одной из таблиц по умолчанию, которая называется фильтром (filter). В таблице фильтра есть три цепочки (набора правил):

  • INPUT – используется для контроля входящих пакетов. Можно разрешать или блокировать  подключения по порту, протоколу или IP-адресу источника.
  • FORWARD – используется для фильтрации пакетов, приходящих на сервер, но перенаправляемых куда-либо еще.
  • OUTPUT – используется для фильтрации исходящих пакетов.

TCP порты и служба SQL Server Browser

До версии MSSQL 2000 нельзя было установить больше одного экземпляра СУБД на один компьютер. Такая возможность появилась в более новых версиях MSSQL. Служба SQL Server Browser впервые появилась в SQL Server 2005 и использовалась как посредник для распределения подключений между различными экземплярами MSSQL, установленными на одном компьютере.

Также SQL Server Browser отвечает за подключение к MSSQL (например, из SQL Server Management Studio) без указания порта, например testnode1\node1. Служба SQL Server Browser узнает номер текущего динамического порта экземпляра из реестра и сообщает его клиенту.

Если вы отключите службу SQL Server Browser, то для подключения к экземпляру необходимо вручную указывать TCP порт. Например, testnode1\node1, 1440.

Читайте также:  Видеонаблюдение для офиса: подбор оборудования и законы

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

Стандартные порты SQL Server

  • TCP 1433 — Стандартный порт SQL Server
  • UDP 1433 – порт, используемый SQL Server Browser

Другие порты настраиваются при установке/настройке конкретного сервиса. Так что по умолчанию, Вам достаточно открыть в файерволе только два порта: 1433 TCP/UDP.

Если у вас используются строгие настройки фаервола, или если вы хотите максимально ограничить SQL Server, рекомендуется отключить Dynamic Ports (выставить пустое значение) и отключить службу SQL Server Browser.

Если же ваши SQL Server’a находятся в публичном доступе, то будет хорошей идеей поменять порт на нестандартный. Это не защитит от атак полностью, но снизит их число.

Установка и синтаксис Nmap

По умолчанию программа недоступна в дистрибутивах ОС семейства Linux. Установим ее из официального репозитория.

sudo apt-get install nmap

Инсталляция займет не более 4 минут. Запуск утилиты осуществляется командой nmap с дополнительными ключами. Если требуется ознакомиться с синтаксисом и возможностями, вводим наименование ПО в терминале и нажимаем Enter.

Справочник

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

Nmap key target

Key – опция, с которой проводится сканирование. Утилита обладает множеством возможностей.

Target – конечная точка. Это может быть сайт, имя компьютера, IP-адрес и т.д.

Разработчики программы создали специальный веб-ресурс для тестирования возможностей Nmap. Его адрес:

Для начала проверим работоспособность Nmap на сайте без опций.

nmap

Получим следующие данные.

Сканирование сайта

Изображение выше показывает, что на ресурсе открыт порт 80 по протоколу TCP. Через него работает служба HTTP.

Поле State принимает четыре значения. Open означает, что порт открыт, а Closed – закрыт, т.е. ни одна программа не использует его. Третий вариант – Filtred, т.е. порт блокируется межсетвым экраном или фильтром. Последнее значение Unfiltered обозначает, что Nmap не определил, открыт ли порт или закрыт.

Создание панели инструментов с помощью Grafana

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

Читайте также:  Unix / Linux — Основы файловой системы

http://<your_raspberry_ip>:3000

Вы получите эту страницу:

Теперь выполните следующие действия:

  • Войдите в Grafana используя (admin / admin)
  • Сконфигурируйте источник данных, выбрав InfluxDB
  • Создайте свою панель с графиками, как вы предпочитаете

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

Открываем и настраиваем портал

Проверяем работу портала

После установки графаны открываем браузер и переходим по адресу http:// :3000.

Для авторизации используем логин и пароль: admin / admin.

Открываем и настраиваем портал

Система может потребовать задать новый пароль — вводим его дважды.

Добавляем плагин для работы с Zabbix

Установка плагина для подключения к Zabbix выполняется командой:

grafana-cli plugins install alexanderzobnin-zabbix-app

После окончания установки мы должны увидеть:

Открываем и настраиваем портал

Installed alexanderzobnin-zabbix-app successfully

Перезагружаем сервер графаны:

systemctl restart grafana-server

Переходим к веб-интерфейсу и открываем управление плагинами:

В открывшемся списке находим Zabbix и переходим к нему:

Открываем и настраиваем портал

Активируем его, кликнув по Enable:

Добавляем источник данных

Переходим в раздел ConfigurationData Sources:

Кликаем по Add data source:

Выбираем Zabbix в качестве источника данных:

Открываем и настраиваем портал

На открывшейся странице в разделе «HTTP», поле URL вводим http:// /api_, например:

Ниже, в разделе «Zabbix API details», вводим логин и пароль для учетной записи с правами выполнения запросов API, а также выбираем версию нашего сервера Zabbix:

* по умолчанию, в Zabbix создается учетная запись с правами администратора Admin с паролем zabbix. Однако, эту запись лучше использовать для проверки, а для целей интеграции лучше создать нового пользователя.

Нажимаем на Save & Test. Готово.

Создаем график на основе метрики в Zabbix

Открываем и настраиваем портал

Переходим в раздел CreateDashboard:

Выбираем Add Query:

Заполняем поля для получения данных с Zabbix:

  • Query — источник данных. Выбираем Zabbix.
  • Query Mode — тип данных. Оставляем Metrics.
  • Group — группа серверов в Zabbix. Выбираем нужную нам группу.
  • Host — имя сервера, для которого будем вытаскивать данные.
  • Application — данные для какого компонента будем собирать. В данном примере, процессора.
  • Item — какой именно тип информации нас интересует. На скриншоте выше выбрано время простоя процессора.

При желании, можно настроить графики в разделе Visualization:

Открываем и настраиваем портал

В открывшемся всплывающем окне задаем имя дашборду и нажимаем Save. Готово.

источник