سوالات عمومی مرتبط با محصولات و خدمات میزبانی زاگریو در این بخش منتشر می شود.

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

زاگریو

رنگ‌های مختلف در ترمینال ssh به چه معنی هستند؟

ترمینال ssh: رنگ‌های مختلف در ترمینال ssh به چه معنی هستند؟

3.4kviews

اول از همه باید بدانید که، SSH مخفف Secure shell یا پروتکلی برای اتصال به کنسول یا محیط ترمینال است، که رنگ‌های مختلفی در این ترمینال وجود دارد و معانی متفاوتی دارند، در زاگریو به بررسی معانی این رنگ‌ها خواهیم پرداخت.

بررسی رنگ‌های مختلف در ترمینال ssh | تغییر رنگ ترمینال لینوکس

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

خرید هاست

این رنگ‌ها چه معنی دارند و آیا کتابچه راهنمایی درباره آنها وجود دارد؟

هر کدام از این رنگ‌ها معنی خاصی دارند که در ادامه برای شما توضیح می‌دهیم.

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

قرمز: فایل بایگانی

شما می‌توانید این رنگ‌ها را با وارد کردن دستوراتی روشن یا خاموش کنید.
برای خاموش کردن رنگ‌ها باید در ادامه خط‌های زیر .bashrc وارد کنید.

# enable color support of ls and also add handy aliases
# if [ -x /usr/bin/dircolors ]; then
# test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
# alias ls='ls --color=auto'
# #alias dir='dir --color=auto'
# #alias vdir='vdir --color=auto'
#
# alias grep='grep --color=auto'
# alias fgrep='fgrep --color=auto'
# alias egrep='egrep --color=auto'
# fi
همچنین اگر شما می‌خواهید بدانید که رنگ‌ها چه معنی دارند، کد زیر را در ترمینال ssh وارد کنید.
eval $(echo "no:global default;fi:normal file;di:directory;ln:symbolic link;pi:named pipe;so:socket;do:door;bd:block device;cd:character device;or:orphan symlink;mi:missing file;su:set uid;sg:set gid;tw:sticky other writable;ow:other writable;st:sticky;ex:executable;"|sed -e 's/:/="/g; s/\;/"\n/g')
{
IFS=:
for i in $LS_COLORS
do
echo -e "\e[${i#*=}m$( x=${i%=*}; [ "${!x}" ] && echo "${!x}" || echo "$x" )\e[m"
done
}
ترمینال ssh

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

فیروزه: فایل‌های صوتی (فایل‌های شماره ۱)
قرمز روشن: آرشیو و فایل‌های فشرده (فایل‌های شماره ۲)

بنفش: تصاویر و ویدئو (فایل‌های شماره ۳)

علاوه بر این فایل‌ها بر اساس حالت‌های آن‌ها رنگ‌بندی می‌شوند.

colorcommand2
1٫ aac, au, flac, mid, midi, mka, mp3, mpc, ogg, ra, wav, axa, oga, spx, xspf.
2٫ tar, tgz, arj, taz, lzh, lzma, tlz, txz, zip, z, Z, dz, gz, lz, xz, bz2, bz, tbz, tbz2, tz, deb, rpm, jar, rar, ace, zoo, cpio, 7z, rz.

3٫ jpg, jpeg, gif, bmp, pbm, pgm, ppm, tga, xbm, xpm, tif, tiff, png, svg, svgz, mng, pcx, mov, mpg, mpeg, m2v, mkv, ogm, mp4, m4v, mp4v, vob, qt, nuv, wmv, asf, rm, rmvb, flc, avi, fli, flv, gl, dl, xcf, xwd, yuv, cgm, emf, axv, anx, ogv, ogx.

همه این اطلاعات در خروجی دستور dircolors –print-database وجود دارد اما فرمت آن تقریبا ناخواناست.
زاگریو
روش های داشتن رتبه بهتر در گوگل

روش های داشتن رتبه بهتر در گوگل

574views
داشتن رتبه بهتر در گوگل، همیشه یکی از اولین و مهم‌ترین خواسته هر یک از ماّ که یک یا چند سایت داریم، بوده است. رسیدن به رتبه بالاتر در گوگل، شاید کار زمان‌بری باشد، ولی اگر  کار به خوبی انجام شود، نتیجه آن می‌تواند دائمی باشد، در این مقاله،‌قصد داریم تا روش‌هایی که توسط سئو سایت ، می‌تواند به شما کمک کند را به صورت خلاصه، به شما عزیزان بگوییم.

را‌ه‌های داشتن رتبه بهتر در گوگل

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

1. بر روی کلمات کلیدی مورد نظر خود تمرکز کنید

هنگامی که می‌خواهید ترافیک خود را در موتورهای جستجو افزایش دهید، ممکن است اولین ایده شما این باشد که اگر Rank سایت خود را با کلمات کلیدی بیشتر مدیریت کنید ترافیک بیشتری خواهید داشت. این ایده امکان‌پذیر است (به خصوص اگر کلمات کلیدی خیلی با هم مرتبط نباشند) اما اساسا این مورد خیلی الزامی نیست.

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

 

2. بهینه‌سازی برای کلمات کلیدی بلند

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

3. بهینه‌سازی برای کلمات کلیدی با رقابت کمتر

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

رتبه بهتر در گوگل

4. محتوای جدید به طور منظم

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

همان‌طور که چندین بار گفتیم، بهتر است هر هفته یا هر ماه یک پست جدید داشته باشیم تا اینکه برای یک ماه هیچ پستی نداشته باشیم و یکباره ۲۰ پست جدید ارائه دهیم. پیشنهاد ما به شما حداقل، هفته‌ای یک مقاله است.

 

5. گرفتن Backlinks از سایت‌های بسیار خوب

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

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

نکاتی که برای داشتن سایتی با رتبه بالا در گوگل به آن نیاز دارید

 

6. استفاده از PPC

اگر شما تا کنون متوجه نشده‌اید، اجازه دهید که مستقیما برای شما بیان شود؛ ترافیک رایگان موتور جستجو عظیم اما غیرقابل اعتماد است. مهم نیست که سایت شما چقدر بزرگ است و چگونه شما به طور استادانه در حال تلاش برای محافظت از سایت‎تان در مقابل تغییرات الگوریتم موتور جستجو هستید، شما هرگز در امان نیستید. اگر می‌خواهید ترافیک ثابتی برای سایت خود داشته باشید استفاده از PPC را آغاز کنید. آموزش دقیق آن در Google AdWords  قرار داده شده است. اگر شما با PPC آشنا نیستید می‌توانید با این آموزش شروع کنید.

رتبه بهتر در گوگل

7. تبلیغ در رسانه‌های اجتماعی

همه تخم‌مرغ‌ها را در یک سبد قرار ندهید؛ به عنوان مثال همه ترافیک خودتان را از موتورهای جستجو نگیرید. هنگامی که شما منابع ترافیک خود را تنوع می بخشید، اولین گزینه PPC است (که هزینه مالی دارد اما به طور کلی ترافیک هدفمندی را به ارمغان می آورد) و دومین گزینه رسانه‌های اجتماعی است، سایت‌هایی مانند Facebook و  Twitter و  Tumblr و غیره که می‌توانید رایگان استفاده کنید و به طور قابل توجهی ترافیک خود را افزایش دهید اگر پست‌هایتان را عمومی کنید. معمولا ترافیک سایت‌های اجتماعی هدف قرار نمی‌گیرند و تغییرات ممکن است کم باشد اما هنوز هم این سایت‌ها یک جایگزین مناسب هستند.
در حالی‌که ممکن است شما گاهی اوقات از تغییرات موتورهای جستجو سود ببرید زیرا این تغییرات ممکن است رقبای شما را نابود کند و شما را در نتایج موتورهای جستجو بدون هیچ تلاشی بالا ببرد. این یک شانس است و شما نمی‌توانید بر آن تکیه کنید. اگر شما نمی‌خواهید بیشترین اثرات منفی تغییرات موتورهای جستجو را تجربه کنید نیاز دارید که فعال باشید و گام‌های ذکر شده در این مقاله را طی کنید. متاسفانه حتی اگر شما تمامی این موارد را هم انجام دهید نمی‌توان گفت که به طور کامل پوشش داده شده‌اید اما حداقل این تسلی به شما داده می‌شود که آنچه را که می‌توانید انجام داده‌اید.

