В данном посте я опишу пошаговые действия процедуры публикации сайта в глобальную сеть.
Моя конфигурация:
Server 1 | MS ISA Server 2006 Ent |
Server 2 | MS SharePoint Server 2007 Ent |
Server 3 | MS Exchange Server 2003 Ent |
Server 4 | AD, CA (центр сертификации) |
router |
Планирование.
Сотрудникам компании необходимо иметь доступ к корпоративным данным в любой точке и с любого устройства (мобильный доступ), где есть выход в Internet. При этом соединение с MOSS должно быть безопасным и организовано с помощью шифрованного протокола (SSL). Следует также учесть, что в компании уже настроен Outlook Web Access (OWA), который также работает по шифрованному каналу и стандартному порту 443. Т.е. для организации работы с MOSS мы будем открывать другой порт для SSL, к примеру 44343. Обращаться к MOSS сотрудники будут по простому имени, к примеру, portal.название_компании.com. В моей схеме перед ISA Server еще установлен роутер, настроенный на прием и перенаправление на Server 1 строго определенных разрешенных запросов на соответствующие порты. Далее уже ISA определяет, куда и что перенаправлять.
Организацию доступа к сайтам MOSS любым пользователям Internet (анрнимный доступ) я опишу в последующих постах.
Все действия можно разделить на три этапа: настройка ISA Server, настройка MOSS, настройка роутера. В этой части описывается настройка сервера MOSS и IIS. Настройка ISA Server будет рассматриваться в Части 2.
Этап 1. Настройка роутера
Вполне вероятно, что Вам не понадобится выполнение шагов данного этапа, т.к. Ваша топология сети отличается от моей. Данный этап наиболее простой, на роутере просто задается внешнее имя, по которому пользователи будут обращаться к MOSS – portal.имя_компании.com:44343, а также указывается, что такие запросы должна перенаправляться на Server 1.
Этап 2. Настройка MOSS
Для того, чтобы «выпустить» содержимое веб приложения MOSS в глобальную сеть, необходимо выполнить три операции на данном сервере: настроить само веб-приложение (extend web application), настроить IIS (получить сертификат), настроить Alternate access mapping в центре администрирования MOSS. Также необходимо создать и экспортировать сертификат безопасности для использования SSL на IIS.
«Расширение» веб приложения.
1. Зайти на сайт центрального администрирования MOSS
2. Перейти в раздел Application Management и выбрать Create or extend Web Application
3. Выбрать Extend an existing Web Application
4. В разделе Web Applicaiton выбрать веб приложение, которое должно быть доступно из Internet (в данном примере приложение на 80 порту)
В разделе IIS Web Site оставляем флаг в Create New IIS Web Site , в поле Port указываем 44343, в поле Host Header указываем portal.имя_компании.com, в разделе Security Configuration указываем Use Secure Sockets Layer (SSL), в разделе Load Balanced выбираем зону для веб приложения – Internet. Ок.
Установка и экспорт сертификата в IIS.
1. Зайти удаленно на Server 2 и открыть оснастку IIS Manager
Start – All Programms – Administrative Tools – Internet Information Services (IIS) Manager
2. Раскрыть контейнер Web Sites и вызвать свойства только созданного веб сайта
3. Перейти на вкладку Directory Security и нажать Server Cerificate, при этом откроется мастер получения сертификата.
4. Выбрать Create Certificate ,нажать Next
5. Выбрать Send the request immediately to an online certification authority, Next
6. В диалоговом окне указать название компании, Next
7. Задать имя сертификата, Next, указать географические данные.
8. Указать порт для SSL
9. Указать сервер сертификации, Next, Finish.
10. Снова вызвать свойства расширенного веб приложения, щелкнуть на вкладку Directory Security, нажать View Certificate
11. Перейти на вкладку Detail и нажать Copy to File. Запуститься мастер копирования сертификата.
12. Выбрать Yes, export public key, Next
13. Ввести пароль на файл сертификата
14. Указать мето, куда будет экспортирован сертификат, Next, Finish
Настройка Alternate Access Mapping
1. Зайти на сайт центрального администрирования, перейти в раздел Operaiton и нажать Alternate Access Mapping
2. В Alternate Access Mapping Collection выбрать исходное веб приложение, которое мы выбирали для расширения.
3. Нажать кнопку Add Internal URLs и заполнить поля, нажать Save:
В связи с тем, что в правилах ISA Server уже используется Listner с портом 443 (для OWA), необходимо открыть на сервере еще один порт для SSL. Делается это следующим образом:
Зайти на сервер и запустить скрипт:
AddTPRange.vbs '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Copyright (c) Microsoft Corporation. All rights reserved. ' THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE ' RISK OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE ' USER. USE AND REDISTRIBUTION OF THIS CODE, WITH OR WITHOUT MODIFICATION, IS ' HEREBY PERMITTED. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' This script creates a new tunnel port range containing a single user-specified ' port to allow clients to send requests, for example, SSL requests, to that ' port. ' This script can be run from a command prompt by entering the ' following command: ' CScript AddTPRange.vbs RangeName PortNumber '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Option Explicit ' Define the constants needed. Const Error_TypeMismatch = &HD Const Error_AlreadyExists = &H800700B7 Const Error_OutOfRange = &H80070057 Main(WScript.Arguments) Sub Main(args) If(args.Count <> 2) Then Usage() Else AddTPRange args(0), args(1) End If End Sub Sub AddTPRange(newRangeName, newTunnelPort) ' Create the root object. Dim root ' The FPCLib.FPC root object Set root = CreateObject("FPC.Root") 'Declare the other objects needed. Dim isaArray ' An ISA Server array object Dim tpRanges ' An FPCTunnelPortRanges collection Dim newRange ' An FPCTunnelPortRange object Dim port ' An Integer ' Get a reference to the array and to ' the collection of tunnel port ranges. Set isaArray = root.GetContainingArray Set tpRanges = isaArray.ArrayPolicy.WebProxy.TunnelPortRanges ' Create a new tunnel port range. On Error Resume Next port = CDbl(newTunnelPort) If Err.Number = Error_TypeMismatch Then WScript.Echo "A number must be entered for the port to be included." WScript.Quit End If Err.Clear Set newRange = tpRanges.AddRange(newRangeName, port, port) If Err.Number = Error_AlreadyExists Then WScript.Echo "A port range with the name specified already exists." WScript.Quit ElseIf Err.Number = Error_OutOfRange Then WScript.Echo "The range of permissible ports is from 1 through 65535." WScript.Quit End If On Error GoTo 0 ' Save the changes to the collection of tunnel port ranges ' with fResetRequiredServices set to True to restart the Firewall service. tpRanges.Save True WScript.Echo "Done!" End Sub Sub Usage() WScript.Echo "Usage:" & VbCrLf _ & " " & WScript.ScriptName & " RangeName TunnelPort" & VbCrLf _ & "" & VbCrLf _ & " RangeName - Name of the tunnel port range to be added" & VbCrLf _ & " TunnelPort - Port to be included in the new tunnel port range" WScript.Quit End Sub Пример команды: CScript AddTPRange.vbs "SSL 44343" 43343 Смотрим, открылся ли порт: CScript ShowTPRanges.vbs '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Copyright (c) Microsoft Corporation. All rights reserved. ' THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE ' RISK OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE ' USER. USE AND REDISTRIBUTION OF THIS CODE, WITH OR WITHOUT MODIFICATION, IS ' HEREBY PERMITTED. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' This script retrieves the collection of tunnel port ranges defined in the ' containing array, iterates through the collection, and displays the names ' and port ranges for the tunnel port ranges. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Sub ShowTPRanges() ' Create the root object. Dim root ' The FPCLib.FPC root object Set root = CreateObject("FPC.Root") ' Declare the other objects needed. Dim isaArray ' An FPCArray object Dim tpRanges ' An FPCTunnelPortRanges collection Dim tpRange ' An FPCTunnelPortRange object ' Get references to the array object ' and the collection of tunnel port ranges. Set isaArray = root.GetContainingArray() Set tpRanges = isaArray.ArrayPolicy.WebProxy.TunnelPortRanges ' If at least one tunnel port range is defined in the ' collection, display the names and port ranges for all ' the tunnel port ranges. If tpRanges.Count > 0 Then For Each tpRange In tpRanges WScript.Echo tpRange.Name & ": " & tpRange.TunnelLowPort & _ "-" & tpRange.TunnelHighPort Next Else WScript.Echo "No tunnel port ranges are defined." End If End Sub
Автор: Денис Кичин