Публикация базы 1С на веб-сервере Apache под управлением Windows 10 — это популярное решение для малого бизнеса и индивидуальных предпринимателей. Однако выход в глобальную сеть по "белому" IP-адресу всегда сопряжен с рисками. Если оставить систему без должной защиты, она быстро станет целью для автоматизированных ботов, подбирающих пароли или ищущих уязвимости в операционной системе. Разберем по шагам, как настроить безопасную инфраструктуру, чтобы «спать спокойно», как выразился автор темы.
Рассмотрим ситуацию, когда при сканировании своего IP-адреса утилитой Nmap вы видите сообщение «Host seems down». Часто это воспринимается как признак полной защищенности, но это не так. Проанализируем причину: встроенный брандмауэр Windows 10 по умолчанию блокирует протокол ICMP (эхо-запросы или привычный «пинг»). Сканер не получает ответа на пинг и делает вывод, что хост выключен.
Однако злоумышленники всегда используют флаги игнорирования пинга. Если мы запустим сканирование правильно, картина изменится:
nmap -Pn -p 80,443,8080 [ваш_айпи]
Именно флаг -Pn заставляет сканер проверять порты, даже если компьютер не отвечает на стандартные запросы. Наша задача — сделать так, чтобы даже при таком сканировании лишние порты были закрыты, а рабочие — защищены.
Выясним, как правильно ограничить доступ на уровне операционной системы. Windows Firewall (Брандмауэр) является достаточно мощным инструментом, если его правильно настроить. Рассмотрим алгоритм действий:
Apache HTTP Server или порта, который вы указали при публикации.80 для HTTP или 443 для HTTPS). Все остальные порты (особенно RDP 3389, SMB 445) должны быть строго закрыты для внешних подключений.По умолчанию Apache слишком разговорчив. Он сообщает в заголовках ответов свою версию и тип операционной системы. Это помогает хакерам подбирать эксплойты. Разберем, как это исправить в файле конфигурации httpd.conf.
Найдем и изменим (или добавим) следующие директивы:
# Скрываем версию сервера в заголовках
ServerTokens Prod
# Отключаем подпись сервера на страницах с ошибками
ServerSignature Off
Также важно ограничить права, под которыми запускается служба Apache. По умолчанию это может быть LocalSystem, что дает полный контроль над компьютером при взломе веб-сервера. Рассмотрим создание ограниченного пользователя web_user без прав администратора, которому даны права только на папку с Apache и папку с базой/публикацией 1С.
При публикации через обычный HTTP (порт 80) ваши логины и пароли от 1С передаются в открытом виде. Любой узел в цепочке интернет-соединения может перехватить эти данные. Посмотрим, как внедрить шифрование трафика.
Для Windows 10 существует отличное бесплатное решение — клиент Win-ACME. Он позволяет автоматически получить сертификат от Let's Encrypt и настроить Apache на работу по порту 443. После этого весь трафик между браузером клиента и сервером 1С будет зашифрован.
Проанализируем содержимое файла default.vrd, который создается при публикации базы. В нем содержатся параметры подключения. Обратим внимание на следующие моменты:
debug="false". Включение отладки на внешнем сервере — это серьезная дыра в безопасности.Apache так, чтобы файл default.vrd нельзя было прочитать или скачать напрямую через браузер.Если безопасность для вас в приоритете, рассмотрим вариант работы без открытия портов Apache в интернет вообще. Это достигается использованием VPN (Virtual Private Network). Рассмотрим два способа:
L2TP/IPsec сервер. Пользователь сначала подключается к VPN, и только потом получает доступ к локальному адресу Apache (например, http://192.168.1.10/base).TP-Link, которые плохо справляются с классическим VPN. Вы устанавливаете клиент на сервер и на компьютер пользователя. Создается виртуальная сеть, в которой ваши машины видят друг друга напрямую по защищенному каналу, даже если у них нет «белого» IP. Порт Apache в этом случае вообще не нужно пробрасывать наружу в настройках роутера.Даже если у вас сложный пароль, постоянные попытки входа от ботов нагружают систему. Выясним, как с этим бороться в среде Windows. Существует бесплатный инструмент Wail2Ban. Он работает аналогично знаменитому Fail2Ban на Linux: сканирует лог-файлы Apache на предмет ошибок авторизации 1С и, если видит много неудачных попыток с одного IP, автоматически добавляет этот IP в список блокировки Windows Firewall на определенное время.
Подведем итог нашим действиям по защите публикации 1С:
Windows Firewall разрешен только порт 443 (HTTPS).SSL/TLS (Let's Encrypt).httpd.conf скрыта информация о сервере (ServerTokens Prod).Apache работает от имени пользователя с ограниченными правами.UPnP, чтобы сторонние программы не открывали порты сами.VPN для полной изоляции сервера от публичного доступа.Соблюдение этих правил превратит вашу систему из «легкой добычи» в защищенный узел, взлом которого потребует несоизмеримо больших усилий, чем потенциальная выгода злоумышленника.