کلام آخر …

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

نکات مهم سئو سایت برای تازه کاران

597views

بسیاری از مشاغل و پروژه‌ها اولین وب سایت خود را از طریق ما ایجاد می‌کنند. بهینه‌سازی موتورهای جستجو، یا همان سئو سایت ، چیزی نیست که اکثر مردم  فقط در شروع کار به آن فکر کنند. بدیهی است که داشتن Rank (رتبه) بالا در گوگل و دیگر موتورهای جستجو مفید است بنابراین بهتر است که ابتدای کار، به این موضوع بپردازید به جای اینکه دوباره برگردید و محتوای خود را مجددا برای SEO طراحی کنید. نکات مهم سئو سایت این مقاله به شما کمک می‌کند که در همان ابتدای کار برای SEO تلاش کنید تا به رتبه مورد نظر خود برسید.

چند مورد از نکات مهم سئو سایت برای تازه کاران

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

نظارت بر تلاش‌هایتان | نکات مهم سئو سایت

مطمئن شوید که با Google Analytics مسیر ترافیک‌تان را معین کرده‌اید. ببینید که کدام صفحات بیشترین بازدید را دارند و مهمتر از همه ببینید که آن ترافیک را از کجا دریافت می‌کنید. چه کسانی به سایت شما لینک دارند؟ مردم چه کلمات کلیدی را Search می‌کنند، وقتی که سایت شما را پیدا می‌کنند؟ این دو مورد از مهمترین فاکتورهایی هستند که برای فعالیت‌های آتی به شما کمک می‌کند.
سئو سایت

استفاده از کلمات کلیدی با کیفیت

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

تگ‌ها در صفحه

تگ عنوان، متاتگ و تگ heading از جنبه‌های مهم برای SEO هستند. این تگ‌ها باید شامل کلمات کلیدی مرتبط با صفحه باشند. تگ عنوان شامل عنوان صفحه است که باید کوتاه و توصیفی باشد. متاتگ باید تا حدودی محتوای صفحه را شرح دهد. تگ heading برای تنظیم بخش‌های مجزا درون خود محتوا استفاده می‌شوند. همیشه از تگ H1 در بالای محتوا برای هدر اصلی محتوا استفاده کنید.

URL های به زبان ساده

با استفاده از URL های زیر، کدام یک امکان توصیف آنچه که در صفحه شما می باشد را آسانتر می‌کنند؟
و یا

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

ایجاد نقشه سایت

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

لینک‌های داخلی

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

بهینه‌سازی سرعت

وب سایتی که سرعت بالاتری دارد برای بازدید کنندگان جذاب‌تر است. اگر بازدیدکنندگان به سایت شما بیایند و سایت سریع برای آنها لود نشود خیلی سریع ناامید می‌شوند و سایتی دیگر را مشاهده می‌کنند. موتورهای جستجو اکانت شما را جستجو می‌کند و هنگامی که در حال خزیدن در سایت شما هستند اگر سایت شما به آرامی لود شود Rank سایت شما آسیب می‌بیند. همیشه راحت‌ترین راه این است که هنگام شروع مطمئن شویم که کدها، تصاویر و دیگر دارایی‌ها بهینه‌سازی شده‌اند تا اینکه بعدها برگردیم و مجددا این تغییرات را ایجاد کنیم. استفاده از ابزارهایی مانند Pingdom و یا PageSpeed Insights ایده‌هایی به شما می‌دهد که در جاهایی می‌توانید سرعت سایت خود را بهبود ببخشید.

سخن آخر..

در این مقاله به صورت خلاصه به بررسی یک سری نکات،‌که با رعایت آن، به رشد رتبه خود  در گوگل کمک می‌کنید را، گفتیم، اما اگر می‌خواهید به صورت اختصاصی و حرفه‌ای سئوی سایت خود را بالا ببرید، ما در زاگریو به شما کمک خواهیم کرد. زاگریو، شرکتی است که علاوه بر بخش سئو، به صورت اختصاصی در زمینه مدیریت سرور و خرید سرور و … در حال فعالیت می‌باشد.

افزایش سرعت سایت‌ ها با استفاده از ماژول های Cache

افزایش سرعت سایت‌ با استفاده از ماژول‌‌ های Cache

767views

مهم نیست سایت شما با استفاده از چه نرم‌افزاری به صورت داینامیک و یا استاتیک طراحی شده باشد. در صورتی که سرور (مدیریت سرور) میزبان شما ماژول‌ها و نرم‌افزارهای مورد نیاز ذخیره‌سازی و سرعت‌دهی به اسکریپت‌ها را نصب کرده باشند، شما به سادگی می‌توانید با افزودن کدهای زیر به وب سایت خود تجربه سایتی بسیار سریعتر را داشته باشید. در زاگریو به بررسی افزایش سرعت سایت‌ ها با استفاده از ماژول‌‌ های Cache خواهیم پرداخت.

افزایش سرعت سایت‌ ها با استفاده از ماژول‌‌ های Cache

افزایش سرعت سایت‌ شما را‌‌ه‌های متفاوتی دارد، که یکی از آن روش‌ها استفاده از ماژول‌‌ های Cache است. برقراری امنیت سرور ، نیز یکی از راه‌های دیگر افزایش سرعت سایت است.

ماژول‌‌ های Cache

مزایای استفاده از ماژول‌‌ های Cache

  • افزایش چشمگیر سرعت سایت
  • کاهش میزان تبادل اطلاعات سرور با کاربر
  • بهینه شدن سایت برای موتورهای جستجو و سئو

ماژول‌‌ های Cache

معایب استفاده از ماژول‌‌ های Cache

  • پس از بروزرسانی ممکن است تصاویر و یا آیتم‌ها به دلیل کش برای همه به صورت به روز نباشد.
  • با توجه به فعال شدن فشرده‌سازی سمت کاربر، سیستم‌های Client قدیمی ممکن است سایت شما را به سختی مشاهده کنند.
  • مصرف بیشتر منابع کامپیوتر کاربران
  • مصرف بیشتر منابع سرور و حساب کاربری شما
  • لازم است کد زیر را در فایل .htaccess خود قرار دهید.
  • ماژول‌های mod_expires و mod_deflate باید توسط میزبان شما فعال باشد (این ماژول‌ها به صورت پیش‌فرض در تمامی سرورهای میزبانی زاگریو فعال است).

<IfModule mod_deflate.c>
# Compress HTML, CSS, JavaScript, Text, XML and fonts
# Providing Compatibility for old browsers
# Optimize as you wish, provided by: www.ZAGRIO.com
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent
</IfModule>

<IfModule mod_expires.c>
# Setting expire time for cached objects
# Setting default cache for 2 days
# Optimize as you wish, provided by: www.ZAGRIO.com
ExpiresActive On
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
ExpiresByType font/truetype "access plus 1 year"
ExpiresByType font/opentype "access plus 1 year"
ExpiresByType application/x-font-woff "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
ExpiresDefault "access plus 2 days"
</IfModule>

Galera replication: مقایسه عملکرد با MySQL replication

Galera replication | مقایسه عملکرد با MySQL replication

666views

