راه‌اندازی سرور Reverse Proxy برای Skype for Business با استفاده از Microsoft IIS ARR 3.0

در هفته گذشته سرویس Skype4B را برای یک شرکت بین‌المللی راه اندازی کردم، نحوه نصب و راه‌اندازی این سرویس دارای مستندات بسیاری به زبان انگلیسی در Technet و تعداد زیادی آموزش متنی و تصویری به زبان فارسی است.

دلیل نگارش این مقاله آموزش همگانی و همچنین مراجعات آتی خودم در صورت نیاز به آن است تا نیاز مجدد به عیب‌یابی سیستم‌ها نداشته باشم.

اگر در حال گسترش و یا برنامه‌ریزی برای نصب Lync یا Skype4B هستید و قصد دارید این سرویس را در خارج از سازمان خود نیز استفاده کنید یا با سیستم دیگری ارتباط Federation برقرار کنید قطعا به یک Reverse Proxy همچون IIS ARR (و همچنین سروری با وظایف Edge) نیاز دارید.

Reverse Proxy یکی از سرویس‌های Lync نیست و در اصل سرویسی جانبی برای تکمیل Skype4B است، به همین دلیل در هیچ یک از منابع همراه نرم‌افزار و یا در Topology Builder آن را مشاهده نخواهید کرد.

این سرویس درخواست‌های کاربران را از طرف ایشان به سمت سرورهای داخلی هدایت کرده و پاسخ را به ایشان باز می‌گرداند. این ویژگی به کاربران خارج از سازمان این اجازه را می‌دهد تا به منابع داخلی سازمان به صورت کنترل شده متصل شده و از خدمات ذیل بهره‌مند شوند:

  • اجازه دانلود محتوای Meeting ها به کاربران بیرون سازمان
  • اجازه دانلود محتوای Address Book ها به کاربران بیرون سازمان
  • اجازه دسترسی به سرویس Lync Web App Client
  • اجازه دسترسی به صفحه Dial-in Conferencing
  • فراهم کردن دسترسی به سرویس Location Information (موقعیت مکانی)
  • فراهم کردن دسترسی کاربران بیرونی به صفحه به روزرسانی (Device Update Web Service)
  • فعال کردن امکان دسترسی به URL های سرویس Lync Mobility
  • امکان استفاده از سرویس Lync Discover و هدایت منابع مورد نیاز به کاربران خارج سازمان

خدمات سرویس Reverse Proxy در اکثر فایروال‌ها و لود بالانسرهای امروزی به صورت یک امکان فراهم شده است. هر چند مثل یک دستگاه اختصاصی امنیتی مثل Cisco ASA از لحاظ کنترل و مدیریت عمل نمی‌کنند، با این حال این وظیفه را نیز می‌توان به Internet Information Services  با افزونه Application Request Routing یا به اختصار IIS ARR محول نمود.

پیش‌نیازهای سرور

سرور ARR در یک شبکه DMZ یا ابتدایی باید قرار داشته باشد مایکروسافت پیشنهاد می‌کند که یک شبکه حقیقی DMZ توسط دو فایروال داخلی و خارجی مطابق تصویر زیر وجود داشته و سرویس Reverse Proxy در آن محل قرار داشته باشد به صورتی که کاملا از شبکه داخلی شما مجزا باشد.

هر چند به طور کلی (خیلی کلی) با تکنولوژی‌ها و راه‌کارهایی روبرو هستیم که تنها در آنها یک فایروال وجود دارد و سرور Reverse Proxy دارای یک ارتباط با شبکه داخلی مطابق تصویر زیر است که به اصطلاح به آن شبکه ۳ پایه ای (۳-legged Firewall) نیز می‌گویند.

فرای بحث نوع و ساختار شبکه سرور باید دارای ۲ کارت شبکه هر یک در یک شبکه جداگانه باشد.

سرورهای Front End بر روی پورت ۴۴۴۳ آماده دریافت درخواست های کاربران بیرونی است.

درخواست‌ها ابتدا از پورت ۴۴۳ دریافت شده و پس از تبدیل آن به پورت ۴۴۴۳ توسط Reverse Proxy به سمت Front End Pool ارسال می‌شوند.

سرویس Reverse Proxy یکی از آخرین سرویس‌هایی است که شما برای Lync یا Skype4B نصب می‌کنید. شما ابتدا باید دارای یک شبکه داخلی کامل و راه‌اندازی شده به همراه سرورهای Edge باشد تا بتوانید از این سرویس بهره‌برداری کنید.

موارد زیر باید ابتدا بر روی سرور انجام شود:

  • نصب حداقل ویندوز ۲۰۰۸ برای سیستم عامل
  • تخصیص IP های دستی به هر دو کارت شبکه
  • نصب تمامی به روزرسانی‌های سیستم عامل
  • تعیین نام سیستم به همراه دامنه موردنظر
  • تغییر WorkGroup  کامپیوتر (سرور نباید Domain Join باشد – با تنظیمات خاص در فایل HOST امکان‌پذیر است)
  • افرودن نام دامنه به DNS Suffix نام سرور
  • نصب Root CA سرور داخلی
  • اضافه نمودن یک رکورد A به سرور DNS داخلی برای سرور

آداپتور خارجی سرور باید دارای Default Gateway باشد نه کارت شبکه داخلی، همچنین در صورتی که هر کارت شبکه شما دارای یک Subnet است استفاده از DNS های داخلی بلامانع است (مانند ساختار شبکه دوم در بالا) و یا درصورتی‌که سرور شما در یک شبکه DMZ واقعی است (تصویر اول) در این صورت لازم است یک Route مستقیم به سمت سرورهای Front End و سرورهای Office Web App خود داشته باشید. همچنین باید برای اطمینان از امکان دسترسی به سرورهای داخلی با تغییر محتویات فایل host برای مسیرهای meet, dialin, lyncdiscover و lyncwebexternal به سمت سرور Front End اطمینان حاصل نمائید.

