تقویت امنیت HTTP response headers

مقدمه

سربرگ‌های پاسخ HTTP جفت‌های نام-مقدار رشته‌ای هستند که از سمت سرور با محتوایی که درخواست کرده‌اید، برگردانده می‌شوند. این‌ها به طور معمول برای انتقال اطلاعات فنی مانند نحوه‌ی ذخیره‌سازی محتوا توسط مرورگر، نوع محتوا، نرم‌افزاری که در سرور اجرا می‌شود و بسیاری موارد دیگر استفاده می‌شوند. اخیراً، سربرگ‌های پاسخ HTTP به‌طور فزاینده‌ای برای انتقال سیاست‌های امنیتی به مرورگر استفاده می‌شوند. با ارسال سیاست‌های امنیتی به کاربر به این شیوه، میزبان‌ها می‌توانند تجربه‌ی مرور ایمن‌تری را برای بازدیدکنندگان خود ارائه دهند و همچنین خطر برای همه طرف‌های مرتبط را کاهش دهند. بیایید به سربرگ‌های مبتنی بر امنیت بیشتری نگاهی بیندازیم.

سربرگ‌های اضافی

گام اول در تقویت سربرگ‌های پاسخ HTTP شما، نگاه کردن به سربرگ‌های اضافی است که می‌توانید از آنها استفاده کنید تا سایت خود را ایمن‌تر کنید. در زیر توضیح داده شده است، این سربرگ‌ها به مرورگر اطلاعات بیشتری درباره نحوه رفتار کردن شما درباره سایت می‌دهند. آنها می‌توانند برای ارسال سیاست‌های امنیتی، تنظیم گزینه‌های پیکربندی و غیرفعال کردن ویژگی‌های مرورگری که نمی‌خواهید برای سایت خود فعال شود، استفاده شوند. بعد از راه‌اندازی هر سربرگ، آن را با استفاده از SecurityHeaders.io بررسی کنید.

Content Security Policy – سیاست امنیت محتوا (CSP)

سربرگ CSP به شما اجازه می‌دهد تا یک لیست سفید از منابع تأییدشده برای محتوای سایت خود تعریف کنید. با محدود کردن منابعی که یک مرورگر می‌تواند برای سایت شما بارگیری کند، مانند فایل‌های js و css، CSP می‌تواند به عنوان یک پاسخ مؤثر به حملات XSS عمل کند. در اینجا یک سیاست ابتدایی برای اجبار TLS بر روی همه منابع و جلوگیری از هشدارهای محتوای مخلوط (Mixed-Content) آورده شده است.

Nginx:

add_header Content-Security-Policy "default-src https: data: 'unsafe-inline' 'unsafe-eval'" always;

Apache:

Header always set Content-Security-Policy "default-src https: data: 'unsafe-inline' 'unsafe-eval'"

IIS:

در سرورهای ویندوزی، IIS Manager را باز کنید و بر روی سایت مورد نظر کلیک کنید و سپس گزینه HTTP Response Headers را انتخاب کنید.

iis-response-headers

در پنل “Actions” بر روی دکمه “Add” کلیک کنید و سپس جزئیات سربرگ را وارد کنید.

CSP دارای ویژگی متعددی است که من در بالا شرح داده‌ام و همچنین می‌توانید از تحلیل‌گر CSP و سازنده CSP در report-uri.io استفاده کنید. این ابزاربه شما کمک کنند تا یک سیاست سفارشی برای سایت خود ایجاد کنید.

HTTP Strict Transport Security – امنیت انتقال سختگیرانه HTTPS

این سربرگ به سرور اجازه می‌دهد تا مرورگرها را به اتصال امن HTTPS به جای HTTP برای درخواست‌های آینده به وب‌سایت الزام کند. این اقدام می‌تواند از حملات MITM (Man-in-the-Middle) جلوگیری کند و امنیت ارتباطات را تأمین کند. بهترین راه برای اعمال آن این است که سرور این سربرگ را به همراه سیاست‌های امنیتی مناسبی تنظیم کند تا مرورگرها برای مدت زمان مشخصی (مثلا یک سال) تنها از اتصال HTTPS استفاده کنند و از هیچگونه سویه اینترنتی تلاش برای از پایین آوردن اتصال HTTPS جلوگیری شود.

Nginx:

add_header Strict-Transport-Security "max-age=31536000; includeSubdomains" always;

Apache:

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

IIS:

پین‌کردن کلید عمومی HTTP (HTTP Public Key Pinning)

فهم درستی از اهمیت امنیت در ارتباطات اینترنتی بسیار اساسی است. اما امروزه، با افزایش تهدیدات امنیتی، ابزارهای جدیدی نیز برای تقویت امنیت ارتباطات وب ارائه شده‌اند. یکی از این ابزارها، سیاست پین‌کردن کلید‌های عمومی (HPKP) است که به وب‌سایت‌ها این امکان را می‌دهد که مرورگرها را مجبور کنند فقط با کلیدهایی که توسط خودشان تعیین شده‌اند، ارتباط برقرار کنند. این برنامه‌های امنیتی می‌توانند از تلاش‌هایی که به هدف تقلب و تزویر کلیدها انجام می‌شوند، جلوگیری کنند و سطح اعتماد کاربران به ارتباطات وب را افزایش دهند.

یکی دیگر از ابزارهای امنیتی موجود برای تقویت امنیت ارتباطات وب، فناوری HSTS (HTTP Strict Transport Security) است که به مرورگرها می‌گوید که باید همیشه از اتصال HTTPS استفاده کنند، به جای HTTP غیرامنیتی. این تکنولوژی باعث کاهش موارد ممکن حمله MITM (Man-in-the-Middle) می‌شود و از تهدیدات امنیتی حمایت می‌کند.

هرچند که امنیت این تکنولوژی‌ها بسیار حیاتی است، اما باید به دقت از آنها استفاده شود و نکات امنیتی آنها را رعایت کرد. به‌عنوان مثال، در مورد HPKP، اگر تنظیمات آن به‌طور نادرست انجام شود، ممکن است به این امر منجر شود که وب‌سایت شما برای کاربران غیرقابل دسترسی باشد. در نتیجه، همیشه مهم است که قبل از استفاده از این ابزارها، به دقت مطالعه و آموزش در زمینه استفاده صحیح و امنیتی آنها بپردازید و از راهنماها و منابع معتبر استفاده کنید.

Nginx:


add_header Public-Key-Pins "pin-sha256='X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg='; pin-sha256='MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec='; pin-sha256='isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg='; includeSubdomains; max-age=2592000" always;