Galera replication نسبت به MySQL replication تکنولوژی جدیدتری می‌باشد. که بطور  پیش‌فرض از نسخه MySQL v3.23 پشتیبانی می‌شود. اگرچه MySQL replication برای replication تک جهته master-slave طراحی شده است. و می‌توان آن را به عنوان تنظیمات فعال master-master با replication دو طرفه پیکربندی کرد. باید توجه داشت که راه اندازی آن آسان است و برخی ممکن است از این قابلیت استفاده نمایند. اما تعدادی معایب نیز در طرف دیگر این مزیت وجود دارد. Galera cluster یک تکنولوژی متفاوت از لحاظ یادگیری و مدیریت است.

در این مطلب، در زاگریو  قصد داریم master-master replication را با Galera cluster مقایسه نماییم.

مفاهیم replication

قبلاز اینکه به سراغ مقایسه برویم بهتر است، کمی مطالب پایه‌ای تر را مرور نماییم. به طور کلی، هر گونه تغییر در پایگاه داده MySQL یک رویداد در قالب باینری ایجاد می‌کند. بسته به روش replication انتخاب شده، این رویداد به نودهای دیگر منتقل می‌شود. MySQL replication (پیشفرض) یا Galera replication ( با wsrep API متصل گردیده).

مفاهیم replication 

MySQL Replication

دیاگرام زیر جریان داده‌های یک تراکنش موفق را از یک نود به نود دیگر هنگام استفاده از MySQL replication نشان می‌دهد:

galera cluster

رویداد باینری در Master binary نوشته می شود. Slave (ها) از طریق slave_IO_thread رویدادهای باینری را از log باینری master بیرون می کشند و آنها را در log خود تکرار می کند. سپس slave_SQL_thread رویداد را از log تکرار خود به صورت غیرهمزمان اعمال می کند. به دلیل ماهیت ناهمزمان replication، هنگامی که master تغییرات را در داده های خود انجام می‌دهد، تغییر در داده‌های slave ممکن است انجام نپذیرد.

در حالت ایده‌آل ، MySQL replication با تنظیم read_only = ON یا super_read_only = ON می‌تواند slave را به عنوان یک سرور فقط خواندنی پیکربندی کند. این کار یک اقدام احتیاطی برای محافظت از slaveها در برابر نوشتن تصادفی است که می تواند منجر به ناسازگاری داده‌ها گردد. با این حال، در تنظیمات active-active replication، تنظیم read-only باید در master دیگر غیرفعال شود تا پردازش به طور همزمان انجام شود.

Galera Replication

دیاگرام زیر جریان replication داده های یک تراکنش موفق از یک نود به نودهای دیگر را در Galera Cluster نشان می‌دهد:

galera cluster

این رویداد در یک مجموعه محصور شده و با استفاده از Galera replication از نود مبدأ به نودهای دیگر خوشه پخش می شود. این عمل با هر گذشت از هر نود یک گواهی دریافت می‌نماید. رشته‌های اعمال کننده هر ترد به صورت همزمان تغییرات را در داده ها اعمال می‌نمایند. این بدان معنی است که سرور slave بعد از اتمام مراحل با دیگر سرورها سازگار خواهند شد، این عمل به صورت تئوری همزمان است اما عمل نوشتن و گرفتن تاییدیه به صورت مستقل برای هرکدام اتفاق می‌افتد.  بنابراین به طور همزمان در هر نود با تایید تغییر برای انتشار در همه گره‌ها این عمل صورت می‌پذیرد.

خرید سرور

اجتناب از Key Collision در Galera replication

برای استقرار MySQL replication در تنظیمات master-master، در اولین قدم یکی باید مقدار افزایش خودکار را تنظیم کند تا از key collision اصلی برای INSERT بین دو یا چند replicating master تکرار جلوگیری شود. این موضوع کمک می‌کند تا مقدار کلید اصلی با دیگران هم ردیف شود و از افزایش دوبرابری اتوماتیک تعداد در هر یک از نودها جلوگیری شود. این تنظیمات باید به صورت دستی پیکربندی شوند.

Master1:

log-slave-updates
auto_increment_increment=2
auto_increment_offset=1
Master2:
log-slave-updates
auto_increment_increment=2
auto_increment_offset=2
به همین ترتیب، Galera Cluster از همین ترفند برای جلوگیری از key collision با کنترل مقدار افزایش خودکار استفاده کرده و به طور خودکار با متغیر wsrep_auto_increment_control آن را جبران می‌کند. اگر روی 1 تنظیم شود (پیش فرض)، متغیرهای auto_increment_increment و auto_increment_offset به طور خودکار با توجه به اندازه خوشه تنظیم می شوند، و هنگامی که اندازه خوشه تغییر می‌کند. با این کار از collision به دلیل خودکارسازی جلوگیری می شود.
نتیجه این پیکربندی این است که مقدار افزایش خودکار دیگر به ترتیب نیست، همانطور که در جدول زیر نشان داده شده است:
Node auto_increment_increment auto_increment_offset Auto increment value
Node 1 3 1 1, 4, 7, 10, 13, 16…
Node 2 3 2 2, 5, 8, 11, 14, 17…
Node 3 3 3

3, 6, 9, 12, 15, 18…

اگر برنامه ای به ترتیب زیر کار انجام دهد:
Node1, Node3, Node2, Node3, Node3, Node1, Node3
مقدار گره های اصلی به صورت زیر می‌شوند:
1, 6, 8, 9, 12, 13, 15
به زبان ساده، هنگام استفاده از master-master replication (MySQL replication یا Galera)، برنامه شما باید بتواند مقادیر افزایش خودکار غیر پی در پی را در مجموعه داده‌های خود ایجاد کند.

سازگاری داده ها در Galera replication و MySQL replication

در Galera Cluster همه نود ها باید با یک سرعت داده‌های خود را همانند سازی نمایند در غیر این صورت نود ها سرعت خود را کاهش می‌دهند تا نود کند تر نیز بتواند به سرعت آن‌ها برسد. این عمل باعث جلوگیری از لگ زدن slave می‌گردد. هرچند که این اتفاق بازهم ممکن است روی دهد اما به اندازه MySQL replication نمی‌باشد.

از طرف دیگر ، Galera Cluster از عدم تطابق داده‌ها جلوگیری می‌کند، در نتیجه اگر نودی به هر دلیلی نتواند هرگونه عمل نوشتن را انجام دهد، از خوشه خارج می‌شود.

150305 16:13:14 [ERROR] WSREP: Failed to apply trx 1 4 times
150305 16:13:14 [ERROR] WSREP: Node consistency compromized, aborting..
برای رفع سازگاری داده‌ها، نودهای دارای اشتباه باید قبل از ورود به خوشه مجدداً همگام سازی شود.این کار می تواند به صورت دستی یا با پاک کردن فهرست داده ها انجام شود.
اما در روش master-master MySQL replication حفاظت از سازگاری داده ها  اعمال نمی‌شود و به هر نود اجازه داده می‌شود با سرعت خود کار کند که این شیوه باعث می‌شود داده های master با slave ها متفاوت باشد.

حل مشکل تفاوت در داده ها

در MySQL هر نود با رسیدن به یک تداخل در داده شروع به جستجوی داده جدیدتر می‌نماید و عملیات های خود را لغو می‌کند تا این مشکل را حل نماید. اما در Galera Cluster به علت هماهنگ بودن خوشه‌ها این عمل سریعتر و بهتر انجام می‌پذیرد.

Node Consensus

Galera از سیستم ارتباطات گروهی (GCS) برای بررسی اجماع نودها و در دسترس بودن بین اعضای خوشه استفاده می‌کند. اگر نودی ناسالم باشد، پس از مقدار gmcast.peer_timeout، به طور خودکار از خوشه خارج می‌شود، به طور پیش فرض این مقدار تایم اوت به 3 ثانیه می‌رسد.

Node Consensus