نصب و تنظیم IIS ARR

برای این کار من از یک سرور Windows 2012 R2 استفاده می‌کنم که همانند دیاگرام اول در شبکه DMZ وجود دارد، این تنظیمات ممکن است در سیستم عامل‌های دیگر کمی متفاوت باشد.

مرحله اول – نصب IIS

با توجه به علاقه شخصی من به PowerShell دستورات نصب را حتی‌الامکان از این طریق انجام می‌دهم.

Install-WindowsFeature Web-Static-Content,Web-Default-Doc,Web-Dir-Browsing,Web-Http-Errors,Web-Net-Ext,Web-Http-Logging,Web-Request-Monitor,Web-Http-Tracing,Web-Filtering,Web-Stat-Compression,Web-Mgmt-Console,NET-Framework-Core,NET-Win-CFAC,NET-Non-HTTP-Activ,NET-HTTP-Activation,RSAT-Web-Server -IncludeManagementTools

مرحله دوم – نصب Application Request Routing

ابتدا فایل موردنظر را از لینک زیر دانلود کنید، در صورت فعال بودن Web App Installer با تصویر زیر روبروی می‌شوید:

http://www.iis.net/downloads/microsoft/application-request-routing

IISARR2

.در این مرحله با تایید پیش‌نیازهای لازم (در زمان نگارش این مقاله) که در زیر نشان داده شده است سرویس را نصب خواهیم نمود

IISARR3

پس از اتمام تاییدیه زیر را مشاهده خواهیم نمود:

IISARR4

مرحله سوم – نصب گواهینامه های امنیتی

همانطور که در قسمت پیش‌نیازها ذکر شد لازم است گواهینامه ریشه شبکه داخلی در مخزن Local Computer Trusted Root Certificate Authorities نصب شود.

سپس گواهینامه‌های امنیتی خارجی خود را که باید به همراه SAN های موردنظر باشد را نیز بر روی سرور نصب می‌کنیم.

شما می‌توانید با استفاده از گواهینامه‌های امنیتی Multi Domain SSL با قابلیت SAN میزبانی زاگریو برای تامین امنیت سرورهای خود اقدام نمائید (نحوه تهیه این گواهینامه‌ها خارج از بحث این مقاله است)

در قسمت Servers Certificate باید گواهینامه‌های امنیتی موردنظر خود را مشاهده نمائید.

مرحله چهارم – اتصال گواهینامه‌های امنیتی به سایت

بر روی Default Web Site کلیک کنید، سپس بر روی Bindings کلیک کنید و برای سرویس HTTPS بر روی پورت ۴۴۳ گواهینامه مورد نظر را انتخاب و تایید نمائید.

مرحله پنجم – ایجاد Server Farm

ما باید برای هر نامی که می‌خواهیم آنها را منتشر کنیم (Meet, dialin, lyncdiscover و lyncwebexternal) یک Server Farm ایجاد کنیم. برای ایجاد اولین آیتم بر روی Server Farms دکمه راست موس را بزنید و گزینه Create Server Farm را مطابق تصویر کلیک کنید.

در فرم باز شده نام کامل FQDN خود را وارد نمائید.

در صفحه بعدی، قبل از پر کردن اطلاعات سرور بر روی Advanced Settings کلیک کنید و مقادیر HTTP و HTTPS را از ۸۰ و ۴۴۳ به ۸۰۸۰  و ۴۴۴۳ تغییر دهید. سپس نام کامل  FQDN سرور Front End و یا Front End Pool خود را وارد نمائید، سپس بر روی Add کلیک کنید. در صورت دریافت پیغام ایجاد URL Rewrite بر روی Yes کلیک نمائید.

مراحل فوق را برای تمامی آدرس‌های موردنظر خود تکرار نمائید. به یاد داشته باشید سرور Office Web Application نام متفاوتی خواهد داشت و پورت‌های آن همان ۸۰ و ۴۴۳ می باشد.

پس از اتمام مراحل خروجی کار باید شبیه تصویر زیر باشد.

مرحله ششم  – تنظیمات  Server Farm

لازم است برای هر یک از Server Farm های ایجاد شده موارد زیر را تنظیم کنیم:

۱- در بخش Caching تیک Enable Disk Cache را غیر فعال کنید.

۲- در قسمت Proxy باید Timeout Value را از ۳۰ به حداقل ۶۰۰ تغییر دهیم.

در صورت عدم تعریف این تنظیم کاربران iPhone دائما پیغامی را مبنی بر الزام باز کردن نرم افزار Skype4B را مشاهده می‌نمایند. دلیل دریافت این خطا عدم تنظیم صحیح این گزینه است. این مورد بر اساس شرایط شما متفاوت است، عموما عدد تنظیم شده در شرایط متفاوت بین ۶۰۰ تا ۹۰۰ است. این مورد را برای تمامی Server Farm ها اعمال کنید.

۳- در قسمت Routing Rules تیک SSL Offloading را غیر فعال کنید. و مجددا برای تمامی آیتم ها اعمال کنید.

مرحله هفتم  – تنظیمات  URL Rewrite

بر روی نام سرور خود در IIS کلیک کنید و گزینه URL Rewrite را انتخاب نمائید.

برای تمامی مواردی که ایجاد کرده‌اید مطابق تصویر زیر دو مورد HTTP و HTTPS را مشاهده می‌نمائید:

ما از سرویس HTTP به دلایل امنیتی استفاده نخواهیم کرد به همین دلیل تمامی مواردی که با HTTP هستند را حذف می‌نمائیم.