При внедрении мобильного клиента для «1С:Документооборот КОРП» перед ИТ-специалистами часто встает серьезная дилемма. С одной стороны, необходимо обеспечить руководству и мобильным сотрудникам оперативный доступ к базе из любой точки мира. С другой стороны, простая публикация базы на веб-сервере делает ее полностью открытой для внешнего интернета, что создает критические риски для безопасности корпоративных данных. В этой статье мы подробно разберем, как решить эту проблему, рассмотрим различные варианты фильтрации трафика и настроим безопасное подключение мобильных устройств.
Это классический и самый надежный способ защиты корпоративных ресурсов. Вместо того чтобы выставлять веб-сервер Apache или IIS напрямую в глобальную сеть, мы оставляем его доступным только во внутренней сети (или локальном Wi-Fi), а для внешних подключений используем VPN.
Рассмотрим по шагам, как работает этот сценарий:
Преимущества: Полная изоляция веб-сервера от внешнего мира. Злоумышленники даже не увидят окно авторизации 1С.
Недостатки: Пользователю на мобильном устройстве приходится делать лишние действия перед запуском приложения.
Разберем ситуацию, когда нам необходимо разрешить доступ только мобильным клиентам, полностью заблокировав вход через обычные браузеры (веб-клиент) и настольные ПК (тонкий клиент) извне.
Выясним, как это реализовать на уровне платформы 1С. В конфигурации (в модуле управляемого приложения) в обработчике события ПриНачалеРаботыСистемы мы можем прописать принудительную проверку типа клиента и при необходимости прерывать сеанс:
Процедура ПриНачалеРаботыСистемы()
ТекущийТипКлиента = СистемнаяИнформация.ТипКлиента;
// Блокируем доступ для веб- и тонкого клиента, если это не локальная сеть
Если ТекущийТипКлиента = ТипКлиента.ВебКлиент Или ТекущийТипКлиента = ТипКлиента.ТонкийКлиент Тогда
// Здесь можно вызвать функцию проверки IP-адреса или прав пользователя
Если Не ДоступРазрешенИзВнешнейСети() Тогда
ПоказатьПредупреждение(, "Доступ через веб- и тонкий клиент из внешней сети заблокирован администратором.");
ЗавершитьРаботуСистемы(Ложь);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Для мобильного клиента ТипКлиента.МобильныйКлиент данная проверка выполняться не будет, и пользователи смогут беспрепятственно работать со своих мобильных устройств.
Если мы не хотим вносить изменения в конфигурацию 1С, ограничение можно настроить силами системного администратора непосредственно на веб-сервере. Поскольку в нашей инфраструктуре используется веб-сервер Apache, проанализируем настройку фильтрации по заголовку User-Agent.
Каждое мобильное приложение 1С при обращении к веб-серверу отправляет специфический заголовок, содержащий строку 1C:Enterprise и указание мобильной операционной системы (iOS/Android). Обычные браузеры отправляют другие заголовки.
Откроем конфигурационный файл публикации Apache и с помощью модуля mod_rewrite добавим правило, которое будет блокировать любые запросы, пришедшие не от мобильного клиента 1С:
RewriteEngine On
# Проверяем, содержит ли User-Agent признак мобильного приложения 1С
RewriteCond %{HTTP_USER_AGENT} !.*1C:Enterprise.* [NC]
# Если нет, отдаем ошибку 403 Forbidden для всех внешних запросов к базе
RewriteRule ^/DOCKORP/.*$ - [F,L]
Это изящное решение позволяет мгновенно закрыть доступ для любых браузеров и стандартных тонких клиентов с ПК, оставив открытой дорогу только мобильному приложению.
Рассмотрим еще один профессиональный подход к безопасности — создание двух раздельных публикаций одной и той же информационной базы:
/DOCKORP_local): Доступна только из локальной сети или через корпоративный VPN. Здесь разрешены любые типы клиентов без ограничений./DOCKORP_mobile): Выставляется наружу в интернет. На уровне файла настроек default.vrd этой публикации мы принудительно отключаем интерфейс стандартного веб-клиента, оставляя доступными только веб-сервисы (ws), которые необходимы для синхронизации мобильного приложения.Посмотрим на ситуацию шире. Публиковать Apache напрямую в интернет небезопасно. Стандартом в современной ИТ-инфраструктуре является установка обратного прокси-сервера Nginx перед основным веб-сервером 1С.
Nginx будет принимать все внешние запросы, обрабатывать SSL-сертификаты (HTTPS), скрывать реальную структуру локальной сети и фильтровать трафик. В связке с утилитой Fail2ban, анализирующей логи Nginx, вы получите автоматическую блокировку любых IP-адресов, пытающихся подобрать пароли к вашей базе данных.
Не забывайте, что в самой конфигурации «1С:Документооборот КОРП» предусмотрены штатные инструменты защиты:
Если у вашего системного администратора нет опыта настройки сложных правил маршрутизации, VPN или SSL-сертификатов, рассмотрите использование готового сервиса от фирмы 1С — 1С:Линк. Он позволяет создать защищенный туннель между сервером 1С и мобильным устройством без необходимости иметь белый IP-адрес и открывать порты на роутере. Мобильный клиент «1С:Документооборот» имеет встроенную поддержку работы через этот сервис.
Таким образом, комбинируя предложенные варианты (например, развертывание VPN для максимальной защиты или фильтрацию по User-Agent на веб-сервере в связке с ограничениями прав в самой 1С), вы сможете организовать надежную и безопасную работу мобильных пользователей без угрозы компрометации корпоративной базы данных.