یک نود سالم Galera در حالت “Synced” به عنوان یک نود قابل اعتماد برای خواندن و نوشتن در نظر گرفته می شود ، در حالی که دیگر نودها چنین نیستند. در MySQL replication اینگونه نیست و MASTER با Slaveها ارتباطی ندارد و فقط slave با پردازش slave_IO_thread با master خود ارتباط دارد. اگر master از دسترس خارج گردد این عمل replication را کنسل می‌نماید. در این حالت slave باید مقادیر زیر را بررسی نماید:

  • Seconds_Behind_Master
  • Slave_IO_Running
  • Slave_SQL_Running
  • read_only variable
  • super_read_only variable (MySQL 5.7.8)

MySQL replication در اتصالات کند و یا اتصالات غیر مداوم بسیار خوب کار می‌کند. همچنین می تواند در سخت افزارها، محیط و سیستم عامل‌های مختلف مورد استفاده قرار گیرد. بیشتر موتورهای ذخیره سازی از آن پشتیبانی می‌کنند، از جمله MyISAM ،Aria ،MEMORY و ARCHIVE.

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

زاگریو

آنبلاک کردن IP در cPANEL

آنبلاک کردن IP در cPANEL

1.1kviews

در این مطلب کوتاه و تصویری قصد داریم به آنبلاک کردن یک IP یا رنج IP در WHM بپردازیم با ما در این مطلب کوتاه در زاگریو همراه باشید.

آنبلاک کردن IP در cPANEL

قدم اول: با گذرواژه و نام کاربری خود وارد پنل WHM خود شوید.

قدم دوم: به بخش Plugins بروید، سپس وارد ConfigServer Security & Firewall (بخش امنیت سرور) شوید.

آنبلاک کردن IP در cPANEL

قدم سوم: به دنبال بخش  Quick Unblock بگیرید و در این بخش با وارد کردن IP یا رنج IP و فشردن دکمه  Quick Unblock رنج مورد نظر خود را آنبلاک نمایید.

آنبلاک کردن IP در cPANEL

قدم چهارم:  CSF هم در لیست بلاک‌های دائمی و هم لیست بلاک‌های مقطعی خواهد گشت و IP انتخابی شما را آنبلاک خواهد نمود.

آنبلاک کردن IP با استفاده از کامند لاین:

قدم اول: با استفاده از اکانت روت خود و SSH داخل سرور خود لاگین نمایید.

قدم دوم: از دستورات زیر استفاده کنید و آن‌ها را اجرا نمایید.

زاگریو
راه اندازی DNSSEC در سرور BIND DNS

راه اندازی DNSSEC در سرور BIND DNS

997views

راه اندازی DNSSEC در سرور BIND DNS، مهم‌ترین موردی است که شما باید اطلاعات لازم برای راه‌اندازی آن را داشته باشید، در زاگریو به بررسی تخصصی این موضوع مهم خواهیم پرداخت.

DNS و DNSSEC به چه معناست؟

می‌دانیم که DNS یک پروتکل برای تبدیل نام دامنه‌ها به IP addressهای آن‌هاست، اما چگونه می‌توان از صحت IP آدرس بازگشتی مطمئن شد؟ آیا ممکن است که یک هکر DNS را آلوده نماید و IP آدرسی بازگشت دهد که کاربر را به یک سایت مخرب بفرستد، با اینکه نامی که در آدرس بار مرورگر نشان می‌دهد صحیح است؟

خرید دامنه

در اینجا ما از افزونه امنیتی DNS با نام DNSSEC استفاده می‌کنیم که هدف آن حفظ امنیت DNS است. DNSSEC با استفاده از PKI ( کلید عمومی) تمام سوابق منابع DNS (A ،MX ،CNAME و …) بررسی می‌کند و اکنون DNS می‌تواند با فعال کردن DNS resolverهایی مانند Google Public DNS صحت dns مورد نظر از لحاظ IP آدرس و دیگر مشخصه ها را با رکوردهای DNSKEY بررسی نماید.

DNSSEC Resource Records

Resource Record (RR)ها دارای اطلاعات خاصی از دامین می‌باشند. بعضی از رکوردهای عمومی A دارای اطلاعاتی مانند IP address دامنه، بعضی از AAAA دارای اطلاعات IPv6 و MX دارای اطلاعات Mail server دامنه می‌باشند.

لیست کامل RRها را می‌توانید در این صفحه مشاهده نمایید.

List of DNS record types

DNSSEC Resource Records

DNSSEC به تعدادی RR نیاز دارد:

DNSKEY کلید عمومی را که DNS resolverها برای تأیید استفاده می کنند، در خود نگه می دارد.

RRSIG برای هریک از RR وجود دارد و حاوی امضای دیجیتالی رکورد است.

DS – Delegation Signer این رکورد در نام سرورهای TLD وجود دارد. اگر ZAGRIO.COM را در نظر بگیریم. TLD همان .com است nameserver شامل a.gtld-servers.net تا m.gtld-servers.net می‌باشد.

را‌ه‌اندازی

Domain Name: zagrio.com

برای این منظور شما از نام دامنه خود استفاده نمایید.

Master Nameserver:
IP Address: 1.1.1.1
Hostname: master.zagrio.com

OS: Debian 7

Slave Nameserver:
IP Address: 2.2.2.2
Hostname: slave.zagrio.com
OS: CentOS

محل فایل‌ها و نام‌ آن‌ها

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

Debian/Ubuntu

نام سرویس:
bind9
فایل اصلی پیکربندی:
/etc/bind/named.conf.options
Zone names file:
/etc/bind/named.conf.local
Default zone file location:
/var/cache/bind/

CentOS/Fedora

Sنام سرویس:
named
فایل اصلی پیکربندی و zone names file:
/etc/named.conf
Default zone file location:
/var/named/

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

پیکربندی DNSSEC Master

پیکربندی DNSSEC Master

DNSSEC را می‌توان با اضافه کردن دستور العمل‌های پیکربندی در options{ } فعال نمود.

nano /etc/bind/named.conf.options

ممکن است تعدادی از این فرامین در توزیع لینوکسی شما از قبل وجود داشته باشند.

با دستور زیر به zone file خود بروید:

و با دستور زیر Zone Signing Key(ZSK) را بسازید.

اگر haveged را نصب کرده باشید برای ایجاد این key فقط چند ثانیه لازم است. در غیر این صورت زمان بیشتی طول خواهد کشید. خروجی به شکل زیر است:

با دستور زیر نیز می‌توانید Key Signing Key(KSK) را بسازید:

نمونه خروجی به شکل زیر است:

دایرکتوری حالا 4 key دارد. ما public key را هم اضافه کردیم که دارای DNSKEY در zone است، حلقه زیر این کار را برای ما انجام می‌دهد.

با کامند زیر dnssec-signzone را نشانه گذاری و sign می‌نماییم.

salt را با یک چیز رندم عوض کنید نمونه خروجی شما مانند زیر خواهد بود:

یک عبارت string شانزده کاراکتری باید به جای salt وارد شود مانند کامند زیر:

با کامند زیر یک فایل با نام example.com.zone.signed می‌سازیم که رکوردهای RRSIG  در ن جای دارند.

تنظیمات فایل را در بخش zone { } تغییر دهید.

فایل را ذخیره کنید و bind را دوباره بارگذاری نمایید.

بررسی کنید که آیا DNSKEY از dig بر یک سرور مشابه استفاده می‌نماید.

نمونه خروجی:

برای وجود رکورد RRSIG  آن را بررسی کنید.

پیکربندی Master Server به پایان رسیده است.

پیکربندی DNSSEC Slave

برای این منظور نیاز است خط‌های زیر را به فایل کانفیگ اضافه نمایید.

و تنظیمات file را در zone { } تغییر دهید.

BIND را دوباره بارگذاری کنید.

بررسی کنید که آیا فایل جدیدی از .signed داخل ZONE وجود دارد یا خیر.

این بخش هم تمام شد و می‌توانید مانند بخش بالا با dig آن را بررسی نمایید.

پیکربندی رکوردهای DS با استفاده از register

