К статье
Практический материал

Администрирование · 10 мин

Как проверить защищённость 1С на Linux: аудит уязвимостей

Как законно проверить защищённость 1С на Linux: типовые уязвимости, слабые пароли, открытые порты, права доступа, журналы и меры защиты сервера 1С.

Фраза «взломать 1С на Linux» на практике означает одно из двух: либо злоумышленник ищет способ получить несанкционированный доступ к базе, либо администратор или специалист по безопасности проводит авторизованный аудит — проверяет, где инфраструктура уязвима. Материал ниже написан со второй позиции: как самостоятельно проверить защищённость собственного сервера 1С, работающего на Linux, найти типовые дыры и закрыть их до того, как ими воспользуется кто-то другой.

Несанкционированный доступ к чужим информационным системам — уголовно наказуемое деяние (в России это статьи 272–274 УК РФ). Любые проверки выполняйте только на своём оборудовании, на тестовых стендах или по письменному договору с владельцем системы. Сканирование чужих серверов, даже «из любопытства», уже может квалифицироваться как правонарушение.

Типовая связка «1С на Linux» — это сервер 1С:Предприятия, СУБД (чаще PostgreSQL, реже MS SQL в контейнере или Oracle) и веб-сервер Apache или nginx для публикации тонкого клиента и веб-сервисов. У каждого звена свои типовые слабые места, и аудит стоит строить по слоям: сеть, операционная система, СУБД, сервер 1С, прикладной уровень.

С каких векторов чаще всего «вскрывают» 1С на Linux

Практика показывает, что реальные компрометации редко связаны с экзотическими уязвимостями платформы. Чаще всего используются банальные просчёты: порт СУБД, доступный из интернета; пароль администратора кластера, совпадающий с паролем пользователя ОС; веб-публикация без TLS и с включённой отладкой; учётная запись postgres с заводским паролем.

Второй класс векторов — прикладной: пользователи 1С с пустыми или словарными паролями, отсутствие ограничения по времени и адресам входа, включённый режим отладки на рабочем сервере (он позволяет подключиться конфигуратором к чужому сеансу при наличии доступа к кластеру), права «Администрирование» у рядовых сотрудников.

Порт 5432 открыт наружуPostgreSQL доступен извне

Проверить firewall и listen_addresses в postgresql.conf

Порты 1540–1541 без ограниченийКластер 1С доступен всей сети

Ограничить доступ по списку адресов

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

Проверить политику паролей в 1С

Включена отладка на сервереВозможно подключение к сеансам

Проверить параметр -debug в службе агента

Проверка сетевого периметра

Начните с того, что видит потенциальный атакующий: какие порты слушает сервер и кому они доступны. На самом сервере список открытых сокетов покажет команда ss -tulpn. Снаружи — сканирование с контролируемой машины, например nmap -sV адрес_сервера. Разница между двумя картинками покажет, что реально доступно из сети, а что закрыто межсетевым экраном.

Минимально необходимый набор снаружи — обычно только 443/tcp (веб-доступ) и при необходимости SSH с ограничением по адресам. Порты агента сервера 1С (1540), менеджера кластера (1541) и рабочих процессов (диапазон 1560–1591 по умолчанию) должны быть доступны только тем машинам, где работают клиенты и веб-сервер. Порт PostgreSQL (5432) — только localhost или серверу 1С.

bash
ss -tulpn | grep -E '1540|1541|5432' && sudo iptables -L -n -v

Если база файловая и опубликована через веб-сервер — проверьте, что каталог с файлом 1Cv8.1CD недоступен для прямого скачивания по URL. Это одна из самых обидных утечек: вся база уходит одним запросом.

Аудит учётных записей и паролей

На уровне 1С выгрузите список пользователей и проверьте: есть ли учётные записи без паролей, используется ли аутентификация ОС там, где она не нужна, совпадают ли имена с типовыми (Администратор, Admin, 1c). Подбор пароля к веб-доступу или тонкому клиенту — самый массовый сценарий атаки, поэтому включите в настройках информационной базы требования к сложности пароля и ограничение на число неудачных попыток, если версия платформы это поддерживает.

На уровне Linux проверьте, под какими учётными записями работают службы: агент сервера 1С обычно работает от пользователя usr1cv8, PostgreSQL — от postgres. У этих учётных записей не должно быть интерактивного входа в систему (shell /usr/sbin/nologin), а их пароли не должны использоваться где-либо ещё. Отдельно проверьте /etc/shadow на предмет пустых паролей и учётных записей с UID 0, кроме root.

Типичные ошибки
01
Один и тот же пароль у администратора кластера, СУБД и пользователя ОС — компрометация одного открывает всё
02
Пароль кластера 1С не задан вообще, потому что «сервер в локальной сети» — любой сотрудник может подключиться консолью кластера
03
Учётная запись postgres с паролем postgres или 12345 — первая строка в любом словаре подбора
04
Права root у службы сервера 1С «чтобы не возиться» — уязвимость в платформе даёт полный контроль над системой

Проверка СУБД и хранилища данных

PostgreSQL — самая частая СУБД в связке с 1С на Linux. Проверьте файл pg_hba.conf: методы аутентификации должны быть scram-sha-256 (или хотя бы md5 на старых версиях), а не trust. Строки вида host all all 0.0.0.0/0 trust означают, что база доступна любому без пароля — это критическая находка.

Убедитесь, что listen_addresses в postgresql.conf ограничен localhost или адресом сервера 1С, а не звёздочкой. Проверьте, кто владеет каталогом данных и файлами резервных копий: бэкапы, лежащие с правами чтения для всех или на общем сетевом ресурсе без ограничений, — готовый источник утечки всей базы, включая персональные данные сотрудников.