Apache:

Header always set Public-Key-Pins "pin-sha256='X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg='; pin-sha256='MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec='; pin-sha256='isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg='; includeSubdomains; max-age=2592000"


IIS:

X-Frame-Options

سربرگ X-Frame-Options (RFC)، یا همان سربرگ XFO، بازدیدکنندگان شما را در برابر حملات کلیک‌جکینگ محافظت می‌کند. یک حمله‌کننده می‌تواند یک فریم (iframe) را در وب‌سایت خود بارگیری کرده و وب‌سایت شما را به عنوان منبع تنظیم کند، که کاری بسیار آسان است. با استفاده از CSS ماهرانه، می‌توانند وب‌سایت شما را در پس‌زمینه پنهان کنند و اشکال‌هایی با نمایی واقعی ایجاد کنند. وقتی بازدیدکنندگان شما روی لینکی که فکر می‌کنند بی‌خطر است کلیک می‌کنند، در واقع روی لینک‌هایی در وب‌سایت شما در پس‌زمینه کلیک می‌کنند. این ممکن است به نظر نیاید که این امر اشکالی داشته باشد تا زمانی که متوجه شویم مرورگر این درخواست‌ها را در محیط کاربر اجرا می‌کند، که ممکن است شامل ورود و احراز هویت کاربر به وب‌سایت شما شود!

سربرگ X-Frame-Options به مرورگرها اجازه می‌دهد که بدانند آیا محتوای وب‌سایت شما می‌تواند در یک فریم داخلی یک صفحه وب دیگر نمایش داده شود یا خیر. مقادیر معتبر شامل DENY به معنای اینکه وب‌سایت شما نمی‌تواند در فریم‌ها قرار گیرد، SAMEORIGIN که به شما اجازه می‌دهد وب‌سایت خود را فریم کنید یا ALLOW-FROM https://zagrio.com/ که به شما اجازه می‌دهد وب‌سایت‌هایی را که مجاز به فریم کردن وب‌سایت خود هستند مشخص کنید.

این سربرگ یکی از ابزارهای امنیتی مهم برای محافظت از وب‌سایت شما در برابر حملات امنیتی است.

Nginx:

add_header X-Frame-Options "SAMEORIGIN" always;

Apache:


Header always set X-Frame-Options "SAMEORIGIN"

IIS:

X-XSS-Protection

این سربرگ برای پیکربندی حفاظت از XSS (Cross-Site Scripting) داخلی که در مرورگرهای اینترنت اکسپلورر، کروم و سافاری (وب‌کیت) وجود دارد، استفاده می‌شود. تنظیمات معتبر برای این سربرگ شامل 0 که حفاظت را غیرفعال می‌کند، 1 که حفاظت را فعال می‌کند و 1؛ mode=block که به مرورگر می‌گوید اگر یک حمله را شناسایی کند، پاسخ را مسدود کند به جای اجازه دادن به اجرای اسکریپت است. این سربرگ به مرورگر اجازه می‌دهد تا در برابر حملات XSS (Cross-Site Scripting) محافظت شود. در حملات XSS، حمله‌کننده کدهای جاوااسکریپت مخرب را به وب‌سایت شما تزریق می‌کند تا اطلاعات کاربران را بدزدد یا به مخاطبان مورد نظر خود هدایت کند. با فعال‌سازی این سربرگ و تنظیم مقدار آن به “1”، مرورگرها می‌توانند به طور خودکار اقداماتی را انجام دهند تا از حملات XSS جلوگیری کنند. این امر به افزایش امنیت وب‌سایت شما کمک می‌کند.

Nginx:


add_header X-Xss-Protection "1; mode=block" always;

Apache:


Header always set X-Xss-Protection "1; mode=block"

IIS:

X-Content-Type-Options

این سربرگ برای کنترل نحوه‌ی تفسیر محتوای فایل‌ها توسط مرورگر استفاده می‌شود. مقادیر معتبر برای این سربرگ عبارتند از “nosniff” که به مرورگر می‌گوید که نوع محتوای فایل را از هدر Content-Type استخراج کند و از فایل‌هایی که نوع محتوایشان مشخص نیست استفاده نکند. این سربرگ از mime-sniffing توسط Google Chrome و اینترنت اکسپلورر برای تعیین نوع محتوای پاسخ، مستقیماً به دور از آنچه توسط سرور اعلام شده است، جلوگیری می‌کند.

Nginx:

add_header X-Content-Type-Options "nosniff" always;

Apache:


Header always set X-Xss-Protection "1; mode=block"

IIS:

حذف سربرگ‌ها

گام بعدی در تقویت سربرگ‌های شما نگاه کردن به سربرگ‌هایی است که می‌توانید آنها را حذف کنید تا مقدار اطلاعاتی که درباره‌ی سرور شما و نرم‌افزارهایی که بر روی آن اجرا می‌شوند فاش می‌شود، کاهش یابد. سرورها به طور معمول اطلاعاتی را که نرم‌افزاری که در آن اجرا می‌شود، چه نسخه‌هایی از نرم‌افزار در آن وجود دارد و چه چارچوب‌هایی آن را پشتیبانی می‌کنند، فاش می‌کنند. کاهش میزان اطلاعاتی که فاش می‌کنید همیشه مزیتی است. من برخی از رایج‌ترین سربرگ‌ها را بررسی کردم اما شما همیشه می‌توانید سربرگ‌های پاسخ HTTP سایت خود را بررسی کنید تا ببینید آیا هنوز سربرگ‌های دیگری وجود دارد که می‌توانید آن‌ها را با استفاده از ابزارهایی که در بالا اعلام شد، بررسی و حذف کنید.

سربرگ Server

سربرگ Server یکی از رایج‌ترین سربرگ‌هایی است که احتمالاً در یک وب‌سایت مشاهده خواهید کرد. در RFC تعریف شده است:

سربرگ پاسخ Server شامل اطلاعاتی درباره نرم‌افزار استفاده شده توسط سرور منبع برای پردازش درخواست است. این فیلد می‌تواند شامل چندین نشانه محصول (بخش 3.8) و توضیحاتی درباره سرور و هر زیرمحصول مهم باشد. نشانه‌های محصول به ترتیب اهمیت برای شناسایی برنامه فهرست شده‌اند.

این سربرگ طراحی شده است تا اطلاعاتی درباره برنامه وب‌سرور خاصی که بر روی سرور اجرا می‌شود، ارائه دهد، و مقادیر رایج به مایکروسافت IIS، NginX یا Apache اشاره می‌کنند. با این حال، RFC در ادامه بیان می کند:

توجه: فاش کردن نسخه دقیق نرم‌افزار سرور ممکن است سرور را به حملات در برابر نرم‌افزارهایی که به ثقل سوراخ‌های امنیتی شناخته شده اند، آسیب‌پذیرتر کند. ارائه‌دهندگان سرور تشویق می‌شوند که این فیلد را به یک گزینه قابل پیکربندی تبدیل کنند.

با این حال، بسیاری از تامین کنندگان، این کار را آنقدر آسان نمی‌کنند تا امکان تغییر مقدار سربرگ یا در ایده‌آل، حذف آن را فراهم کنند.

ادامه این مقاله به زودی منتشر خواهد شد …

سرور Reverse Proxy

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

6.2kviews

در هفته گذشته اسکایپ بیزینس ، را برای یک شرکت بین‌المللی راه اندازی کردم، نحوه نصب و راه‌اندازی این سرویس دارای مستندات بسیاری به زبان انگلیسی در Technet و تعداد زیادی آموزش متنی و تصویری به زبان فارسی است، در این مقاله (در زاگریو) قصد داریم راه اندازی ایت سرویس با سرور Reverse Proxy را به شما آموزش دهیم.

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

reverse proxy چیست؟

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

ویژگی‌های سرویس Reverse Proxy

  • مجوز دانلود محتوای 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 محول نمود.

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

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

پیش‌نیازهای سرور 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

مرحله سوم : « نصب گواهینامه های امنیتی برای سرور Reverse Proxy »

همانطور که در قسمت پیش‌نیازها ذکر شد لازم است گواهینامه ریشه شبکه داخلی در مخزن 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 خود را وارد نمائید.

Server Farm

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

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

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

مرحله ششم : « تنظیمات  Server Farm برای سرور Reverse Proxy »

لازم است برای هر یک از 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 هستند را حذف می‌نمائیم.

زاگریو

تغییر مسیر بازدیدکنندگان HTTP به HTTPS در IIS

تغییر مسیر بازدیدکنندگان HTTP به HTTPS در IIS

4.3kviews
در این مقاله قصد داریم تا در مورد تغییر مسیر بازدیدکنندگان HTTP به HTTPS در IIS، به صورت کامل و تخصصی با شما صحبت کنیم.

تغییر مسیر بازدیدکنندگان HTTP به HTTPS در IIS

اگر شما یک گواهینامه SSL، در وب سایت خود دارید و نیاز دارید که بازدیدکنندگان HTTP شما به صورت خودکار به نسخه HTTPS منتقل شوند تا اطمینان یابید که تمامی ارتباطات شما رمزگذاری شده است، باید مراحل زیر را انجام دهید: میزبانی وب اشتراکی ما (زاگریو)، سیستم‌های سرور ویندوزی با IIS هستند.
 
 
بعد از نصب گواهینامه SSL بر روی وب سایتتان، ممکن است URL rewrite به صورت اتوماتیک درفایل web.config، تغییر مسیر HTTPS را اضافه کند.

IIS

1 .  با استفاده از ویرایشگر متن (text editor)، فایل web.config را باز کنید.

2 . دستور URL rewrite برای تغییر مسیر HTTPS در  زیر اضافه شده است.

<configuration>
    <system.webserver>
    <rewrite>
           <rules>
                 <rule name=”HTTP to HTTPS redirect” stopProcessing=”true”>
                 <match url=”(.*)” />
                 <conditions>
                             <add input=”{HTTPS}” pattern=”off” ignoreCase=”true” />
                 </conditions>
                 <action type=”Redirect” redirectType=”Found” url=”https://{HTTP_HOST}/{R:1}” />
                 </rule>
            </rules>
    </rewrite>
    </system.webserver>

    </configuration>

3 . به سادگی و با کپی کردن دستورات بالا در فایل web.config، می‌توانید تغییرات را ذخیره کنید.

4 . فایل web.config ذخیره شده را از طریق FTP یا گزینه File Manager در کنترل پنل حساب خود، به سرور میزبان وب خود آپلود کنید.

5 . دستور جدید بلافاصله بعد از آپلود شدن فایل انجام می‌شود.
 

Windows PowerShell Web Access

Windows PowerShell Web Access: آموزش نصب و استفاده

3.2kviews

Windows PowerShell Web Access که اولین بار در ویندوز سرور ۲۰۱۲ ارائه شد، به عنوان دروازه Windows PowerShell و کنسول  Windows PowerShell مبتنی بر وب که هدفش کنترل سیستم‌های راه دور است، عمل می‌کند. این نرم‌افزار این مزیت را دارد که دستورات و اسکرپیت‌ها windows PowerShell را از کنسول windows PowerShell در یک مرورگر اجرا کنند بدون اینکه نیاز باشد windows PowerShell یا نرم‌افزار remote management و یا پلاگین‌های مرورگر بر روی دستگاه مشتری نصب شده باشد. Windows PowerShell Web Access به کاربران اجازه می‌دهد که با استفاده از Windows PowerShell در یک مرورگر وب به کامپبوترهایشان در سازمان دسترسی داشته باشند.

مواردی که ما برای اجرای کنسول Windows PowerShell Web Access مبتنی بر وب نیاز داریم یک دروازه Windows PowerShell Web Access است که به درستی پیکربندی شده باشد و یک مرورگر در دستگاه مشتری که از JavaScript® و کوکی پشتیبانی کند.
برای اجرای Windows PowerShell Web Access به وب سرور IIS، .NET Framework 4.5 و Windows PowerShell 3.0 و یا Windows PowerShell 4.0 نیاز داریم.

مرورگر و دستگاه های مشتری که پشتیبانی می کنند

Windows PowerShell Web Access تمامی مرورگرهای زیر را پشتیبانی می‌کند:
• Windows® Internet Explorer® for Microsoft Windows® ۸٫۰, ۹٫۰, ۱۰٫۰, and 11.0
• Mozilla Firefox® ۱۰٫۰٫۲
• Google Chrome™ ۱۷٫۰٫۹۶۳٫۵۶m for Windows
• Apple Safari® ۵٫۱٫۲ for Windows
• Apple Safari 5.1.2 for Mac OS®

اگر چه مرورگرهای تلفن همراه به طور رسمی پشتیبانی نمی‌شوند اما بسیاری از آن‌ها ممکن است قادر به اجرای کنسول Windows PowerShell مبتنی بر وب باشند. مرورگرهایی که کوکی‌ها را می‌پذیرند و جاوا اسکریپت را اجرا می‌کنند و با وب سایت‌های HTTPS کار می‌کنند ممکن است که توسط این نرم افزار پشتیبانی شوند اما به طور رسمی آزمایش نشده‌اند.

 Windows PowerShell Web Access در سه مرحله نصب و کانفیگ می‌شود:

۱-    مرحله اول نصب PowerShell Web Access است.
۲-    مرحله دوم کانفیگ Gateway است.

۳-    مرحله سوم کانفیگ قوانین مجازی که به کاربران اجازه می‌دهد به کنسول Windows PowerShell مبتنی بر وب دسترسی داشته باشند.

در ادامه ما مراحل نصب و کانفیگ را برای شما ارائه می‌دهیم:

مرحله اول: نصب Windows PowerShell Web Access

نصب Windows PowerShell Web Access با استفاده از cmdlet های Windows PowerShell Web Access

۱-    برای باز کردن Windows PowerShell Web Access یکی از مراحل زیر را انجام دهید:
  •     در دسکتاپ ویندوز از قسمت taskbar بر روی Windows PowerShell راست کلیک کنید و گزینه Run as Administrator را کلیک کنید.
  •     در صفحه نمایش شروع ویندوز بر روی Windows PowerShell راست کلیک کنید و گزینه Run as Administrator را کلیک کنید.
۲-    در ادامه دستور زیر را تایپ کنید و کلید enter کنید. computer_name، نام کامپیوتر راه دوری است که شما می‌خواهید بر روی آن Windows PowerShell Web Access نصب کنید را نمایش می‌دهد. پارامترهای راه‌اندازی مجدد در صورت نیاز به صورت اتوماتیک در سرور مقصد راه اندازی می‌شوند.
Install-WindowsFeature –Name WindowsPowerShellWebAccess -ComputerName <computer_name> -IncludeManagementTools –Restart

۳-    هنگامی‌که نصب کامل شد، بررسی کنید که  PowerShell Web Access که بر روی سرورهای مقصد با اجرای  cmdletهای Get-WindowsFeature نصب شده بود، در کنسول Windows PowerShell که توسط کاربران سطح بالا باز شده، نصب است. شما همچنین می‌توانید Windows PowerShell Web Access که بر روی کنسول مدیریت سرور نصب شده است را با انتخاب سرور مقصد در صفحه All Server بررسی کنید و تقش‌ها و ویژگی‌ها را برای سرور انتخاب شده مشاهده نمائید. شما همچنین می‌توانید فایل Readme را برای Windows PowerShell Web Access ببینید.

۴-    بعد از اینکه Windows PowerShell Web Access نصب شد، شما باید فایل Readme را مرور کنید که شامل دستورات پایه و دستورالعمل‌های موردنیاز برای تنظیم Gateway باشد. فایل Readme در مسیر C:\Windows\Web\PowerShellWebAccess\wwwroot\README.txt قرار دارد.

مرحله دوم: پیکربندی gateway برای Windows PowerShell Web Access

استفاده از Install-PswaWebApplication cmdlet یک راه سریع برای پیکربندی Windows PowerShell Web Access است. اگرچه شما می‌توانید  پارامتر UseTestCertificate به Install-PswaWebApplication cmdlet جهت نصب یک گواهینامه self-signed SSL certificate برای تست اهداف آزمایشی اضافه کنید، اما این روش مطمعن و امنی نیست. برای ایجاد یک محیط امن از یک گواهینامه SSL که توسط یک مرجع صدور معتبر امضا شده است، استفاده کنید. مدیران می‌توانند گواهی تست را با یک گواهی امضادار به انتخاب خود و با استفاده از کنسول IIS Manager جایگزین کنند. در ادامه ما دو روش پیکربندی دروازه Windows PowerShell Web Access را برای شما ارائه می‌دهیم.

پیکربندی دروزاه Windows PowerShell Web Access با یک گواهینامه تست با استفاده از Install-PswaWebApplication:

۱-    برای باز کردن Windows PowerShell Web Access یکی از گزینه‌های زیر را انتخاب کنید:

  •    در دسکتاپ ویندوز، از قسمت Taskbar بر روی Windows PowerShell راست کلیک کنید.
  •   در صفحه شروع ویندوز بر روی Windows PowerShell کلیک کنید.
۲-    دستور زیر را تایپ کنید و کلید Enter را بزنید.
Install-PswaWebApplication –UseTestCertificate

پیکربندی دروازه Windows PowerShell Web Access با گواهینامه واقعی با استفاده از Install-PswaWebApplication و IIS Manager:

۱-    برای باز کردن Windows PowerShell Web Access یکی از گزینه‌های زیر را انتخاب کنید:
  •     در دسکتاپ ویندوز، از قسمت Taskbar بر روی Windows PowerShell راست کلیک کنید.
  •     در صفحه شروع ویندوز بر روی Windows PowerShell کلیک کنید.

۲-    دستور زیر را تایپ کنید و کلید Enter را بزنید.

Install-PswaWebApplication
تنظیمات Gateway که در ادامه آمده است، در حال اجرای cmdlet پیکربندی شده است. شما می‌توانید این تنظیمات را به صورت دستی در کنسول IIS manager در صورت دلخواه تغییر دهید. شما می‌توانید مقادیر پارامترهای WebsiteName و WebApplicationName را در Install-PswaWebApplication cmdlet مشخص کنید.
• Path: /pswa
• ApplicationPool: pswa_pool
• EnabledProtocols: http
• PhysicalPath: %windir%/Web/PowerShellWebAccess/wwwroot
۳-    کنسول IIS Manager را با استفاده از یکی از روش‌های زیر باز کنید.
  •     در دسکتاپ ویندوز با کلیک بر روی Server manager در taskbar آنرا start  کنید. در منوی tools در server manager بر روی Internet Information Services (IIS) Manager کلیک کنید.
  •     در صفحه نمایش شروع ویندوز بر روی server manager کلیک کنید.

۴-    در پنجره درخت IIS Manager، گره‌ای را که سرور Windows PowerShell Web Access بر روی آن نصب شده است را گسترش دهید تا پوشه Site برای شما نمایش داده شود. پوشه های سایت را گسترش دهید.

۵-    وب‌سایتی که نرم‌افزار وب Windows PowerShell Web Access را بر روی آن نصب کرده‌اید را انتخاب کنید. در پنجره Actions بر روی گزینه Bindings را کلیک کنید.

۶-    در کادر محاوره‌ای Site Binding بر روی Add کلیک کنید.

۷-    در کادر محاوره‌ای Add Site Binding در فیلد Type گزینه Https را انتخاب کنید.