وقتی که کامند dnssec-signzone را خارج از فایل های .signed zone اجرا می‌کنید. یک فایل با نام dsset-zagrio.com نیز ساخته می‌شود. که این فایل شامل رکوردهای DS می‌شود.

این‌ها در کنترل پنل رجیستر دامین وارد شده‌اند. تصاویر زیر این روند را برای سایت GoDaddy نشان می‌دهد.

وارد کنترل پنل رجیستر دامنه‌ی خود شوید. دامنه خود را انتخاب کنید. گزینه manage DS records را انتخاب کنید.

پیکربندی رکوردهای DS با استفاده از register

این ها نیز بکاپ ما در dsset-example.com می‌باشد.

DS record 1:

Key tag: 62910
Algorithm: 7
Digest Type: 1
Digest: 1D6AC75083F3CEC31861993E325E0EEC7E97D1DD

DS record 1

DS record 2:

Key tag: 62910
Algorithm: 7
Digest Type: 2
Digest: 198303E265A856DE8FE6330EDB5AA76F3537C10783151AEF3577859FFFC3F59D

DS record 2

رکورد دوم dsset-example.com دارای اسپیس داخل digest می‌باشد. ولی زمانی که آن را import کنید باید آن را حذف نمایید.

DS record 2

چند دقیقه طول می‌کشد تا تغییرات ذخیره شوند. بعد از تایید می‌توانید با سرویس‌های آنلاینی مانند سرویس‌های زیر DNSSEC خود را بررسی کنید.

http://dnssec-debugger.verisignlabs.com/

http://dnsviz.net/

سایت اول بسیار ساده است. اما سایت دوم به صورت ویژوآل و تصویری به شما نشان می‌دهد. در زیر تصویری از سایت اول قرار گرفته است.

http://dnssec-debugger.verisignlabs.com/

خط اولی که با قرمز نشان داده شده Key tag مقدار DS رکوردها را نشان می‌دهد. خط دوم مقدار key id که مربوط به ZSK می‌باش را نشان می‌دهد.

زاگریو

RDP و RDS چیست

RDP و RDS چیست؟

2.8kviews

در این مطلب شما با مفهوم کلی (Remote Desktop Services) RDS و (Remote Desktop Protocol) RDP و همچنین اجزای آن، به طور کامل آشنا خواهید شد، احتمالا شما با کلمه Remote آشنایی دارید و از Remote Desktop Connection موجود در ویندوز 7 استفاده کرده‌اید و حداقل یک بار به گوشتان خورده است. در زاگریو به بررسی این مطالب خواهیم پرداخت.

RDP/RDS چیست؟

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

RDP/RDS

در گذشته TSE (Terminal Services) و حالا RDS (Remote Desktop Services) یک نقش بومی  یا نیتیو در Windows Server 2008, 2012/2012R2, 2016 و 2019 می‌بود و مجموعه‌ای از سرویس‌هاست که به یک یا چند کاربر اجازه می‌دهد از طریق پروتکل RDP به برنامه‌های (RemoteApp Programs), Windows Desktop (Remote Desktop Sessions) یا دسکتاپ مجازی (VDI) دسترسی همزمان داشته باشند. این اتصال و دسترسی با استفاده از شبکه داخلی درون یک مجموعه یا اینترنت صورت می‌گیرد.

اجزای RDS

RDS شامل شش سرویس است:

1 . Remote Desktop Session Host (RDSH): به شما اجازه می دهد چندین دسکتاپ را با اتصال همزمان از راه دور  مدیریت کنید.

2 . Remote Desktop Virtualization Host (RDVH): سرور RDVH با “Microsoft Hyper-V” ادغام می شود تا دسکتاپ‌های مجازی یا ویرچوآل ماشین‌ها را بر اساس تقاضا توزیع نماید. نقش RDVH نشان دهنده زیرساخت Microsoft VDI می‌باشد.

3 . Remote Desktop License Server (RDLS): این نقش نصب و توزیع کلیه  RDS CAL را مدیریت می کند. (برای هر کاربر و هر دستگاه)

4 . Remote Desktop Connection Broker (RDCB): برای مدیریت لود بالانس و سشن‌های اتصال مجدد RDS بکار می‌رود.

5 . Remote Desktop Gateway (RDG): RDG به عنوان یک فایروال RDP برای تمامی کاربران از راه دور دسکتاپ عمل می‌کند. RDG فقط از  HTTPS / 443 استفاده می کند و برای ایمن سازی، RDP را روی HTTPS انتقال می‌دهد.

6 . Remote Desktop Web Access (RDWA): این یک پورتال دسترسی به وب RDS است که به شما امکان انتشار منابع (ریسورس‌های) داخلی RDS و توزیع‌ها را از طریق یک پورتال وب را به شما می‌دهد.

معماری RDS

در یک نگاه، معماری استاندارد RDS ویندوز سرور از نسخه 2008 تا 2019 با اجزای ذکر شده در بالا به صورت تصویر زیر اجرایی می‌گردند:

 

RDP Components

آیا RDP یک پروتکل امن است؟

پیکربندی پیش فرض RDP هنگام فعال بودن، آن را در برابر چند حمله متفاوت آسیب پذیر می‌کند. با این حال، برخی از پیشرفت های امنیتی در نسخه جدید RDS برای Windows Server ارائه شده است.

به طور پیش فرض، چندین حمله امکان پذیر است:

  • Denial of Service  🙁DoS) یا همان داس
  • Man-in-The-Middle 🙁MiTM)
  • Brute-Force: بروت فورس

ریسک‌های امنیتی پروتکل RDS

هنگام سروکله زدن با پروتکل RDP، به طور پیش فرض چندین آسیب پذیری و خطر امنیتی وجود دارد که باید آن‌ها را بشناسید و آن‌ها را در نظر بگیرید:

  • نمایش RDS بر روی اینترنت
  • Man-in-the Middle (MiTM)
  • حمله رمزگذاری
  • حمله داس Denial of Service (DOS)
  • تخلیه هش‌های رمزعبور
  • پیکربندی اشتباه RDS
  • باج افزار
  • حمله بروت فورس
  • استفاده از RDSH فضای اشتراک گذاشته‌ شده‌‌‌‌‌‌‌‌‌‌‌‌‌ی RDS
  • استفاده از KEY LOGGERها

 

نمایش RDS بر روی اینترنت

هیچ ضرورتی وجود ندارد که سرویس Remote Desktop را در در معرض اینترنت و اتصال از طریق اینترنت قرار دهید، اتصال از طریق اینترنت و خارج از شبکه داخلی باعث می‌شود کاربران خطرناک و افرادی که قصد حمله به RDS شما را دارند از این فرصت استفاده کنند و بیشتر نیز سعی می‌نمایند اکانت administrator را هدف قرار دهند. در این میان اگر هکرها موفق شوند رمز عبور با موفقیت حدس بزنند و پیدا کنند، دسترسی حاصل می‌تواند پیامدهای قابل توجهی برای سازمان شما داشته باشد و حملات بیشتر علیه زیرساخت های قابل اعتماد شما یا متصل به شما را تسهیل کند.

حمله Man-in-the Middle (MiTM)

اگرچه سرویس Remote Desktop رمزگذاری داده را بین کاربر و سرور به طور پیش فرض فراهم می‌کند ، اما تأیید هویت سرور Terminal / RDSH را تأیید نمی‌کند. این عدم تأیید هویت به هکر اجازه می دهد، با به کارگیری سایر روش‌های حمله و نفوذ، کلیه ارتباطات ارسالی بین کاربر و Terminal Server را رهگیری کند. احتمال این نوع حمله به توانایی هکر در کنترل ارتباطات بین سرویس گیرنده(کاربر) و Terminal Server بستگی دارد. به طور معمول، هکر نیاز به حملات دیگری مانند جعل ARP (پروتکل حل آدرس) یا جعل اطلاعات DNS (Domain Name System) دارد که اطلاعات را قبل از ارسال به سرور اصلی به سرور خود هدایت کند.

