Saman Yazdannikنمایش همه نوشته ها

Avatar for Saman Yazdannik

laus Deo

public key و private key: آموزش ایجاد در cPanel

public key و private key: آموزش ایجاد در cPanel

1.3kviews

در این آموزش با public key و private key که یکی از راه‌های اتصال به سرور استفاده از SSH می‌باشد. و از این راه می‌توانید با گذرواژه و نام کاربری خود به سرور متصل گردید. اما این امر باعث خطراطی نیز هست برای افزایش امنیت می‌توانید از پیر کرد key استفاده نمایید. این کلید‌ها می‌توانند عمومی یا خصوصی باشند. که در این فرایند کلید عمومی بر روی سرور شماست و کلید خصوصی بر روی سیستم شما و زمانی که شما مبادرت به اتصال به سرور می‌نمایید کلیدها باهم مقایسه می‌شوند و اگر کلید درست باشد شما به سرور متصل خواهید شد.

آموزش ایجاد در cPanel

ما در این آموزش public key و private key به شما یاد می‌دهیم که چگونه کلید عمومی و خصوصی را ایجاد نمایید و آن‌ها را به سرور خود توسط PuTTY متصل نمایید.

مرحله اول آموزش public key و private key :برای ایجاد و استفاده از کلید عمومی و خصوصی در cPanel :

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

قدم دوم: بخش SECURITY را پیدا نمایید و وارد آن شوید. سپس وارد بخش SSH Access شوید.public key و private key

قدم سوم: بر دکمه Manage SSH Keys کلیک نمایید.

public key و private key

قدم چهارم: در مرحله بعدی بر کلید +Generate a New Key کلیک نمایید.

public key و private key

قدم پنجم: شما فعلا در بخش Generating a Public Key قرار دارید و حالا می‌توانید اطلاعات کلید عمومی خود را تکمیل نمایید.

public key

قدم ششم: حالا اگر بر کلید Generate Key کلیک نمایید کلید شما ساخته‌ خواهد شد و اطلاعاتی مانند زیر به شما نمایش داده خواهد شد.

Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.
The key fingerprint is:
b7:9a:55:59:c1:a7:6a:31:5c:9a:40:50:e9:73:24:a0

قدم هفتم: به صفحه قبل باز می‌گردیم.

قدم هشتم: حالا نیاز است که شما کلید ساخته شده را تایید نمایید این امر باید از طریق Manage به صورت تصویر زیر صورت گیرد.private keypublic key و private key

قدم نهم: باز هما به صفحه قبل باز می‌گردیم اینبار برای کلید خصوصی به صفحه View/Download می رویم.

public key و private key

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

ssh key چیست

قدم یازدهم: می‌بینید که کلید شما با موفقیت تبدیل می‌شود و شما حالا می‌توانید آن را دانلود نمایید Download key با استفاده از این گزینه.

قدم دوازدهم: حالا PuTTY را در کامپیوتر خود اجرا نمایید و به بخش Connection->SSH->Auth بروید.

private and public key

قدم سیزدهم: بر روی کلید Open مانند تصویر بالا کلیک نمایید و سپس Passphrase را زمانی که از شما خواسته شد وارد نمایید.

ssh -i private key

بعد از وارد کردن شما وارد سرور شده‌اید.

زاگریو

آموزش فعال کردن SPF ،DKIM ،DMARC

آموزش فعال کردن SPF ،DKIM ،DMARC

2.3kviews

در زاگریو قصد داریم تا به بررسی آموزش فعال کردن SPF ،DKIM ،DMARC، بپردازیم و توضیحی مختصر در مورد موضوع dmarc، به شما عزیزان بدهیم. پس با ما همراه باشید تا اطلاعات خود را بالا ببرید.

dmarc چیست؟

DMARC مخفف Domain Based Message Authentication, Reporting and Conformance می‌باشد و DMARC یک پروتکل احراز هویت ایمیل است، که از SPF (چارچوب خط‌مشی فرستنده) (Sender Policy Framework) و DKIM (ایمیل شناسایی شده با کلیدهای دامنه) (Domain Keys Identified Mail) استفاده می‌کند تا مشخص کند آیا ایمیل معتبر است یا نه. در زاگریو، قصد داریم تا در مورد این موضوع و آموزش فعال سازی آن، با شما صحبت کنیم.

