Как настроить подключение к 1С:Управление торговлей 11 через Apache 2.2 из Интернета?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

Многие пользователи 1С сталкиваются с необходимостью организации удаленного доступа к своим информационным базам через Интернет. При использовании стандартного подключения по RDP (Remote Desktop Protocol) часто возникают проблемы с производительностью, особенно при работе с требовательными операциями, такими как печать чеков. В таких случаях публикация базы 1С на веб-сервере Apache является эффективным решением. В этом руководстве мы подробно рассмотрим, как настроить подключение к 1С:Управление торговлей 11 через Apache 2.2 из Интернета, а также разберем распространенные проблемы и способы их устранения.

Наш читатель столкнулся с ситуацией, когда после установки Apache 2.2, публикации 1С и открытия портов на роутере и в брандмауэре, доступ к базе был возможен только в локальной сети. Попытки подключения через Интернет приводили к ошибкам или отсутствию доступа. Давайте вместе проанализируем эту ситуацию и найдем решения.

Шаг 1: Правильная настройка сетевых параметров (роутер и брандмауэр)

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

  1. Проблема с портом 80:

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

    Решение: Мы настоятельно рекомендуем использовать нетиповой внешний порт для подключения к 1С через Интернет. Например, порты 8800 или 8700 являются хорошим выбором. Вы будете перенаправлять внешний порт (например, 8800) на внутренний порт, который слушает ваш Apache (например, тот же 8800 или стандартный 80).

  2. Настройка проброса портов (Port Forwarding / NAT) на роутере:

    Необходимо зайти в настройки вашего роутера (обычно через веб-интерфейс по его внутреннему IP-адресу, например, 192.168.1.1 или 192.168.0.1) и найти раздел, отвечающий за переадресацию портов (Port Forwarding, NAT, Virtual Servers или DMZ). Здесь вы должны создать правило:

    • Внешний порт (External Port/WAN Port): Укажите выбранный вами нетиповой порт, например, 8800.
    • Внутренний порт (Internal Port/LAN Port): Укажите порт, который прослушивает ваш Apache. Если вы решили, что Apache будет слушать 80-й порт, укажите 80. Если вы настроите Apache на прослушивание 8800-го порта (что мы рассмотрим далее), то укажите 8800.
    • IP-адрес назначения (Internal IP Address): Введите локальный IP-адрес вашего сервера, на котором установлен Apache и опубликована 1С (например, 192.168.1.100).
    • Протокол (Protocol): Обычно выбирают TCP или Both (TCP/UDP). Для веб-сервера достаточно TCP.

    Пример: Входящие соединения на внешний IP-адрес на порт 8800 будут перенаправляться на IP-адрес вашего сервера (например, 192.168.1.100) на внутренний порт 8800 (или 80, в зависимости от настроек Apache).

  3. Настройка брандмауэра на сервере:

    Убедитесь, что брандмауэр на самом сервере, где установлен Apache, разрешает входящие соединения на выбранный порт (например, 8800). Если у вас Windows Server, это "Брандмауэр Защитника Windows с расширенными функциями безопасности". Добавьте новое правило для входящих подключений, разрешающее TCP-соединения на порт 8800. Для тестирования можно временно отключить брандмауэр, но для постоянной работы необходимо создать соответствующее правило.

  4. Тестирование Loopback:

    Если при попытке доступа к внешнему IP-адресу сервера из локальной сети у вас ничего не работает, возможно, ваш роутер не поддерживает функцию "loopback" (возможность обращаться к своему внешнему IP-адресу изнутри локальной сети). В таком случае, для проверки изнутри сети используйте внутренний IP-адрес сервера Apache.

Шаг 2: Настройка веб-сервера Apache 2.2