حمله رمزگذاری

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

حمله داس Denial of Service (DOS)

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

تخلیه هش‌های رمزعبور

باید اطمینان حاصل کنید ک هیچ یک از کاربران ریموت دسکتاپ شما “Local Administrators” نیستند زیرا اگر چندین Local Admin داشته باشید، این مدیران می‌توانند با استفاده از ابزارهای dump hash password رمز دیگر adminها را بر روی شبکه متوجه شوند. برای جلوگیری از هرگونه خطر مربوط به استفاده از ابزار dump hash password مانند Mimikatz، باید از AppLocker استفاده شود.

پیکربندی اشتباه RDS

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

باج افزار

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

حمله بروت فورس

اگر از پسوردهای ضعیف استفاده می‌نمایید امکان آسیب پذیری شما در مقابل حملات بروت فورس بسیار بالاست. برای جلوگیری از این نوع حمله بهترین راه حل اطمینان از رمز عبور قدرتمند برای تمامی افرادی است که به RDS شما متصل می‌گردند. یکی دیگر از نکات مفید کم کردن تعداد افرادی است که به RDSHشما دسترسی دارند، هیچگاه از تنظیمات « illimited » با تعداد نامعلومی کاربر برای اتصال به سرور استفاده نکنید.

فضای اشتراک گذاشته‌ شده‌‌‌‌‌‌‌‌‌‌‌‌‌ی RDS

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

مجموعه RDS اغلب برای میزبانی از همه نوع برنامه‌ها یک شرکت (منابع انسانی، امور مالی، IT … ) استفاده می شود و هیچ استثنا و تغییری از لحاظ محدودیت دسترسی برنامه‌ها وجود ندارد در واقع همه برنامه‌ها در یک محیط “مشترک” / سرورهای میزبان RD اجرا می‌گردند. و این امر باعث ایجاد  حمله و نفوذ می‌شود. برای حل این موضوع بهتر است هر برنامه یا هر محیطی بر یک مجموعه RDS جداگانه اجرا شود.

حمله با استفاده از Keyloggerها به RDP

کی‌لاگر یک نرم افزار جاسوسی است که هر کلیدی که بر روی کیبور فشار داده شود را ثبت و ارسال می‌کند برای جلوگیری از آلوده شدن و ثبت کلیدها توسط کی‌لاگر نیاز است تا در AppLocker سیاستی اتخاذ شود تا برنامه‌های خاصی قابلیت اجرا بر روی سشن‌های RD داشته باشند.

تمهیدات امنیتی مهم برای RDP:

  • فعال کردن HA (High Availability) برای تمامی سرویس‌های RDS: فعال کردن برای RDSH/RDCB/RDWA/RDG/RDLS و SQL server
  • ایجاد یک مجموعه جدید RDS برای هر کاربر و هر برنامه
  • نصب RDG (Remote Desktop Gateway) برای همه کاربران خارج از مجموعه
  • فعال کردن MFA (یا 2FA)
  • فعال کردن NLA (Network Level Authentication) برای تمام مجموعه‌های RDS
  • رمزگذاری سطح بالا برای کلیه ارتباطات RDP (رمزگذاری 128 بیتی)
  • استفاده از احراز هویت TLS برای همه RDSH ها
  • AppLocker را در تمام سرورهای میزبان RD سشن‌ها تعریف و اعمال کنید
  • ایجاد پسورد قوی برای همه استفاده کنندگان
  • تغییر پورت پیش فرض RDP
  • عدم دسترسی حضوری به سرورهای RD
  • محدود کردن تعداد کاربران
  • تمام لاگ‌های RDباید ذخیره گردد و به صورت مداوم آنالیز شود

فعال کردن HA (High Availability) برای RDP

کلیه سرویس‌ها و اجزای RD باید در دسترس باشند:

1 . RD Session Host Server: حداقل دو سرور RDSH باید بخشی از یک مجموعه اختصاصی RDS باشند

2 . RD Connection Broker: حداقل دو سرور RDCB باید مستقر و پیکربندی شوند، حالت HA (SQL Server مورد نیاز است)

3 . RD Web Access: حداقل دو سرور RD Web Access باید در کنار Load balancer مستقر و پیکربندی شوند

4 . RD Gateway: حداقل دو سرور RD Gateway باید در حالت HA و کنار Load Balancer مستقر و پیکربندی شوند

5 . RD Licensing Server: حداقل دو سرور لایسنس RD در حالت HA باید مستقر و پیکربندی شوند

ایجاد یک مجموعه جدید RDS برای هر کاربر و هر برنامه

ابتدا باید تمام برنامه های منتشر شده خود را لیست کنید (RemoteApps) سپس، باید یک لیست دسته‌بندی از برنامه های خود ایجاد کنید. هر گروه برنامه باید از طریق یک مجموعه اختصاصی RDS Session (سرورهای اختصاصی RDSH) منتشر و توزیع شود. RD Web Access & RD Gateway را می توان برای همه کاربران ریموت دسکتاپ به اشتراک گذاشت (حالت اشتراکی برای سرویس های وب RD مجاز است).

نصب RDG (Remote Desktop Gateway) برای RDP

توصیه می شود برای همه کاربران ریموت دسکتاپ یک RD Gateway مستقر کنید و یک CAP قوی (خط مشی های دسترسی اتصال) و RAP (خط مشی های دسترسی به منابع) را برای بهبود سطح امنیت محیط RDS تعریف کنید. RD Gateway برای کار کردن به یک گواهینامه SSL معتبر نیاز دارد، گواهی SSL که به RD Gateway تحویل داده می شود باید توسط CA معتبر/معتمد (مرجع صدور گواهینامه) ارائه شده باشد.

RDP

فعال کردن MFA (یا 2FA)

توصیه می شود MFA (احراز هویت چند عاملی) را برای همه کاربران ریموت دسکتاپ فعال کنید که از خارج به منابع داخلی RDS شما متصل می‌شوند. سرویس MFA برای کارکرد به یک  RD Gateway نیاز دارد. کاربران ریموت دسکاپ برای تکمیل فرآیند MFA باید حداقل یک دستگاه فیزیکی (تلفن هوشمند و …) داشته باشند.

فعال کردن NLA (Network Level Authentication)

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

رمزگذاری سطح بالا برای کلیه ارتباطات RDP (رمزگذاری 128 بیتی)

به طور پیش فرض، سرویس Remote Desktop از تنظیمات رمزگذاری متوسط سازگار با کلاینت استفاده می‌کند. این سطح از رمزگذاری، اطلاعات ارسالی بین کاربر و سرور را با حداکثر قدرت کلید پشتیبانی شده توسط کاربر رمزگذاری می کند. به طور کلی در چنین محیطی تعدادی از کاربرها از نسخه‌های اولیه کلاینت استفاده می‌کنند که خود ریسک‌را افزایش می‌دهد. بنابراین توصیه می‌شود از سطح رمزنگاری “High”برای رمزنگاری استفاده نمایید.

استفاده از احراز هویت TLS برای همه RDSH ها

تمامی سرورهای ایجاد کننده سشن RD باید توسط TLS برای RDS احرازهویت شوند، این کار برای جلوگیری از به سرقت رفتن هویت کاربران از راه دور  اجباری است. گواهینامه های SSL که برای تأیید اعتبار سرورهای RDSH استفاده می شوند باید توسط CA معتبر (مرجع صدور گواهینامه) یا PKI داخلی شما تایید و تحویل گردند.

اعمال AppLocker