DMARC

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

DMARC

اما مشکل کجاست؟ در بعضی مواقع ایمیل‌های شما بعنوان اسپم علامت گذاری می‌شوند، راحت ترین و امن ترین راه فعال نمودن SPF, DKIM و DMARC می‌باشد، که در مطلب زیر به آن می‌پردازیم. این امر دلایل زیادی می‌تواند داشته باشد. یکی از راه‌ها برای بررسی این امر که آیا ایمیل شما بعنوان اسپم یا Unverified sender علامت گذاری شده است استفاده از این ابزار گوگل است. در مثال زیر مشکل فعال نبودن SPF, DKIM و DMARC می‌باشد و توصیه‌ی ما فعال سازی این موارد به سرعت است.

SPF ،DKIM ،DMARC چیست؟

SPF مخفف Sender Policy Framework است، کی از پارامترهای بسیار مهم برای ایمیل شماست که باید حتما فعال شود. این مفهوم، یک متد احراز هویت است که بررسی می‌نماید ایمیل از یک سرور مورد تایید ارسال شده است. فعال کردن SPF کمک می‌نماید که از اسپم شدن ایمیل شما جلوگیری شود و مطمئن باشید که ایمل شما به مقصد می‌رسد.

DKIM مخفف DomainKeys Identified Mail به هر ایمیل یک امضای مشخص اضافه می‌کند تا سرور دریافت کننده پیام مطمئن گردد که ایمیل در میانه راه رسیدن بهسرور دوم دچار تغییر یا سواستفاده قرار نگرفته است.

DMARC

DMARC مخفف Domain-based Message Authentication, Reporting & Conformance می‌باشد، فعال شدن این گزینه به سرور دریافت کنند پیام می‌گوید تا SPF و DKIM را بررسی نماید. و بررسی نماید که ایمیل مورد نظر از یک مدیریت سرور تایید شده ارسال گشته است. شما باید یک خط مشی اجرایی تعیین کنید که در آن بتوانید دستور دهید در صورت عدم موفقیت در بررسی احراز هویت، چه اقدامی انجام شود. می توانید حدس بزنید، DMARC فقط زمانی موثر است که SPF و DKIM به درستی تنظیم شده باشند.

چگونه SPF ,DKIM ,DMARC تنظیم کنیم؟

  • فعال کردن این قابلیت‌ها در بخش دامین (خرید دامنه) سایت شما صورت می‌پذیرد و می‌توانید آ‌ن‌ها را به سادگی یک روکورد TXT اضافه نمایید.
  • برای فعال کردن SPF نیاز است تا با ارائه دهنده ایمیل خود تماس بگیرید تا این قابلیت را برای شما فعال نمایند.
  • برای فعال کردن DKIM نیاز است تا از از بخش ایمیل هاستنیگ خود اقدام نمایید و یک DKIM selector ایجاد نمایید، آموزش فعال کردن DKIM قبلا برای دایرکت ادمین در سایت موجود است.
  • اما برای فعال کردن DMARC مهم است که بررسی کنید ارائه دهنده خدمات ایمیل شما از این مورد پشتیبانی می‌کند یا خیر، و برای این بخش یک خط مشی تعیین نمایید که مشخص نماید که چگونه احراز هویت شما بررسی شود.
زاگریو
Nginx Plus در مقایسه با Nginx عادی چه تفاوتی دارد؟

Nginx Plus در مقایسه با Nginx عادی چه تفاوتی دارد؟

1.1kviews

در مقاله 10 لود بالانس اوپن سورس و رایگان و در مبحث لود بالانسر‌ها (Load Balancer)ها اشاره‌ای کوتاه به Nginx Plus داشتیم، حال در این مقاله قصد داریم بیشتر آن را بررسی نماییم و در مورد آن صحبت کنیم.

Nginx Plus در مقایسه با Nginx عادی چه تفاوتی دارد؟