۸-    در فیلد SSL certificate، از منوی آبشاری signed certificate خود را انتخاب و ok کنید.

نرم افزار وب Windows PowerShell Web Access اکنون برای استفاده بر روی signed SSL certificate شما پیکربندی شده است. با وارد کردن آدرس https://<server_name>/pswa دریک پنجره مرورگر می توانید به Windows PowerShell Web Access دسترسی داشته باشید.

مرحله سوم: پیکربندی یک قانون با مجوز محدود

بعد از نصب PowerShell Web Access و پیکربندی Gateway کاربران می‌توانند وارد صفحه ورود شوند اما تا زمانی که مدیر Windows PowerShell به آنها اجازه دسترسی ندهد نمی‌توانند وارد سایت شوند. دسترسی‌های PowerShell Web Access با استفاده از مجموعه‌ای از Cmdlet های  Windows PowerShell که در جدول زیر شرح داده شده است قابل کنترل است.

برای اضافه کردن قانون با مجوز محدود:

۱-    یکی از گزینه‌های زیر را برای باز کردن Windows PowerShell با استفاده از کاربران با حقوق بالا انتخاب کنید:
  •     در دسکتاپ ویندوز، از قسمت Taskbar بر روی Windows PowerShell راست کلیک کنید و بر روی گزینه Run as Administartor کلیک کنید.
  •     در صفحه نمایش شروع ویندوزبر روی  Windows PowerShell راست کلیک کنید و بر روی گزینه Run as Administartor کلیک کنید.

۲-    مراحل اختیاری را برای محدود کردن دسترسی کاربران با استفاده از تنظیمات Using Session انجام دهید.

۳-    در ادامه دستور زیر را تایپ کنید و Enter را بزنید.
Add-PswaAuthorizationRule –UserName <domain\user | computer\user> -ComputerName <computer_name> -ConfigurationName <session_configuration_name>

۴-    شما می‌توانید قانونی را که ایجاد کردید با استفاده از Get-PswaAuthorizationRule cmdlet چک کنید.

تنظیمات معمولی:

مرحله اول: نصب Windows PowerShell Web Access
به منظور نصب Windows PowerShell Web Access با استفاده از Add Roles and Features Wizard:
۱- اگر server manager باز است به مرحله بعد بروید اما اگر باز نیست به یکی از روش‌های زیر اینکار را انجام دهید:
  •     در صفحه دسکتاپ ویندوز با کلیک بر روی server manager در قسمت taskbar ،server manager را باز کنید.
  •     یا در قسمت start ویندوز بر روی server manager کلیک کنید.

۲- از منوی manage بر روی Add Roles and Features کلیک کنید.

۳- در صفحه Select installation type، گزینه Role-based or feature- based installation را انتخاب کنید و next را کلیک کنید.

۴- در صفحه Select destination server یک سرور را از مجموعه سرورها و یا یک offline VHD را انتخاب کنید. برای انتخاب VHD آفلاین به عنوان سرور مقصد، ابتدا سروری که VHD روی آن بارگذاری می‌شود را انتخاب کنید و سپس فایل VHD را برای اطلاعات مربوط به چگونگی اضافه کردن سرور به مجموعه سرورها قسمت Server manager help بروید. پس از انتخاب سرور مقصد بر روی گزینه next کلیک کنید.

۵- در صفحه Select features از ویزاد،  Windows PowerShell را باز کنید و سپس Windows PowerShell Web Access را انتخاب کنید.