شما باید RD Session Host خود را که میزبان جلسات و برنامه های منتشر شده است را قفل کنید. یک سیاست یا پالیسی قوی AppLocker باید برای همه سرورهای میزبان RD شما تعریف و اعمال شود. ابتدا باید برنامه های خود را بررسی کرده و تمام اطلاعات مورد نیاز مانند “Apps Thumbprint” را برای تعریف و استفاده از AppLocker  خود جمع آوری و ارسال کنید. در آخر توصیه می‌کنیم که یک لیست سفید از اپلیکیشن‌هایی که می‌توانند اجرا شوند ایجاد کنید.

ایجاد پسورد قوی برای همه استفاده کنندگان

ایجاد یک رمز قوی و یا یک سیاست رمز برای ایجاد آن توسط کاربران ریموت بسیار مهم و تاثیرگذار است. با استفاده از AD Group Policy Object ، می توانید سیاست گذرواژه خود را ایجاد ، پیکربندی و اعمال کنید (به عنوان مثال: RDS-USERS).

تغییر پورت پیش فرض RDP

به طور پیش فرض ، پروتکل RDP با پورت 3389 کار می‌کند. و این پورت توسط چندین نرم افزار مخرب/باج افزار هدف قرار می‌گیرد. هکرها نیز در مرحله Footprinting این پورت پیش فرض را هدف قرار می دهند پس توصیه ما تغییر این پورت به پورتی مانند 33381 می‌باشد. برای این تغییر می‌توانید از این اسکریپت استفاده کنید.

امن کردن دستگاه کاربران متصل به RDP

اگر خط مشی امنیتی شما محدود کردن کلیه تغییر مسیر منابع محلی (درایو محلی، چاپگرها، کلیپ بورد و… ) می‌باشد، باید تمام گزینه های تغییر مسیر منابع محلی را بر روی سرورهای RD Session Hosts خود (از طریق GPO) را انجام دهید و همین سیاست را نیز برای دستگاه‌های متصل از راه دور کاربران در پیش بگیرید. کلید رجیستری ذکر شده در بخش “ضمیمه” را می توان از طریق GPO پیکربندی کرد تا تمام تغییر مسیر منابع محلی RDC را غیرفعال کند> MSTSC.exe

محدود کردن تعداد کاربران

اگر لیست کاملی از همه کاربران ریموت دسکتاپ (داخلی و خارجی) را دارید، توصیه می شود حداکثر تعداد سشن‌های ریموت دسکتاپ مجاز را روی RD Gateway تنظیم کنید.

تمام لاگ‌های RDباید ذخیره و آنالیز گردند

تمام عملیات انجام شده در محیط RDS شما باید ثبت شوند: اتصالات ، اتصال مجدد ، تغییر/اصلاح ها تجزیه و تحلیل شوند تا ارتباطات مشکوک یا رفتارهای غیرعادی اگر وجود دارد کشف و رهگیری شود. در کمترین حالت حداقل باید سیاست WEF (Windows Event Forwarding) تعریف و پیکربندی شود.

تست نفوذ محیط RDS

پس از استقرار RDS، باید آزمایشات نفوذ را در محیط RDS خود انجام دهید، این HLV به شما امکان می دهد قبل از ادغام آن در محیط پروداکشن، سطح امنیتی بستر RDS خود را تأیید کنید. برای تأیید وضعیت امنیتی RDS باید چندین آزمایش زیر انجام شود:

  • امنیت تمام اجزای RDS شامل: RDG, RD Web Access
  • روند احراز هویت
  • حمله رمزگذاری
  • احراز هویت TLS
  • حمله MiMT
  • حمله D/DoS
  • انزوای شبکه
  • خط مشی محدودیت برنامه ها
  • مجموعه RDS Multi-tenancy

ضمیمه:  (محدود کردن تغییر مسیر منابع محلی(MSTSC.exe))

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

Key Path : HKLM\SOFTWARE\Microsoft\Terminal Server Client
Registry Key Name : DisableClipboardRedirection
Key Type : REG_DWORD
Data Value : 1

 

برای غیرفعال کردن تغییر مسیر Local Drive، باید کلید رجیستری زیر در دستگاه های ریموت دسکتاپ/لپ تاپ های کاربر ایجاد شود:

 

Key Path : HKLM\SOFTWARE\Microsoft\Terminal Server Client
Registry Key Name : DisableDriveRedirection
Key Type : REG_DWORD
Data Value : 1

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

Key Path : HKLM\SOFTWARE\Microsoft\Terminal Server Client
Registry Key Name : DisablePrinterRedirection
Key Type : REG_DWORD
Data Value : 1

 

قفل کردن سرورهای RDSH

 

RDP 2

 

 

RDP 4

هرچیزی که در مورد Firewalld باید بدانید

هرچیزی که در مورد Firewalld باید بدانید

504views

در بعضی موقعیت‌ها استفاده از firewalld بر روی سیستم‌های systemd از مدیریت و پیکربندی iptableها راحت تر است. برای بیشتر بخش‌ها دیگر به یادگیری و به خاطر سپردن پرش‌ها، قبول کردن‌ها و رد کردن‌ها نمی‌باشید. قوانین راه‌اندازی firewalld بسیار ساده‌تر و در دسترس تر می‌باشند. اما همزمان این مورد باعث نمی‌شود که به قدرت و امکانات iptables دسترسی نداشته باشید.

firewalld چیست؟

firewalld از یک کامندلاین با نام firewall-cmd  برای پیکربندی و تغییر قوانین استفاده می‌کند. قبل از اینکه firewalld را پیکربندی کنیم نیاز است که مطمئن شویم سرویس درحال اجراست، با استفاده از دستور systemctl شما سرویس firewalld را راه‌اندازی، متوقف، شروع، پایان یا راه‌اندازی مجدد می‌نمایید. متاسفانه برای تمامی استفاده‌های ذکر شده هیچ خروجی متفاوتی توسط systemctl نمایش داده نمی‌شود که بتوان میان آن‌ها تمایز قائل شد. پس نیاز است که بعد از هربار استفاده از این دستور از وضعیت firewalld آگاه شوید.

firewalld

Systemctl و Firewalld

فعال‌سازی Firewalld

برای اینکه مطمئن شوید firewalld بصورت اتوماتیک با سرور راه‌اندازی شده از دستور زیر استفاده نمایید.

systemctl enable firewalld

شروع firewalld

بعد از اینکه firewalld فعال شد، نیاز است که برای بار اول آن را راه‌اندازی(شروع یا استارت) نماییدو برای این کار نیاز است که از دستور زیر استفاده نمایید:

systemctl start firewalld

توقف firewalld

زمانی که به اصلاح قوانین یا رفع اشکال اتصالات(کانکشن‌ها) می‌پردازید لازم است که firewalld را متوقف کنید، برای منظور می‌توانید از دستور زیر استفاده نمایید.

systemctl stop firewalld

راه‌اندازی مجدد firewalld

اگر به هر دلیلی مجبور شدید تا firewalld را راه اندازی مجدد نمایید می‌توانید از دستور زیر در systemctl  استفاده نمایید:

systemctl restart firewalld

وضعیت firewalld

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

systemctl status firewalld

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

