مدیریت 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 این امکان را به شما می‌دهد تا تمامی تنظیمات موردنیاز خود را فعال و تنظیم کنید. پیشنهاد می‌کنم از این امکان حتما بازدید و استفاده نمائید.
SQL Server

اتصال به SQL Server با استفاده از SQL Managment Studio

18.8kviews

نرم‌افزار SQL Server Management Studio، یا به اختصار SSMS یک محیط یکپارچه برای مدیریت، اعمال تنظمیات، دسترسی و طراحی انواع قسمت‌های اس کیو ال سرور است. این نرم‌افزار امکان دسترسی، طراحی و مدیریت دیتابیس‌های اس کیو ال سرور، برای تمامی طیف‌های افراد مبتدی و حرفه‌ای را فراهم می‌کند. در زاگریو به بررسی این مبحث کاربردی خواهیم پرداخت.

SQL Server چیست

قبل از هر چیزی باید به بررسی معنی SQL Server، در بخش مدیریت سرور بپردازیم.  SQL که به عبارت سیکوئل نیز معروف است، مخفف عبارت Structured Query Language می‌باشد. اِس کیو اِل، یک زبان استاندارد برای دسترسی و کار با پایگاه‌داده (database) است. این زبان از سال ۱۹۸۷ یک زبان استاندارد بین المللی (ISO) بوده است.

نحوه اتصال به بانک اطلاعاتی sql server با استفاده از SQL Managment Studio

  • ابتدا کاربر باید این نرم‌افزار را تهیه کرده و بر روی کامپیوتر خود نصب کند.
  • پس از نصب نرم‌افزار از منوی Start در قسمت All Programs نرم‌افزار را اجرا کنید.
  • پس از اجرای نرم‌افزار SQL Server Management Studio فرم Connect to Server، باز می‌شود، اطلاعات مورد نیاز را مطابق دستورات زیر وارد می‌کنیم (دقت کنید که مرحله به مرحله کارها را انجام دهید).
  • Server Type (مدل سرور): پیش‌فرض را انتخاب می‌کنیم.
  • Server name (نام سرور): نام سروری که را از طریق ایمیل برای شما فرستاده شده است را وارد می‌کنیم.
  • Login و Password: در این قسمت نام یوزر و پسورد بانک اطلاعاتی مربوطه را وارد می‌کنیم.
  • بر روی دکمه Connect کلیک کنید و صبر کنید تا کانکت شود.

SQL Server

  • پس از اتصال دیتابیس‌های موجود بر روی سرور برای ما نمایش داده خواهد شد. ✔️
SQL Managment

یک نکته مهم | چه برای سرور مجازی و چه سرور اختصاصی

۱.   پس از اتصال تمام دیتابیس‌های موجود بر روی سرور نمایش داده می‌شود، شما فقط می‌توانید به دیتابیس‌هایی که مالک آن‌ها هستید، دسترسی داشته باشید. دسترسی به سایر دیتابیس ها امکان پذیر نمی‌باشد.

۲.   مطمئن شوید فایروال سیستم شما و یا محدودیت‌های شبکه یا سرویس دهنده اینترنت شما پورت 1430 را مسدود نکرده باشد. در این صورت برای رفع مشکل با پشتیبان اینترنت یا مدیر شبکه خود تماس بگیرید.

میزبانی وب زاگریو

نحوه LoadBalance کردن IP ها برای ایمیل‌های ارسالی توسط Exchange

1.5kviews

در این آموزش به شما نحوه Load Balance کردن آدرس IP های خروجی (IP ارسال ایمیل) در Microsoft Exchange را آموزش خواهیم داد.

تصور کنید شما یک یا دو سرور Edge برای ارسال ایمیل دارید و در مدت زمان کوتاهی مشتریان شما تعداد زیادی ایمیل را ارسال می‌کنند. پس از مدتی سرویس‌دهنده‌های بزرگ مثل Hotmail، Yahoo یا Gmail آدرس IP های شما را مسدود خواهند نمود.

عموما دلیل این مسدودی ارسال تعداد زیادی ایمیل از یک آدرس IP است. حال تصور کنید هر دو آدرس Public سرورهای Edge شما مسدود شود. در این صورت هیچگونه ایمیلی از سمت شما به این سرویس‌دهنده‌ها ارسال نخواهد شد و تماما در صف انتظار قرار خواهند گرفت.

مشکل در اینجا این است که در سرورهای Edge شما تنها یک آدرس IP برای ایمیل‌های خروجی تعریف شده است.

نرم‌افزارهای ارسال ایمیل همچون Ironpot و برخی از نرم‌افزارهای ضداسپم لینوکس این امکان را به شما می‌دهند که چندین آدرس IP را برای ایمیل‌های ارسالی در نظر بگیرید تا با این مشکل مواجه نشوید، اما آیا Exchange نیز همچنین امکانی دارد؟

البته به این شکل خیر، اما روشی برای تنظیم Custom Transport Agent در Exchange وجود دارد.

Load Balance کردن Transport Agent

مقدار Send Connector در این سیستم دارای خصوصیتی تحت عنوان “SourceIPAddress” است. این آدرس IP یکی از آدرسهایی خواهد بود که Exchange برای ارسال ایمیل از آن استفاده خواهد نمود.
پس در اولین مرحله تعدادی آدرس IP اضافه خواهیم نمود.

192.168.1.240 EDGE Server IP
192.168.1.241 Outbound SMTP IP Address 1
192.168.1.242 Outbound SMTP IP Address 2
192.168.1.243 Outbound SMTP IP Address 3

در تنظیمات ما، سرور Edge در محیط DMZ  است و یک ارتباط NAT یک به یک در شبکه ما فی‌مابین آدرس‌های داخلی و خارجی وجود دارد.

ممکن است تصور کنید با اضافه کردن چندین آدرس IP مشکل حل خواهد شد اما اشتباه کرده‌اید!

Microsoft Exchange در بین چندین Send Connector که یک Cost برای آنها تعریف شده است امکان Load Balance ندارد.
این نرم‌افزار با شرایط زیر نسبت به انتخاب Send Connector اقدام می‌کند:

۱- اگر در تنظیمات گیرنده Send Connector مقدار مشخصی مانند contoso.com تعریف شده باشد نسبت به “*” دارای اولویت است.
۲- ردیفی را انتخاب خواهد کرد که دارای کمترین Cost است.
۳- اگر چندین ردیف با Cost یکسان وجود داشته باشد بر مبنای نام آنها به ترتیب حروف الفبا انتخاب خواهد کرد.

ممکن است شما بخواهید با استفاده از یک اسکریپت نام Send Connector را هر دقیقه یک‌بار تغییر دهید که پیشنهاد نمی‌شود! بهتر است از روش هوشمندانه زیر استفاده کنید:

مرحله بعدی تنظیم Send Connector ها است:

New-SendConnector Connector1 -AddressSpaces "connector1.local" -SourceIPAddress 192.168.1.241
New-SendConnector Connector2 -AddressSpaces "connector2.local" -SourceIPAddress 192.168.1.242
New-SendConnector Connector3 -AddressSpaces "connector3.local" -SourceIPAddress 192.168.1.243
در SDK Exchange 2010 به بالا روشی برای ارسال ایمیل‌ها به ازای هر گیرنده وجود دارد و صرفا شما کافی‌ست به ازای هر گیرنده آن‌ها را به Connector مربوطه متصل نمائید.
با استفاده از تابع RoutingOverride ما تمامی ایمیل‌های در صف انتظار را می‌توانیم به سمت Connector مورد نظر خود هدایت کنیم. اطلاعات تکمیلی در خصوص تابع RoutingOverride در لینک زیر موجود است:

نحوه نصب routeBalancer

برای نصب این Agent باید اسکریپت installRouteBalancer.ps1 را اجرا کنید و سپس مراحل زیر را انجام دهید.

۱- سرویس MSExchangeTransport را غیرفعال کنید.
۲- فولدر “C:\Program Files\Microsoft\Exchange Server\V14\TransportRoles\agents\routeBalancer” را ایجاد کنید.
۳- فایل‌های routeBalancer.dll  و RouteBalancerConfig.xml را در پوشه‌ای که ایجاد کرده‌اید کپی کنید.
۴- Agent را نصب و فعال کنید.
۵- سرویس MSExchangeTransport را فعال کنید.

نحوه مدیریت سیستم

این Agent تعداد Send Connector ها را می‌خواند و همچنین آدرس‌های IP را از RouteBalancerConfig.xml نیز می‌خواند. این فایل باید در کنار فایلهای dll دیگر باشد.
در صورتی که تمایل به عدم ارسال از یک آدرس IP دارید، مثلا برای غیرفعال کردن Connector2 باید:

۱- ابتدا مقدار Address Space را درون Send Connector ها از “connector3.local” به “connector2.local” تغییر دهید.
۲- سپس “connector2.local” را به اسمی دیگر مثلا “disabled.local” تغییر نام دهید.
۳- نام Send Connectory را مثلا به “Disabled” تغییر نام دهید. (فقط جهت شفاف‌سازی و اطلاع خودتان، تغییر در نام آن‌ها تاثیری بر Agent ندارد)
۴- مقدار numConnectors در فایل RouteBalancerConfig.xml را از ۳ به ۲ تغییر دهید.
۵- سرویس MSExchangeTransport  را ری‌استارت کنید.

چگونه هاست‌های مجازی آپاچی را در CentOS7 راه اندازی کنیم؟

2.8kviews

مقدمه:

وب سرور آپاچی یکی از محبوب‌ترین راه‌کار برای سرویس‌دهی به محتوی وب است که بسیار قدرتمند و منعطف است.
آپاچی به عملکرد و اجزای منحصربه‌فردی تجزیه می‌شود که می‌تواند به صورت سفارشی و مستقل پیکربندی شود. واحد پایه‌ای که یک سایت خاص با یک دامنه را توصیف می‌کند یک میزبان مجازی (virtual host) نامیده می‌شود. میزبان مجازی به یک سرور اجازه می‌دهند چندین دامین متعدد یا رابط را با استفاده از تطابق سیستم میزبانی کند. این مورد مربوط می‌شود به افرادی که یک سرور مجازی (VPS) را برای میزبانی بیشتر از یک سایت می‌خواهند. هر دامینی که پیکربندی می‌شود بازدیدکنندگان را به سمت یک دایرکتوری خاص که اطلاعات مربوط به سایت را نگهداری می‌کند، هدایت می‌کند. همان سرور برای سایت‌های دیگر مسئول است. این طرح بدون هیچگونه محدودیت نرم‌افزاری تا زمانی که سرور شما می‌تواند ترافیک تمام سایت‌های مجذوب را رسیدگی کند، قابل ارتقا است.
در این مقاله ما می‌خواهیم آموزش دهیم گه چگونه چند میزبان مجازی آپاچی را بر روی سرور مجازی CentOS7 پیاده‌سازی کنیم. در طی این فرآیند شما یاد می‌گیرید که چگونه برای محتوای متفاوت به بازدیدکنندگان متفاوتی که به دامنه‌های مختلفی را درخواست کرده‌اند، خدمات گوناگونی را ارائه دهید.

پیش‌نیازها:

قبل از اینکه طبق این راهنما شروع کنید چند مرحله وجود دارد که لازم است تکمیل شود.
شما نیاز دارید که به یک سرور CentOS7 یا یک کاربر غیر از root دسترسی داشته باشید که این کاربر امتیازات Sudo(sudo privileges) را داشته باشد. اگر هنوز تنظیماتی را انجام نداده‌اید می‌توانید با استفاده از این لینک این کاربر را ایجاد کنید.
همچنین شما برای پیکربندی میزبان‌های مجازی بر روی سرور نیاز دارید که یک آپاچی نصب کنید. اگر قبلا این کار را انجام نداده‌اید می‌توانید با استفاده از دستور yum آپاچی را طریق مخازن نرم‌افزاری پیش‌فرض CentOS نصب کنید.

 

sudo yum -y install httpd

در ادامه، آپاچی را به عنوان یک سرویس CentOS فعال کنید که بعد از reboot کردن سیستم به صورت خودکار آغاز می‌شود.

sudo systemctl enable httpd.service

بعد از اینکه این مراحل کامل شد، از طریق SSH بعنوان یک کاربر غیرریشه‌ای (non-root) به سیستم وارد شوید و آموزش را ادامه دهید.

مرحله اول: ایجاد ساختار دایرکتوری

در ابتدا ما نیاز داریم یک ساختار دایرکتوری ایجاد کنیم که اطلاعات سایت را برای ارائه خدمات به بازدیدکنندگان در آنجا نگهداری کنیم.
اسناد ریشه ما (document root: بالاترین سطح از دایرکتوری که به نظر می‌رسد آپاچی برای پیدا کردن مطالب و ارائه خدمات آن را جستجو می‌کند) به دایرکتوری‌های منحصربه‌فردی در دایرکتوری /var/www تنظیم می‌شوند. ما یک دایرکتوری برای هر یک از میزبان‌های مجازی که قصد ایجاد آن را داریم، ایجاد خواهیم کرد.
در هر یک از دایرکتوری‌ها، یک دایرکتوری public_html ایجاد خواهیم کرد که فایل‌های واقعی را در آن نگهداری شود. این کار انعطاف‌پذیری بیشتری در میزبانی می‌دهد.
ما می‌توانیم این دایرکتوری‌ها را با استفاده از دستور mkdir (استفاده از –p که اجازه می‌دهد که یک پوشه درون پوشه دیگری ایجاد کنیم) بسازیم.

 

sudo mkdir -p /var/www/itse.com/public_html
sudo mkdir -p /var/www/itse2.com/public_html

مرحله دوم: اعطای مجوز

در حال حاضر ما یک ساختار دایرکتوری برای فایل‌های خود داریم. اما آن‌ها به کاربر ریشه (root) تعلق دارند. اگر ما بخواهیم که کاربران به طور منظم قادر به تغییر فایل‌ها در دایرکتوری‌های وب‌سایت ما باشند، می‌توانیم با استفاده از دستور chown مالکیت آن‌ها را تغییر دهیم:

sudo chown -R $USER:$USER /var/www/itse.com/public_html
sudo chown -R $USER:$USER /var/www/itse2.com/public_html

