Защита моего сервера NUT UPS – предотвращение неавторизованного удаленного доступа

Вопрос или проблема

У меня есть сервер NUT на RPi 2, который я настроил. С другого клиента я могу подключаться через порт 3493 и отслеживать статус ИБП. Однако проблема в том, что я могу ввести любое имя пользователя/пароль или вообще оставить это поле пустым, и всё равно подключиться. Я не хочу этого. Я не понимаю, что вызывает такое поведение. У кого-нибудь есть идеи, в чем может быть причина?

Как предотвратить вход без пользователя/пароля с удалённых клиентов?

Сейчас я могу выполнить эту команду без аутентификации с удалённого клиента:

upsc [email protected]

Разве upsd.users не должен использоваться таким образом?

Мои конфигурационные файлы выглядят так:

nut.conf

MODE=netserver

upsd.conf

LISTEN 0.0.0.0 3493

upsd.users

[admin]
    password = pass
    actions = SET
    actions = FSD
    instcmds = ALL

[local]
    password = pass
    upsmon master

[remote]
    password = pass
    upsmon slave

[monuser]
    password = pass
    upsmon slave

upsmon.conf

MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 30
DEADTIME 25
POWERDOWNFLAG /etc/killpower
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 90
MONITOR apc-bx1600@localhost 1 local pass master

upssched.conf

CMDSCRIPT /bin/upssched-cmd

Разрешения файлов

-rw-r--r-- 1 root root  1113 Jan 22 23:40 hosts.conf
-rw-r----- 1 root nut     15 Jan 22 17:29 nut.conf
-rw-r----- 1 root nut    248 Jan 22 23:12 ups.conf
-rw-r----- 1 root nut     19 Jan 22 23:29 upsd.conf
-rw-r----- 1 root nut    253 Jan 23 16:53 upsd.users
-rw-r----- 1 root nut    232 Jan 23 17:27 upsmon.conf
-rw-r----- 1 root nut   4201 Jan 25  2023 upssched.conf
-rw-r--r-- 1 root root  1432 Jan 23 11:23 upsset.conf
-rw-r--r-- 1 root root  3699 Jan 25  2023 upsstats.html
-rw-r--r-- 1 root root  6408 Jan 25  2023 upsstats-single.html

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

upsd всегда предоставляет только для чтения доступ анонимным клиентам. Функция аутентификации пользователя предназначена только для предоставления доступа к действиям управления (например, upsrw для изменения параметров ИБП, или upscmd для запуска калибровки, или upsmon для установки ‘принудительного выключения’).

Если вы хотите, чтобы только одобренные клиенты могли видеть статус ИБП, используйте аутентификацию клиента на уровне TLS, используя CERTREQUEST REQUIRE в upsd.conf, или ограничьте их с помощью iptables.

Ответ или решение

Для обеспечения безопасности вашего NUT (Network UPS Tools) сервера на Raspberry Pi 2 и предотвращения несанкционированного удаленного доступа, важно разобраться в том, как обрабатываются аутентификация и доступ к серверу. Проблема, с которой вы столкнулись, касается того, что удаленные клиенты могут подключаться и наблюдать статус UPS без предоставления корректного имени пользователя и пароля. Давайте разберемся, как решить эту задачу, учитывая текущую конфигурацию и доступные возможности для повышения уровня безопасности.

Теория

Система NUT предназначена для мониторинга и управления источниками бесперебойного питания (UPS). Один из компонентов NUT, upsd, предоставляет удаленным клиентам возможность доступа к информации о недостатке питания. Здесь важно учитывать, что NUT по умолчанию предоставляет read-only (только чтение) доступ анонимным клиентам, что и объясняет способность подключаться без проверки учетных данных. Аутентификация, как таковая, требуется лишь для совершения контрольных действий, таких как изменения параметров UPS или принудительное отключение.

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

Пример

Ваш текущий конфигурационный файл upsd.conf содержит строку LISTEN 0.0.0.0 3493, что открывает доступ ко всем сетевым интерфейсам Raspberry Pi для подключения через порт 3493. Такой подход удобно использовать для легкого доступа, но он может открывать двери для несанкционированного доступа.

Файл upsd.users определяет пользователей, которые могут взаимодействовать с UPS. Однако, как указано, без дополнительных мер все клиенты получают доступ к чтению состояния UPS без аутентификации.

Применение

Для повышения безопасности вашего NUT сервера, выполните следующие шаги:

  1. Изменение конфигурации upsd.conf:

    • Добавьте в данный файл TLS аутентификацию или настройте ограничение по IP-адресам клиента.
    • Используйте директиву CERTREQUEST REQUIRE, чтобы обеспечить обязательную проверку клиентских сертификатов. Это потребует создания и распределения соответствующих сертификатов для доверенных клиентов.
  2. Настройка TLS:

    • Генерируйте и установите SSL-сертификаты для upsd, чтобы включить безопасное соединение. Это предотвратит перехват трафика и несанкционированный доступ, поскольку только клиенты с действительными сертификатами смогут установить соединение.
    • Пример конфигурации может выглядеть следующим образом:
      CERTFILE /path/to/upsd.crt
      CERTKEY /path/to/upsd.key
      CERTREQUEST REQUIRE
    • Обновите клиентов NUT, чтобы они поддерживали TLS-соединения и могли соответствовать новым требованиям аутентификации.
  3. Контроль доступа на уровне сети (Firewall):

    • Используйте iptables для ограничения диапазона IP-адресов, с которых разрешено подключение к вашему серверу.
    • Например, вы можете добавить следующие правила:
      iptables -A INPUT -p tcp --dport 3493 -s <trusted-ip> -j ACCEPT
      iptables -A INPUT -p tcp --dport 3493 -j DROP
    • Это позволит только указанным IP-адресам подключаться к серверу на порту 3493, отвергая все прочие подключения.
  4. Настройка учетных записей пользователей NUT:

    • Пересмотрите файл upsd.users, удалите или измените пароли, чтобы использовать более сложные и уникальные пароли для всех учетных записей.
    • Проверьте, чтобы у пользователей были назначены соответствующие права доступа.
  5. Мониторинг и логирование:

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

    • Регулярно обновляйте ваш сервер NUT и Raspberry Pi для применения последних исправлений безопасности и улучшений. Следите за обновлениями и рекомендациями от разработчиков ПО.

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

Оцените материал
Добавить комментарий

Капча загружается...