После настройки сетевого оборудования переходим к конфигурации самого Apache.

  1. Директива Listen в httpd.conf:

    Откройте основной конфигурационный файл Apache, обычно httpd.conf, который находится в каталоге conf вашей установки Apache. Найдите или добавьте директиву Listen. Если вы решили использовать порт 8800, убедитесь, что в файле есть следующая строка:

    Listen 8800

    Apache может прослушивать несколько портов, используя несколько директив Listen. Если вы хотите, чтобы Apache слушал на всех доступных IP-адресах, можете использовать Listen 0.0.0.0:8800 или Listen *:8800. В некоторых случаях (как указал один из участников форума), если на сервере несколько сетевых интерфейсов или есть специфические настройки, может потребоваться указать конкретный IP-адрес сервера:

    Listen 192.168.1.100:8800

    где 192.168.1.100 — это локальный IP-адрес вашего сервера.

  2. Использование Виртуальных Хостов (VirtualHost):

    Для публикации 1С рекомендуется использовать виртуальные хосты. Это позволяет Apache обслуживать несколько сайтов или приложений, каждое со своим именем домена и/или портом. Добавьте в httpd.conf (или в отдельный файл конфигурации виртуального хоста) следующий блок:

    
    <VirtualHost *:8800>
        ServerName ваш_белый_ip_или_домен
        DocumentRoot "C:/inetpub/wwwroot/1C" ; или другой путь, где будут файлы публикации 1С
        ErrorLog "logs/1c_error.log"
        CustomLog "logs/1c_access.log" common
    
        <Directory "C:/inetpub/wwwroot/1C">
            AllowOverride All
            Order allow,deny
            Allow from all
            Require all granted ; Для Apache 2.4, для 2.2 используем Order allow,deny и Allow from all
        </Directory>
    </VirtualHost>
    

    Убедитесь, что DocumentRoot указывает на физический каталог, где находится файл default.vrd и другие файлы публикации 1С.

  3. Директива Directory:

    Внутри блока VirtualHost или в основном httpd.conf мы используем директиву <Directory> для настройки прав доступа и опций для каталога публикации 1С. Для корректной работы часто требуется AllowOverride All (чтобы Apache мог использовать файлы .htaccess, если 1С их создает или требует) и Order allow,deny / Allow from all (для Apache 2.2) или Require all granted (для Apache 2.4).

  4. Права доступа к каталогу публикации:

    Убедитесь, что пользователь, от имени которого работает Apache (обычно это системная учетная запись Network Service для Windows, или apache / www-data для Linux), имеет достаточные права доступа (минимум, на чтение и выполнение) к следующим каталогам:

    • К каталогу, где опубликована база 1С (например, C:/inetpub/wwwroot/1C).
    • К каталогу bin платформы 1С (например, C:/Program Files/1cv8/8.3.Х.ХХХ/bin).
    • Если используется файловая база 1С, то у пользователя Apache также должны быть права на запись в каталог с информационной базой.
  5. Проверка логов Apache:

    Всегда проверяйте логи ошибок Apache (обычно error.log и access.log, которые находятся в каталоге logs вашей установки Apache). Они могут дать ценную информацию о конкретных проблемах с доступом, конфигурацией или отсутствующими файлами. Это ваш главный помощник в диагностике.

  6. Проверка, что Apache слушает порт:

    После внесения изменений в конфигурацию Apache и его перезапуска, убедитесь, что он действительно слушает настроенный порт. Для Windows вы можете использовать команду в командной строке с правами администратора:

    netstat -ano | findstr :8800

    Для Linux:

    sudo netstat -lep --tcp | grep 8800

    Вы должны увидеть процесс Apache, прослушивающий порт 8800.

Шаг 3: Публикация базы 1С

Один из ключевых моментов, который часто упускают: после любых изменений в конфигурации веб-сервера (особенно касающихся портов или путей), необходимо заново опубликовать базу 1С.

  1. Заново опубликуйте 1С:

    При публикации база 1С создает необходимые файлы (например, default.vrd) и регистрирует свои расширения для веб-сервера. Если вы изменили порт или другие параметры Apache, старая публикация может быть неактуальной. Заново опубликуйте базу через конфигуратор 1С или утилиту webinst (находится в каталоге bin платформы 1С). Обязательно указывайте правильную версию Apache (2.2 или 2.4), так как настройки публикации для них отличаются.

    • Через Конфигуратор: Откройте базу в режиме конфигуратора. Меню "Администрирование" -> "Публикация на веб-сервере...". Укажите имя публикации (например, UT), каталог публикации на веб-сервере (тот же, что вы указали в DocumentRoot Apache), и выбранный порт.
    • Файл default.vrd: Убедитесь, что в каталоге публикации создан или обновлен файл default.vrd. Этот XML-файл содержит описание подключения к базе, имя публикации, строку соединения и другие параметры.
  2. Правильное указание пути к базе 1С:

    Ошибка "Not Found" часто возникает, если веб-сервер не может найти файлы публикации 1С. Убедитесь, что в файле конфигурации Apache (`httpd.conf` или файлах виртуальных хостов) DocumentRoot или Alias правильно указывают на физический каталог, где находится файл default.vrd и другие файлы публикации 1С.

    Пример: если вы опубликовали базу под именем UT в каталог C:/inetpub/wwwroot/1C, то путь доступа будет http://ваш_белый_ip:8800/UT.

  3. Перезапуск веб-сервера:

    После каждой публикации или изменения настроек публикации 1С, веб-сервер необходимо перезапустить. Это гарантирует, что все новые настройки будут применены.

Шаг 4: Тестирование подключения