Apache HTTP پیشتاز وب سرورهاست واین موضوع از آمار نیز مشخص است، اما همین آمار نکته‌ی دیگری را نیز به ما متذکر می‌شوند و آن هم چیزی نیست جز قدرت گیری آهسته‌ی Nginx که قصد دارد پیشتازی را از Apache HTTP برباید.

nginx plus

Nginx به سرعت و بهروری بینظیرش معروف است و بیشترین سهم از سایت‌هایی با رنک زیر 10 هزر و صد هزار را داراست که خود نشان دهنده برتری آن است.

در تصویر زیر می‌توانید آمار استفاده از Nginx و Apache HTTP را مشاهده نمایید.

nginx plus

یکی از بزرگترین مزیت‌های Nginx اوپن سورس بودن آن است، و همین نکته باعث شده تا با بیشتر سرورهای بک اندی میانه خوبی داشته باشد. اگر تا حالا با Nginx کار کرده‌اید احتمالا نام Nginx Plus را هم شنیده‌اید که نسخه تجاری آن است.

همانطور که تا حالا حدس زده‌اید Nginx Plus نسبت به برادر کوچکترش مزایای بیشتری دارد. به عنوان مثال:

  • ماندگاری session ها برای اطمینان از هدایت به سرور بالا دستی
  • High-availability clustering برای جلوگیری از خرابی تک نقطه‌ای (SPOF)
  • بررسی سلامت لحظه‌ای سرور برای جلوگیری از ارسال درخواست به سرور‌های دچار مشکل
  • پایش سرویس‌‌ها با استفاده از DNS
  • لود بالانسر با ویژگی‌های کامل
  • کنترل بیشتر بر cache
  • کنترل داخلی برای رفع اشکال، استفاده صحیح از منابع ، عیب یابی
  • sign in تک مرحله‌ای
  • ماژول پویای WAF
  • کنترل پهنای باند برای پخش فایل‌های Mp4

Nginx Plus برای سیستم‌عامل‌های زیر در دسترس است:

  • RHEL / CentOS
  • Amazon Linux
  • Oracle Linux
  • FreeBSD
  • SUSE
  • Ubuntu
  • debian

و برای IaaS ها(infrastructure-as-a-service) زیر:

  • Google Cloud Platform (GCP)
  • Amazon Web Services (AWS)
  • Microsoft Azure

نصب Nginx Plus

Nginx برای این نسخه یک trial سی روزه در نظر گرفته که شما می‌توانید به راحتی آن را دانلود نموده و به بررسی آن بپردازید تا در صورت نیاز آن را تهیه نمایید. در زیر نسخه‌ای نمایش داده شده که بر روی گوگل کلاد نصب گشته است. در زیر نصب Nginx Plus با استفاده از اسکریپت نشان داده شده که بسیار راحت است. در قدم اول با استفاده از root در سرور لاگین کنید.

در قدم بعدی اسکریپت زیر را اجرا نمایید.

در ادامه متنی که در اسکریپت بالا با هشتگ مشاهده می‌شود را با hash key که توسط Nginx به شما داده می‌شود جایگزین نمایید.  مانند مثال زیر:

به همین راحتی!

حالا نیاز است که Nginx را راه اندازی کنیم و صحت نصب خود را مورد بررسی قرار دهیم:

با اجرای این دستور از نصب صحیح خود اطمینان حاصل می‌نمایید.

شروع و توقف Nginx

شروع و توقف Nginx Plus مانند نسخه رایگان و اوپن سورس آن است.

بررسی لحظه به لحظه Nginx Plus

همانطور که در بالا هم اشاهر شد Nginx Plus دارای بررسی لحظه به لحظه است که اطلاعات زیر را در اختیار شما می‌گذارد:

  • درخواست‌های لحظه‌ای وتعداد کل درخواست‌ها
  • درخواست‌ها در هر ثانیه
  • میزان ترافیک لحظه‌ای(send/recieve)
  • درخواست‌های Upstream

بررسی لحظه به لحظه Nginx Plus