[root@centos-7 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2019-01-22 22:50:32 EST; 1h 0min ago
Main PID: 808 (firewalld)
CGroup: /system.slice/firewalld.service
└─808 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

مدیرت firewalld و پیکربندی آن

حال که با دستورات ابتدایی اجرایی firewalld آشنا شدیم و firewalld خود را راه‌اندازی نمودیم‌ میتوانیم به مبحث مدیریت و پیکربندی firewalld بپردازیم بعنوان مثال یک پورت را باز کینم، به سرویس‌ها اجازه فعالیت دهیم، IPها را در لیست سفید قرار دهیم و کارهایی از این قبیل. در تمامی این مثال‌ها ما از پرچم یا فلگ –permanent استفاده می‌کنیم این مهم به این معنی است که قانون وضع شده شما ذخیره می‌گردد حتی بعد از راه اندازی مجدد Firewalld یا ریبوت کردن سرور. بعد از اضافه کردن قوانین جدید لازم است که شما firewall خود را راه اندازی مجدد نمایید تا قوانین جدید اجرا شوند.

اضافه کردن پورت برای UDP یا TCP

برای اضافه کردن یا باز کردن یک پورت در UDP یا TCP نیاز است تا به صورت جداگانه آن دستورات را برای هر نوع پروتکل اجرا نمایید:

firewall-cmd --permanent --add-port=22/TCP

firewall-cmd --permanent --add-port=53/UDP

حذف کردن پورت برای UDP یا TCP

دستور زیر که برای حذف یا بستن یک پورت در پروتکل‌های ذکر شده کاربرد دارد بسیار شبیه به دستورات بالاست با تفاوتی اندک:

firewall-cmd --permanent --remove-port=444/tcp

اضافه کردن سرویس

سرویس‌ها به صورت پیشفرض از پورت‌هایی که در بخش /etc/services پیکربندی شده استفاده می‌نمایند، اما اگر نیاز دارید تا از پورتی خارج از پورت‌های پیش‌فرض برای سرویس‌های خود استفاده نمایید باید آن پورت را باز کنید برای این منظور می‌توانید از دستور زیر استفاده نمایید:

firewall-cmd --permanent --add-service=ssh

firewall-cmd --permanent --add-service=http

حذف کردن یک سرویس

با دستور زیر می‌توانید یک سرویس و پورت گشوده شده برای آن را پاک کنید/ ببندید:

firewall-cmd --permanent --remove-service=mysql

اضافه کردن یک IP به لیست سفید

برای اضافه کردن یک IP یا یک رنج از IPها کافیست با دستور زیر این IPها را به لیست مورد اعتماد firewall اضافه نمایید:

firewall-cmd --permanent --add-source=192.168.1.100

برای اضافه کردن بک رنج از IPها نیز می‌توانید از دستور زیر بهره جویید:

firewall-cmd --permanent --add-source=192.168.1.0/24

حذف کردن یک IP از لیست سفید

برای حذف کردن یک IP یا یک رنج IP می‌توانید از –remove-source مانند مثال زیر استفاده کنید:

firewall-cmd --permanent --remove-source=192.168.1.100

بلاک کردن یک IP

به صورت عمومی firewall-cmd برای اجازه دسترسی و بلاک کردن دسترسی استفاده می‌شود و یکی از بیشترین استفاده‌ها نیز بلاک کردن دسترسی یک IP است برای این منظور ما نیاز به rich rule داریم که بسیار شبیه به قوانینی است که برای iptable استفاده می‌کنیم:

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' reject"

برای بلاک کردن یک رنج IP نیز همانند بالا می‌توانیم از دستور CIDR زیر استفاده کنیم:

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.0/24' reject"

اضافه کردن یک IP به لیست سفید در یک پورت مشخص

برای این عمل نیاز به اعمال قوانین بیشتر یا rich rule بیشتر می‌باشد، برای این منظور باید به iptable برگردیم و از قوانین خود استفاده نماییم و در پایان از accept استفاده می‌کینم تا IP به لیست سفید افزوده گردد نه اینکه reject شود.

firewall-cmd --permanent --add-rich-rule='rule family="ipv4"
source address="192.168.1.100" port protocol="tcp" port="3306" accept'

حذف یک Rich Rule

برای حذف یک rich rule از آپشن —remove-rich-rule استفاده می‌نماییم هرچند که در این فرایند باید مشخص نمایید که چه قانونی قرار است حذف گردد، توصیه ما کپی کردن و پیست کردن کامل آن قانون است تا انکه آن را تایپ نمایید زیر ممکن است آن را کامل به یاد نیاورید و دچار مشکل شوید:

firewall-cmd --permanent --remove-rich-rule='rule family="ipv4"
source address="192.168.1.100" port protocol="tcp" port="3306" accept'

ذخیره قوانین Firewall

بعد از اینکه تمامی قوانین مورد نظر خود را اضافه نمودید و تصمیمی گرفتید که آنها را اجرایی کنید نیاز است که فایروال خود را بار دیگر راه‌اندازی نمایید برای این منظور باید دستور زیر را با firewall-cmdاجرا نمایید.

firewall-cmd --reload

مشاهده قوانین firewall

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

firewall-cmd --list-all

مثال زیر یک نمونه از خروجی آپشن –list-all می‌باشد، در مثال زیر می‌توانید پورت‌ها، rich ruleها و سرویس‌های باز را مشاهده نمایید.

[root@centos-7 ~]# firewall-cmd --list-all
public (default, active)
interfaces: enp1s0
sources: 192.168.1.0/24
services: dhcpv6-client dns http https mysql nfs samba smtp ssh


ports: 443/tcp 80/tcp 5900-5902/tcp 83/tcp 444/tcp 3260/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="192.168.1.0/24" forward-port port="5423" protocol="tcp" to-port="80"

پیکربندی Firewalld به صورت تصویری

اگرچه مطلب نوشته شده تمرکزش بیشتر بر روی اجرای دستورات و استفاده از firewall-cmd بود اما راه دیگر ایجاد قوانین و اجرای دستورات استفاده از رابط گرافیکی firewalld می‌باشد که می‌توانید آن را در قسمت Applications > Sundry در CentOS 7 و RedHat 7.x پیدا کنید. برای نصب این رابط گرافیکی می‌توانید از دستور زیر استفاده نمایید:

sudo yum install firewall-config

FIREWALLD

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

firewalld permanent option

قوانین مستقیم Firewalld

قوانین مستقیم نوعی از قوانین هستند که به صورت مخصوصی از دیگر قوانین جدا شده‌اند، برای این هستند که به صورت مستقیم با firewall ارتباط برقرار شود این قوانین را می‌توانید در فایلی به آدرس /etc/firewalld/direct.xml  ویرایش نمایید. هرچند این قوانین نیز مانند دیگر قوانین نیاز است که فایروال برای اجرای این قوانین راه اندای دوباره گردد. این قوانین مانند rich  ruleها یا قوانین iptables  می‌باشند فقط در یک فایل XML نوشته شده‌اند. رابط کاربری قوانین مستقیم بیشتر توسط سرویس‌‍ها و اپلیکیشن‌ها برای اضافه کردن قوانین مخصوصی استفاده می‌گردد. در مثال زیر تعدای IP را می‌بینید که برخلاف لیست سیاه می‌باشند و به فایروال می‌گوید که با بررسی IPها و مچ شدن با آن‌ها کانکشن را قطع نماید، باید توجه داشت که شما می‌توانید برای اضافه کردن قوانین مستقیم از firewall-cmd استفاده نمایید اما باید در انتهای دستور از –direct استفاده نمایید.

<?xml version="1.0" encoding="utf-8"?>
<direct>
<chain ipv="ipv4" table="raw" chain="blacklist"/>
<rule ipv="ipv4" table="raw" chain="PREROUTING" priority="0">-s 192.168.1.0/24 -j blacklist</rule>
<rule ipv="ipv4" table="raw" chain="PREROUTING" priority="1">-s 192.168.5.0/24 -j blacklist</rule>
<rule ipv="ipv4" table="raw" chain="blacklist" priority="0">-m
limit --limit 1/min -j LOG --log-prefix "blacklisted: "</rule>
<rule ipv="ipv4" table="raw" chain="blacklist" priority="1">-j DROP</rule>


</direct>

کلام آخر..

در این مقاله هرچیزی را که باید در مورد firewalld بدانید را برای شما کاربران عزیز، توضیح دادیم، برای حفظ امنیت سرور خود و مدیریت سرور بهتر،‌ مواردی را که در این مقاله گفتیم را رعایت کنید.
ولی اگر به هرگونه مشکلی برخوردید، کارشناسان زاگریو، به صورت ۲۴ ساعته جواب‌گوی سوالات شما عزیزان هستند.
زاگریو