۶- توجه داشته باشید که باید گزینه‌های مورد نیاز را مانند .NET Framework 4.5 و نقش خدمات (Web Server (IIS را اضافه کنید. گزینه‌های مورد نیاز را اضافه کرده و ادامه دهید.

نکته: نصب Windows PowerShell Web Access با استفاده از Add Roles and Features ،Web server را که IIS Manager snap-in را در برمی‌گیرد را نیز نصب می‌کند. span-in و دیگر ابزارهای مدیریت IIS اگر از Add Roles and Features Wizard استفاده کنید به صورت پیش‌فرض نصب هستند. اگر Windows PowerShell Web Access را با استفاده از Windows PowerShell cmdlets، همان‌طور که زیر آمده است نصب کنید، ابزارهای مدیریت به صورت پیش‌فرض نصب نمی‌شوند.

۷- در صفحه Confirm installation selections، اگر فایل‌های  PowerShell Web Access در سروری که در مرحله ۴ انتخاب کرده‌اید، ذخیره نشده‌اند روی Specify an alternate source path کلیک کنید و مسیر را از روی فایل‌ها اعمال کنید در غیر این‌صورت Install را کلیک کنید.

۸- بعد از اینکه Install را زدید، در صفحه Installation progress، پیشرفت مراحل نصب، نتیجه و پیام‌هایی از جمله هشدارها، خطاها و یا مراحل تایید پس از نصب موردنیاز برای نصب Windows PowerShell Web Access را نشان می‌دهد. پس از اینکه Windows PowerShell Web Access نصب شد باید فایل Readme را مطالعه‌ای مختصر بنمائید زیرا دستورالعمل‌های ابتدایی موردنیاز برای مسیر دریچه (Gateawy) را در برمی‌گیرد. این دستورالعمل‌ها در همین قسمت هم نیز آورده شده‌اند. مسیر فایل Readme این است. C:\Windows\Web\PowerShellWebAccess\wwwroot\README.txt.

مرحله دوم: پیکربندی Gateway

دستورالعمل‌های این قسمت برای نصب برنامه PowerShell Web Access در یک فهرست فرعی – و نه در یک مسیر اصلی – وب‌سایت هستند. این فرآیند معادل GUI محور اقدامات انجام شده توسط Install – psw a web application است.

این بخش همچنین دستورالعمل‌هایی برای چگونگی استفاده از IIS manager به منظور پیکربندی مسیر Gateway در Windows PowerShell Web Access به عنوان وب سایت اصلی است.

    استفاده از IIS  manager برای پیکربندی مسیر Gateway در سایت موجود.

    استفاده از IIS manager برای پیکربندی مسیر Gateway به عنوان یک وب‌سایت اصلی با گواهی قسمت.


استفاده از IIS  manager برای پیکربندی مسیرGateway در سایت موجود:

۱- کنسول IIS manager را به یکی از روش‌های زیر باز کنید.
  •     در صفحه دسکتاپ server manager را با کلیک بر روی آن در قسمت task bar ویندوز باز کنید. در منوی tools بر روی Internet Information server manager کلیک کنید.
  •     در قسمت Start ویندوز بخشی از عبارت Internet Information server manager را تایپ کنید. روی Shortcut که در قسمت Apps  ایجاد می‌شود کلیک کنید.

۲- یک مخزن نرم‌افزار برای  PowerShell Web Access ایجاد کنید.گره Gateway Server را در پنجره درخت IIS Manager گسترش دهید و گزینه Application tools را انتخاب کنید و روی گزینه Add application tools در پنجره Action  کلیک کنید.

۳- یک مخزن نرم‌افزار جدید با نام pswa_pool اضافه کنید و بر روی OK کلیک کنید.

۴- در قسمت پنجره درخت IIS Manager، گره‌ای که PowerShell Web Access بر روی آن نصب است را باز کنید تا پوشه Site پدیدار شود، آن را انتخاب کنید.

۵- بر روی وب‌سایتی (برای مثال default website) که می‌خواهید وب‌سایت PowerShell Web Access را به آن اضافه کنید راست کلیک کرده و سپس add application را بزنید.

۶- در قسمت Alias، PowerShell Web Access را تایپ کنید یا یک Alias دیگر را ارائه کنید. این Alias نام راهنمای مجازی می‌شود. مثلا pswa در URL زیر نشان‌دهنده نام عاریتی در این مرحله است. https://<servername>/pswa

۷- در قسمت Applicatin pool، مخزن برنامه‌ای که در مرحله ۳ ایجاد کرده بودید را انتخاب کنید.

۸- در قسمت Physical path، محل برنامه را مشخص کنید. می‌توانید از محل پیش‌فرض انتخاب کنید: windir/web و سپس ok را کلیک کنید.

۹- مراحل ذکر شده در قسمت پیکربندی گواهی SSL در IIS manager همین مقاله را بخوانید.

۱۰- مرحله امنیتی اختیاری: وقتی که وب‌سایت در پنجره درخت انتخاب شده است، در پنجره محتوا بر روی SSL Setting دابل کلیک کنید. گزینه repaire SSL را انتخاب کنید، سپس در پنجره actions روی گزینه apply کلیک کنید. می‌توانید در صورت تمایل در پنجره SSL
setting از کاربران متصل به وب سایت WPWA درخواست گواهی سرویس گیرنده کنید. گواهی سرویس‌گیرنده به شما کمک می‌کند هویت سرویس گیرنده را بررسی کنید.
۱۱- وب سایت Windows PowerShell Web access را باز کنید https://<Gateway-server-name>/pswa
مرورگر باید صفحه کنسول Windows PowerShell Web Access  را نشان دهد.

نکته: تا زمانی که به کاربران امکان دسترسی به سایت یا اضافه کردن قوانین داده نشود شما نمی‌توانید وارد سایت شوید.

۱۲- در یک قسمت از Windows PowerShell که با حقوق و امکانات بالا (Run as administrator) باز شده است، فایل آغازگر زیر را که در آن application_pool_name نشان‌دهنده نام مخزن برنامه‌ای است که در مرحله ۳ ایجاد کردید را اجرا کنید تا به مخزن برنامه امکان دسترسی به فایل‌ها داده شود.

استفاده از IIS Mmanager برای پیکربندی مسیر دریچه به عنوان وب سایت اصلی با گواهی تست:

۱- به یکی از روش‌های زیر کنسول IIS Manager را باز کنید.
  •     در صفحه دسکتاپ ویندوز Server manager را با کلیک بر روی آن در قسمت Taskbar ویندوز باز کنید. در قسمت tools در server manager روی Internet Information Services (IIS) Manager کلیک کنید.
  •     در صفحه شروع ویندوز قسمتی از Internet Information Services (IIS) Manager را تایپ کنید. بر روی shortcut که در قسمت apps نمایش داده می‌شود را کلیک کنید.

۲- در پنجره درخت IIS Nanager، گره سروری که روی آن وب سایت Windows PowerShell Web access را باز کنید تا پوشه سایت برای شما نشان داده شود. پوشه سایت را انتخاب کنید.

۳- در صفحه Actions بر روی Add Website کلیک کنید.

۴- نام وب‌سایت را تایپ کنید به عنوان مثال PowerShell Web Access را تایپ کنید.

۵- یک مخزن برنامه به صورت خودکار برای وب‌سایت ایجاد می‌شود. برای استفاده از یک مخزن برنامه متفاوت Select را کلیک کنید تا یک مخزن برنامه را برای ارتباط‌دهی با وب سایت جدید انتخاب کنید. مخزن برنامه جایگزین را در کادر Select Application Pool انتخاب کنید و Ok را بزنید.

۶- در کادر Physical path این آدرس را وارد کنید.

۷- در قسمت Type از بخش Binding گزینه https را انتخاب کنید.

۸- یک شماره پورت را که مورد استفاده وب‌سایت یا برنامه‌ای نیست به این وب‌سایت اختصاص دهید. برای موقعیت‌یابی پورت‌های باز می‌توانید دستور netstat را در Command Prompt اجرا کنید.
شماره پورت پیش فرض ۴۴۳ است.

اگر وب‌سایت دیگری از پورت ۴۴۳ استفاده می‌کند یا دلایل امنیتی دیگری دارید، شماره پورت را تغییر دهید. اگر وب‌سایت دیگری روی مسیر Gateway از شماره پورت انتخابی شما استفاده می‌کند، هنگامی‌که کلید OK را در کادر Add Website می‌زنید، هشدار نشان داده می‌شود بنابراین باید پورتی که استفاده نشده است را انتخاب کنید.

۹- در صورت تمایل اگر برای سازمان لازم است یک Host name (نام میزبان) را که معقول و مناسب کاربران و سازمان است را انتخاب کنید و Ok را بزنید.

۱۰- برای یک محیط تولید ایمن‌تر، توصیه می‌کنیم که از یک گواهی معتبر که توسط CA به امضا رسیده است را استفاده کنید. شما باید یک گواهی SSL ارائه کنید زیرا کاربران تنها از طریق وب‌سایت https می‌توانند به  PowerShell Web Access متصل شوند.

۱۱- روی گزینه ok کلیک کنید تا کادر Add Website بسته شود.

۱۲- در یک قسمت Windows PowerShell که با امکانات افزایش یافته کاربر (Run as Administrator) باز شده است، فایل آغازگر زیر را اجرا کنید که در آن application_pool_name نشان‌دهنده نام مخزن برنامه‌ای است که در مرحله ۴ ایجاد  کرده‌اید تا به مخزن برنامه اجازه دسترسی به فایل اجازه (authorization file) را داده باشید.
$applicationPoolName = <application_pool_name>
$authorizationFile = "C:\windows\web\powershellwebaccess\data\AuthorizationRules.xml"
c:\windows\system32\icacls.exe $authorizationFile /grant ('"' + "IIS AppPool\$applicationPoolName" + '":R') > $null
برای مشاهده حقوق دسترسی به فایل اجازه دستور زیر را اجرا کنید.
c:\windows\system32\icacls.exe $authorizationFile

۱۳- با وب سایت جدید انتخاب شده در پنجره درخت IIS Manager برای باز کردن و آغاز به کار وب‌سایت بر روی گزینه Start در پنجره action کلیک کنید.

۱۴- یک مرورگر را روی دستگاه یک سرویس گیرنده باز کنید.

۱۵- وب‌سایت Windows PowerShell Web Access را باز کنید.
از آنجا که وب سایت اصلی (root) به پوشه Windows PowerShell Web Access اشاره می‌کند و برمی‌گردد، مرورگر باید صفحه sign-in از Windows PowerShell Web Access را هنگامی که https://< gateway_server_name> را باز می‌کنید نشان می‌دهد نباید نیازی به اضافه کردن /pswa داشته باشد.

نکته: با به کاربران اجازه دسترسی به وب‌سایت، با اضافه کردن قوانین اجازه، داده نشود نمی‌توانید وارد شوند.

مرحله سوم: پیکربندی یک قانون با مجوز محدود

بعد از نصب  PowerShell Web Access و پیکربندی Gateway کاربران می‌توانند وارد صفحه ورود شوند اما تا زمانی که مدیر Windows PowerShell به آنها اجازه دسترسی ندهد نمی‌توانند وارد سایت شوند. دسترسی‌های  PowerShell Web Access با استفاده از مجموعه‌ای از Cmdlet های Windows PowerShell که در جدول زیر شرح داده شده است قابل کنترل است. هیچ رابط کاربری گرافیکی قابل مقایسه برای اضافه کردن یا مدیریت مجوز وجود دارد.

برای اضافه کردن قانون با مجوز محدود

۱- یکی از گزینه‌های زیر را برای باز کردن Windows PowerShell با استفاده از کاربران با سطح دسترسی بالا  انتخاب کنید:
  •     در دسکتاپ ویندوز، از قسمت Taskbar روی Windows PowerShell راست کلیک کنید و روی گزینه Run as Administartor کلیک کنید.
  •     در صفحه نمایش شروع ویندوز روی  Windows PowerShell راست کلیک کنید و روی گزینه Run as Administartor کلیک کنید.

۲- مراحل اختیاری را برای محدود کردن دسترسی کاربران با استفاده از تنظیمات Using Session انجام دهید. بررسی کنید که تنظیماتی که می‌خواهید در قوانین خود استفاده کنید، در حال حاضر وجود دارد.

۳- در ادامه دستور زیر را تایپ کنید و Enter را بزنید.

Add-PswaAuthorizationRule –UserName <domain\user | computer\user> -ComputerName <computer_name> -ConfigurationName<session_configuration_name>

۴- شما می‌توانید قانونی را که ایجاد کردید با استفاده از Get-PswaAuthorizationRule cmdlet و یا Test-PswaAuthorizationRule -UserName <domain\user | computer\user> -ComputerName چک کنید.
پس از این‌که قانون مجوز پیکربندی شده‌اند، شما برای ورود کاربران مجاز به کنسول مبتنی بر وب و شروع به استفاده  Powershell Web Access آماده هستید.

پیکربندی یک گواهینامه واقعی:

برای یک محیط تولید امن، همیشه از یک گواهینامه SSL معتبر که توسط مرجع صدور گواهینامه (CA) امضا شده است، استفاده کنید. در این قسمت نحوه به دست آوردن و استفاده از یک گواهینامه SSL که توسط CA امضا شده است را ارائه می‌دهیم.

پیکربندی یک گواهینامه SSL در IIS Manager:

۱- در پنجره درخت IIS Manager سروری که Powershell Web Access روی آن نصب است را انتخاب کنید.

۲- در پنجره محتوا بر روی Server Certificates دوبار کلیک کنید.

۳- در پنجره Action، یکی از گزینه‌های زیر را انجام دهید:
  •     برای وارد کردن گواهینامه معتبر از یک مکان از شبکه خود بر روی گزینه Import  کلیک کنید.
  •     برای درخواست یک گواهینامه از CA بر روی گزینه Create Certificate Request کلیک کنید.
  •     برای استفاده فوری از یک گواهی که بعدا می‌توانید توسط CA آن را امضا کنید بر روی گزینه Create a Self-Signed Certificate را کلیک کنید.

۴- پس از ایجاد یا به دست آوردن یک گواهینامه وب‌سایتی که می‌خواهید گواهینامه بر روی آن اعمال شود را انتخاب کنید. در پنجره درخت IIS Manager، روی گزینه Binding در پنجره درخت Action کلیک کنید.

۵- در کادر Add Site Binding، برای سایت Https را اضافه کنید اگر در حال حاضر نمایش داده نمی‌شود. اگر شما از یک گواهی خود امضا استفاده می‌کنید این مرحله نیاز نیست.

۶- گواهینامه‌ای که در مرحله ۳ ایجاد کردید یا به دست آوردید را انتخاب کنید و بر روی گزینه Ok کلیک کنید.

مدیریت IIS: فعال‌سازی و تنظیم IIS توسط PowerShell از راه دور

3.4kviews
مدیریت IIS سرورهای وب  از طریق GUI در صورتی که دسترسی به سرور داشته باشید بسیار ساده است، اما اگر شما نیز مثل من تعداد زیادی WebServer در موقعیت‌های مختلف و یا Cloud دارید دسترسی به کنسول سرور دشوار و یا بدتر از آن از RDP برای مدیریت آن‌ها استفاده می‌کنید که این روش شما اصلا منطقی و در راستای بهترین راه‌کارهای پیشنهاد توسط مایکروسافت نیست. راه‌کار بسیار بهتر و موثرتری برای مدیریت تعداد زیادی سرور از راه دور وجود دارد که همانا PowerShell Remoting برای مدیریت IIS است.


مراحل کار:

اگر قبلا این کار را از طریق GUI انجام داده‌اید در جریان مراحل انجام کار هستید، از طریق PowerShell نیز انجام این مراحل به همان شکل است با این تفاوت که بسیار سریعتر و کم‌دردسرتر است. ترتیب اجرای موارد به صورت زیر است:
۱- برقراری یک ارتباط (Session) با هر سرور
۲- نصب IIS Management Service
۳- فعال‌سازی IIS Management Service
۴- استارت سرویس WMSVC
۵- جایگزینی گواهینامه امنیتی Self-Signed
۶- اتصال از طریق IIS Manager

 

در این آموزش این سرویس را بر روی ۴ سرور مختلف با نام‌های web1,web2,web3 و web4 به صورت یک‌جا نصب خواهیم نمود.

۱- تعریف PowerShell Remoting برای Web Server ها برای مدیریت IIS

ابتدا یک متغیر با نام $Servers ایجاد می‌کنیم و تمامی نام‌های کامپیوترها را درون آن قرار می‌دهیم. شما نیز می‌توانید لیست آن‌ها را از یک فایل .csv و یا .txt نیز فراخوانی کنید. اگر سرورهای شما در Active Directory هستند می‌توانید با استفاده از دستور Get-ADComputer نیز سرورهای مقصد خود را شناسایی نمائید.
PS C:\ZAGRIO> $Servers = "web1,web2,web3,web4"
سپس یک Session به سمت هر سرور ایجاد می‌کنیم:
PS C:\ZAGRIO> $Sessions = New-PSSession -ComputerName $Servers

۲- نصب سرویس IIS Remote Management

با استفاده از دستور زیر برای تمامی سرورها سرویس IIS Remote Management را نصب میکنیم.
PS C:\ZAGRIO> Invoke-Command –Session $Sessions –ScriptBlock {Install-WindowsFeature Web-Mgmt-Service}

پس از نصب لازم است سرویس را فعال کنیم اما برای این کار cmdlet وجود ندارد

۳- فعال‌سازی سرویس Management Service برای مدیریت IIS

به صورت پیش‌فرض سرویس مدیریت IIS بر روی پورت ۸۱۲۷ فعال است. همچنین به صورت پیش‌فرض با نصب این سرویس یک گواهینامه امنیتی Self-Signed با مدت اعتبار ۱۰ سال نیز ایجاد می‌گردد. اگر در شبکه داخلی از این امکان می‌خواهید استفاده کنید این مورد اشکالی ندارد اما در ادامه به شما نشان خواهیم داد که به چه صورت آن را با یک گواهینامه امنیتی مورد اعتماد جایگرین نمائید. برای فعال‌سازی سرویس از دستور زیر استفاده می‌کنیم:

PS C:\ZAGRIO> Invoke-command –Session $Sessions -ScriptBlock{Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\WebManagement\Server -Name EnableRemoteManagement -Value 1}
حال سرویس شما فعال شده است اما کماکان لازم است سرویس مورد نظرstart شود .

۴- روشن کردن سرویس Management Service

با استفاده از دستورات زیر سرویس را start کرده و در حالت Automatic نیز قرار می‌دهیم تا با هر بار restart شدن سرور، سرویس مجددا فعال شود.
PS C:\ZAGRIO> Invoke-command –Session $Sessions -ScriptBlock {Set-Service -name WMSVC -StartupType Automatic}

PS C:\ZAGRIO> Invoke-command –Session $Sessions -ScriptBlock {Start-service WMSVC}

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

۵- جایگزین کردن گواهینامه امنیتی برای مدیریت IIS

شما می‌توانید یک گواهینامه امنیتی معتبر را از یک سرویس‌دهنده و یا Active Directory Certificate Services برای مدیریت سرورهای داخلی دریافت کنید.
گواهینامه را با فرمت .pfx به همراه یک کلمه عبور ذخیره کنید سپس با استفاده از دستور CertUtil.exe آن را نصب نمائید.
ابتدا فایل را در هر سرور کپی کنید سپس:

PS C:\ZAGRIO> $Servers | Foreach-Object {Copy-Item -Path C:\Remote.Company.loc.pfx -Destination "\\$_\c$"}
PS C:\ZAGRIO> Invoke-Command -Session $Sessions {certutil -p P@ssw0rd -importpfx c:\Remote.company.loc.pfx}
توجه داشته باشید که رمز عبور به صورت PLAIN در کد وجود دارد با توجه به اینکه ارتباط PS Remoting امن و کدگذاری شده است جای نگرانی وجود ندارد اما پیشنهاد می‌شود در اسکریپت‌های خودکار از این مهم اجتناب کنید.
پس از نصب فایل‌های .pfx را به دلایل امنیتی حذف کنید:
PS C:\ZAGRIO> $Servers | Foreach-Object {Remove-Item -Path "\\$_\c$\remote.Company.loc.pfx"}
در این مرحله لازم است Thumbprint گواهینامه امنیتی نصب شده را دریافت و آن را با سرویس Management Service جایگزین نمائید. برای این کار به PSProvider مربوطه به IIS نیاز دارید. ماژول WebAdministration را با دستور زیر فراخوانی کنید:
PS C:\ZAGRIO> Invoke-Command -Session $Sessions {Import-Module WebAdministration}
Thumbprint گواهینامه امنیتی را دریافت کنید:
PS C:\ZAGRIO> Invoke-Command -Session $Sessions {$cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where {$_.subject -like "*company*"} | Select-Object -ExpandProperty Thumbprint}
تنظیمات قبلی SSL Binding را حذف کنید:
PS C:\ZAGRIO> Invoke-command -Session $Sessions {Remove-Item -Path IIS:\SslBindings\0.0.0.0!8172}
تنظیمات جدید SSL Binding را اعمال کنید:
PS C:\ZAGRIO> Invoke-Command -Session $Sessions {Get-Item -Path "cert:\localmachine\my\$cert" | New-Item -Path IIS:\SslBindings\0.0.0.0!8172}
حالا شما آماده اتصال به سرور از طریق یک GUI دیگر هستید!

۶- اتصال به سرور از طریق IIS Manager

پنجره مدیریت IIS را باز کنید و در صفحه اصلی در سمت چپ بر روی …Connect to a server کلیک کنید، نام سرور و مشخصات کاربری و رمز عبور را وارد نمائید. حال مشخصات شما و سرور جدید در سمت چپ ایجاد خواهد شد.

پایان

هر چند تنظیمات SSL ممکن است کمی پیچیده و با دردسر باشد اما کل منطق کار بسیار ساده است. شخصا به دلیل استفاده از PowerShell DSC این مراحل را مانند زمان قدیم تکرار نمی‌کنم. PowerShell Desired State Configuration این امکان را به شما می‌دهد تا تمامی تنظیمات موردنیاز خود را فعال و تنظیم کنید. پیشنهاد می‌کنم از این امکان حتما بازدید و استفاده نمائید.