بنظر می‌رسد که Nginx Plus یکی از بهترین راهکار‌ها برای استفاده به عنوان Software Delivery و لود بالانس (Load Balance) می‌باشد.

مرکز آموزش زاگریو

نصب PHP 7.3 بر روی CENTOS 7

نصب PHP 7.3 بر روی CentOS 7

1.3kviews

در این آموزش قصد داریم درباره نصب PHP 7.3 بر روی VPS با CentOS 7 صحبت کنیم. و شما را با مبحث نصب PHP 7.3 بر روی CentOS 7،‌ در زاگریو بیشتر آشنا کنیم.

نصب PHP 7.3 بر روی CentOS 7

همانطور که می‌دانید PHP 7.3، نسبت به نسخه‌های قدیمی تر خود امنیت و سرعت بهتری برخوردار است.  تعدادی از تغییرات زیر را در زیر لیست می‌نماییم:

  • سینتکس انعطاف پذیر Heredoc و Nowdoc
  • اجازه قرار دادن کاما و ایچاد یک زنجیره در فانکشن کال‌ها
  • JSON_THROW_ON_ERROR
  • کوکی در سایت‌های مشابه
  • لیست دز Reference assignment ها
  • فانکشن is_countable
  • array_key_first(), array_key_last()
  • اضافه شدن Argon 2

ملزومات

  • CentOS 7 VPS
  • باید از اکانت root یا کاربری با دسترسی sudo استفاده نمایید.

قدم اول: وارد سرور شوید و آن را بروزرسانی نمایید.

با استفاده از SSH وارد VPS خود شوید. دستور زیر کمک می‌کند که با دسترسی ROOT وارد شوید.

‘IP_Address و Port_number با اعداد VPS خود عوض نمایید.

قدم دوم: PHP 7.3 را نصب نمایید.

CentOS 7 به صورت پیش فرض با PHP 5.4 عرضه شده که نسخه‌ای قدیمی PHP است و عمر آن به سال 2015 باز می‌گردد، همانطورک ه می‌دانید در دنیای نرم افزار گذشت عمر باعث افزایش ریسک‌های امنیتی می‌گردد پس نیاز است که شما PHP خود را آپدیت نمایید. در قدم اول بیایید ببینیم که اصلا PHP بر روی سرور شما نصب شده؟ و اگر PHP بر سرور شما نصب شده ورژن آن چیست؟ با دستور زیر می‌توانید ورژن PHP را مشاهده نمایید:

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

بنابر خروجی PHP 5.4 بر روی سرور ما نصب گردیده است پس نیاز است آن را ارتقا دهید، برای این منظور در این قدم، ما نسخه‌ی قدیمی را از CentOS خود پاک می‌کنیم. و این کار را با دستور زیر انجام می‌دهیم:

این دستور PHP و تمام مشتقات آن را پاک می‌کند. در ادامه ما ریپازیتوری‌های YUM و EPEL را به سرور خود اضافه می‌نماییم که پی اچ پی جدید را در خود جای داده‌اند.

و ریپازیتوری پیشفرض PHPH 5.4 را نیز غیر فعال می‌نماییم:

و حالا ریپازیتوری PHP 7.3 را فعال می‌نماییم.

حالا که ریپازیتوری Yemi PHP 7.3 را فعال نموده‌ایم می‌توانیم با استفاده از YUM نسخه 7.3 PHP را بر روی سرور خود نصب نماییم.

این دستور PHP 7.3 و مشتقات مورد نیاز آن را برای ما نصب خواهد نمود. که این مشتقات در دستور بالا قابل مشاهده اند، زمانی که نصب تمام شد می‌توانید بررسی کنید که آیا نصب شما به درستی انجام گرفته است یا خیر.

خروجی:

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

و با دستور زیر بررسی نمایید که آیا آنها درست نصب شده اند یا خیر:

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

خروجی چیزی مشابه با متن زیر خواهد بود:

قدم سوم: ساخت صفحه phpinfo

اصولا برای بررسی نسخهPHP، افزونه‌ها و تنظیمات صفحه‌ای میسازیم به نام phpinfo که این صفحه مقدار زیادی اطلاعات درمورد پروژه ما در خود جای داده است. حال برای ساخت این صفحه نیاز است که شما به web server document root بروید:

و صفحه phpinfo را با اطلاعات زیر بسازید:

صفحه را ذخیره نمایید و با مرورگر خود وارد آدرس: http://zagrio/phpinfo.php بشوید تا صفحه‌ای مانند تصویر زیر با اطلاعات مورد نیاز خود مشاهده نمایید.

نصب PHP 7.3 بر روی CentOS 7

زاگریو
سرور مجازی یا VPS: نکاتی برای خرید و مهاجرت به VPS

سرور مجازی یا VPS: نکاتی برای خرید و مهاجرت به VPS

سرور مجازی یا VPS، کلمه VPS، مخفف Virtual Private Server است و به فارسی به معنی سرور مجازی می‌باشد. در ادامه به بررسی کامل در مورد سرور مجازی و مصارفی که دارد، می‌پردازیم تا با این دنیای عجیب و مدرن آشنا شوید.

سرور مجازی چیست؟

مجازی سازی، به ساختن یک نسخه مجازی (به جای نسخۀ واقعی) از چیزی گفته می‌شود؛ در سرورهای مجازی به‌جای اینکه چند سخت‌افزار مستقل برای هر سرور اختصاص داده شود، یک سخت‌افزار قدرتمند را با استفاده از نرم‌افزار، به چند سرور شبیه‌سازی می‌کنند.

سرور مجازی یا VPS

سرور مجازی یا VPS: نکاتی برای خرید و مهاجرت به VPS

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

سرور مجازی، می‌تواند به دو دسته سرور مجازی ایران و سرور مجازی اروپا تقسیم شود.

از سرور مجازی یا VPS برای چه مصارفی استفاده می‌نمایید

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

سرور مجازی یا VPS

در زیر تعدادی از مصارف VPS ذکر گردیده است:

وب‌سایت‌های بزرگ و پرمخاطب

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

اجرای برنامه‌ها و سایت‌های دیگر

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

دیگر مصارف سرور مجازی یا VPS

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

هر استفاده‌ای که برای VPS در نظر دارید این نکته را در ذهن داشته باشید که منابع VPS خود را به گونه ای انتخاب کنید که پاسخگوی نیازهای شما باشد. برای این منظور می‌توانید با متخصصان ما در زاگریو مشورت نمایید.

مکان سرور مجازی یا VPS و تاثیر آن بر تاخیر

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

برای همین توصیه ما این است که از VPS استفاده نمایید که در کشوری باشد که اکثر مخاطبان شما اهل آن کشورند تاثیری که این مورد دارد هم بر تجربه کاربری دلنشین تر است و هم بر سئو سایت و ترافیک ارگانیک سایت شما خواهد بود.

تخصص

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

امنیت سرور

امنیت سرور

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

سرور مجازی یا VPS

چگونه لاراول را بر روی DirectAdmin نصب نماییم

چگونه لاراول را بر روی DirectAdmin نصب نماییم

1.9kviews

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

موارد مورد نیاز نصب لاراول (laravel) بر روی DirectAdmin

  • PHP 5.6.4 یا نسخه‌های بالاتر (پیشنهاد ما نسخه 7 است)
  • OpenSSL ،Mbstring ،PDO ،Tokenizer ،PHP و XML
  • Apache یا Nginx

مرحله اول :  با استفاده از SSH وارد VPS خود شوید.

مرحله دوم :  سیستم را آپدیت نمایید و پکیج‌های مورد نظر را نصب نمایید.

مرحله سوم : نصب کامپوزر Composer

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

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

با کامند زیر فایل‌های پیش فرض DirectAdmin را پاک می‌کنیم.

دامنه را به دایرکتوری root تغییر می‌دهیم:

حالا با استفاده از دستور create-project کامپوزر لاراول را نصب می‌کنیم(به نقطه انتهای کامند توجه داشته باشید.)

در اینجا اگر بعنوان root یا sudo user وارد شده‌اید لازم است تا بار دیگر دسترسی‌ها و و مالکیت را با دستور زیر وارد نمایید.

