Найти в Дзене

Защищаем dvswitch+Analog reflector фаерволом

Если вы установили dvswitch на виртуальную машину на хостинге вы столкнетесь с проблемой - все сервисы, установленные с dvswitch доступны из интернета.
В результате чего ваша инсталляция будет постоянна подвергаться сканированию на известные уязвимости злоумышленниками.
В чем можно будет убедиться после включения фаервола посмотрев его логи.
Для примера часть логов заблокированного трафика: В нем видно что с разных IP адресов пытаются подключиться к портам сервисов, которые у меня не установлены.
Вот тут в википедии можно ознакомиться со списком стандартных портов, которые могут потенциально попадать под сканирование для поиска уязвимостей для взлома сервера:
https://ru.wikipedia.org/wiki/Список_портов_TCP_и_UDP
Чтобы защитить dvswitch от таких атак мы сделаем 2 вещи:
- перенесем дашбоард и порт для подключения мобильного клиента на нестандартные порты
- закроем фаерволом все остальные порты Посмотрим какие порты у нас доступны:
sudo netstat -tunlp Список внушительный.
Для начала

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

Для примера часть логов заблокированного трафика:

В нем видно что с разных IP адресов пытаются подключиться к портам сервисов, которые у меня не установлены.
Вот тут в википедии можно ознакомиться со списком стандартных портов, которые могут потенциально попадать под сканирование для поиска уязвимостей для взлома сервера:
https://ru.wikipedia.org/wiki/Список_портов_TCP_и_UDP

Чтобы защитить dvswitch от таких атак мы сделаем 2 вещи:
- перенесем дашбоард и порт для подключения мобильного клиента на нестандартные порты
- закроем фаерволом все остальные порты

Посмотрим какие порты у нас доступны:
sudo netstat -tunlp

-2

Список внушительный.

Для начала поменяем порты для дашборда и мобильного приложения.
Но это совсем не обязательно. Но желательно.
Понадобится редактировать файлы настроек.
Для этого удобно использовать редактор nano.
Если нет опыта работы с ним, можно пройти краткий курс тут:
https://www.youtube.com/watch?v=fgoHzqHPY-E

Настройки веб сервера находятся в файле:
/etc/lighttpd/lighttpd.conf
Открываем в редакторе:
sudo nano /etc/lighttpd/lighttpd.conf
Находим в нем строчку
server.port
и меняем значение с 80 в диапазоне от 1024 до 65535

-3

Перезагружаем веб сервер:
sudo /etc/init.d/lighttpd restart

Теперь дашбоард будет доступен в браузере по адресу:
адрес_сервера:номер_выбранного_порта

Меняем порт для подключения мобильных клиентов.
Конфигурация находится в файле:
/opt/Analog_Reflector/Analog_Reflector.json

Открываем в редакторе:
sudo nano /opt/Analog_Reflector/Analog_Reflector.json

Ищем строчку: начинающуюся с:
"mobilePort"

И меняем на любой в диапазоне от 1024 до 65535

-4

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

Перезагружаем Analog Reflector:
sudo systemctl restart analog_reflector

Теперь в настройках dvswitch на телефоне нужно использовать этот порт.

Для работы в dvswitch нам нужны 3 порта:
- 22 для доступа к серверу по ssh протоколу
- порт для веб сервера дашборда, который мы поменяли выше. Или 80 по умолчанию.
- порт для подключения мобильного приложения, который мы поменяли выше. Или 12345 по умолчанию.

Теперь будем настраивать фаервол.
БУДЬТЕ ВНИМАТЕЛЬНЫМИ! ЕСЛИ ВЫ ЗАКРОЕТЕ ДОСТУП К 22 ПОРТУ БОЛЬШЕ НЕ ПОЛУЧИТСЯ ПОДКЛЮЧИТЬ УДАЛЕННО К СЕРВЕРУ. ЕСЛИ ЭТО ВИРТУАЛЬНЫЙ СЕРВЕР НА ХОСТИНГЕ - ВОЗМОЖНО БУДЕТ ПОДКЛЮЧИТЬСЯ ЧЕРЕЗ ВЕБ КОНСОЛЬ, ЕСЛИ У ХОСТИНГА ЕСТЬ ТАКАЯ ОПЦИЯ, ИЛИ ПРИДЕТСЯ ПЕРЕСОЗДАТЬ И ПЕРЕУСТАНОВИТЬ СЕРВЕР.

Проверяем текущие настройки фаервола:
sudo ufw status numbered

Если в ответ вы увидите:
sudo: ufw: command not found
значит фаерволл еще не установлен.
Нужно его установить командой:
sudo apt install ufw -y

После чего снова запускаем:
sudo ufw status numbered
После установки фаерволл не активен и нет настроенных правил:

-5

Первым делом разрешаем 22 порт. Чтобы ненароком не запретить доступ по SSH:
sudo ufw allow ssh

-6

Теперь не страшно включить фаерволл:
sudo ufw enable

-7

Запрещаем любые другие входящие соединения:
sudo ufw default deny incoming

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

-8

В статусе выше видим что входящие запрещены:
Default: deny (incoming)

Теперь можно попробовать открыть дашбоард в браузере по новому адресу. Он должен быть недоступен.
Открываем в браузере адресс:
адрес_вашего_сервера:порт_дашборда: который задали_выше
В моем случае это:
10.1.1.83:37737

Теперь разрешаем порт дашборда:
sudo ufw allow 37737

-9

И опять проверяем в браузере дашбоард. Теперь он должен быть доступен.

Проделываем тоже самое для порта мобильного приложения. Но протокол уже должен быть UDP:
sudo ufw allow 37377/udp

-10

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

sudo ufw status numbered

-11

И удаляем правило по номеру:

sudo ufw delete 4

-12

НУЖНО БЫТЬ ОСТОРОЖНЫМ! ПОСЛЕ УДАЛЕНИЯ ПРАВИЛА У ПОСЛЕДУЮЩИХ МЕНЯЮТСЯ НОМЕРА!

Можно удалить все правила для IPV6.

Для нормальной работы минимальная конфигурация выглядит так:

-13

В такой конфигурации доступен минимальный набор портов, необходимый для функционирования dvswitch с установленным Analog Reflector.
Если нужно работать через веб приложение, надо таким-же образом добавить wsPort.

Ну и если что-то пошло не так фаервол всегда можно отключить:
sudo ufw disable

-14