Прячем 1С за огнеупорную стену
Многие системные администраторы, задумываясь о безопасности данных своей компании и, в частности, о безопасности базы данных 1С, пренебрегают простым, но эффективным решением – изолировать сервер от пользователей. В данной статье проанализированы угрозы безопасности, возникающие при размещении клиентской части 1С и серверов 1С в одном сегменте сети, и рассмотрен процесс перевода серверной части 1С в другой сегмент сети. Данная статья не содержит принципиально новых решений, но может служить справочным пособием, которое объединяет информацию из различных источников.
Исходные данные
- 1С Предприятие 8 клиент-серверный вариант;
- сервер 1С Предприятия развернут на базе операционной системы Windows Server 2003;
- 1С Предприятие использует выделенный сервер MS SQL, развернутый на базе операционной системы Windows Server 2003;
- доступ пользователей к 1С осуществляется через терминальные сервера, развернутые на базе Windows Server 2003;
- все сервера находятся в сегменте одной сети, развернутой на базе домена Active Directory.
Угрозы безопасности

Для выявления угроз безопасности составим схему движения трафика в имеющейся сети.
Рисунок 1. Исходные потоки трафика
-
Под «LDAP» подразумевается не один порт, а совокупность. Порты и протоколы, используемые в Active Directory, описаны в статье базы знаний Microsoft «Службы и сетевые порты в серверных системах Microsoft Windows». В зависимости от того, что терминальный сервер требует от контроллера домена, это могут быть разные наборы. В данной статье я буду использовать следующий набор портов и протоколов:
| Порт | Протокол | Назначение |
| 88 | UDP | Kerberos. Этот порт прослушивает процесс lsass.exe (Local Security Authority Service). |
| 135 | TCP | RPC |
| 139 | TCP | Служба сеансов NetBIOS |
| 389 | TCP/UDP | Локатор контроллеров домена |
| 445 | TCP | SMB |
| 1025 | TCP | Используется процессом lsass.exe. Дополнительная информация здесь. |
| — | ICMP | ICMP используется для получения различной информации, поэтому пакеты данного протокола должны свободно проходить в направлении контроллеров домена. |
- операционная система Windows Server 2003 обладает уязвимостями, не связанными с 1С и MS SQL, но атаки с использованием этих уязвимостей могут способствовать получению контроля над данными перечисленных приложений;
- пользователи могут передавать файлы из удаленного сеанса на компьютеры сети по протоколу SMB;
- различные вирусы, распространяющиеся по сети, также создают угрозы безопасности;
- так как пользователи находятся в одном сегменте сети с серверами, то особо умные могут пытаться соединиться с ними по портам MS SQL и 1C.
Задачи
- Минимизировать риски реализации уязвимостей операционной системы.
- Сделать невозможной передачу файлов по протоколу SMB с терминальных серверов на компьютеры пользователей.
- Исключить возможность доступа пользователей к серверам 1С и MS SQL.
- Минимизировать количество пользователей, которые могут передавать файлы на свои компьютеры по протоколу RDP.
Требования к реализации
Обеспечить простоту и удобство использования ресурсов 1С Предприятия.
Решение
Составим схему движения необходимых потоков трафика. 
Рисунок 2. Необходимые потоки трафика
Как видно, для полноценного функционирования 1С нужно не так уж и много.
| Компьютер | Исходящие подключения | Входящие подключения |
| AD DC | Не требуются | Все компьютеры сети |
| Сервер 1С | Сервер БД 1С | Терминальные сервера |
| Сервер БД 1С | Не требуются | Сервер 1С |
| Терминальные сервера | Сервер 1С | Пользователи |
Из таблицы видно, что сеть можно разделить на три сегмента:
- «Сервер 1С» + «Сервер БД 1С»;
- «Терминальные сервера»;
- «Пользователи» + «AD DC».
Далее я буду использовать терминологию из «Information Technology Security Guideline. Network Security Zoning»:
Operation Zone (OZ) – стандартная среда для повседневных операций, в которой располагается большая часть пользовательских систем и серверов. Здесь может обрабатываться конфиденциальная информация, однако она не подходит для хранения больших массивов конфиденциальной информации или для критических приложений.
Restricted Zone (RZ) – обеспечивает контролируемую сетевую среду для критических сервисов или для больших массивов конфиденциальной информации.
Для выполнения задач 1-3 разделим сеть на несколько зон:
- RZ1C – в эту зону войдут «Сервер 1С» и «Сервер БД 1С».
- RZTS – в эту зону войдут терминальные сервера.
- OZ – в эту зону войдут контроллер домена «AD DC» и пользователи.
Прохождение трафика будем регулировать маршрутизатором, в который внесем необходимые правила. 
Рисунок 3. Схема зонирования сети
Для решения задачи 4 выполним следующее:
- на каждом терминальном сервере создадим новое подключение в дополнение к стандартному, оно будет функционировать на порту 3390;
- разрешим подключаться на порт 3389 всем пользователям, а на порт 3390 только пользователям группы TerminalDisk;
- в свойствах подключений на терминальных серверах отключим клиентам возможность подключать локальные диски на порту 3389 и разрешим подключать локальные диски на порту 3390.
Таким образом мы сможем разрешать подключать локальные диски только конкретным пользователям.
Реализация
Маршрутизация
В качестве маршрутизатора в этой статье я буду использовать компьютер с тремя сетевыми картами с операционной системой семейства GNU/Linux. Программное обеспечение для маршрутизации – Iptables. Скрипт настройки Iptables приведен ниже.
#!/bin/sh echo 1 > /proc/sys/net/ipv4/ip_forward OZ=192.168.0.0/24 RZTS=192.168.2.0/24 RZ1C=192.168.1.0/24 ADDC=192.168.0.1 # Удаляем все имеющиеся правила iptables –F iptables –X iptables –-flush # Устанавливаем политику по умолчанию iptables –P INPUT DROP iptables –P OUTPUT DROP iptables –P FORWARD DROP # Разрешаем пакеты с состоянием ESTABLISHED и RELATED по протоколам TCP и UDP iptables –A FORWARD –p tcp –m state --state ESTABLISHED,RELATED –j ACCEPT iptables –A FORWARD –p udp –m state --state ESTABLISHED,RELATED –j ACCEPT # Разрешаем протокол RDP в направлении OZ->RZTS iptables –A FORWARD --src $OZ --dst $RZTS –p tcp --dport 3389:3390 –j ACCEPT # Разрешаем DNS-запросы в направлении RZTS->ADDC, RZ1C->ADDC iptables -A FORWARD –-src $RZTS --dst $ADDC -p udp --dport 53 -j ACCEPT iptables –A FORWARD --src $RZ1C –-dst $ADDC –p udp --dport 53 –j ACCEPT # Открываем порты для Active Directory iptables –A FORWARD --src $RZTS --dst $ADDC –p udp --dport 88 –j ACCEPT iptables –A FORWARD --src $RZ1C --dst $ADDC –p udp --dport 88 –j ACCEPT iptables –A FORWARD --src $RZTS --dst $ADDC –p tcp --dport 135 –j ACCEPT iptables –A FORWARD --src $RZ1C --dst $ADDC –p tcp --dport 135 –j ACCEPT iptables –A FORWARD --src $RZTS --dst $ADDC –p tcp --dport 139 –j ACCEPT iptables –A FORWARD --src $RZ1C --dst $ADDC –p tcp --dport 139 –j ACCEPT iptables –A FORWARD --src $RZTS --dst $ADDC –p tcp --dport 389 –j ACCEPT iptables –A FORWARD --src $RZ1C --dst $ADDC –p tcp --dport 389 –j ACCEPT iptables –A FORWARD --src $RZTS --dst $ADDC –p udp --dport 389 –j ACCEPT iptables –A FORWARD --src $RZ1C --dst $ADDC –p udp --dport 389 –j ACCEPT iptables –A FORWARD --src $RZTS --dst $ADDC –p tcp --dport 445 –j ACCEPT iptables –A FORWARD --src $RZ1C --dst $ADDC –p tcp --dport 445 –j ACCEPT iptables –A FORWARD --src $RZTS --dst $ADDC –p tcp --dport 1025 –j ACCEPT iptables –A FORWARD --src $RZ1C --dst $ADDC –p tcp --dport 1025 –j ACCEPT # Разрешаем порты 1С iptables –A FORWARD --src $RZTS --dst $RZ1C –p tcp --dport 1541 –j ACCEPT iptables –A FORWARD --src $RZTS --dst $RZ1C –p tcp --dport 1560:1591 –j ACCEPT # Разрешаем пинг, чтобы все работало iptables –A FORWARD --src $RZTS --dst $ADDC –p icmp –j ACCEPT iptables –A FORWARD --src $RZ1C --dst $ADDC –p icmp –j ACCEPT iptables –A FORWARD --src $OZ --dst $ADDC –p icmp –j ACCEPT # REJECT все остальное iptables –A FORWARD –j REJECT # REJECT еще раз iptables –A INPUT –j REJECT
Замечания к скрипту
Действие DROP просто «сбрасывает» пакет и iptables «забывает» о его существовании. «Сброшенные» пакеты прекращают свое движение полностью, т.е. они не передаются в другие таблицы, как это происходит в случае с действием ACCEPT. Следует помнить, что данное действие может иметь негативные последствия, поскольку может оставлять незакрытые «мертвые» сокеты как на стороне сервера, так и на стороне клиента, наилучшим способом защиты будет использование действия REJECT особенно при защите от сканирования портов (Iptables Tutorial).
-
Разрешить прохождение через маршрутизатор пакетов UDP и TCP по порту 475 в двустороннем направлении Сервер_лицензийКлиент_1С.
Сопоставление локальных дисков клиента