مرحله پنجم :

در این مرحله نیاز است تا ما فایل وب سرور پیش فرض را از public_html به public  تغییر دهیم، این فرایند برای استفاده از لاراول نیاز است.

برای اینکار وارد پنل دایرکت ادمین خود به آدرس https://YOUR_SERER_IP:2222 شوید.

سپس بر روی Custom HTTPD Configurations کلیک نماید. در بخش Extra Features دامین‌های خود را مشاهده خواهید نمود. بر روی دامینی که لاراول را بر آن نصب نموده‌اید کلیک نمایید. در صفحه جدید باز شده می‌توانید پیکر بندی وب سرور خود را تغییر دهید.

اگر از Nginx استفاده می‌کنید از دستور زیر استفاده نمایید.

و گزینه save را انتخاب نمایید.

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

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

663views

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 استفاده شود.

زاگریو

SOA

تنظیمات پیشنهادی Refresh، Retry، Expire و TTL برای SOA

462views

در این مقاله قصد داریم تا به موضوع مهم تنظیمات پیشنهادی Refresh، Retry، Expire و TTL برای SOA بپردازیم و آموزش‌های لازم را به شما کاربران عزیز بدهیم، با زاگریو همراه باشید.

 

توصیه ما برای تنظیمات زیر در رکوردهای SOA شما به صورت زیر است، تمامی زمان ها به ثانیه است:

Refresh   14400
Retry   7200
Expire   1209600
TTL   43200

توصیه ما این است که مقدار زمان پارامتر Refresh همیشه کمتر یا برابر با نصف مقدار پارامتر TTL در رکوردهای SOA باشد، هرچند که توجه داشته باشید این مقدار همیشه باید طولانی تر پارامتر Retry باشد. هرچند که توصیه ما این است که پارامتر Retry نصف مقدار پارامتر Refresh باشد.

پارامترهای Refresh، Retry و Expire  پارامترهایی از رکوردهای SOA هستند که زمانی مورد استفاده قرار می‌گیرند که شما دارای DNS دوم نیز باشید. پروسه periodic polling دومین DNS توسط این پارامترهای ذکر شده کنترل می‌گردد. و DNS اصلی یا به اصطلاح Master دارای master copy از مقادیر zone است. این در حالی است که DNS دوم یک کپی از مقادیر zone  نگه میدارد ک این عمل برای حشو یا Redundancy است. زمانی که شما تغییراتی در داده‌های zone در DNS اصلی اعمال می‌نمایید این تغییرات باید در کپی zone در DNS ثانویه نیز انجام پذیرد این تغییرات که در توسعه کپی zone صورت می‌گیرد zone transder نام دارد.

خرید دامنه

DNS ثانویه منتظر می‌ماند تا متغیر Refresh تمام شود تا با DNS اولیه و اصلی چک کند که چه اطلاعاتی تغییر نموده است و مقادیر zone change چیست. اگر این بررسی کامل نشود و جوابی توسط DNS ثانویه دریافت نگردد، بررسی‌های تازه شروع می‌گردد. این بررسی ها در هر بازه Retry ادامه می‌یابند.

اگر DNS ثانویه در بررسی‌هایی که آغاز می‌کند نتیجه‌ای یافت ننماید و این پیدا نشدن نتیجه در بازه Expire باشد، DNS ثانویه zone را پاک می‌کند.

زمانی که poll نشان دهد که zone تغییر داشته (سریال نامبر بالا تر) DNS ثانویه یک نسخه جدید از zone را کپی می‌نماید. این عمل توسط zone transfer انجام می‌پذیرد.

یک روش دیگر نیز که دو DNS باهم ارتباط برقرا می‌کنند و DNS اولیه به DNS ثانویه اطلاع می‌دهد که خود را بروز رسانی نماید ارسال Notify توسط DNS اولیه به ثانویه است. که این عمل به صورت خودکار میان دو DNS اتفاق می‌افتد.

زاگریو

 

آنبلاک کردن 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 می‌باش را نشان می‌دهد.

زاگریو