Настройки сервера 1С и веб-публикации

Проверьте, задан ли пароль администратора кластера и администратора информационной базы — это разные учётные записи, и обе должны быть защищены. Посмотрите параметры запуска службы агента: флаг -debug на продуктивном сервере включать нельзя, равно как и режим отладки по HTTP без крайней необходимости.

Для веб-публикаций убедитесь, что: включён TLS (работа по HTTP передаёт пароли открытым текстом), в файле default.vrd отключены неиспользуемые сервисы (каждый опубликованный веб-сервис — потенциальная точка входа), а доступ к публикации ограничен по адресам, если она нужна только внутренним сотрудникам. Проверьте также, что в конфигурации не осталось включённым «безопасный режим»-обход для внешних обработок — запуск произвольных epf-файлов на сервере эквивалентен выполнению кода.

Журналирование и обнаружение вторжения

Аудит бесполезен без способа заметить атаку в моменте. Включите технологический журнал 1С с записью событий аутентификации и исключений, настройте сбор логов PostgreSQL (log_connections, log_failed logins) и системного журнала (journald, /var/log/auth.log) в централизованное хранилище или хотя бы с регулярным просмотром.

Признаки возможной компрометации: неудачные входы подряд под разными именами, сеансы 1С в нерабочее время, новые учётные записи в ОС или в списке пользователей базы, изменённые файлы публикации, неожиданный рост исходящего трафика с сервера СУБД. Любой из этих признаков — повод для расследования, а не для откладывания.

Контрольные точки

Как проверить результат

Сканирование портов снаружи
Норма

Открыты только 443 и ограниченный SSH

Тревожный признак

Видны 1540, 1541, 5432 или 22 для всех

pg_hba.conf
Норма

scram-sha-256, узкие диапазоны адресов

Тревожный признак

trust, md5 с 0.0.0.0/0

Пароли пользователей 1С
Норма

Сложность включена, пустых паролей нет

Тревожный признак

Пустые пароли, отключённые требования

Резервные копии
Норма

Доступ только у служебной учётной записи, копии шифруются

Тревожный признак

Чтение для всех, копии на общем ресурсе

Что делать с найденными уязвимостями

Фиксируйте каждую находку с указанием слоя, риска и способа устранения. Закрывайте в порядке убывания риска: сначала доступность извне и отсутствие паролей, затем слабые пароли и избыточные права, затем журналирование и обновления. После каждого изменения проверяйте работоспособность: пользователи могут войти, регламентные задания выполняются, обмены работают.

Для регулярного контроля заведите чек-лист и повторяйте аудит после каждого существенного изменения инфраструктуры: переезда, обновления платформы, подключения новых публикаций. Разовая проверка устаревает вместе с первым же изменением конфигурации.

Порядок действий
  1. 1
    Сделайте резервную копию базы и конфигурационных файлов
  2. 2
    Просканируйте порты снаружи и изнутри, сопоставьте результаты
  3. 3
    Проверьте pg_hba.conf, listen_addresses и права на каталог данных
  4. 4
    Проверьте пароли администраторов кластера, базы и ОС
  5. 5
    Отключите отладку, лишние публикации и неиспользуемые сервисы
  6. 6
    Включите журналирование входов и настройте регулярный просмотр логов
  7. 7
    Повторите сканирование и убедитесь, что лишнего больше не видно
Итог

Что важно запомнить

Проверять защищённость можно только своих систем или по письменному согласию владельца. Главные риски — открытые порты, слабые пароли, trust-аутентификация в PostgreSQL, включённая отладка и незащищённые бэкапы. Аудит проводите послойно, находки закрывайте по приоритету, результат подтверждайте повторной проверкой.

Частые вопросы

Законно ли проверять свою корпоративную 1С на уязвимости?

Да, если вы владелец системы или действуете по поручению владельца. Желательно оформить внутренний приказ или договор на аудит, особенно если проверку делает привлечённый специалист. Активные тесты (подбор паролей, эксплуатация) проводите в согласованное время, чтобы не нарушить работу пользователей.

Можно ли восстановить забытый пароль администратора 1С без «взлома»?

Да, легальные способы существуют: сброс через другую учётную запись с правами администрирования, через администратора кластера в консоли, а для файловой базы — через штатные механизмы платформы при наличии доступа к файлу. Это административная процедура, а не взлом.

Чем опасен открытый порт PostgreSQL, если пароль сложный?

Открытый порт даёт атакующему неограниченные попытки подбора без срабатывания блокировок прикладного уровня, а также позволяет эксплуатировать уязвимости самой СУБД до выхода патчей. Правильная практика — доступ к СУБД только с сервера 1С, а снаружи порт закрыт.

Как понять, что сервер 1С уже скомпрометирован?

Тревожные признаки: новые неизвестные учётные записи в ОС и в 1С, сеансы в нерабочее время, изменённые файлы публикаций, всплески исходящего трафика, ошибки в логах о неудачных входах подряд. При подозрении изолируйте сервер от сети, сохраните логи и проведите разбор до возврата в работу.

Нужен ли антивирус на Linux-сервере 1С?

Антивирус — не первоочередная мера для этой роли. Важнее минимизация установленного ПО, регулярные обновления системы и платформы, ограничение сетевого доступа, контроль целостности файлов и резервное копирование с проверкой восстановления.

Что делать с сотрудником, который увольняется?

Заблокируйте его учётные записи в 1С, ОС, VPN и почте в день увольнения, отзовите сертификаты и ключи, проверьте, не создавал ли он дополнительные учётные записи или внешние обработки с автозапуском. Смените пароли общих служебных учётных записей, которые он мог знать.