Посредством визуальных мастеров мы не можем просто так добавить новый прослушиваемый порт на терминальном сервере: для этого необходимо, чтобы эти подключения были доступны с разных интерфейсов, или по разным протоколам, о чем и говорит появляющаяся при попытке обмануть судьбу ошибка.
Рисунок 4. Попытка создать новое подключение с существующими параметрами
Однако нас такой вариант развития событий не устроит.
Стандартно подключение имеет название «RDP-Tcp», а информация о нем хранится в разделе реестра HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\ИМЯ_ПОДКЛЮЧЕНИЯ
Для создания нового подключения необходимо:
- экспортировать указанную ветвь реестра в файл с раширением *.reg;
- открыть этот файл с помощью текстового редактора;
- изменить в файле экспорта HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\ИМЯ_ПОДКЛЮЧЕНИЯ на HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\ИМЯ_ПОДКЛЮЧЕНИЯ2
- найти в файле экспорта строку PortNumber и изменить числовое значение на 0xd3e (3390 в десятеричной системе, хотя можно использовать любой другой);
- импортировать получившийся файл в реестр.
После описанных манипуляций создадим группу TerminalDisk и добавим в нее тех, кому мы доверим сопоставление локальных дисков.
Затем в свойствах нашего нового подключения укажем, что подключаться к нему может только группа TerminalDisk и разрешим сопоставление локальных дисков, а в свойствах старого подключения запретим сопоставление дисков и буфера обмена.
Заключение
В дальнейшем можно усилить схему, внедрив систему обнаружения вторжений.
Вот и все. Надеюсь, кому-нибудь данный материал окажется полезным. С уважением и наилучшими пожеланиями.
Источники
- Information Technology Security Guideline (ITSG-38) – Network Security Zoning (Design Considerations for Placement of Services within Zones) — http://www.cse-cst.gc.ca/its-sti/publications/itsg-csti/itsg38-eng.html.
- Службы и сетевые порты в серверных системах Microsoft Windows — http://support.microsoft.com/kb/832017.
- Restricting Active Directory replication traffic and client RPC traffic to a specific port — http://support.microsoft.com/kb/224196/en-us.
- Руководство по iptables (Iptables Tutorial 1.1.19) — http://www.opennet.ru/docs/RUS/iptables/.
- How can I add a new RDP listening port to Windows 2000/2003 Terminal Server? — http://www.petri.co.il/add_a_new_rdp_listening_port_to_terminal_server.htm.
- 1С: Предприятие 8.2. Клиент-серверный вариант. Руководство администратора.
- 1C типичные проблемы при работе с HASP — http://itunion.com.ua/article.php?id=39.
Настройка брандмауэра Windows на сервере 1С + MS SQL