متغییر $USER نام همان کاربری را خواهد گرفت که شما اخیرا با آن وارد سیستم شده‌اید در زمانی که دستور را ارسال می‌کنید. با انجام این کار، کاربران منظم ما مالک دایرکتوری‌های public_html جایی که ما محتوای خود را ذخیره می‌کنیم، هستند.
همچنین باید مجوزهایمان را طوری اصلاح کنیم که با کمی تغییر مطمئن شویم که دسترسی خواندن به دایرکتوری وب و همه فایل‌ها و فولدرهای درون آن به طور کلی مجاز است. بنایراین صفحاتی که را می‌توان به درستی به کار گرفت:

sudo chmod -R 755 /var/www

وب سرور شما در حال حاضر باید مجوزهای مورد نیاز برای خدمات محتوا و کاربران شما که قادر هستند محتوا را در داخل پوشه‌های مناسب ایجاد کنند، را داشته باشد.

مرحله سوم: ایجاد نسخه نمایشی صفحات برای هر میزبان مجازی

حالا که ما یک ساختار دایرکتوری را داریم، اجازه دهید که برخی از مطالب را برای استفاده ایجاد کنیم.
زیرا که این تنها راه برای نمایش و آزمایش است، صفحات ما بسیار ساده خواهند بود. ما فقط صفحه index.html برای هر سایت ایجاد می‌کنیم که آن دامنه خاص را شناسایی می‌کند.
اجازه دهید که با example.com شروع کنیم. ما می‌توانیم یک فایل index.html را در ویرایشگر با تایپ کردن دستور زیر باز کنیم:

nano /var/www/itse.com/public_html/index.html

در این فایل یک سند HTML ساده ایجاد می‌شود که سایتی را نشان می‌دهد که این صفحه به آن متصل است. در این آموزش فایلی که برای اولین در دامنه ما نمایش داده می‌شود، مطابق زیر است:

<html>
<head>
<title>Welcome to Itse.com!</title>
</head>
<body>
<h1>Success! The itse.com virtual host is working!</h1>
</body>
</html>

بعد از اتمام این مرحله فایل را ذخیره کنید و ببندید.

ما می‌توانیم با تایپ کردن دستور زیر این فایل را به عنوان یک الگو برای استفاده در index.html سایت دوممان کپی کنیم.

cp /var/www/itse.com/public_html/index.html /var/www/itse2.com/public_html/index.html

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

nano /var/www/itse2.com/public_html/index.html
<html>
<head>
<title>Welcome to itse2.com!</title>
</head>
<body>
<h1>Success! The itse2.com virtual host is working!</h1>
</body>
</html>

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

مرحله چهارم: ایجاد فایل میزبان مجازی جدید

فایل‌های میزبان مجازی برای سایت‌های جداگانه ما طوری پیکربندی شده‌اند که مشخص می‌کنند چگونه وب سرور آپاچی به درخواست دامنه‌های متفاوت پاسخ دهند.
برای شروع، ما نیاز داریم که یک دایرکتوری را راه‌اندازی کنیم که میزبان‌های مجازی ما در آن ذخیره شوند و همچنین دایرکتوری که به آپاچی می‌گوید که یک میزبان مجازی آماده پاسخگویی به بازدیدکنندگان است.
دایرکتوری sites-available همه فایل‌های میزبان مجازی ما را نگهداری خواهد کرد. درحالی‌که دایرکتوری sites-enabled لینک‌های نمادین ماشین میزبان‌های مجازی که ما می‌خواهیم انتشار دهیم را نگهداری می‌کند. ما با تایپ دستورات زیر می‌توانیم هر دو دایرکتوری را ایجاد کنیم:

sudo mkdir /etc/httpd/sites-available
sudo mkdir /etc/httpd/sites-enabled

در ادامه ما باید به آپاچی بگوییم که میزبان‌های مجازی را در دایرکتوری sites-enabled مشاهده کند. برای انجام این کار، ما فایل اصلی پیکربندی آپاچی را ویرایش می‌کنیم و یک خط که یک دایرکتوری اختیاری را برای پیکربندی اضافی فایل‌ها اعلام می‌کند را اضافه می‌کنیم:

sudo nano /etc/httpd/conf/httpd.conf

این خط را به انتهای فایل اضافه کنید:

IncludeOptional sites-enabled/*.conf

بعد از اضافه کردن این خط فایل را ذخیره کنید و ببندید. اکنون ما آماده‌ایم اولین فایل میزبان مجازی را ایجاد کنیم.

ایجاد اولین فایل میزبان مجازی:

با باز کردن یک فایل جدید در ویرایشگر خود با دسترسی root شروع کنید:

sudo nano /etc/httpd/sites-available/itse.com.conf

در ابتدا، با ایجاد یک جفت tag برچسب محتوا به عنوان یک ماشین مجازی که درحال گوش دادن به پورت ۸۰ (پورت پیش‌فرض HTTP) است، شروع کنید:

<VirtualHost *:80>
</VirtualHost>

در ادامه نام سرور اصلی را اعلام کنید. در اینجا ما به عنوان مثال www.itse.com را وارد کرده‌ایم. ما همچنین نام مستعار سرور را به itse.com اشاره می‌دهیم به‌طوری‌که درخواست‌ها برای www.itse.com و itse.com با محتوای یکسان ارسال می‌شوند:

<VirtualHost *:80>
ServerName www.itse.com
ServerAlias itse.com
</VirtualHost>

نکته: برای اینکه نسخه‌های www از دامنه به درستی کار کنند پیکربندی DNS های دامنه نیاز به یک A record یا CNAME دارند که درخواست‌های www را به IP سرور اشاره دهد. برای کلمات (*) رکورد نیز کار می‌کند. برای اطلاعات بیشتر در مورد DNS این لینک را مطالعه نمائید.

در نهایت، ما با اشاره به دایرکتوری root از اسناد وب‌سایتمان که در دسترس عموم است کار را پایان می‎دهیم. ما همچنین به آپاچی می‌گوییم که خطاها و درخواست log های مربوط به این سایت خاص را در کجا ذخیره کند:

<VirtualHost *:80>
ServerName www.itse.com
ServerAlias itse.com
DocumentRoot /var/www/itse.com/public_html
ErrorLog /var/www/itse.com/error.log
CustomLog /var/www/itse.com/requests.log combined
</VirtualHost>

هنگامی که نوشتن این موارد به پایان رسید می‌توانید این فایل را ذخیره کنید و ببندید.

کپی کردن اولین میزبان مجازی و سفارشی‌سازی آن برای دامنه‌های اضافی:

حالا که اولین فایل میزبان مجازی خود را ایجاد کردیم، ما می‌توانیم با کپی کردن این فایل و تنظیم موارد مورد نیاز دومین میزبان مجازی را ایجاد کنیم.
با استفاده از دستور cp کپی را شروع کنید:

sudo cp /etc/httpd/sites-available/itse.com.conf /etc/httpd/sites-available/itse2.com.conf

یک فایل جدید با دسترسی root در ویرایشگر خود باز کنید:

sudo nano /etc/httpd/sites-available/itse2.com.conf

شما اکنون نیاز دارید که تمامی قسمت‌های اطلاعاتی را که به دامین دوم شما ارجاع داده می‌شود را تغییر دهید. بعد از اینکه کار شما تمام شد، فایل‌های میزبان مجازی دوم شما ممکن است چیزی شبیه به این باشد:

<VirtualHost *:80>
ServerName www.itse2.com
DocumentRoot /var/www/itse2.com/public_html
ServerAlias itse2.com
ErrorLog /var/www/itse2.com/error.log
CustomLog /var/www/itse2.com/requests.log combined
</VirtualHost>

وقتی که انجام این تغییرات به پایان رسید، می‌توانید فایل را ذخیره کنید و ببندید.

مرحله پنجم: فعال کردن فایل میزبان مجازی جدید

اکنون که فایل‌های میزبان مجازی را ایجاد کرده‌ایم، باید آنها را فعال کنیم تا آپاچی برای استفاده از آن‌ها برای بازدیدکنندگان آنها را شناسایی کند. برای انجام این کار، ما می‌توانیم لینک نمادین را برای هر میزبان مجازی در دایرکتوری ites-enabled ایجاد کنیم:

sudo ln -s /etc/httpd/sites-available/itse.com.conf /etc/httpd/sites-enabled/itse.com.conf
sudo ln -s /etc/httpd/sites-available/itse2.com.conf /etc/httpd/sites-enabled/itse2.com.conf

هنگامی که کار شما به پایان رسید برای اعمال تغییرات Apache را ری‌استارت کنید:

sudo apachectl restart

مرحله ششم: راه‌اندازی فایل میزبان‌های محلی (اختیاری)

اگر شما برای تست این روش از دامنه‌های example به جای دامنه‌های واقعی استفاده می‌کنید، شما همچنان می‌توانید قابلیت‌های میزبان‌های مجازی خود را بطور موقت با تغییر در فایل‌های میزبان کامپیوتر خود تست نمائید. این عمل هرگونه درخواست برای دامین‌هایی که شما پیکربندی کرده‌اید و به سرور VPS خود اشاره داده‌اید را جدا می‌کند. فقط یک سیستم DNS می‌تواند این کار را انجام دهد اگر شما از دامنه‌های ثبت شده استفاده کنید. هرچند این کار فقط به روی کامپیوتر شما انجام می‌شود و به سادگی برای آزمایش اهدافتان مفید است.

نکته: مطمئن شوید که این مراحل را روی کامپیوتر محلی خود انجام می‌دهید نه روی سرور مجازی‌تان. شما نیاز دارید که به اعتبارنامه‌های اداری برای این کامپیوتر دسترسی داشته باشید.

اگر شما بر روی یک کامپیوتر Mac با Linux هستید، می‌توانید با تایپ دستور زیر فایل میزبان‌های محلی خود را با دسترسی مدیریتی ویرایش کنید:

sudo nano /etc/hosts

اگر شما بر روی یک ماشین ویندوز هستید، می‌توانید دستورالعمل را در مورد تغییر فایل میزبان از اینجا پیدا کنید.

جزئیاتی که نیاز دارید اضافه کنید، IP آدرس‌های عمومی سرور مجازی شما به همراه دامنه‌هایی که برای رسیدن به آن سرور مجازی می‌خواهید، هستند:

127.0.0.1 localhost
127.0.1.1 guest-desktop
server_ip_address itse.com
server_ip_address itse2.com

این دستورات هر درخواستی که برای itse.com و itse2.com بر روی کامپیوتر محلی ما فرستاده می‌شود و آنها را بر روی سرور ما server_ip_address ارسال می‌کند.

مرحله هفتم: نتایج آزمون شما

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

http://itse.com

شما باید یک صفحه مانند زیر مشاهده کنید.

به همین ترتیب اگر شما دامنه‌های دیگرتان را بازدید کنید، فایل‌هایی را که ایجاد کرده‌اید را می‌بینید.

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

نتیجه:

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

مدیریت از راه دور توسط Powershell(آموزش)

2.6kviews

یکی از ویژگی‌های کمتر شناخته شده در Windows PowerShell 2.0 این است که به راحتی می‌توانید انعطاف‌پذیری باورنکردی را به محیط خود اضافه کنید مدیریت از راه دور است. تصور اینکه کامپیوترهای مشتری‌های شما ویندوز XP را اجرا می‌کنند و domain controllers های شما از Windows Server 2003 استفاده می‌کنند هنوز یک سناریوی متداول است. شما می‌توانید از Windows PowerShell 2.0 برای هردوی این سیستم عامل‌ها استفاده کنید. اما ممکن است قادر به استفاده از جدیدترین ماژول‌های Windows PowerShell cmdlet نباشید. مانند ماژول Active Directory همراه با Windows Server 2008 R2. این ماژول‌های بر روی ورژن‌های قدیمی ویندوز اجرا نمی‌شوند. مشکل خاصی وجود ندارد. فقط ویندوز ۷ یا Windows Server 2008 R2 را بر روی یک کامپیوتر در محیط خودنصب کنید (ماژول اکتیو دایرکتوری در هرکدام از سیستم عامل‌ها اجرا خواهد شد).

به عنوان مثال شما می‌توانید یک Windows Server 2008 R2 domain controller را نصب کنید چرا که هردو ماژول Active Directory و خدمات Active Directory management gateway که با آن ارتباط برقرار می‌کنند را فراهم می‌کند. می‌توانید gateway service را دانلود کنید و آن را روی Windows Server 2008 و Windows Server 2003 نصب کنید.

با استفاده از Enable-PSRemoting در Windows PowerShell دسترسی از راه دور و WinRM را روی یک domain controller جدید تعریف کنید، سپس Windows PowerShell 2.0 را روی ویندوز XP یکی از کلاینت‌های خود فعال کنید و خودتان را برای انجام کارهای جادویی آماده کنید.

ساخت یک ماژول برای مدیریت از راه دور:

یا ایجاد یک جلسه Remote به domain controller جدید شروع کنید.

$session = New-PSSession -computerName my-new-dc

نام صحیح کامپیوتر را در محل my-new-dc وارد کنید. شما می‌توانید پارامترهای اضافی مانند alternate credentials یا پورت‌های alternate WinRM را مشخص کنید. برای جزئیات بیشتر help new-pssession را اجرا کنید.

در ادامه با استفاده از Remote به عنوان مثال به Windows PowerShell بگویید کهActive Directory cmdlets بارگذاری کند.

Invoke-command { import-module activedirectory } -session $session

قسمت جالب این است که شما بر روی همین سیستمی که از Windows PowerShell آن استفاده می‌کنید می‌توانید دستورات ماژول Active Directory را با استفاده از دستور زیر از سرور Remote بر روی کامپیوتر خود فراخوانی کنید.

Export-PSSession -session $session -commandname *-AD* -outputmodule RemAD -allowclobber

این دستور یک ماژول جدید از Windows PowerShell را در فولدر Documents زیر WindowsPowerShell\Modules\RemAD ایجاد می‌کند. فقط دستوراتی که نام آن‌ها با الگوی “*-AD*” مطابقت داشته باشد را شامل می‌شود. این یکی از بزرگترین دلایل دستورات افزودنی در استفاده از نوعی پیشوند مانند “AD” بعنوان بخشی از نام cmdlet است. انجام این کار باعث می‌شود گرفتن آن دسته از cmdlet ها آسانتر شود.

Cmdlet ها در واقع در کامپیوترهای محلی کپی نمی‌شوند. در عوض ماژول خدمات به صورت محلی یک shortcut ایجاد می‌کند. این cmdlet ها همیشه در remote domain controller اجرا خواهند شد اما به نظر می‌رسد که cmdlet ها به صورت محلی در حال اجرا است.

استفاده از cmdlet ها:

با حذف جلسه از remote domain controller شروع کنید:

Remove-PSSession -session $session

اکنون یک ماژول جدید را بارگذاری کنید:

Import-Module RemAD -prefix Rem

این دستور یک ماژول جدید به حافظه بارگذاری می‌کند و پیشوند “Rem” به نام هر cmdlet در آن ماژول اضافه خواهد شد. پیشوند یک راه خوب است تا برای شما یادآوری کنیم که این cmdlet ها به صورت Remote انجام می‌شوند. شما می‌توانید هر پیشوندی را که دوست دارید می‌توانید انتخاب کنید.

سعی کنید از یک remote cmdlet درخواست کمک کنید.

Help New-RemADUser

شما یک خطا را مشاهده می کنید زیرا یک remoting session بین کامپیوتر شما و domain controller که cmdlet ها در آن وجود دارند ایجاد نشده است. نیازی نیست که شما به طور واضح آن جلسه را شروع کنید. شما به طور ضمنی می‌توانید این کار را با اجرای یکی از remoted cmdlets انجام دهید:

Get-RemADUser -filter "Name -like 'D*'"

این دستور ارتباط remote را به domain controller و ارائه دستور برای اجرا و اجرای فرمان در domain controller را مجددا نمونه‌سازی خواهد کرد. سپس هر کاربری که نامش با ‘D’ شروع می‌شود را در XML مرتب می‌کند و به تمام شبکه کامپیوتر شما انتقال می‌دهد. شما می‌توانید آن‌ها از مرتبا به اشیاهایی که در خط لوله Windows PowerShell کار می‌کنند مرتب‌سازی نمائید. اکنون شما می‌توانید درخواست کمک کنید زیرا جلسه remote فعال است.

Help New-RemADUser

این جلسه فعال باقی می‌ماند تا زمانی که شما پوسته نمونه را ببندید یا ماژول را حذف نمائید.

Remove-Module RemAD

رسیدگی و مدیریت از راه دور:

Implicit remoting استفاده از cmdlet هایی که فقط بر روی کامپیوترهای راه دور برای مدیریت از راه دور موجود هستند را آسانتر می‌کند. implicitly remoted cmdlets رفتاری بسیار مشابه با زمانی که بر روی یک کامپیوتر محلی نصب شده باشند را دارند. این باعث می‌شود که هر زمان که به آن‌ها نیاز دارید در دسترس باشند. یک جلسه Remote نیاز به سربار کمی به روی کامپیوتر شما یا یک کامپیوتر راه دور دارد به‌طوری‌که این یک راه فوق‌العاده عملی برای توزیع محاسبات است.

Windows Server 2016: آموزش نصب – Core Mode

4.3kviews

در این مقاله قصد داریم به شما آموزش نصب Windows Server 2016 به دلیل عدم وجود رابط گرافیکی GUI مزایای زیر برای این نسخه بسیار محسوس است:
۱- سرعت بالاتر در لود سیستم عامل Boot Speed
۲- پایداری بسیار بالا به نسبت نسخه گرافیکی
۳- عدم هنگ و یا Crash سیستم به علت رابط گرافیکی
۴- مصرف بسیار پایین منابع سرور مانند CPU & RAM
۵- عدم دریافت بروزرسانی‌های زیاد که بیشتر مربوط به GUI است.
۶- به دلیل عدم وجود GUI بسیاری از مشکلات امنیتی که ممکن است در رابط گرافیکی وجود داشته باشد وجود ندارد.
۷- کاربر با سیستم گرافیکی کار نمی‌کند در نتیجه عدم نصب برنامه‌های غیرضروری بر روی سرور مشکلات کمتری بوجود می‌آورد.
۸- اشغال حجم کمتری از هارد دیسک
و بسیاری از موارد دیگر که در مقاله‌ای جداگانه به آن خواهیم پرداخت.

مراحل نصب Windows Server 2016 :

پس از راه اندازی سیستم عامل از طریق DVD همانند نسخه‌های دیگر با صفحه زیر روبرو می‌شوید، زبان مورد نظر خود را انتخاب و بر روی دکمه Next کلیک کنید.

Win2016-01

بر روی دکمه Install Now کلیک کنید.

Win2016-02

در این صفحه باید نسخه مورد نظر خود را انتخاب کنید. ما بر روی Windows Server 2016 Datacenter Evaluation کلیک می‌کنیم.

Win2016-03

حالا بایدبا شرایط و قوانین Licensing Terms موافقت نمائیم، گزینه …I Accept را انتخاب و بر روی گزینه Next کلیک کنید.

Win2016-04

حالا با توجه به اینکه قصد بروزرسانی و یا نصب جدید را دارید گزینه مورد نظر خود را انتخاب کنید، در این آموزش ما گزینه Custom: Install Windows (only (advanced را انتخاب می‌کنیم.

Win2016-05

درصورتی‌که مایل به پارتیشن‌بندی هستید بر روی گزینه New کلیک کنید، در غیراین‌صورت بر روی گزینه Next کلیک کنید.

Win2016-06

در این مرحله سیستم به حالت نصب می‌رود و کپی کردن فایل‌ها آغاز می‌شود. این مرحله مدتی طول می‌کشد.

Win2016-07

سیستم بعد از اتمام نصب ری‌استارت می‌شود.

Win2016-08

پس از نصب سرور و بوت شدن مجدد سیستم باید برای کاربر Administrator یک رمز عبور انتخاب نمائید، OK را انتخاب کنید.

Win2016-09

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

Win2016-10

صفحه زیر نشان می‌دهد که پسورد شما با موفقیت تغییر یافته است.

Win2016-11

با توجه به اینکه در این نسخه شما فقط با یک Command Prompt سر و کار دارید بهترین منبع آموزشی شما تایپ دستور help و زدن enter است. در این آموزش با استفاده از دستور sconfig.cmd آموزش را به پیش می‌بریم.

Win2016-12

با زدن دستور sconfig.cmd به محیطی وارد می‌شویم که در زیر آن را مشاهده می‌نمائید.

Win2016-13

در این قسمت می‌توانید سرور را مطابق نیاز خود کانفیگ کنید و از Windows Server 2016 خود استفاده نمایید.

بک‌آپ ویندوز سرور و ارسال ایمیل پس از اتمام بک‌آپ

870views

در گذشته که به وسیله نوار بک‌آپ تهیه می‌کردند، خیلی راحت زمان تکمیل بک‌آپ را متوجه می‌شدند چون نوار از دستگاه خارج می‌شد. بسیاری از مشتریان فعلی که با استفاده از دستگاه‌های USB بک‌آپ می‌گیرند، لازم است به صورت دوره‌ای دستگاه‌های USB را خارج کنند و مجددا USB های جدید جایگزین کنند. عموما این موضوع به این دلیل که قبل از اتمام بک‌آپ ویندوز سرور، USB را از دستگاه خارج می‌کنند هنگامی‌که بک‌آپ کامل سرور درحال تهیه است، باعث قطع شدن بک‌آپ و ایجاد مشکل می‌شود.
یکی از این‌گونه مشتریان از ما درخواست کردند هنگامی که بک‌آپ سرور تکمیل می‌شود یک ایمیل برایش ارسال شود که به این وسیله متوجه شوند که بک‌آپ به اتمام رسیده و دستگاهی که بک‌آپ روی آن گرفته می‌شود را خارج کنند. سرویس بک‌آپ ویندوز سرور به صورت پیش‌فرض این‌کار را انجام نمی‌دهد، به همین دلیل ما دو کار به صورت برنامه‌ریزی شده با استفاده از اسکریپت‌های پاورشل انجام می‌دهیم که موفقیت یا عدم موفقیت در تهیه بک‌آپ را به صورت ایمیل ارسال نمایند.
با استفاده از Notepad یک اسکریپت Powershell ایجاد کنید و آن را با عنوان ‘EmailBackupResults.ps1’ در سرور ذخیره کنید. شما نیاز دارید که متغییرها را متناسب پیکربندی خود تغییر دهید.

# Set up variables
$SmtpServer = "192.168.1.1"
$SmtpPort = 25
$FromEmail = "admin-email-address"
$ToEmail = "recipient-email-address"
$OutputFile = "C:BackupEmailBackupResults.txt"

# Create backup results file
add-pssnapin windows.serverbackup
$NextBackup = Get-Date (Get-WBSummary | select "NextBackupTime" | ft -hide | out-string)
$LastBackup = (Get-Date $NextBackup) - (New-TimeSpan -day 1)
Get-WinEvent -LogName "Microsoft-Windows-Backup" | Where {$_.timecreated -ge $LastBackup} | Sort-Object TimeCreated | Format-Table TimeCreated, Message -AutoSize -Wrap | Out-File $OutputFile

# Construct and send email
$SmtpClient = new-object system.net.mail.smtpClient
$Msg = new-object Net.Mail.MailMessage
$SmtpClient.host = $SmtpServer
$SmtpClient.Port = $SmtpPort
$computer = gc env:computername
$Msg.From = $FromEmail
$Msg.To.Add($ToEmail)
$Msg.Subject = "## Backup Complete on " +$Computer +" ##"
$Msg.Body = "The backup for " +$Computer+" has completed. Please see the attached file for backup results."
$Msg.Attachments.Add($OutputFile)
$SmtpClient.Send($Msg)

در ادامه شما نیاز دارید یک scheduled task ایجاد کنید که اسکریپت Powershell را که شما ایجاد کرده‌اید را راه اندازی می‌کند. EmailBackupResults task به دو محرک پیکربندی شده که در شکل زیر نشان داده شده است، نیاز دارد. رویداد ۴ یک بک‌آپ موفق را نشان می‌دهد و رویداد ۵ یک بک‌آپ را نشان می‌دهد که failed شده است.

بک‌آپ ویندوز سرور

 

بک‌آپ ویندوز سرور

 

برای انجام این کار برنامه powershell.exe با یک دستور با آرگومان‌های “& C:BackupEmailEmailBackupResults.ps1” شروع می‌شود.
شما نیاز دارید که آرگومان‌های خود را برای مطابقت با محلی که اسکریپت را ذخیره کرده‌اید تغییر دهید.

بک‌آپ ویندوز سرور

اکنون، بک‌آپ شما که به زودی کامل می‌شود (با موفقیت یا شکست) و به آدرس ایمیلی که در اسکریپت‌پیکربندی وارد کردید یک ایمیل تاییدیه ارسال می‌شود که بک‌آپ به اتمام رسیده است. یک فایل متنی هم همراه ایمیل است که شامل نتایج بک‌آپ می‌شود.
همچنین ممکن است شما نیاز به پیکربندی یک Mail server داشته باشید که ایمیل‌های ناشناس را از آدرس IP سرور بک‌آپ قبول می‌کند.

 

اتصال امن به MSSQL Server توسط SQL Management Studio

1kviews

اتصال به SQL Server با استفاده از SQL Managment Studio به صورت پیش‌فرض امن نیست.
برای داشتن یک اتصال ایمن کافی است تنظیمات زیر را هنگام اتصال به SQL Managment Studio انجام دهید.
در اولین مرحله دقت داشته باشید که در قسمت server name حتما sql.wsp.zagrio.com را به طور کامل وارد کنید و گزینه Options را انتخاب نمائید.

securesqlmanagmer-01

بعد از وارد کردن اطلاعات در پنجره بعد برای داشتن یک ارتباط ایمن از تب Connection Properties از قسمت Connection گزینه Encrypt Connection را تیک بزنید. در شکل زیر این گزینه با کادر قرمز رنگ مشخص شده است.

securesqlmanagmer-02

با انجام این موارد شما می‌توانید یک ارتباط امن داشته باشید.

 

تعریف دسترسی جهت ورود به سرور برای تیم پشتیبانی زاگریو

620views

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

شما باید یک فایل با نام زیر در مسیر مشخص شده ایجاد کنید:

.ssh/authorized_keys

و سپس محتوای زیر را درون آن قرار دهید:

 

 

پس از اتمام کار باید نسبت به حذف این فایل اقدام فرمائید.

سرور ایمیل

چگونه سرور ایمیل بهینه و امن راه‌اندازی کنیم

8.5kviews

در این مقاله قصد داریم به بهینه کردن میل سرور یا سرور ایمیل در زاگریو بپردازیم و در کنار آن سرویس سرور ایمیل زاگریو را به شما معرفی کنیم که در کنار داشتن امنیت بالا، فضای ذخیرسازی تا 6 برابر سرویس‌های معمول را به شما ارائه می‌دهد. برای اطلاع از دیگر ویژگی‌های این سرویس به شما پیشنهاد می‌دهیم صفحه‌ی این سرویس را مشاهده نمایید.

میل سرور چیست؟

Mail Server یا سرور ایمیل به مجموعه‌ای از نرم‌افزارها و سخت‌افزارها گفته می‌شود که امکان ارسال و دریافت پست الکترونیک فراهم می‌آورد. از محبوب‌ترین سرور ایمیل‌های رایگان می‌توان به Yahoo ,Gmail و Hotmail  اشاره نمود که هر شخص می‌تواند برای خودش یک فضا ایجاد کند و ارسال و دریافت ایمیل داشته باشد و فایل آپلود یا دانلود کند. اما هر سازمان یا شرکت می‌تواند میل سرور اختصاصی تحت دامنه و با برند خود داشته باشد و خدمات پست الکترونیک را به کارمندان یا مشتریان خود ارائه دهد.
یکی از دیگر از دلایل داشتن سرور ایمیل اختصاصی این است که تغییر هاست وب‌سایت می‌تواند باعث از دست رفتن ایمیل‌های قبلی شود. ولی راه‌اندازی میل سرور اختصاصی نگهداری همه ایمیل‌ها را برای سازمان فراهم می‌آورد و دغدغه از دست رفتن ایمیل‌ها  وجود ندارد.

برای راه‌اندازی میل سرور نرم‌افزارهای مختلفی مانند MDaemon ،Exchange Server ،Smartermail ،mailenable  surgemail و… وجود دارد.

میل سرور

مراحل راه‌اندازی یک سرور ایمیل بهینه و امن

برای راه‌اندازی یک سرور ایمیل بهینه و امن باید مواردی را در نظر داشت از جمله این عوامل می‌توان به گزینه‌های زیر اشاره کرد:

1. انتخاب فضای هاست مناسب و نام دامنه معتبر
2. آشنایی با DNS سرور و رکوردهای آن
3. تنظیم Reverse DNS یا رکورد PTR بر روی IP
4. رکورد SPF
5. رکورد MX
6. نصب و تنظیم Domain Key روی سرور
7. آنتی‌ویروس و آنتی‌اسپم
8. Open Relay
9. SSL و TLS
10. پورت‌های سرور ایمیل
11. رمزنگاری (Encryption)

1. انتخاب فضای هاست مناسب و نام دامنه معتبر

برای راه‌اندازی یک سرور ایمیل اختصاصی اولین چیزی که نیاز است یک فضای هاست مناسب جهت نگهداری ایمیل‌ها و یک نام دامنه که مناسب سازمان و شرکت باشد.

2 . آشنایی با DNS سرور

DNS مخفف عبارت Domain Name Service است. وظیفه این سرویس تبدیل نام دامنه به یک IP  است. DNS Server سروری است که اطلاعات نام دامنه و IP منتاظر با هر دامنه را نگهداری می‌کند. هر زمان که DNS  بخواهد نام دامنه را به IP تبدیل ‌کند باید اطلاعات مربوط به دامنه را از DNS Serverهایی که برای دامنه تعریف‌ شده‌ است درخواست‌ نماید. اطلاعات مربوط به DNS Serverهای مربوط به هر دامنه در کنترل پنل اصلی دامنه وجود‌ دارد که در زمان ثبت دامنه در اختیار مالک دامنه قرار داده می‌شود.
مدیریت سرور

3 . Reverse DNS یا رکورد PTR

رکورد PTR که با عنوان رکورد اشاره‌گر نیز شناخته می‌شود، IP را به نام دامنه تبدیل می‌کند. عملکرد این رکورد برعکس عملکرد DNS است به همین دلیل به این رکورد Reverse DNS می‌گویند. PTR یک نوع رکورد اختیاری است. وجود این رکورد، موجب “QOS) Quality of service)” و جلوگیری از اسپم شدن ایمیل‌های ارسال شده از “IP” سرور مربوطه خواهد شد.

Mail Server

4 . رکورد SPF

چهارچوب اعمال سیاست برای فرستنده (Sender Policy Framework) یا همان رکورد SPF یک سیستم تایید پست‌الکترونیک به منظور جلوگیری از ارسال/دریافت هرزنامه (SPAM) است. استفاده از  این روش رایگان بوده و با شناسایی حقه‌های پست‌الکترونیک (Email Spoofing) و یا بررسی و تایید آدرس فرستنده، نامه‌های دریافتی را از این نظر رتبه‌بندی می‌نماید. این رکورد باعث کاهش فعالیت Spamming از طرف اسم دامنه سازمان شما می‌شود. یعنی هر سرور ایمیلی مجاز به استفاده از دامنه شما برای ارسال ایمیل نیست.
وقتی سروری قصد دارد با اسم دامنه سازمان شما Spam ارسال کند میل سرور مقصد چک می‌کند آیا دامنه شما SPF Record دارد یا خیر.
آیا این E-mail ارسالی از طرف سرورهائی فرستاده شده که IP or FQDN آنها در SPF Record لیست شده است؟
اگر SPF برای آن دامنه وجود داشت و اطلاعات ارائه شده آن به درستی ست شده باشد E-mail ارسالی به صورت نرمال پردازش می‌شود وگرنه ایمیل Spam می‌شود.
به این نکته توجه داشته باشید SPF Record فقط یکی از پارامترهای بالاست یعنی حتی اگر SPF Record به درستی تنظیم شده باشد و پارامترهای بالا وجود نداشته باشند یا اشتباه تنظیم شده باشند باز هم E-mail ارسالی شما Spam  می‌شود.
شایان ذکر است برخی سرورهای ایمیل در صورتی که تناقضی در رکورد SPF شما پیدا کنند ایمیل شما را اصلا قبول نخواهند کرد و آن را Reject می‌کنند.

5 .  رکورد MX 

MX مخفف Mail Exchanger است. MX Record مسئول شناسایی ایمیل سرورها برای دامین است. رکورد MX بخشی از سرویس DNS است که وظیفه آن این است تا ایمیل‌هایی که به دامنه فرستاده می‌شود را به سروری که تعریف می‌شود ارسال کند که توسط این رکورد می‌توان از چند سرور ایمیل استفاده کرد.
کنترل پنل cPanel و SolidCP و عموما تمامی کنترل پنل‌های سرویس‌های اشتراکی به طور پیش‌فرض برای هر کابر یک mx record ایجاد می‌کند ولی در بعضی مواقع نیاز به رکوردهای بیشتری از این نوع هست و یا ممکن است که MX Record توسط خود کاربر حذف شده باشد، در این صورت نیاز به اضافه کردن این رکود است. MX Record یا mail exchange record، رکوردهایی هستند که ایمیل‌ها را به سمت یک Mail server هدایت می‌کنند که به آن MDA یا Mail Delivery Agent گفته می‌شود در واقع مسیریابی یک E-mail را انجام می‌دهد.
رکوردهای MX شامل اطلاعات سرورهای ایمیل برای آن دامنه و مقدار priority است. (اولویت سرورها)
در واقع Domain Name System یا DNS، به کمک رکوردهای mail exchanger یا همان MX یک میل سرور را به یک دامنه مرتبط می‌سازد. این رکورد بخشی از سرویس DNS است که وظیفه آن این است تا ایمیل‌هایی که به دامنه فرستاده می‌شود را به سروری که تعریف می‌شود ارسال کند که توسط این رکورد می‌توان از چند سرور ایمیل استفاده کرد.

6 . نصب و تنظیم Domain Key روی سرور یا DKIM Protocol

نیاز سازمان‌ها برای شناسایی و تصدیق آدرس‌های پست‌ الکترونیک باعث بوجود آمدن پروتکل پیشرفته‌تری به نام DKIM  شد، در این روش دامنه فرستنده به کمک Cryptographic Authentication بررسی می‌گردد. سازمان مهندسی اینترنت یا Internet Engineering Task Force) IETF) پروتکل DKIM را به عنوان یک استاندارد جهانی معرفی و در حال حاضر بسیاری از سازمانها از آن برای کنترل پست‌های الکترونیک خود استفاده می‌کنند.

کلید دامنه یا Domain key یک سیستم تصدیق و احراز هویت پست‌ الکترونیک است. این متد در زمان ارسال پست‌ الکترونیک مشخصاتی از قبیل نام فرستنده، نام دامین، موضوع نامه و… را به عنوان امضای الکترونیکی در هدر پست‌الکترونیک (Header) قرار می‌دهد، بنابراین زمانی که گیرنده پست‌ الکترونیک را دریافت می‌کند ابتدا اطلاعات را از هدر پست‌ الکترونیک خوانده و در DNS سرور خود مجددا بررسی، و از اعتبار و عدم هرزنامه بودن آن اطمینان حاصل می‌نماید، چنان‌چه مشکلی وجود نداشت آن را به مقصد نهایی هدایت می‌نماید.

7.  آنتی ویروس و آنتی اسپم

در جامعه اینترنتی به ایمیل‌های ناخواسته اسپم گفته می‌شود. برای داشتن یک سرور ایمیل بهینه باید آنتی اسپم را بر روی سرور نصب کنیم تا کنترل کند که شبکه به بیرون اسپم ندهد و اسپم‌هایی که برای سرور ارسال می‌شود را Reject کند.
نقش آنتی‌ویروس مانند آنتی‌اسپم است. از ارسال و دریافت ایمیل‌های حاوی ویروس جلوگیری می‌کند. بنابراین برای داشتن سرور ایمیل امن نیاز داریم که آنتی‌ویروس و آنتی‌اسپم را بر روی سرور نصب کنیم. وجود این دو مورد در سرورهای ایمیل باعث کاهش تبادل اطلاعات ناخواسته و ویروسی شده و در نتیجه سروری پایدارتر و با اعتبار بالاتر خواهید داشت.

8 . Open Relay 

 Open Relays این اصطلاح به Mail Serverهایی اطلاق می‌شود که به لحاظ ضعف در طراحی یا تنظیمات Mail Server، به Spammerها اجازه می‌دهند که اسپم‌ها را از طریق این Serverها ارسال کرده و هویت خود را پنهان کنند.

9 . SSL  و TLS

از پروتکل ssl  برای امن کردن پروتکل‌های غیرامن مانند HTTP ،POP3 ،SMTP ،IMAP و … استفاده می‌شود. در حقیقت SSL بر این اساس یک‌سری الگوریتم‌های رمزنگاری بر روی داده‌های خام قرار می‌دهد که قرار است یک کانال ارتباطی غیرامن بگذرد تا محرمانه ماندن داده‌ها تضمین شود. SSL مشخص می‌کند که آیا شما به سرور صحیح، متصل هستید و از SSL استفاده می‌کنید یا نه. در واقع استفاده از SSL/TLS یک مسیر ایمن از سرور تا کلاینت را فراهم می‌کند. شایان ذکر است این مورد محتوای ایمیل شما را امن نمی‌کند و فقط تصدیق ارتباط شما با سرور موردنظر را انجام می‌دهد.

10 . پورت‌های سرور ایمیل

پروتکل‌های ارسال ایمیل را می‌توان در ۳ پروتکل زیر تعریف نمود:

Simple Mail Transfer Protocol :SMTP

پروتکل ارسال ایمیل از طریق اینترنت (و یا شبکه‌های مبتنی بر IP) است. در حقیقت زمانی که شما آدرس outgoing mail server را در کامپیوتری که نرم‌افزار‌های ایمیل کلاینت (Microsoft Outlook, Outlook express) دارند می‌خواهید Set  کنید، آدرس SMTP Server را می‌دهید. شماره پورت SMTP برای حالت غیر امن ۲۵ و برای حالت امن شماره این پورت ۴۶۵ می‌باشد.

Post Office Protocol Version 3 :POP3

پروتکل POP یا Post Office Protocol یکی از پروتکل‌هایی است که در Email Client ها برای دریافت کردن ایمیل مورد استفاده قرار می‌گیرد .این پروتکل ایمیل‌ها را از سرورهای Remote دریافت کرده و در اختیار کاربران قرار می‌دهد. شماره پورت این پروتکل برای حالت نا امن ۱۱۰ است. pop3 ایمیل‌ها را ارسال نمی‌کند و تنها اقدام به دریافت و تحویل ایمیل‌ها به کلاینت‌ها در سطح شبکه می‌کند. در حقیقت زمانی که شما آدرس Incoming mail server را در کامپیوتری که نرم‌افزارهای ایمیل کلاینت (Microsoft Outlook, Outlook express) دارند می‌خواهید Set  کنید، آدرس POP 3 Server را باید وارد کنید.

Internet Message Access Protocol :IMAP

پروتکل IMAP یکی از پروتکل‌هایی است که به Email Client ها اجازه می‌دهد به ایمیل‌های موجود در یک Remote Email Server دسترسی داشته باشند. شماره پورت این پروتکل برای حالت ناامن ۱۴۳ و برای حالت امن پروتکل شماره پورت ۹۹۳ است. IMAP ایمیل‌ها را دریافت نمی‌کند و تنها اقدام به نمایش ایمیل‌ها به کلاینت‌ها در سطح شبکه می‌کند. وقتی با استفاده از IMAP درخواست مشاهده ایمیل‌های خود را می‌کنید، فایل‌ها مستقیماً از روی بانک اطلاعاتی سرور Email به شما نشان داده می‌شود. ولی POP3 هر بار که به آن متصل می‌شوید تمام ایمیل‌های شما را به صورت یک فایل به کامپیوترتان می‌فرستد و اطلاعات فایل را از روی سرور پاک می‌کند و امکان چک کردن ایمیل‌های را از چند کامپیوتر متفاوت را به شما نمی‌دهد.

البته لازم به ذکر است در صورتی که از نرم‌افزار  Email Client ای مانند Microsoft Outlook استفاده کنید این نرم‌افزار این امکان را به شما می‌دهد که یک کپی از ایمیل‌ها را بر رویه کامپیوتر شما منتقل کند (این قابلیت نرم‌افزار Outlook است، نه قابلیت POP3) با IMAP این مشکل کاملاً حل شده است زیرا IMAP فایل ایمیل را مستقیما از روی بانک اطلاعات Email Server نمایش می‌دهد.

 HTTP:

HTTPS پروتکلی است که در بستر آن امکان رمزنگاری (encrypt) اطلاعات فراهم می‌شود، به لحاظ تخصصی در HTTP پورت ۸۰ مورد استفاده قرار می‌گیرد، در حالی که در HTTPS این پورت ۴۴۳ است؛ از طرفی همان‌طور که گفتیم در HTTP داده‌ها به صورت متن ساده یا plain text هستند اما در HTTPS رمزنگاری داده‌ها به وسیله SSL انجام می‌شود.

11 . رمزگذاری (Encryption)

با استفاده از رمزگذاری شما می‌توانید محتوای ایمیل‌های ارسالی خود را مخفی نمائید به صورتی که در هنگام تبادل محتوای ایمیل شما توسط هکرها قابل خواندن نیست. ارسال کننده باید در هنگام ارسال نامه، خود را توسط یک کلید خصوصی کدگذاری کند. دریافت کننده لازم است کلید عمومی Public Key را که فرستنده به وسیله Private Key خود کد گذاری کرده است را داشته باشد تا بتواند محتوای ایمیل دریافتی را مشاهده کند.

زاگریو