|
По материалам статьи Microsoft: Configuring
Proxy Server for SQL Server 7.0 Replication Over the
Internet Эта статья посвящена совместному использованию Microsoft SQL Server 7.0 и Microsoft Proxy Server для обеспечения поддержки репликации через Internet и защиты баз данных. Репликация может осуществляться между базами данных, находящимися на одном сервере или на разных серверах, соединение между которыми осуществляется через LAN, WAN или Internet. Используя связку SQL Server и Microsoft Proxy Server, можно реплицировать данные через Internet. Для этого необходимо иметь возможность внесения изменений в конфигурацию топологии сети, понимать методы защиты сети и СУБД, а также, иметь возможность настройки Proxy Server и SQL Server.
КОНФИГУРАЦИЯ ТОПОЛОГИИ СЕТИ Внесение изменений в конфигурацию топологии сети - это первое, что необходимо рассмотреть, для обеспечения взаимодействия SQL Server и Proxy Server. Proxy Server обеспечивает прямое подключение через Internet к внутреннему серверу, на котором запущен SQL Server в роли издателя. Этот SQL Server обеспечивает в репликации исполнение ролей издателя (publisher) и дистрибутора (distributor). Второй SQL Server исполняет роль подписчика (subscriber), в нашем примере, это pull subscriber, а репликация между ними организована через Internet.
Рисунок 1. Топология сети Требования к системному программному обеспечению,
необходимому для организации работы Proxy сервера: Требования к системному программному обеспечению,
необходимому для обеспечения работы MS SQL Server: Proxy сервер должен быть настроен как multihomed сервер,
что предотвратит доступ неавторизованных пользователей из
Internet к внутренним ресурсам сети. Multihomed Proxy сервер
имеет две сетевые платы (NIC), которые обеспечивают
безопасность подключений в гомогенных сетях. Первый NIC
называется внешним Proxy интерфейсом и изолирует пользователей
Internet от внутренней сети. Внутренняя сеть имеет доступ к
Proxy серверу через второй NIC, называемый внутренним Proxy
интерфейсом. Соединение может быть установлено между
внутренним и внешним Proxy интерфейсом, когда внутреннему
пользователю предоставлено соответствующее разрешение Proxy
сервером. Использование подсетей Не определяйте заданный по умолчанию шлюз для внутренних подсетей, а также для работы SQL или Proxy серверов. Заданный по умолчанию шлюз внешнего интерфейса должен указать на IP адрес соответствующего маршрутизатора. КРАТКИЙ ОБЗОР БЕЗОПАСНОСТИ Обеспечение безопасности – один из важнейших аспектов работы распределенного приложения. Поскольку при репликации изменения данных на одном сервере применяются на нескольких серверах из других сетей, обеспечение приемлемого уровня безопасности сети становится одной из основных задач. Обеспечение децентрализованного доступа к реплицируемым данным усложняет управление безопасностью. Репликация в SQL Server использует комбинированные механизмы защиты, которые позволяют надёжно защитить данные и бизнес-логику приложений. Одним из способов обеспечения требований безопасности состоит в разделении требований на разные уровни доступа. Прежде, чем добавить очередной уровень доступа необходимо обеспечить правильную работу низлежащего доступа. Правильная работа уровня зависит от работы предшествующего уровня. Ниже представлен список уровней безопасности, которые необходимо настраивать: · Windows NT user accounts Учетные записи пользователей Windows NT Показанные на рисунке №1 три сервера прежде, чем репликация будет запущена, должны установить соединение друг с другом. Сначала, publisher/distributor должны обеспечить сетевое подключение к Proxy серверу. Далее, subscriber должен получить SQL Server соединение с publisher/distributor и, наконец, subscriber должен иметь сетевое подключение к ftp-службе на Proxy сервере. Учетные записи пользователей Windows NT для publisher/distributor Первым делом, при репликации через Internet необходимо установить соединение между publisher/distributor и Proxy сервером. Когда SQL Server запущен, сервис MSSQLServer запрашивает разрешение у Proxy Server, чтобы установить связь с портом, эксклюзивно используя внешний Proxy интерфейс. Proxy Server должен иметь возможность аутентификации учётной записи, от имени которой работает сервис MSSQLServer, и обеспечивать работу в соответствии с конфигурацией этой учетной записи. В целях обеспечения хорошего уровня безопасности, не рекомендуется регистрироваться на консоли Windows NT сервера publisher/distributor под учётной записью MSSQLServer. Это позволит исключить работу зарегистрировавшегося пользователя через открытый Proxy интерфейс.
Рисунок 2. Учётные записи publisher/distributor Учетные записи Windows NT Proxy Server Учетная запись MSSQLServer на publisher/distributor должна быть введена в список разрешений для WinSock сервиса Proxy сервера. Когда будет затребовано разрешение на связь с портом, MSSQLServer представляет свою учётную запись Proxy серверу для идентификации. После того, как Proxy сервер подтвердит подлинность учетной записи MSSQLServer и подключит его к порту, станет возможно прямое подключение к publisher/distributor из Internet. Для того чтобы получить доступ к FTP-сервису на Proxy сервере, агент репликации подписчика (subscriber) предоставляет свою учётную запись для Proxy сервера, чтобы тот подтвердил её подлинность и дал разрешение на доступ к FTP. Эта учетная запись должна удовлетворять следующим условиям: · Должна быть включена в список «FTP Site Operators». Эта учётная запись пользователя создаётся автоматически и водиться в таблицу Mssubscriptions_Properties всякий раз, когда создаётся новая подписка. Учетные записи Windows NT для подписчиков (subscriber) Для организации подключения, необходимого при репликации, сервер publisher/distributor должен быть зарегистрирован на subscriber. Если не определено иначе, агенты репликации будут использовать ту же самую информацию об учётной записи, которая обычно используется при подключении publisher/distributor. Обратите внимание: Старайтесь не использовать собственные (встроенные) учётные записи MS SQL Server для регистрации publisher/distributor. Использование не встроенных логинов позволяет лучше ограничить доступ к публикациям, на уровне предоставления соответствующих разрешений. Безопасность Proxy сервера На multihomed сервере, внутреннее подключение должно быть организовано между внутренним и внешним Proxy интерфейсом до того, как пользователи из Internet получат доступ к ресурсам внутренней сети. Proxy сервер контролирует внутренних пользователей и сервисы сети, разрешая подключение только уполномоченным пользователям или сервисам. Как отмечалось ранее, сервис MSSQLServer на publisher/distributor устанавливает подключение к Proxy серверу и связывается с портом, который предоставляет SQL Server внешнему Proxy интерфейсу. Любой пользователь Internet, который правильно укажет номер порта, IP адрес внешнего Proxy интерфейса и правильные учётные данные для входа в систему, сможет получить доступ к SQL серверу. По умолчанию, для этого подключения в Enterprise Manager установлено маленькое время ожидания (4с), этого может оказаться недостаточно, для того, что бы подписчик успел пройти все необходимые стадии авторизации. Такая ситуация может возникнуть, если между Proxy сервером и subscriber велико время отклика или IP адрес подписчика транслируется из адреса внутренней сети в адрес сети Internet. Для разрешения этой проблемы, необходимо увеличить время ожидания Login time-out и Query time-out в окне Enterprise Manager Tools\Options… закладка Advanced. Для работы репликации необходимо обеспечить доступ к FTP-сервису. Для этого используется учетная запись, используемая subscriber для подключения к SQL серверу при инициализации FTP-сервиса. По умолчанию, это та же самая учетная запись, которая используется при оформлении регистрации сервера publisher/distributor на subscriber. Однако, Вы можете переопределить эту учетную запись, введя её имя и пароль в таблице MSsubscription_Properties, что можно сделать при создании Pull-подписки. В любом случае, эта учетная запись должна удовлетворять следующим требованиям: · Должна быть включена в список «FTP Site Operators».· Должна иметь разрешение «log in locally». · Должна иметь разрешение на операцию «Чтение» для папки, в которой расположены моментальные снимки (Snapshot). Заданные по умолчанию конфигурации для SQL Server включают: · Привязка к порту 1433 для использования Proxy Server WinSock Services.· Привязка FTP-сервиса к порту 21 для использования Proxy Server Socks Proxy service. Независимо от типа выбранной репликации, сначала устанавливается подключение через ODBC между subscriber и publisher. Distributor уведомляет subscriber о необходимости подключения к FTP-сервису на Proxy сервере. По запросу от distributor, subscriber инициализирует подключение к FTP-сервису, и работает с данными, находящимися в папке для размещения моментальных снимков (Snapshot).
Рисунок 3. Защита Proxy сервера Логин для SQL Server Replication Для Pull Subscriptions репликации требуется, чтобы publisher/distributor сервер был зарегистрирован на subscriber. Для успешной регистрации и получения доступа к издаваемой базе данных на publisher требуется, чтобы имя пользователя и пароля уже существовали на publisher/distributor. Если удаётся на subscriber зарегистрировать сервер publisher, это означает, что установлено сетевое соединение на уровне Windows NT и на уровне SQL Server. Если не удаётся зарегистрировать publisher/distributor на subscriber, проверьте каждое из этих соединений и права для каждой используемой учетной записи. Publisher/distributor использует учетную запись, от имени которой стартует MSSQLServer, для привязки пути к WinSock Port 1433 и внешнему Proxy интерфейсу. Обязательно необходимо, чтобы учетная запись, которую Вы используете для регистрации publisher/distributor, имела достаточные права на publisher/distributor. Учетная запись, используемая для регистрации сервера publisher/distributor на subscriber, должен быть стандартным SQL Server логином. Для лучшей безопасности, не нужно предоставлять этой учетной записи никаких специальных прав доступа на SQL сервере, кроме как на доступ к базе данных publication. Права доступа к базе данных publication можно предоставлять или через гостя, или явно добавляя пользователя к базе данных. Эта учетная запись также должна быть включена в Publication Access List (PAL) каждой публикации (publication), которой необходимо разрешить подписку на subscriber.
Рисунок 4. SQL Server логин для репликации Доступ к публикации Последний уровень защиты проверяет права учётной записи пользователя на доступ к любым публикуемым данным. Поскольку publisher может иметь отношения типа один ко многим, доступ к каждой из публикаций может управляться её собственным Publication Access List (PAL). Логин, используемый Replication Agent, сверяется с PAL каждой публикации, к которой он пытается обратиться. Если логин подписчика не найден в PAL, доступ будет отклонен. Используя разные логины для различных подписчиков можно ограничивать доступ к данным в публикациях.
НАСТРОЙКА PROXY СЕРВЕРА SQL Server использует два метода доступа к реплицируемым данным: ODBC и FTP. Оба сервиса используются при репликации через Internet. Proxy Server должен быть правильно сконфигурирован, чтобы установить связь по ODBC между subscriber и publisher/distributor через Proxy сервер. Перед настройкой репликации, необходимо проверить это подключение, путём передачи данных от внешнего Proxy интерфейса на SQL Server, запустив OSQL на subscriber и установив подключение к publisher/distributor. Вторая проверка может состоять в записи данных с SQL Server в папку моментальных снимков на Proxy сервере. Это может быть выполнено после регистрации на publisher/distributor под учётной записью пользователя, от имени которого стартует SQL Agent, и копирования файла (ов) с SQL Server в новую папку моментальных снимков. Для настройки Proxy сервера нужно выполнить четыре ключевых операции (шага): · Отключите IP forwarding. Отключение IP forwarding Хотя Internet обеспечивает эффективный способ издания и сбора данных (pull/subscribe) для удалённых узлов, эти технологии применимы и для интранет сетей, а также для закрытой информации. Для повышения защищённости сети, отключите прослушивание на внешних (наружных) портах сервисов, а затем отключите IP forwarding. Когда он будет заблокирован, пользователям из Internet будет видим только переназначенный IP адрес, что существенно сокращает вероятность неправомочного доступа к внутренним ресурсам. Proxy сервер может блокировать диапазоны внешних IP адресов. Когда IP forwarding заблокирован, пользователи из Internet не смогут инициализировать подключение, если они не будут допущены к соответствующим портом сервиса. Для отключения IP forwarding необходимо: 1. В окне Control Panel, дважды щёлкнуть по иконке
Network. В некоторых конфигурациях Windows NT, можно добиться лучшей защищённости, если установить отдельный домен для Proxy сервера с отдельными, односторонними трастовыми отношениями к другим доменам, где будут расположены SQL серверы вашей частной сети. Для дополнительной информации о такой конфигурации, обратитесь к документации Windows NT. Настройка сервиса FTP Механизм репликации использует FTP для передачи
первоначальных данных и схемы от одного сервера к другим через
Internet. Snapshot агент размещает данные в папке моментальных
снимков, которые там находят Merge или Distribution агенты,
работающие на subscriber. Настройка службы FTP: 1. Нажмите кнопку Start, пункт меню Programs/Microsoft
Proxy Server, и затем щёлкните по Microsoft Management
Console.
Контроль FTP доступа через Proxy Server: 1. В меню Start, пункт Programs/Microsoft Proxy Server,
щёлкните Microsoft Management Console. Примечание: Это позволит исключить любую учётную запись FTP Site Operator, введенную на шаге №5, если IP адрес, введенный на этом шаге не будет являться статическим её IP адресом. 9. Щёлкните Add, и затем введите IP адреса для всех серверов, участвующих в репликации, которые будут обращаться на этот сервер. Настройка FTP сервиса при включенной фильтрации пакетов Если Proxy сервер использует для FTP сервиса Packet Filtering, со стороны Internet доступ к FTP будет полностью заблокирован. Если FTP сервис запущен на том же самом сервере, на котором работает Proxy сервер, чтобы получить доступ к FTP необходимо настроить статические фильтры. Для получения дополнительной информации о Packet Filters, см. документацию к Proxy Server. Добавить собственный или предопределенный статический фильтр можно следующим образом: 1. В меню Start, выбрать пункт Programs/Microsoft
Proxy Server, и щёлкнуть Microsoft Management
Console. Типовой фильтр пакета FTP Server IN (Filter 1 of 2) FTP Server OUT (Filter 2 of 2) Настройка сервиса WinSock Proxy До начала обмена данными, subscriber должен
инициализировать подключение по ODBC к publisher/distributor,
используя службу WinSock Proxy. WinSock Proxy отвечает за
подключение внутренних пользователей через внешний интерфейса
к внутренним службам. 1. В меню Start, выберете пункт
Programs/Microsoft Proxy Server, и затем щёлкните по
Microsoft Management Console. Обратите внимание, что имя протокола не будет иметь никакого практического значения. Это мнемоническое имя используется для того, чтобы идентифицировать сокет и учетные записи или серверы, которым будут предоставлен доступ. 6. Для Initial Connection, в текстовое поле Port
введите 1433. Настройка WinSock Proxy разрешений для протокола осуществляется следующим образом: 1. В меню Start, пункт Programs Microsoft Proxy
Server, щёлкните Microsoft Management
Console. Это учетная запись пользователя, которая используется для запуска MSSQLServer на publisher/distributor. Настройка разрешений службы WinSock Proxy для неограниченного доступа: 1. В меню Start, пункт Programs Microsoft Proxy
Server, щёлкните по Microsoft Management
Console. Это учетная запись, которая используется для запуска MSSQLServer на publisher/distributor. Проверка конфигурации Proxy сервера После того, как будет выполнена настройка всех сервисов и серверов, рекомендуется проверить работоспособность заданной конфигурации, что можно сделать простой попыткой установления подключения и пробной передачи данных средствами стандартной утилиты MS SQL Server OSQL, с помощью которой можно создать и исполнить запрос. Если серверы не смогут установить соединение, репликация не будет работать правильно. НАСТРОЙКА ИЗДАТЕЛЯ (PUBLISHER/DISTRIBUTOR) Прежде, чем станет возможно издание статей через Internet,
нужно настроить publisher/distributor на прослушивание TCP/IP
или Multiprotocol сетевых протоколов. SQL Server использует
сокеты TCP/IP или сетевую библиотеку Multiprotocol через
TCP/IP для установки первоначального ODBC подключения между
publisher/distributor и subscriber. Сетевая библиотека TCP/IP
Sockets предлагается по умолчанию при установке SQL Server, но
вместо неё может быть выбрана другая библиотека, если
выполнялась custom инсталляция. - Настроить publisher/distributor для работы с Proxy
сервером. Настройка работы издателя (publisher/distributor) с Proxy сервером Для этого необходимо иметь установленный и настроенный в соответствии с поставляемой в комплекте поставки документацией Proxy Server. Далее, необходимо настроить publisher/distributor в качестве Proxy клиента. Для этого потребуется привязать SQL Server к одному из портов WinSock, после чего будет возможна работа с SQL сервером из Internet. Привязка к WinSock порту для обеспечения передачи данных Для настройки SQL сервера на работу с Proxy сервером необходимо внести изменения в файл \Mssql7\Binn\Wspcfg.ini расположенный на сервера где запускается SQL Server. Если файл не существует, создайте его с помощью поставляемого вместе с операционной системой текстового редактора Notepad. Файл должен содержать следующие строки: [sqlservr]
Эти параметры говорят о том, что SQL Server будет слушать запросы через подключенный к нему порт 1433 на Proxy сервере. Если учетной записи, от имени которой стартует MSSQLServer, будет предоставлен неограниченный доступ, любой пользователь, сервис или анонимный подписчик сможет запросить идентификацию у SQL сервера. Можно так настроить соответствующий протокол для порта 1433 Proxy сервера, что к нему будет разрешено подключение с фиксированного набора IP адресов, или по предопределённому запросу. Конфигурирование SQL Server как Proxy клиент После завершения установки сервера, на Proxy Server
создаётся ресурс с именем mspclnt, который указывает на
каталог C:\Msp\Clients. Вы должны подключиться к этому ресурсу
и запустить утилиту конфигурации Proxy клиента (mpclnt), что
позволит настроить SQL Server как клиента Proxy. После того,
как установка будет закончена, SQL Server может исполнять роль
внутреннего клиента для Proxy сервера. 1. На сервере, где запущен SQL Server, щёлкните
Start, и затем щёлкните Run. Переназначение папки моментальных снимков на FTP У SQL Server должна быть в наличии информация о
расположении основного FTP каталога на Proxy сервере. Папка
моментальных снимков (по умолчанию: \Mssql7\Repldata\FTP)
переназначается на основной FTP каталог на Proxy сервере, что
позволяет обеспечить передачу данных на subscriber. Новая
папка моментальных снимков устанавливается в процессе
настройки FTP сервиса. 1. В меню Start, выберете пункт
Programs/Microsoft SQL Server 7.0, и затем щёлкните по
Enterprise Manager. Настройки, выполняемые для publisher/distributor в Network Utility Для обеспечения того, что publisher/distributor будет прослушивать запросы на подключение через внешний интерфейс Proxy сервера, проверьте следующие установки в SQL Server Network Utility: · TCP/IP Network Library. После применения этих настроек в SQL Server Network Utility, пользователи домена больше не смогут подключиться к SQL серверу по TCP/IP. Чтобы обеспечивать доступ к SQL серверу этим пользователям, нужно добавить, по крайней мере, ещё одну дополнительную сетевую библиотеку, например, Named Pipes. Для обеспечения возможности publisher/distributor прослушивания запросов на подключение через внешний интерфейс необходимо выполнить следующие шаги: 1. В меню Start, щёлкните Programs/Microsoft SQL
Server 7.0, и затем щёлкните Server Network
Utility. НАСТРОЙКА ПОДПИСЧИКА (SUBSCRIBER) ДЛЯ ПОДКЛЮЧЕНИЯ ЧЕРЕЗ INTERNET Прежде, чем subscriber сможет установить подключение к publisher/distributor, необходимо обеспечить выполнение следующих условий: 1. Настройте subscriber в качестве клиента для
publisher/distributor. Отобразите имя сервера издателя на
TCP/IP адрес внешнего интерфейса Proxy сервера, что бы
обеспечить агенту репликации подключение через Internet.
Настройка подписчика (subscriber) в качестве клиента издателя (publisher) Subscriber должен располагать информацией о том, через какой порт WinSock Proxy будет работать publisher и какой выбран для этого сетевой протокол. Для того, что бы эта информация стала доступной SQL серверу - подписчику, необходимо: 1. В меню Start, щёлкните Programs/Microsoft SQL
Server 7.0, и затем Client Network Utility. Обратите внимание: Использование того же самого имени для Server Alias и Protocol Name, созданного в WinSock Proxy, не обязательно, если Вы не используете протокол. 4. Убедитесь, что в настройках Network libraries
выбран TCP/IP. Создание Pull Subscriptions и обеспечение доступа к publisher и FTP Для того чтобы subscriber мог получать информацию от publisher через Proxy Server, необходимо в настройках Pull Subscriptions указать информациею, с помощью которой определяется адрес publisher. Обратите внимание: Для того, что бы subscriber смог подписаться на публикацию через Internet, для этой публикация на publisher должна быть установлена опция Allow Snapshots to be downloaded using FTP. Настройка Pull Subscriptions: 1. В SQL Server Enterprise Manager, щёлкните
сервер-подписчик. Регистрация publisher/distributor на subscriber Регистрация publisher/distributor на subscriber является обязательным условием подключения subscriber через Proxy сервер. Процесс регистрации также отображает вводимое в качестве имени регистрируемого сервера имя publisher/distributor на его IP адрес, после чего агенты репликации смогут устанавливать подключение через Internet. Для лучшей безопасности, используйте встроенные учётные запись для регистрации подключения к SQL серверу publisher/distributor. Для регистрации сервера publisher/distributor в Enterprise Manger на subscriber необходимо следующее: 1. В SQL Server Enterprise Manger, щёлкните правой кнопкой мыши по SQL Server Group, и затем щёлкните по New SQL Server Registration. 2. Введите следующую информацию, которая требуется для мастера Register SQL Server Ration Wizard:
Обратите внимание: Логин для регистрации на SQL сервере сервера publisher/distributor, по умолчанию, также используется при создании подписки. Это тот же логин, который использует агент репликации, чтобы подключиться к SQL серверу с запросом на доступ к публикациям, и на получение доступа к FTP сервису на Proxy сервере. Вы можете отменить значение по умолчанию, указав допустимое для publisher/distributor имя логина и пароль в процессе или после завершения создания подписки. Проверка работы SQL сервера с Proxy сервером Чтобы проверить, что подключение к Proxy серверу было
установлено через порт 1433, проверьте службу WinSock Proxy на
Proxy сервере. Вы должны видеть сеанс Proxy сервера для логина
пользователя, от имени которого стартует сервис MSSQLServer
сервера publisher/distributor. Примечание: Вы должно использовать полностью квалифицированное имя, иначе учётная запись не будут работать. Проверка подключения осуществляется по следующей схеме: 1. В меню Start, пункт Programs/Microsoft Proxy
Server, щёлкните по Microsoft Management
Console. В качестве альтернативы, Вы можете проверять это IP
подключение и информацию о портах любого компьютера, используя
команду netstat. В отчёте, который выводиться на консоль, для
SQL сервера publisher/distributor после выполнения команды
netstat -a попадёт информация о клиентских и побочных,
серверных подключениях, а также их состоянии и номера
используемых портов. Используйте команду netstat без
параметров, если вы хотите видеть только сеансы клиентов. Если
Вы хотите просмотреть информацию только по портам 1433 и 21,
используйте команду netstat -an чтобы отобразить только TCP/IP
подключения. Active Connections Proto Local Address Foreign Address State
|
Перевод: Александра Гладченко 2002г. |