После выполнения всех настроек перейдем к проверке доступа.

  1. Проверка страницы Apache:

    Сначала попробуйте просто открыть в браузере внешний IP-адрес вашего сервера с указанием порта, например: http://ваш_белый_ip:8800. Если откроется стандартная страница Apache ("It works!" или подобная), это означает, что Apache успешно запущен и доступен из Интернета через указанный порт.

  2. Проверка доступа к базе 1С:

    Если страница Apache открывается, следующим шагом будет попытка доступа к вашей опубликованной базе 1С. Введите в браузере адрес в формате: http://ваш_белый_ip:8800/ИмяПубликацииБазы. Например, http://ваш_белый_ip:8800/UT.

    Если вы по-прежнему получаете ошибку "Not Found. The requested URL /UTweb was not found on this server.", это может указывать на следующие проблемы:

    • База не была переопубликована после изменения настроек Apache.
    • Имя публикации в URL не совпадает с тем, что вы указали при публикации 1С.
    • Неверно указан DocumentRoot или Alias в конфигурации Apache.
    • Проблемы с правами доступа Apache к каталогу публикации или файлам 1С.
    • Неправильно настроены директивы <Directory>.

    В случае "Not Found", вернитесь к пунктам о публикации 1С и настройках Apache, внимательно проверьте логи сервера.

  3. Тестирование с внешнего устройства:

    Для максимально точной проверки используйте устройство (например, мобильный телефон) с подключением через мобильный интернет (не Wi-Fi вашей локальной сети), чтобы убедиться, что доступ идет именно из внешней сети.

Шаг 5: Обеспечение безопасности (КРИТИЧЕСКИ ВАЖНО)

Публикация 1С в Интернет без должных мер безопасности является очень рискованной. Боты постоянно сканируют порты и пытаются подобрать пароли, что может привести к несанкционированному доступу и потере данных. Мы настоятельно рекомендуем реализовать следующие меры безопасности:

  1. HTTPS (SSL/TLS):

    Обязательно используйте HTTPS для подключения к 1С через Интернет. Это обеспечивает шифрование всего трафика между клиентом и сервером, защищая данные от перехвата и подделки. Для этого вам потребуется:

    • SSL-сертификат (можно получить бесплатный от Let's Encrypt или приобрести коммерческий).
    • Настроить модуль mod_ssl в Apache.

    Без HTTPS все ваши учетные данные и данные 1С передаются в открытом виде.

  2. VPN (Virtual Private Network):

    Альтернативный и зачастую более безопасный способ организации удаленного доступа — использование VPN. Вы можете поднять VPN-сервер прямо на роутере (многие современные роутеры, например, ZyXEL, предлагают такую функциональность) или на отдельном сервере. VPN создает зашифрованный туннель между удаленным клиентом и вашей локальной сетью, позволяя подключаться к 1С так, будто пользователь находится внутри локальной сети, при этом весь трафик зашифрован.

  3. Аутентификация:

    Рассмотрите различные варианты аутентификации в 1С:Предприятии при публикации на веб-сервере:

    • Анонимная аутентификация: Веб-сервер не требует аутентификации, проверка прав происходит внутри 1С. Это наименее безопасный вариант, если 1С-система не имеет собственной надежной защиты.
    • Аутентификация ОС на веб-сервере: Пользователь проходит аутентификацию средствами веб-сервера (например, по учетным записям Windows), а затем 1С сопоставляет эти данные со своими пользователями.
    • Аутентификация от определенного пользователя 1С: При входе через веб-клиент 1С запрашивает логин и пароль, которые проверяются непосредственно в базе 1С.

    Используйте сложные и уникальные пароли для пользователей 1С, а также для доступа к серверу и роутеру. Для автоматизации этого процесса можно использовать обработку для генерации и массовой смены паролей пользователей в 1С:Управление торговлей.

  4. Блокировка по IP (Firewall):

    В дополнение к другим мерам безопасности можно настроить брандмауэр Apache или системный брандмауэр (на сервере или роутере) для разрешения доступа к веб-серверу 1С только с известных IP-адресов или диапазонов IP-адресов. Это значительно снизит вероятность несанкционированного доступа.

  5. Регулярные обновления:

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

  6. Защита от подбора паролей:

    Публикация 1С в Интернет делает ее уязвимой для атак подбора паролей (brute-force). Используйте сложные пароли и рассмотрите дополнительные меры защиты, такие как блокировка IP-адреса после нескольких неудачных попыток входа (может быть реализовано на уровне Apache или системного брандмауэра).

Настройка подключения к 1С через Apache 2.2 для удаленного доступа из Интернета требует внимательности и поэтапной проверки всех компонентов. Начиная с корректного проброса портов на роутере, настройки Apache, повторной публикации базы 1С, и заканчивая обязательным внедрением мер безопасности, таких как HTTPS или VPN, вы сможете обеспечить надежный и безопасный удаленный доступ к вашей информационной базе.

← На главную