Безопасность DxWebServer
- avk
- Интересующийся
- Сообщения: 112
- Зарегистрирован: 29 окт 2025, 18:24
- Благодарил (а): 3 раза
- Поблагодарили: 42 раза
Безопасность DxWebServer
Функции запуска приложений и работы с файлами в скриптах DxWebServer фактически представляют уязвимость для сервера (включая его полный контроль). Эксплойт прилагать не буду, но, проверил теорию - работает.
- avk
- Интересующийся
- Сообщения: 112
- Зарегистрирован: 29 окт 2025, 18:24
- Благодарил (а): 3 раза
- Поблагодарили: 42 раза
Безопасность DxWebServer
Написал в личку.
Не пускать веб-сервер и базу в открытый интернет. По крайней мере до какой-то локализации проблемы или особого рецепта развертывания (в изолированной среде, например).
Сам метод вскрытия под ногами не валяется, нужны некоторые навыки, но мало ли.
admin писал(а):Что вы предлагаете?
Не пускать веб-сервер и базу в открытый интернет. По крайней мере до какой-то локализации проблемы или особого рецепта развертывания (в изолированной среде, например).
Сам метод вскрытия под ногами не валяется, нужны некоторые навыки, но мало ли.
- cordek
- Эксперт
- Сообщения: 2563
- Зарегистрирован: 14 май 2017, 14:53
- Благодарил (а): 754 раза
- Поблагодарили: 612 раз
- Контактная информация:
Безопасность DxWebServer
Так скрипты только разработчик может написать
балуюсь разработкой LIMS JDX
cordek {/а} yandex/ru
cordek {/а} yandex/ru
- avk
- Интересующийся
- Сообщения: 112
- Зарегистрирован: 29 окт 2025, 18:24
- Благодарил (а): 3 раза
- Поблагодарили: 42 раза
Безопасность DxWebServer
cordek писал(а):Так скрипты только разработчик может написать
"Железный" аргумент.
- admin
- Разработчик
- Сообщения: 8038
- Зарегистрирован: 14 мар 2016, 11:32
- Откуда: Ленинградская
- Благодарил (а): 292 раза
- Поблагодарили: 1918 раз
Безопасность DxWebServer
Можно ограничить права доступа для веб-сервера, чтобы случайно или преднамеренно не повредить систему. Для этого необходимо создать пользователя с ограниченными правами и запускать сервер от его имени.
Создаем нового пользователя:
В конфигурационный файл сервиса добавляем параметр User:
Убедитесь, что только у владельца есть права на запись.
Каталоги cache и logs должны быть доступны для записи. Сделать это можно, например, сменив владельца на dxweb:
Перезапускаем сервис:
Если у вас в системе нет разрешения на запись для прочих пользователей, то скрипты веб-сервера могут записывать и создавать файлы только в каталогах cache и logs.
Чтобы запретить чтение из важных каталогов, можно воспользоваться списками контроля доступа ACL. Например:
Создаем нового пользователя:
Код: Выделить всё
# useradd dxweb
# passwd dxwebВ конфигурационный файл сервиса добавляем параметр User:
[Unit]
Description=DataExpress Web Server
After=network.target
[Service]
Type=simple
User=dxweb
ExecStart=/opt/dxwebsrv_linux64/dxwebsrv -r
RemainAfterExit=yes
TimeoutSec=25
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Убедитесь, что только у владельца есть права на запись.
Код: Выделить всё
# ls -l
-rw-r--r-- 1 root root 11572 May 14 2024 LICENSE.txt
-rw-r--r-- 1 root root 1619 May 14 2024 NOTICE.txt
drwxr-xr-x 3 dxweb root 4096 Jan 8 10:38 cache
-rwxr-xr-x 1 root root 8707536 Jan 8 10:37 dxwebsrv
-rw-r--r-- 1 root root 201 Aug 25 2024 dxwebsrv.service
-rw-r--r-- 1 root root 8317 Apr 5 2024 except.dic
-rw-r--r-- 1 root root 1150 May 1 2022 favicon.ico
drwxr-xr-x 2 root root 4096 Jan 6 22:21 fb5
drwxr-xr-x 2 root root 4096 Jan 6 22:21 html
drwxr-xr-x 2 root root 4096 Jan 6 22:21 img
drwxr-xr-x 2 root root 4096 Jan 6 22:21 languages
-rw-r--r-- 1 root root 4226888 Apr 10 2024 libPadeg.so
-rw-r--r-- 1 root root 862048 Jun 19 2019 libfbclient.so
drwxr-xr-x 2 dxweb root 4096 Jan 6 22:25 logs
-rw-r--r-- 1 root root 0 Jan 8 10:55 out.txt
drwxr-xr-x 2 root root 4096 Jan 7 11:20 templates
Каталоги cache и logs должны быть доступны для записи. Сделать это можно, например, сменив владельца на dxweb:
Код: Выделить всё
# chown dxweb cache
# chown dxweb logsПерезапускаем сервис:
Код: Выделить всё
# systemctl restart dxwebsrvЕсли у вас в системе нет разрешения на запись для прочих пользователей, то скрипты веб-сервера могут записывать и создавать файлы только в каталогах cache и logs.
Чтобы запретить чтение из важных каталогов, можно воспользоваться списками контроля доступа ACL. Например:
Код: Выделить всё
# apt-get install acl
# setfacl -m u:dxweb--- /etc