Добрый день! Уважаемые читатели и постоянные посетители IT блога Pyatilistnik.org. Сегодня хотел бы сделать небольшую заметку, в которой был я описал по каким портам работает программа 1С и, как эти порты открыть в брандмауэре Windows, чтобы все работало. Уверен, что начинающим 1сникам данная информация будет полезной при настройке данного сервиса. Ну, что поехали и сделаем все красиво.
Задача: настроить брандмауэр Windows для работы сервера 1С (связка из Сервера 1С: Предприятие и MS SQL 2008, например).
Решение: если сервер SQL принимает подключения на стандартный порт TCP 1433, то разрешаем его. Если порт SQL динамический, то необходимо разрешить подключения к приложению %ProgramFiles%\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\sqlservr.exe.
Сервер 1С работает на портах 1541 и диапазоне 1560-1591. По совершенно мистическим причинам иногда такой список открытых портов все равно не позволяет выполнять подключения к серверу. Чтобы заработало наверняка, разрешите диапазон 1540-1591.

Настройка брандмауэра Windows на сервере 1С + MS SQL
Популярные Похожие записи:
Проверка доступности порта в Zabbix- Как подключить SAS диск через SATA
- Ошибка ID 356: Failed to register notification to the SQL database with the connection string Data Source
- Как поменять сервер базы данных Microsoft Dynamics CRM
Ошибка RAC0509 the server temporarily unavailable
Произошла исключительная ситуация (Microsoft Office Excel): Нет доступа к файлу
Какие порты необходимо открыть для работы сервера 1С:Предприятие
Для того, чтобы получить доступ к серверу 1С:Предприятие, необходимо открыть в брандмауэре следующие порты:
- TCP 1560-1591 — для рабочего процесса;
- TCP 1541 — для менеджера кластера;
- TCP 1540 — для агента сервера (не обязательно, если центральный сервер кластера один);
- TCP и UDP 475 — для менеджера лицензий.
Тэги
- Блог пользователя Nicholas
- Добавить комментарий
Настройка Firewall для сервера 1С на примере ОС Windows
После успешной установки настройки сервера 1С, необходимо настроить правила брандмауэра (Firewall), чтобы клиенты смогли без проблем достучаться к своим базам. Какие же порты необходимо открыть?
Список портов по умолчанию:
- 1541 — порт менеджера кластера;
- 1540 — порт агента сервера;
- 1560-1591 — порты для рабочих процессов;
- Заходим в оснастку настройки Firewall. Проще всего через «Выполнить» (Win+R) -> «Дополнительные параметры».
- Создаем правило для входящих подключений.
- «Правило для какого типа вы хотите создать?» — отмечаем «Для порта»
- «Укажите протокол, к которому будет применяться это правило» — отмечаем «Протокол TCP»
- «Укажите порты, к которым будет применяться это правило.» — если у нас порта стандартные, то: «1540, 1541, 1560-1591»
- «Укажите действие, которое должно выполняться, когда подключение удовлетворяет указанным условиям» — выбираем «Разрешить подключение»
- «Для каких профилей применяется правило?» — можно отметить все
- Затем вводим название и описание нашего правило и жмем «Готово».
- На этом все. Если нет необходимости подключаться через консоль администрирования сервера 1с с локальных компьютеров, то порт 1540 пропускаем.

