<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>شبکه آرشیو - بلاگ هم‌روش</title>
	<atom:link href="https://hamravesh.com/blog/category/network/feed/" rel="self" type="application/rss+xml" />
	<link>https://hamravesh.com/blog/category/network/</link>
	<description>بلاگ رسمی هم‌روش</description>
	<lastBuildDate>Sat, 20 Jun 2026 14:48:02 +0000</lastBuildDate>
	<language>fa-IR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://hamravesh.com/blog/wp-content/uploads/2026/05/cropped-typeGeneral-32x32.png</url>
	<title>شبکه آرشیو - بلاگ هم‌روش</title>
	<link>https://hamravesh.com/blog/category/network/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>حمله HTTP/2 Bomb چیست؟ کالبدشکافی حمله، تأثیر بر nginx و راهکارهای مقابله</title>
		<link>https://hamravesh.com/blog/discover-http-2-bomb-dos-attack/</link>
					<comments>https://hamravesh.com/blog/discover-http-2-bomb-dos-attack/#respond</comments>
		
		<dc:creator><![CDATA[هم‌روش]]></dc:creator>
		<pubDate>Mon, 08 Jun 2026 15:09:45 +0000</pubDate>
				<category><![CDATA[شبکه]]></category>
		<category><![CDATA[دواپس]]></category>
		<category><![CDATA[مقالات]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=5266</guid>

					<description><![CDATA[<p>جلوگیری از حمله HTTP/2 Bomb به یکی از موضوعات مهم امنیت زیرساخت‌های وب تبدیل شده است. HTTP/2 Bomb یک تکنیک حمله Denial-of-Service (DoS) است که تیم تحقیقاتی شرکت Calif در ژوئن ۲۰۲۶ با کمک مدل هوش مصنوعی OpenAI Codex آن را معرفی کرد. </p>
<p>The post <a href="https://hamravesh.com/blog/discover-http-2-bomb-dos-attack/">حمله HTTP/2 Bomb چیست؟ کالبدشکافی حمله، تأثیر بر nginx و راهکارهای مقابله</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>HTTP/2 Bomb یکی از جدیدترین تکنیک‌های حمله مبتنی بر HTTP/2 است که در ژوئن ۲۰۲۶ معرفی شد. این حمله می‌تواند با ترکیب دو مکانیزم استاندارد در پروتکل HTTP/2 مصرف حافظه سرور را افزایش دهد و باعث اختلال در سرویس شود. نکته مهم این است که HTTP/2 Bomb یک آسیب‌پذیری ناشناخته نیست و از ترکیب قابلیت‌هایی استفاده می‌کند که سال‌ها در HTTP/2 وجود داشته‌اند. در این مقاله بررسی می‌کنیم حمله HTTP/2 Bomb چیست و چه تفاوتی با ا دارد، چگونه باعث حمله مصرف حافظه سرور می‌شود و برای جلوگیری از این حمله و مقابله با حملات HTTP/2 چه راهکارهایی ارائه شده است.</p>



<div class="wp-block-group is-vertical is-content-justification-left is-layout-flex wp-container-core-group-is-layout-41619b2b wp-block-group-is-layout-flex">
<h2 class="wp-block-heading" id="h-آنچه-در-این-مطلب-می-خوانید">آنچه در این مطلب می‌خوانید</h2>



<h3 class="wp-block-heading" id="h-خلاصه">خلاصه</h3>



<p>HTTP/2 Bomb یک حمله DoS است که با ترکیب HPACK و Flow Control در HTTP/2 باعث مصرف غیرعادی حافظه و کندی شدید یا اختلال سرویس می‌شود. این مشکل بیشتر به نحوه پیاده‌سازی سرویس‌های سرورها مربوط است تا یک باگ مستقل.</p>



<h3 class="wp-block-heading" id="h-نکات-کلیدی">نکات کلیدی</h3>



<ul class="wp-block-list">
<li>روش سوءاستفاده، ترکیب HPACK و Flow Control در HTTP/2 است</li>



<li> هدف حمله، ایجاد فشار بر حافظه و کندی پایدار است و نه صرفاً ایجاد OOM</li>



<li> شدت اثر، وابسته به پیاده‌سازی در nginx، Apache، Envoy و IIS است</li>



<li> کنترل‌های ساده هدر، برای مقابله با این حمله کافی نیستند</li>



<li>راهکارهای جلوگیری، شامل به‌روزرسانی سرویس‌ها، محدودسازی هدر و stream، استفاده از CDN یا reverse proxy و اعمال memory limit است</li>



<li> نتیجه اصلی این است که ترکیب قابلیت‌های استاندارد می‌تواند سناریوی حمله جدید ایجاد کند</li>
</ul>
</div>



<h2 class="wp-block-heading" id="h-چگونه-ویژگی-های-http-2-به-سطح-حمله-تبدیل-شد">چگونه ویژگی‌های HTTP/2 به سطح حمله تبدیل شد؟</h2>



<p>پروتکل HTTP/2 با هدف بهبود عملکرد وب و کاهش سربار ارتباطات معرفی شد. قابلیت‌هایی مانند فشرده‌سازی هدرها (HPACK) و کنترل جریان (Flow-Control Window) باعث افزایش سرعت و کاهش مصرف پهنای باند شده‌اند، اما این دو ویژگی در حمله HTTP/2 Bomb توسط مهاجم به ابزار افزایش مصرف حافظه سرور تبدیل می‌شوند.&nbsp;موفقیت HTTP/2 Bomb به این دلیل است که یکی از این قابلیت‌ها حافظه را تخصیص می‌دهد و دیگری مانع آزاد شدن آن می‌شود. نتیجه، انباشت تدریجی حافظه و کاهش پاسخ‌دهی سرور است.</p>



<p><strong>HPACK:</strong> یک الگوریتم فشرده‌سازی وضعیت‌دار است که رشته‌های هدر را در یک جدول داینامیک ذخیره می‌کند. در درخواست‌های بعدی، به جای ارسال کامل هدر، تنها یک index ارسال می‌شود. این مکانیزم باعث کاهش سربار هدرها می‌شود، اما در ترکیب با کنترل جریان، مهاجم می‌تواند حافظه زیادی روی سرور رزرو کند.</p>



<p><strong>کنترل جریان (Flow-Control Window):</strong> به گیرنده امکان می‌دهد میزان داده قابل دریافت را محدود کند. مهاجم می‌تواند با ارسال داده کم و نگه داشتن اتصال باز، حافظه رزرو شده را آزاد نکند و در نتیجه باعث افزایش مصرف حافظه، کاهش کارایی و افت پاسخ‌دهی سرور شود.</p>



<p>این دو مکانیزم دقیقا موتور اصلی HTTP/2 Bomb هستند. در بخش بعد، سازوکار دقیق حمله و ترکیب دو تکنیک را مرحله به مرحله بررسی می‌کنیم.</p>



<h2 class="wp-block-heading" id="h-کالبدشکافی-حمله-http-2-bomb-چگونه-کار-می-کند">کالبدشکافی حمله؛ HTTP/2 Bomb چگونه کار می‌کند؟</h2>



<p>هسته حمله از ترکیب دو قابلیت داخلی HTTP/2 ساخته شده است که هر یک به تنهایی برای بهبود عملکرد وب استفاده می‌شدند، اما کنار هم مسیر جدیدی برای حمله DoS ایجاد کرده‌اند.</p>



<h3 class="wp-block-heading" id="h-hpack-bomb-وقتی-یک-بایت-به-هزاران-بایت-تبدیل-می-شود">HPACK Bomb: وقتی یک بایت به هزاران بایت تبدیل می‌شود</h3>



<p>HPACK هدرها را در جدول داینامیک ذخیره می‌کند. مهاجم ابتدا یک هدر را ثبت و سپس هزاران بار تنها با یک index به آن ارجاع می‌دهد. حجم داده ارسالی کم است، اما سرور برای هر ارجاع باید اطلاعات مربوط به هدر را در حافظه ایجاد کند. برخلاف نسخه‌های قدیمی HPACK Bomb، حتی هدرهای کوچک یا خالی باعث مصرف حافظه قابل توجه می‌شوند. همچنین محدودیت‌های قدیمی روی حجم هدرهای Decode شده در برابر این روش بی‌اثر هستند.</p>



<h3 class="wp-block-heading" id="h-flow-control-چگونه-حافظه-آزاد-نمی-شود">Flow Control: چگونه حافظه آزاد نمی‌شود؟</h3>



<p>کنترل جریان HTTP/2 به سرور امکان می‌دهد میزان داده قابل دریافت را محدود کند. مهاجم پس از ایجاد تخصیص حافظه، اندازه پنجره را روی صفر قرار داده و با ارسال WINDOW_UPDATE کوچک، اتصال را باز نگه می‌دارد. حافظه اشغال‌شده برای مدت طولانی باقی می‌ماند و سرور تحت فشار قرار می‌گیرد.</p>



<p>در یک حمله واقعی، هدف مهاجم لزوماً رساندن فرایند به وضعیت OOM (مخفف Out-of-Memory) نیست؛ وضعیتی که در آن سیستم به دلیل کمبود حافظه، برخی پردازش‌ها را به‌طور اجباری متوقف می‌کند. اگر در حالت OOM، پردازش توسط OOM Killer متوقف شود، معمولاً Worker به‌سرعت مجدداً راه‌اندازی می‌شود و بخشی از اثر حمله از بین می‌رود. راهبرد مؤثرتر این است که مصرف حافظه درست در آستانه فعال شدن OOM نگه داشته شود؛ به‌طوری که سیستم ناچار به استفاده گسترده از حافظه Swap شود. در این وضعیت، اگرچه سرویس کاملاً از دسترس خارج نمی‌شود، اما زمان پاسخ‌دهی به‌شدت افزایش می‌یابد و عملکرد سایر درخواست‌ها نیز به‌طور محسوسی کاهش پیدا می‌کند.</p>



<h2 class="wp-block-heading" id="h-اثر-واقعی-http-2-bomb-روی-سرورها">اثر واقعی HTTP/2 Bomb روی سرورها</h2>



<p>HTTP/2 Bomb فقط یک ایده تئوریک نیست. محققان <a href="https://blog.calif.io/p/codex-discovered-a-hidden-http2-bomb" type="link" id="https://blog.calif.io/p/codex-discovered-a-hidden-http2-bomb">Calif</a> این حمله را روی چند مورد از پرکاربردترین سرورهای وب آزمایش کرده‌اند و نتایج نشان می‌دهد که پیاده‌سازی HTTP/2 در هر محصول، تاثیر مستقیمی بر شدت حمله دارد.</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="1920" height="1080" src="https://hamravesh.com/blog/wp-content/uploads/2026/06/hamravesh-discover-http-2-bomb-dos-attack01.gif" alt="" class="wp-image-5284"/><figcaption class="wp-element-caption">روند افزایش مصرف حافظه در آپاچی httpd، سپس Envoy، انجین‌اکس و مایکروسافت IIS در آزمایش محققان Calif (به ترتیب از بالا سمت چپ و در جهت عقربه‌های ساعت مشاهده کنید).  تصویر با سرعت ۲X نمایش داده شده است.</figcaption></figure>



<p>نتایج این آزمایش‌ها در جدول زیر خلاصه شده است:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>سرور</strong></td><td><strong>ضریب بزرگنمایی</strong></td><td><strong>زمان تقریبی مصرف کامل حافظه</strong></td></tr><tr><td><strong>Envoy 1.37.2</strong></td><td>حدود ۵۷۰۰:۱</td><td>حدود ۱۰ ثانیه برای ۳۲GB</td></tr><tr><td><strong>Apache httpd 2.4.67</strong></td><td>حدود ۴۰۰۰:۱</td><td>حدود ۱۸ ثانیه برای ۳۲GB</td></tr><tr><td><strong>nginx 1.29.7</strong></td><td>حدود ۷۰:۱</td><td>حدود ۴۵ ثانیه برای ۳۲GB</td></tr><tr><td><strong>Microsoft IIS (Windows Server 2025)</strong></td><td>حدود ۶۸:۱</td><td>حدود ۴۵ ثانیه (تا ۶۴GB)</td></tr></tbody></table></figure>



<p>منظور از ضریب بزرگنمایی (Amplification Ratio) این است که هر یک بایت داده‌ای که مهاجم ارسال می‌کند، چه مقدار حافظه روی سرور اشغال می‌شود. هرچه این عدد بزرگ‌تر باشد، مهاجم با پهنای باند کمتر می‌تواند فشار بیشتری به سرور وارد کند.</p>



<p>نتایج آزمایش‌ها نشان می‌دهد که Envoy و Apache httpd بیشترین تاثیر را از این حمله می‌پذیرند. در سمت مقابل، nginx و Microsoft IIS ضریب بزرگنمایی کمتری دارند، اما همچنان در برابر حمله HTTP/2 Bomb آسیب‌پذیر هستند. به‌طورکلی، جلوگیری از حمله HTTP/2 Bomb نیازمند شناخت دقیق همین تفاوت‌ها در پیاده‌سازی سرورهاست.</p>



<p>محققان تفاوت نتایج را به جزئیات پیاده‌سازی HPACK و نحوه مدیریت حافظه در محصولات مختلف نسبت می‌دهند. در Apache httpd و Envoy، بازسازی هدرها و ساختارهای داخلی مرتبط با آن‌ها حافظه بیشتری مصرف می‌کند، در حالی که nginx و IIS سربار کمتری دارند. به همین دلیل ضریب بزرگنمایی حمله در آنها متفاوت است.</p>



<h2 class="wp-block-heading" id="h-تکنیک-های-دور-زدن-محدودیت-ها-bypass-techniques">تکنیک‌های دور زدن محدودیت‌ها (Bypass Techniques)</h2>



<p>یکی از دلایل خطرناک‌تر بودن HTTP/2 Bomb نسبت به HPACK Bomb کلاسیک، توانایی آن در دور زدن مکانیزم‌های دفاعی موجود است. در ادامه، دو تکنیک اصلی این حمله برای عبور از محدودیت‌های حجم و تعداد هدرها را بررسی می‌کنیم.</p>



<h3 class="wp-block-heading" id="h-عبور-از-محدودیت-حجم-هدرها">عبور از محدودیت حجم هدرها</h3>



<p>پس از معرفی HPACK Bomb در سال ۲۰۱۶، بسیاری از پیاده‌سازی‌های HTTP/2 محدودیتی برای Total Decoded Header Size در نظر گرفتند تا از بازسازی هدرهای بسیار بزرگ جلوگیری کنند.</p>



<p>در HTTP/2 Bomb، هدرها می‌توانند بسیار کوچک یا تقریبا خالی باشند و بخش عمده مصرف حافظه از metadata و ساختارهای داخلی HPACK ناشی می‌شود. در نتیجه محدودیت حجم هدرهای Decode شده عملا اثرگذار نیست و دفاع طراحی‌شده برای نسخه‌های قدیمی‌تر، کارایی خود را از دست می‌دهد.</p>



<h3 class="wp-block-heading" id="h-دور-زدن-محدودیت-تعداد-هدرها-با-cookie-crumbs">دور زدن محدودیت تعداد هدرها با Cookie Crumbs</h3>



<p>برخی پیاده‌سازی‌ها مانند Apache httpd و Envoy علاوه بر محدودیت حجم، تعداد Header Fieldها را هم کنترل می‌کنند تا مهاجم نتواند با ارسال تعداد زیادی هدر کوچک، منابع سرور را مصرف کند.</p>



<p>HTTP/2 امکان تقسیم یک Cookie بزرگ به چند Cookie Header کوچک‌تر (Cookie Crumbs) را فراهم می‌کند (RFC 9113). این قابلیت برای بهبود فشرده‌سازی طراحی شده است، اما در آزمایش‌ها مشخص شد که در برخی شرایط، این Crumbها در Apache و Envoy در شمارش محدودیت تعداد هدرها لحاظ نمی‌شوند.</p>



<p>در نتیجه، مهاجم می‌تواند بدون فعال شدن محدودیت تعداد هدر، تعداد زیادی Cookie Crumb ایجاد کند و هر Crumb هم ورودی جدیدی در HPACK ایجاد می‌کند و سربار حافظه را افزایش می‌دهد.</p>



<h2 class="wp-block-heading" id="h-وضعیت-وصله-ها-در-سرورهای-مختلف">وضعیت وصله‌ها در سرورهای مختلف</h2>



<p>پس از افشای حمله HTTP/2 Bomb، مهم‌ترین سوال برای مدیران سیستم و مهندسان امنیت این است که سرورهای ما ایمن هستند؟ چه اقداماتی برای جلوگیری از حمله HTTP/2 Bomb باید انجام داد؟</p>



<p>محققان Calif قبل از انتشار عمومی، آسیب‌پذیری را به تیم‌های توسعه گزارش کردند. با این حال، وضعیت وصله‌ها (پچ‌ها) در زمان انتشار برای سرورهای مختلف متفاوت بود. جدول زیر خلاصه‌ای از وضعیت هر سرور را نشان می‌دهد:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>سرور</strong></td><td><strong>وضعیت</strong></td><td><strong>نسخه / توضیح</strong></td></tr><tr><td><strong>nginx</strong></td><td>وصله شده</td><td>1.29.8+ – اضافه شدن max_headers با پیش‌فرض ۱۰۰۰</td></tr><tr><td><strong>Apache httpd</strong></td><td>وصله شده</td><td>رفع شده در &nbsp;<a href="https://github.com/icing/mod_h2/releases">mod_http2 v2.0.41</a> &#8211; اگر قصد آپگرید ندارید، پیشنهاد می‌شود پروتکل http/1.1 را طوری تنظیم کنید که HTTP/2 غیر فعال شود.</td></tr><tr><td><strong>Microsoft IIS</strong></td><td>وصله نشده</td><td>در زمان نگارش این مقاله، مایکروسافت هنوز جزئیات فنی یا وصله رسمی برای IIS منتشر نکرده است.</td></tr><tr><td><strong>Envoy</strong></td><td>در حال بررسی</td><td>وصله منتشر شده، اما محققان همچنان در حال راستی‌آزمایی دقیق‌تر هستند. تا تأیید نهایی، بهتر است HTTP/2 را موقتاً غیرفعال کنید.</td></tr><tr><td><strong>Cloudflare Pingora</strong></td><td>محافظت معماری</td><td>به طور خودکار در برابر حمله محافظت ایجاد می‌کند</td></tr></tbody></table></figure>



<h2 class="wp-block-heading" id="h-راهکارهای-کاهش-آسیب-mitigation-strategies">راهکارهای کاهش آسیب (Mitigation Strategies)</h2>



<p>چند اقدام موثر برای جلوگیری از حمله HTTP/2 Bomb وجود دارند که می‌توانید آن‌ها را اجرا کنید. این اقدامات را می‌توان در چند سطح اصلی اجرا کرد:</p>



<h3 class="wp-block-heading" id="h-ارتقا-به-نسخه-وصله-شده">ارتقا به نسخه وصله‌شده</h3>



<p>نصب سریع وصله‌های رسمی اولین و مهم‌ترین گام است. برای سرورهایی که وصله منتشر شده، نسخه‌ها باید به‌روزرسانی شوند:</p>



<ul class="wp-block-list">
<li>انجین‌اکس: نسخه 1.29.8+</li>



<li>آپاچی httpd: نسخه <a href="https://github.com/icing/mod_h2/releases" type="link" id="https://github.com/icing/mod_h2/releases" target="_blank" rel="noreferrer noopener">mod_http2 v2.0.41</a></li>
</ul>



<h3 class="wp-block-heading" id="h-غیرفعال-کردن-موقت-http-2">غیرفعال کردن موقت HTTP/2</h3>



<p>در سرورهایی که وصله در دسترس نیست یا قصد آصب وصله را ندارید، غیرفعال کردن پروتکل HTTP/2 و بازگشت به HTTP/1.1، می‌تواند به عنوان راهکار موقت عمل کند:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>سرور</strong></td><td><strong>دستور غیرفعال‌سازی</strong></td></tr><tr><td><strong>nginx</strong></td><td>اگر قصد آپگرید ندارید، HTTP/2 را با <code>http2 off;</code> غیر فعال کنید.</td></tr><tr><td><strong>Apache httpd</strong></td><td>اگر قصد آپگرید ندارید، پیشنهاد می‌شود پروتکل http/1.1 را طوری تنظیم کنید که HTTP/2 غیر فعال شود.</td></tr><tr><td><strong>سایر سرورها</strong></td><td>مستندات فروشنده را بررسی کنید</td></tr></tbody></table></figure>



<h3 class="wp-block-heading" id="h-استفاده-از-reverse-proxy-یا-cdn">استفاده از Reverse Proxy یا CDN</h3>



<p>قرار دادن سرور پشت یک Reverse Proxy یا CDN که وصله شده یا به‌طور ذاتی محافظت دارد، می‌تواند حمله را قبل از رسیدن به سرور اصلی متوقف کند. برای مثال:</p>



<ul class="wp-block-list">
<li>استفاده از Cloudflare که به صورت خودکار محافظت ارائه می‌کند</li>



<li>استفاده از nginx وصله‌شده به عنوان پروکسی جلوی سرورهای آسیب‌پذیر، محافظت ایجاد می‌کند.</li>
</ul>



<h3 class="wp-block-heading" id="h-اعمال-محدودیت-روی-هدرها-و-streamها">اعمال محدودیت روی هدرها و Streamها</h3>



<p>به‌طور کلی، «حداکثر اندازه هدرهای Decode شده» و «حداکثر تعداد هدرها» دو محدودیت متفاوت هستند و هر سرور باید هر دو را اعمال کند. هر سرویس یا مؤلفه‌ای که ترافیک HTTP/2 را دریافت و پردازش می‌کند (مانند وب‌سرورها، Reverse Proxyها، لود بالانسرها و API Gatewayها)، باید تعداد فیلدهای هدر در هر درخواست را (از جمله Cookie Crumbها) مستقل از اندازه کلی آن‌ها محدود کند. همچنین، مدت‌زمان مجاز برای باز ماندن یک stream متوقف‌شده را بدون توجه به فعالیت WINDOW_UPDATE مشخص و محدود سازد.</p>



<h3 class="wp-block-heading" id="h-محدودیت-حافظه-memory-limits">محدودیت حافظه (Memory Limits)</h3>



<p>اگر در حال حاضر امکان اعمال این کنترل‌ها را ندارید، بهتر است برای هر ورکر محدودیت حافظه تعریف کنید؛ برای مثال با استفاده از cgroups، دستور <code>ulimit -v</code> یا محدودیت‌های حافظه در کانتینرها. این محدودیت‌ها باید به اندازه‌ای سخت‌گیرانه باشند که در صورت وقوع حمله، ورکر آسیب‌دیده پیش از آنکه کل سیستم را وارد Swap کند، توسط OOM Killer متوقف و مجدداً راه‌اندازی شود. یک ورکر معمولاً به چندین گیگابایت حافظه نیاز ندارد؛ بنابراین متوقف شدن زودهنگام یک ورکر، سناریوی بسیار بهتری نسبت به این است که مهاجم بتواند کل سرور را برای مدت طولانی در آستانه ۹۵ درصد مصرف حافظه نگه دارد.</p>



<h3 class="wp-block-heading" id="h-محدودیت-نرخ-rate-limiting">محدودیت نرخ (Rate Limiting)</h3>



<p>کنترل نرخ ایجاد اتصال‌ها یا استریم‌ها به ازای هر IP می‌تواند سرعت اجرای حمله را کاهش دهد و فرصت واکنش برای تیم امنیتی فراهم کند. این اقدام به تنهایی کافی نیست اما موثر است.</p>



<h2 class="wp-block-heading" id="h-نقش-هوش-مصنوعی-در-کشف-حمله-codex-effect">نقش هوش مصنوعی در کشف حمله (Codex Effect)</h2>



<p>HTTP/2 Bomb توسط تیم امنیتی Calif با کمک OpenAI Codex شناسایی شد. در این پژوهش، Codex دو تکنیک شناخته‌شده یعنی HPACK Bomb و سوءاستفاده از HTTP/2 Flow Control را کنار هم قرار داد و اثر ترکیبی آن‌ها را آشکار کرد.</p>



<p>این یافته نشان می‌دهد مدل‌های هوش مصنوعی می‌توانند در تحلیل RFCها، مستندات فنی و رفتار پروتکل‌ها به کشف سناریوهای حمله جدید کمک کنند. با این حال، هوش مصنوعی در این پژوهش نقش یک ابزار کمکی برای تحلیل و کشف الگوها را داشت و جایگزین پژوهشگران امنیتی نشد.</p>



<h2 class="wp-block-heading" id="h-جمع-بندی">جمع‌بندی</h2>



<p>HTTP/2 Bomb یک آسیب‌پذیری جدید در پروتکل HTTP/2 نیست، بلکه روشی برای ترکیب دو قابلیت استاندارد این پروتکل یعنی HPACK و Flow Control است. همین موضوع باعث شد مکانیزم‌هایی که سال‌ها برای مقابله با HPACK Bomb یا محدود کردن اندازه هدرها طراحی شده بودند، در برخی پیاده‌سازی‌ها نتوانند از این حمله جلوگیری کنند.</p>



<p>نتایج آزمایش‌ها نشان می‌دهد شدت تأثیر HTTP/2 Bomb به نحوه پیاده‌سازی HTTP/2 در هر محصول وابسته است. هرچند nginx ،Apache httpd ،Envoy و Microsoft IIS همگی تحت تأثیر این تکنیک قرار گرفته‌اند، اما میزان مصرف حافظه و ضریب بزرگنمایی حمله در آن‌ها یکسان نیست.</p>



<p>برای کاهش ریسک و جلوگیری از حمله HTTP/2 Bomb، اولین اقدام باید ارتقا به نسخه‌های وصله‌شده باشد. در محیط‌هایی که امکان به‌روزرسانی فوری وجود ندارد، محدود کردن تعداد هدرها، کنترل طول عمر Streamها، اعمال محدودیت حافظه برای Workerها و استفاده از Reverse Proxyها یا CDNهای محافظت‌شده می‌تواند اثر حمله را کاهش دهد.</p>



<p>شاید مهم‌ترین درس HTTP/2 Bomb این باشد که در امنیت نرم‌افزارها، همیشه مشکل از یک قابلیت منفرد نیست. گاهی ترکیب چند رفتار کاملاً استاندارد و قانونی می‌تواند به یک روش حمله جدید تبدیل شود که سال‌ها از دید پژوهشگران پنهان مانده است.</p>



<p></p>
<p>The post <a href="https://hamravesh.com/blog/discover-http-2-bomb-dos-attack/">حمله HTTP/2 Bomb چیست؟ کالبدشکافی حمله، تأثیر بر nginx و راهکارهای مقابله</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/discover-http-2-bomb-dos-attack/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>DNS Record چیست؟ آشنایی با ساختار و انواع رکوردها</title>
		<link>https://hamravesh.com/blog/what-is-dns-record/</link>
					<comments>https://hamravesh.com/blog/what-is-dns-record/#respond</comments>
		
		<dc:creator><![CDATA[بابک خوش‌نویس]]></dc:creator>
		<pubDate>Wed, 08 Apr 2026 12:30:00 +0000</pubDate>
				<category><![CDATA[شبکه]]></category>
		<category><![CDATA[مقالات]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=2866</guid>

					<description><![CDATA[<p>اگر تا به حال بعد از تغییر هاست، با این مشکل مواجه شده‌اید که سایت باز نمی‌شود یا ایمیل‌ها به مقصد نمی‌رسند، احتمال زیادی وجود دارد که مشکل از تنظیمات DNS باشد. در چنین شرایطی، معمولاً این سؤال مطرح می‌شود که رکورد دی ان اس چیست و چه نقشی در این اختلال‌ها دارد. بسیاری از [&#8230;]</p>
<p>The post <a href="https://hamravesh.com/blog/what-is-dns-record/">DNS Record چیست؟ آشنایی با ساختار و انواع رکوردها</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>اگر تا به حال بعد از تغییر هاست، با این مشکل مواجه شده‌اید که سایت باز نمی‌شود یا ایمیل‌ها به مقصد نمی‌رسند، احتمال زیادی وجود دارد که مشکل از تنظیمات DNS باشد. در چنین شرایطی، معمولاً این سؤال مطرح می‌شود که رکورد دی ان اس چیست و چه نقشی در این اختلال‌ها دارد. بسیاری از مشکلاتی که ظاهرا به سرور یا سایت مربوط هستند، از تنظیمات DNS و به‌طور خاص رکورد DNS ناشی می‌شوند. این رکوردها مشخص می‌کنند که هر درخواست اینترنتی، از اتصال دامنه به هاست گرفته تا راه‌اندازی ایمیل و حتی تأیید مالکیت دامنه، باید دقیقاً به کجا هدایت شود. در این مطلب بررسی می‌کنیم که رکورد دی ان اس چیست، چه انواعی دارد و هرکدام دقیقاً در چه سناریویی استفاده می‌شوند.</p>



<h2 class="wp-block-heading" id="h-رکورد-دی-ان-اس-چیست">رکورد دی ان اس چیست؟</h2>



<p>رکورد DNS مشخص می‌کند هر دامنه یا زیردامنه باید به کدام سرور یا سرویس متصل شود. این هدایت توسط سرورهای DNS انجام می‌شود؛ سرورهایی که نام دامنه را به آدرس IP ترجمه می‌کنند. به عبارت دیگر، رکوردهای DNS مثل <strong>نقشه راه یا دستورالعمل‌های کوچک</strong> عمل کرده و مشخص می‌کنند درخواست‌های اینترنتی شما (چه برای باز کردن یک ‌وب‌سایت، ارسال ایمیل یا دسترسی به یک سرویس دیگر) چگونه باید به مقصد صحیح برسند. برای نمونه:</p>



<ul class="wp-block-list">
<li>رکورد <strong>A</strong>، دامنه‌ای مثل example.com را به یک آدرس IPv4 متصل می‌کند؛ یعنی مشخص می‌کند سایت دقیقاً روی کدام سرور قرار دارد</li>



<li>رکورد <strong>CNAME</strong> زمانی استفاده می‌شود که بخواهید یک زیردامنه را به یک سرویس دیگر متصل کنید؛ مثلاً وقتی blog.example.com را به یک پلتفرم دیگر مثل سرویس‌های سایت‌ساز یا CDN وصل می‌کنید</li>



<li>رکورد <strong>MX</strong> تعیین می‌کند که ایمیل‌های دامنه شما به کدام سرور ایمیل ارسال شوند؛ مثلاً اگر از آدرس mail.example.com به‌عنوان سرور ایمیل استفاده کنید، این رکورد مشخص می‌کند که پیام‌ها به همین زیردامنه هدایت شوند</li>
</ul>



<p>در عمل، هر دامنه معمولاً چندین رکورد DNS مختلف دارد که هرکدام مسئول بخش خاصی از ارتباطات آن هستند. این رکوردها در کنار هم مشخص می‌کنند که ترافیک وب، ایمیل و سایر سرویس‌ها چگونه و به کجا هدایت شوند.</p>



<h2 class="wp-block-heading" id="h-رکوردهای-dns-چگونه-کار-می-کنند">رکوردهای DNS چگونه کار می‌کنند؟</h2>



<p>هر بار که شما آدرس یک وب‌سایت (یا به طور دقیق‌تر یک دامنه) را در مرورگر وارد می‌کنید یا ایمیلی ارسال می‌کنید، یک پرسش DNS (یا DNS query) آغاز می‌شود که مشخص می‌کند درخواست شما به کدام سرور هدایت شود. این مسیر شامل سرورهای محلی، سرورهای بالادستی (Root و TLD) و در نهایت Authoritative DNS server است؛ جایی که رکوردهای DNS نگهداری می‌شوند و تصمیم نهایی گرفته می‌شود.</p>



<p>برای مثال، وقتی سایت example.com را باز می‌شود، رکورد <strong>A</strong> مشخص می‌کند مرورگر به کدام IP وصل شود و رکورد <strong>MX</strong> تعیین می‌کند ایمیل‌های دامنه به کدام سرور ارسال شوند. این سرور ایمیل معمولاً با یک نام دامنه مشخص می‌شود (مثلاً <code>mail.example.com</code>). سپس DNS این نام سرور را به IP ترجمه می‌کند.</p>



<p>برای توضیح کامل و مرحله‌به‌مرحله فرایند جستجوی DNS و DNS Resolve می‌توانید مطلب «<a href="https://hamravesh.com/blog/what-is-dns" target="_blank" rel="noreferrer noopener">DNS چیست؟</a>» مطالعه کنید.</p>



<h2 class="wp-block-heading" id="h-ساختار-رکورد-dns">ساختار رکورد DNS</h2>



<p>هر رکورد DNS شامل چند بخش اصلی است که مشخص می‌کنند دامنه یا زیردامنه چگونه هدایت شود. این بخش‌ها عبارت‌اند از:</p>



<ol class="wp-block-list">
<li><strong>نام (Name):</strong> نام دامنه یا زیردامنه که رکورد مربوط به آن تعریف شده است؛ به عنوان مثال <code>example.com</code> یا <code>mail.example.com</code></li>



<li><strong>نوع رکورد (Type):</strong> نوع رکورد را مشخص می‌کند، مثل A ،CNAME ،MX و … که نشان می‌دهد بخش داده‌ها چگونه باید تفسیر شود</li>



<li><strong>داده‌ها (Data):</strong> اطلاعات واقعی رکورد، مثل یک آدرس IP برای رکورد A یا یک زیردامنه برای رکورد CNAME</li>



<li><strong>زمان بقا (TTL – Time to Live):</strong> مدت زمانی که پاسخ رکورد می‌تواند در کش ذخیره شود (بر حسب ثانیه)</li>



<li><strong>کلاس (Class):</strong> معمولاً مقدار آن <code>IN</code> است و نشان‌دهنده کلاس پروتکل اینترنت است</li>
</ol>



<p>به بیان ساده، این فیلدها مثل یک فرم اطلاعاتی عمل می‌کنند که هر رکورد DNS برای هدایت دقیق ترافیک نیاز دارد. وقتی هر رکورد با این ساختار پر می‌شود، سرورها می‌توانند با دقت مسیر ترافیک وب، ایمیل و سایر سرویس‌ها را مشخص کنند.</p>



<h2 class="wp-block-heading" id="h-رایج-ترین-انواع-رکورد-دی-ان-اس-چیست">رایج‌ترین انواع رکورد دی ان اس چیست؟</h2>



<p>در این بخش به معرفی رایج‌ترین انواع رکورد DNS می‌پردازیم و توضیح می‌دهیم هر کدام چه کاری انجام می‌دهند.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="576" src="https://hamravesh.com/blog/wp-content/uploads/2026/03/hamravesh.what_.is_.dns-record-02-1024x576.webp" alt="رایج‌ترین انواع رکورد دی ان اس چیست؟" class="wp-image-4724" srcset="https://hamravesh.com/blog/wp-content/uploads/2026/03/hamravesh.what_.is_.dns-record-02-1024x576.webp 1024w, https://hamravesh.com/blog/wp-content/uploads/2026/03/hamravesh.what_.is_.dns-record-02-300x169.webp 300w, https://hamravesh.com/blog/wp-content/uploads/2026/03/hamravesh.what_.is_.dns-record-02-768x432.webp 768w, https://hamravesh.com/blog/wp-content/uploads/2026/03/hamravesh.what_.is_.dns-record-02-120x67.webp 120w, https://hamravesh.com/blog/wp-content/uploads/2026/03/hamravesh.what_.is_.dns-record-02.webp 1201w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list">
<li><strong>A record:</strong> این رکورد یک نام دامنه را به یک آدرس IPv4 متصل می‌کند. به عنوان مثال، example.com ممکن است به 192.168.1.1 اشاره کند.</li>



<li><strong>AAAA record:</strong> مشابه رکورد A است، اما برای آدرس‌های IPv6 استفاده می‌شود</li>



<li><strong>CNAME record:</strong> این رکورد یک نام دامنه یا زیردامنه را به دامنه‌ای دیگر هدایت می‌کند؛ بدون اینکه IP ارائه دهد. مثال: <code>blog.example.com</code> به <code>example.net</code> اشاره کند</li>



<li><strong>MX record:</strong> این رکورد مشخص می‌کند ایمیل‌های دامنه به کدام سرور ارسال شوند. مثلا هدایت به <code>mail.example.com</code></li>



<li><strong>TXT record:</strong> این رکورد اجازه می‌دهد متن دلخواهی برای دامنه ذخیره شود. اغلب برای امنیت ایمیل و تایید مالکیت دامنه استفاده می‌شود</li>



<li><strong>NS record:</strong> مشخص می‌کند کدام سرورها مسئول یک دامنه هستند</li>



<li><strong>SOA record:</strong> رکورد SOA اطلاعات مدیریتی اصلی دامنه، مثل سرور اولیه و ایمیل مدیر دامنه را نگه می‌دارد</li>



<li><strong>SRV record:</strong> این رکورد یک سرویس خاص را با پورت مشخص می‌کند</li>



<li><strong>PTR record:</strong> برای جستجوهای معکوس استفاده می‌شود و IP را به نام دامنه نگاشت می‌کند</li>
</ul>



<p>با استفاده از این رکوردها، می‌توانید تنظیمات مختلفی را برای دامنه خود اعمال کنید و خدمات گوناگونی را ارائه دهید. هر کدام از این رکوردها وظایف و کاربردهای خاص خود را دارند که برای مدیریت دامنه‌ها ضروری هستند.</p>



<h2 class="wp-block-heading" id="h-رکوردهای-دی-ان-اس-با-کاربرد-کمتر">رکوردهای دی ان اس با کاربرد کمتر</h2>



<p>علاوه بر رکوردهای رایج، رکوردهای دیگری با کاربردهای خاص وجود دارند.</p>



<ul class="wp-block-list">
<li><strong>AFSDB record:</strong> برای سیستم فایل اندرو (Andrew File System | AFS) استفاده می‌شود و مسیر دسترسی به سایر سلول‌های AFS را مشخص می‌کند</li>



<li><strong>APL record:</strong> رکورد «لیست پیشوند آدرس» که محدوده‌های آدرس IP را مشخص می‌کند (نوعی رکورد آزمایشی)</li>



<li><strong>CAA record:</strong> رکورد «مجوز مرجع صدور گواهینامه» که مشخص می‌کند کدام مرجع می‌تواند برای دامنه گواهی‌نامه صادر کند</li>



<li><strong>رکورد DNSKEY:</strong> رکورد «کلید DNS» که حاوی کلیدی عمومی برای تأیید امضای DNSSEC است</li>



<li><strong>کورد CDNSKEY:</strong> یک کپی نسخه فرزند رکورد DNSKEY برای انتقال به والد است</li>



<li><strong>رکورد CERT:</strong> رکورد «گواهینامه» که گواهینامه‌های کلید عمومی را ذخیره می‌کند</li>



<li><strong>رکورد HIP:</strong> این رکورد از «پروتکل شناسایی میزبان» (Host identity protocol) استفاده می‌کند که روشی برای جدا کردن نقش‌های آدرس IP است</li>



<li><strong>رکورد IPSECKEY:</strong> رکوردی که با پروتکل IPSEC کار می‌کند</li>



<li><strong>رکورد LOC:</strong> رکورد موقعیت (Location) که اطلاعات جغرافیایی یک دامنه را به صورت مختصات طول و عرض جغرافیایی ذخیره می‌کند</li>



<li><strong>رکورد NSEC:</strong> رکورد «Next Secure Record» که بخشی از DNSSEC است، برای اثبات عدم وجود یک رکورد منبع DNS درخواستی استفاده می‌شود</li>



<li><strong>رکورد RRSIG:</strong> رکورد «امضای رکورد منبع» (Resource Record Signature) که امضای دیجیتالی را برای تأیید رکوردها مطابق با DNSSEC ذخیره می‌کند</li>



<li><strong>رکورد دی ان اس RP:</strong> رکورد «شخص مسئول» (Responsible Person) که آدرس ایمیل شخص مسئول دامنه را ذخیره می‌کند</li>



<li><strong>رکورد SSHFP:</strong> این رکورد «اثر انگشت کلید عمومی SSH» را ذخیره می‌کند</li>
</ul>



<p>با وجود اینکه اکثر این رکوردها کمتر استفاده می‌شوند اما آشنایی با آن‌ها به شما کمک می‌کند درک بهتری از عملکرد و امکانات رکورد DNS داشته باشید و در صورت نیاز بتوانید از آن‌ها استفاده کنید.</p>



<h2 class="wp-block-heading" id="h-جمع-بندی">جمع‌بندی</h2>



<p>در این مطلب بررسی کردیم که رکورد دی ان اس چیست و چه نقشی در هدایت ترافیک اینترنتی دارد. رکورد DNS مشخص می‌کنند هر دامنه یا زیردامنه باید به چه مقصدی (چه یک وب‌سایت یا یک سرویس ایمیل یا هر سرویس دیگری) متصل شود. همچنین با ساختار رکورد DNS شامل نام دامنه، نوع رکورد، داده‌ها، TTL و کلاس آشنا شدیم و به توضیح رایج‌ترین رکوردها از جمله A ،CNAME ،MX و TXT و همچنین رکوردهای کم کاربردتر پرداختیم.</p>



<p></p>
<p>The post <a href="https://hamravesh.com/blog/what-is-dns-record/">DNS Record چیست؟ آشنایی با ساختار و انواع رکوردها</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/what-is-dns-record/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Traefik چیست و چطور کار می‌کند؟ – شرح ویژگی‌ها، کاربردها و مزایا</title>
		<link>https://hamravesh.com/blog/what-is-traefik/</link>
					<comments>https://hamravesh.com/blog/what-is-traefik/#respond</comments>
		
		<dc:creator><![CDATA[بابک خوش‌نویس]]></dc:creator>
		<pubDate>Tue, 17 Dec 2024 10:47:34 +0000</pubDate>
				<category><![CDATA[شبکه]]></category>
		<category><![CDATA[مقالات]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=2890</guid>

					<description><![CDATA[<p>traefik یک reverse proxy است که برای معماری‌های مدرن نرم‌افزار و میکروسرویس‌ها طراحی شده است. در این بلاگ پست با این پروکسی بیشتر آشنا می‌شویم.</p>
<p>The post <a href="https://hamravesh.com/blog/what-is-traefik/">Traefik چیست و چطور کار می‌کند؟ – شرح ویژگی‌ها، کاربردها و مزایا</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Traefik یک پروکسی معکوس پویای مستحکم و چندمنظوره محسوب می‌شود که با نظر به معماری‌های مُدرن، توزیع‌شده و <a href="https://hamravesh.com/blog/what-is-microservices/">میکروسرویس‌ها</a> طراحی شده است. به‌عنوان یک قطعه حیاتی از نرم‌افزار سرور، Traefik نقش محوری در مدیریت و بهینه‌سازی ترافیک شبکه، تضمین مسیریابی کارآمد و ارتقاء عملکرد و امنیت کلی خدمات وب ایفا می‌کند. در این مطلب می‌آموزیم که Traefik چیست و چگونه به‌عنوان «پروکسی معکوس پویا» (Dynamic Reverse Proxy)، به بهبود عملکرد وب کمک می‌کند، اتصالات امن را تضمین و ترافیک شبکه را بهینه‌سازی می‌کند. در این نوشته، فرآیند نصب، پیکربندی و به حداکثر رساندن مزایای Traefik نیز به تفصیل شرح داده شده است. در این راهنما، ما به بررسی Traefik، نحوه عملکرد آن، ویژگی‌های منحصر به فرد و مزایایی که به همراه دارد می‌پردازیم. درک عمیق از Traefik برای مدیران سرور وب و وبمسترهای با تجربه که به دنبال به حداکثر رساندن کارایی و اطمینان عملیات سرور وب خود هستند، ضروری است.</p>



<h2 class="wp-block-heading" id="h-نکات-کلیدی-پیرامون-traefik">نکات کلیدی پیرامون Traefik</h2>



<ul class="wp-block-list">
<li>Traefik یک پروکسی معکوس پویا و <a href="https://hamravesh.com/blog/what-is-load-balancing/">لود بالانسر</a> (متعادل‌کننده بار) به حساب می‌آید که برای معماری‌های مدرن و توزیع‌شده طراحی شده است. این ابزار در محیط‌هایی دارای عملکرد برجسته است که سرویس‌ها به طور مکرر در حال ارتقا و کاهش مقیاس هستند یا دائم دیپلوی و حذف می‌شوند، .</li>



<li>Traefik امکان پیکربندی پویا، پشتیبانی از چندین بک‌اند، تعادل بار، پشتیبانی از HTTP/2 ،HTTP/3 و WebSocket ،<a href="https://hamravesh.com/blog/what-is-ssl/">SSL</a>/TLS خودکار، میان‌افزارها، متریک‌ها و ردیابی و یک سیستم پلاگین را ارائه می‌دهد. این ویژگی‌ها آن را به ابزاری جامع و چندمنظوره برای مدیریت ترافیک شبکه تبدیل کرده است.</li>



<li>Traefik مدیریت سرورهای وب را ساده‌سازی می‌کند، عملکرد را از طریق تعادل بار کارآمد بهبود می‌بخشد، امنیت را با SSL/TLS خودکار افزایش می‌دهد و گزینه‌های سفارشی‌سازی گسترده‌ای را فراهم می‌آورد. همچنین بینش‌های ارزشمندی برای نظارت و عیب‌یابی برنامه‌ها ارائه می‌دهد.</li>



<li>در حالی که Traefik با ابزارهای دیگری مانند <a href="https://hamravesh.com/blog/what-is-nginx/">NGINX</a> ،HAProxy و Envoy رقابت می‌کند، نقاط قوت منحصر به فرد آن، به ویژه در محیط‌های پویا و بومی ابری، آن را متمایز می‌سازد. بهترین ابزار بسته به نیازها و محیط خاص شما متفاوت است.</li>



<li>Traefik را می‌توان در سیستم‌های مختلفی نظیر CentOS و Ubuntu نصب و پیکربندی کرد. هرچند فرایند راه‌اندازی چندین مرحله‌ای دارد، نتیجه یک ابزار قدرتمند و انعطاف‌پذیر برای مدیریت ترافیک شبکه در محیط سرور وب شما است.</li>
</ul>



<h2 class="wp-block-heading" id="h-traefik-چیست">Traefik چیست؟</h2>



<p>Traefik یک Edge Router اوپن سورس است که به مدیریت پیچیدگی‌های شبکه‌ای مربوط به معماری‌های نرم‌افزاری مُدرن و توزیع‌شده می‌پردازد. Traefik اغلب به عنوان یک پروکسی معکوس و متعادل‌کننده بار شناخته می‌شود، اما قابلیت‌های آن فراتر از این عملکردها است.</p>



<p>هدف اصلی Traefik، مسیریابی درخواست‌ها در سیستم ما به میکروسرویس‌های مناسب است. Traefik این کار را به صورت پویا انجام می‌دهد، به این معنا که می‌تواند به طور خودکار کشف و مدیریت مسیریابی به سرویس‌های جدیدی را انجام دهد که به معماری ما اضافه می‌شوند. این ویژگی، Traefik را برای محیط‌هایی بسیار مناسب می‌سازد که در آن‌ها سرویس‌ها مانند برنامه‌های میزبانی‌شده در ابر به طور مکرر در حال توسعه و کاهش یافته یا مستقر و حذف می‌شوند.</p>



<p>عملکرد Traefik تنها به مسیریابی درخواست‌ها محدود نمی‌شود. این ابزار ویژگی‌های ضروری دیگری نظیر پایان‌دهی SSL/TLS، پشتیبانی از HTTP/2 ،HTTP/3 و WebSocket، کشف خودکار سرویس، تعادل بار، مدارشکن‌ها، میان‌افزارها و موارد دیگر را نیز ارائه می‌دهد. این ویژگی‌ها Traefik را به ابزاری جامع و چندمنظوره برای مدیریت ترافیک شبکه در محیط‌های مختلف وب سرور تبدیل می‌کنند.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="862" height="450" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/05/What-is-traefik.png" alt="Traefik چیست" class="wp-image-2905" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/05/What-is-traefik.png 862w, https://hamravesh.com/blog/wp-content/uploads/2024/05/What-is-traefik-300x157.png 300w, https://hamravesh.com/blog/wp-content/uploads/2024/05/What-is-traefik-768x401.png 768w" sizes="(max-width: 862px) 100vw, 862px" /></figure>



<h2 class="wp-block-heading" id="h-تاریخچه-مختصر-و-سیر-توسعه-traefik">تاریخچه مختصر و سیر توسعه Traefik</h2>



<p>Traefik برای اولین بار در سال ۲۰۱۵ توسط یک شرکت فرانسوی به نام Containous به دنیا معرفی شد. هدف اصلی، ایجاد مسیریاب edge، پویا و بومی ابری بود که بتواند پیچیدگی‌های معماری‌های نرم‌افزاری مُدرن و توزیع‌شده را مدیریت کند. خالقان به دنبال سازوکاری بودند که برای پیکربندی آسان باشد، قابلیت کشف خدمات (Service Discovery) پویا را داشته باشد و از چندین بک‌اند پشتیبانی کند.</p>



<p>از زمان آغاز به کار، Traefik به‌روزرسانی‌ها و بهبودهای متعددی داشته است که نیازهای در حال تغییر مدیران سرور وب و تغییرات گسترده‌تر در چشم‌انداز فناوری را منعکس می‌کند. در اینجا برخی از نقاط عطف مهم در تکامل Traefik آورده شده است:</p>



<ul class="wp-block-list">
<li><strong>Traefik 1.0</strong> با نام «<strong>Camembert</strong>» در سال ۲۰۱۶: این اولین نسخه پایدار Traefik بود. پیکربندی پویا و hot-reloading را معرفی کرد، به این معنی که می‌توانست بدون نیاز به راه‌اندازی مجدد، به تغییرات در محیط واکنش نشان دهد.</li>



<li>Traefik 1.7 با نام «<strong>Maroilles</strong>» در سال ۲۰۱۸: این نسخه پشتیبانی از مسیریابی TCP را معرفی کرد، افزودنی مهمی که قابلیت‌های Traefik را فراتر از HTTP گسترش داد.</li>



<li><strong>Traefik 2.0</strong> با نام «<strong>Mont d’Or</strong>» در سال ۲۰۱۹: این یک انتشار بزرگ بود که پشتیبانی از TCP و UDP، استقرارهای canary&nbsp;و یک rule syntax جدید را معرفی کرد. همچنین مفهوم Middlewares را معرفی کرد، که به کاربران امکان می‌دهد خط لوله پردازش درخواست را سفارشی کنند.</li>



<li><strong>Traefik 2.2</strong> با نام «<strong>Cantal</strong>» در سال ۲۰۲۰: این نسخه، Service Load Balancer را معرفی کرد. نوع جدیدی از خدمات است که می‌تواند بین سایر سرویس‌ها تعادل بار ایجاد کند، . همچنین پشتیبانی از Kubernetes IngressClass نیز اضافه شد.</li>



<li><strong>Traefik 2.3</strong> با نام «<strong>Comté</strong>» در سال ۲۰۲۰: در این نسخه، Traefik Pilot، پلتفرم جدیدی برای مدیریت و بهبود نمونه‌های Traefik معرفی شد. همچنین پشتیبانی از Kubernetes Service APIs را هم اضافه کرد.</li>



<li><strong>Traefik 2.4</strong> به نام «<strong>Morbier</strong>» در سال ۲۰۲۱: این نسخه سیستم افزونه را معرفی کرد، که به کاربران امکان می‌دهد عملکرد Traefik را با افزونه‌های سفارشی گسترش دهند.</li>



<li><strong>Traefik 3.0.0-beta3</strong> (آخرین): این نسخه پیش‌انتشاری، دارای چندین بهبود از جمله پشتیبانی از HostSNIRegexp در مسیرهای TLS GatewayAPI، افزودن پشتیبانی از TCP Servers Transports و افزودن اولویت روتر است.</li>
</ul>



<h2 class="wp-block-heading" id="h-نحوه-عملکرد-traefik-به-چه-صورت-است">نحوه عملکرد <strong>Traefik</strong> به چه صورت است؟</h2>



<p>به زبان ساده، Traefik به عنوان واسط بین کاربران و خدمات شما عمل می‌کند. زمانی که کاربری درخواستی به وب‌سایت شما می‌فرستد، Traefik این درخواست را دریافت می‌کند و بر اساس قوانینی که تعیین کرده‌اید، مسیریابی آن را تعیین می‌کند. این فرآیند شبیه به نحوه‌ای است که پلیس راهنمایی و رانندگی خودروها را در تقاطع هدایت می‌کند، تا اطمینان حاصل شود که همه درخواست‌ها به مقصد درست می‌رسند.</p>



<p>در محیط‌هایی که خدمات به طور مکرر تغییر می‌کنند، مانند زمانی که برنامه‌های جدید اضافه می‌شوند یا برنامه‌های قدیمی حذف می‌شوند، Traefik برجسته است. این سیستم، توانایی تشخیص خودکار این تغییرات را دارد و قوانین مسیریابی خود را متناسب با آن تنظیم می‌کند. این بدان معناست که همزمان با افزودن یا حذف خدمات، Traefik به طور خودکار مسیریابی خود را بدون هیچ دخالت دستی به‌روز می‌کند.</p>



<p>Traefik همچنین رمزنگاری داده‌های کاربران را انجام می‌دهد. زمانی که کاربری به وب‌سایت ما متصل می‌شود، اتصال آن‌ها می‌تواند با استفاده از SSL/TLS رمزنگاری شود، تا اطمینان حاصل کنیم که داده‌های آن‌ها هنگام انتقال از طریق اینترنت ایمن هستند. Traefik به طور خودکار این فرآیند رمزنگاری را مدیریت می‌کند، گواهی‌های لازم را به دست می‌آورد و به موقع تجدید می‌کند. این امر اطمینان می‌دهد که وب‌سایت ما حتی با تحول فناوری‌ها و استانداردها، امن باقی می‌ماند.</p>



<h2 class="wp-block-heading" id="h-ویژگی-های-کلیدی-traefik-چیست">ویژگی‌های کلیدی Traefik چیست؟</h2>



<p>Traefik ویژگی‌های متنوع و متعددی دارد که باعث می‌شود به عنوان ابزاری قدرتمند و انعطاف‌پذیر برای مدیریت ترافیک شبکه در سیستم‌های مدرن و توزیع‌شده شناخته شود. در اینجا به برخی از ویژگی‌های کلیدی اشاره می‌شود که ترافیک را از سایر نرم‌افزارهای سرور متمایز می‌کند:</p>



<ul class="wp-block-list">
<li><strong>کشف خدمات</strong> (<strong>Service Discovery</strong>): Traefik به طور خودکار خدمات جدیدی را که به معماری شما اضافه می‌شوند، شناسایی و مسیریابی می‌کند و به راحتی با سیستم‌های شناخته شده کشف خدمات، نظیر <a href="https://hamravesh.com/blog/what-is-docker/">داکر</a>، <a href="https://hamravesh.com/blog/what-is-kubernetes/">کوبرنتیز</a> و Rancher همگام می‌شود. قابلیت پیکربندی پویا و بارگذاری سریع، ترافیک را برای استفاده در محیط‌هایی ایده‌آل می‌سازد که خدمات به طور مداوم در حال افزایش یا کاهش هستند یا به سرعت نصب و حذف می‌شوند.</li>



<li><strong>مسیریابی</strong> (<strong>Routing</strong>): Traefik از اطلاعات میزبان و مسیر درخواست‌های ورودی استفاده می‌کند تا بتواند تعیین کند که آن‌ها را باید به کجا هدایت کند. شما می‌توانید قوانین مسیریابی را در پیکربندی Traefik تعریف کنید و این قوانین می‌توانند بر اساس نیاز ساده یا پیجیده باشند. ترافیک از روش‌های تطابق (matchersهای) محتلفی برای درخواست‌ها پشتیبانی می‌کند، از جمله تطابق بر اساس مسیر، header-based، و مچرهای مبتنی بر method.</li>



<li><strong>تعادل بار</strong> (<strong>Load Balancing</strong>): Traefik تعادل بار را برای مدیریت ترافیک به خدمات شما فراهم و درخواست‌های ورودی را بین چندین نمونه از یک خدمت توزیع می‌کند. این امر به تضمین این مسئله کمک می‌کند که هیچ نمونه‌ای به نقطه انسداد تبدیل نشود و عملکرد کلی برنامه‌های شما بهبود یابد.</li>



<li><strong>میان‌افزار</strong> (<strong>Middleware</strong>): Traefik مفهوم میان‌افزار را معرفی می‌کند که به کاربران امکان می‌دهد خط لوله پردازش درخواست را سفارشی کنند. میان‌افزارها می‌توانند برای وظایفی مانند rate limiting، احراز هویت، circuit breakerها و دیگر موارد استفاده شوند.</li>



<li><strong><strong>SSL/TLS Termination</strong></strong>: ابزار Traefik می‌تواند SSL/TLS Termination را انجام دهد، به این معنی که می‌تواند ترافیک رمزگذاری شده را قبول کند، آن را رمزگشایی و سپس آن را به سرویس‌های ما به صورت ترافیک رمزنگاری نشده منتقل کند. این کار بار مدیریت رمزنگاری را از روی خدمات شما برمی‌دارد.</li>



<li><strong>معیارها و ردیابی</strong> (<strong>Metrics and Tracing</strong>): Traefik متریک‌هایی برای سیستم‌های مختلف مانند Prometheus و Datadog فراهم می‌کند و از ردیابی توزیع‌شده (distributed tracing) با سیستم‌هایی مانند Jaeger و Zipkin پشتیبانی می‌کند. این امر، نظارت و عیب‌یابی برنامه‌های شما را آسان‌تر می‌کند.</li>



<li><strong>پشتیبانی از چندین بک‌اند</strong>: Traefik از تنوعی از بک‌اندها از جمله Swarm ،Rancher، کوبرنتیز، داکر و بسیاری دیگر پشتیبانی می‌کند. این مسئله Traefik را به ابزاری چندمنظوره تبدیل می‌کند که می‌توان در محیط‌های مختلف از آن استفاده کرد.</li>



<li><strong>پشتیبانی از پروتکل‌ها</strong>: ترافیک از پروتکل‌های مُدرن مانند HTTP/2 ،HTTP/3 و WebSocket‌ها پشتیبانی می‌کند که به شما امکان می‌دهد در برنامه‌های خود از این فناوری‌ها استفاده کنید.</li>



<li><strong>پلاگین‌ها</strong>: از نسخه ۲.۴، Traefik یک سیستم پلاگین را معرفی کرده است که به کاربران امکان می‌دهد با پلاگین‌های سفارشی، عملکرد Traefik را گسترش دهند.</li>
</ul>



<h2 class="wp-block-heading" id="h-جمع-بندی">جمع‌بندی</h2>



<p>Traefik ابزاری قدرتمند و انعطاف‌پذیر برای مدیریت ترافیک شبکه در معماری‌های مُدرن و توزیع‌شده است. این پروکسی معکوس پویا با قابلیت‌های چشمگیر خود مانند کشف خدمات پویا، پیکربندی متنوع، تعادل بار، و پشتیبانی از پروتکل‌های مُدرن، کار مدیریت و بهینه‌سازی ترافیک را بسیار آسان‌تر می‌کند. علاوه بر این، ارائه امکاناتی مانند SSL/TLS خودکار و گستره وسیعی از افزونه‌ها، Traefik را به گزینه‌ای مطلوب برای محیط‌های پویا و متغیر تبدیل کرده است. این ابزار به‌ویژه برای مدیران وب سرور و توسعه‌دهندگان که به دنبال راه‌حلی کارآمد برای چالش‌های روزمره خود هستند، بسیار مفید و کاربردی است.</p>
<p>The post <a href="https://hamravesh.com/blog/what-is-traefik/">Traefik چیست و چطور کار می‌کند؟ – شرح ویژگی‌ها، کاربردها و مزایا</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/what-is-traefik/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>بسته شبکه یا Network Packet چیست؟</title>
		<link>https://hamravesh.com/blog/what-is-a-network-pack/</link>
					<comments>https://hamravesh.com/blog/what-is-a-network-pack/#respond</comments>
		
		<dc:creator><![CDATA[ارسطو عباسی]]></dc:creator>
		<pubDate>Sun, 17 Nov 2024 07:29:56 +0000</pubDate>
				<category><![CDATA[شبکه]]></category>
		<category><![CDATA[مقالات]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=3477</guid>

					<description><![CDATA[<p>بسته شبکه، یک واحد کوچک از داده‌هاست که برای انتقال اطلاعات در شبکه‌های کامپیوتری استفاده می‌شود</p>
<p>The post <a href="https://hamravesh.com/blog/what-is-a-network-pack/">بسته شبکه یا Network Packet چیست؟</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>در دنیای امروز، شبکه‌های کامپیوتری نقش بسیار مهمی در انتقال اطلاعات ایفا می‌کنند. اما آیا تا به حال فکر کرده‌اید که اطلاعات چگونه از یک کامپیوتر به کامپیوتر دیگر منتقل می‌شوند؟ یکی از مهم‌ترین مفاهیمی که برای درک این مسئله باید بدانید، «بسته شبکه» یا Network Packet است. </p>



<p>در این مطلب از وبلاگ هم‌روش، به زبان ساده به شما توضیح می‌دهیم که بسته شبکه چیست و چگونه کار می‌کند.</p>



<h2 class="wp-block-heading" id="h-بسته-شبکه-به-زبان-ساده">بسته شبکه به زبان ساده</h2>



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



<h2 class="wp-block-heading" id="h-چرا-از-بسته-های-شبکه-استفاده-می-شود">چرا از بسته‌های شبکه استفاده می‌شود؟</h2>



<p>استفاده از بسته‌های شبکه چندین مزیت دارد:</p>



<ol class="wp-block-list">
<li><strong>کارایی بالا</strong>: با تقسیم داده‌ها به بسته‌های کوچک‌تر، شبکه می‌تواند آن‌ها را به صورت مستقل ارسال کند. این باعث می‌شود که از پهنای باند شبکه بهتر استفاده شود و انتقال داده‌ها سریع‌تر انجام شود.</li>



<li><strong>قابلیت اطمینان</strong>: اگر یک بسته در طول انتقال گم یا خراب شود، فقط همان بسته نیاز به ارسال مجدد دارد، نه کل داده‌ها. این باعث افزایش قابلیت اطمینان انتقال می‌شود.</li>



<li><strong>انعطاف‌پذیری</strong>: بسته‌ها می‌توانند از مسیرهای مختلفی در شبکه عبور کنند تا به مقصد برسند. این انعطاف‌پذیری به شبکه کمک می‌کند تا در مواجهه با مشکلات، مسیرهای جایگزین پیدا کند.</li>
</ol>



<h2 class="wp-block-heading" id="h-ساختار-یک-بسته-شبکه">ساختار یک بسته شبکه</h2>



<p>هر بسته شبکه از چند بخش تشکیل شده است:</p>



<ol class="wp-block-list">
<li><strong>سربرگ (Header)</strong>: این بخش شامل اطلاعات کنترلی مانند آدرس مبدأ و مقصد، شماره ترتیب بسته، و نوع پروتکل است. سربرگ به بسته کمک می‌کند تا به درستی مسیر خود را در شبکه پیدا کند.</li>



<li><strong>بدنه (Payload)</strong>: این بخش شامل داده‌های اصلی است که باید انتقال یابد. اندازه بدنه بسته می‌تواند متغیر باشد.</li>



<li><strong>پایان‌نامه (Trailer)</strong>: این بخش اختیاری است و ممکن است شامل اطلاعات اضافی برای تشخیص خطاها و تضمین صحت انتقال باشد.</li>
</ol>



<h2 class="wp-block-heading" id="h-پروتکل-های-مرتبط-با-بسته-های-شبکه">پروتکل‌های مرتبط با بسته‌های شبکه</h2>



<p>برای مدیریت و انتقال بسته‌ها در <a href="https://hamravesh.com/blog/what-is-osi-model/#:~:text=%DB%B3.-,%D9%84%D8%A7%DB%8C%D9%87%20%D8%B4%D8%A8%DA%A9%D9%87,-%D9%84%D8%A7%DB%8C%D9%87%20%D8%B4%D8%A8%DA%A9%D9%87%20%D9%85%D8%B3%D8%A6%D9%88%D9%84">شبکه</a>، از پروتکل‌های مختلفی استفاده می‌شود. برخی از مهم‌ترین پروتکل‌ها عبارتند از:</p>



<ol class="wp-block-list">
<li><strong>پروتکل اینترنت (IP)</strong>: این پروتکل مسئول آدرس‌دهی و مسیریابی بسته‌ها در شبکه‌های اینترنتی است. هر بسته شبکه شامل آدرس‌های IP مبدأ و مقصد است.</li>



<li><strong>پروتکل کنترل انتقال (TCP)</strong>: این پروتکل برای اطمینان از انتقال قابل اطمینان داده‌ها استفاده می‌شود. TCP بسته‌ها را شماره‌گذاری می‌کند و در صورت گم شدن یا خراب شدن بسته‌ها، آنها را مجدداً ارسال می‌کند.</li>



<li><strong>پروتکل دیتاگرام کاربر (UDP)</strong>: این پروتکل برای انتقال داده‌ها با سرعت بالا و بدون تضمین صحت استفاده می‌شود. UDP برای کاربردهایی که نیاز به سرعت بالا دارند، مانند پخش ویدیو و بازی‌های آنلاین، مناسب است.</li>
</ol>



<h2 class="wp-block-heading" id="h-چگونه-بسته-های-شبکه-منتقل-می-شوند">چگونه بسته‌های شبکه منتقل می‌شوند؟</h2>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="900" height="456" src="https://hamravesh.com/blog/wp-content/uploads/2024/11/network-packet-sent.webp" alt="شیوه ارسال پکت در شبکه" class="wp-image-4033" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/11/network-packet-sent.webp 900w, https://hamravesh.com/blog/wp-content/uploads/2024/11/network-packet-sent-300x152.webp 300w, https://hamravesh.com/blog/wp-content/uploads/2024/11/network-packet-sent-768x389.webp 768w" sizes="auto, (max-width: 900px) 100vw, 900px" /></figure>



<p>وقتی شما یک پیام یا درخواست را در اینترنت ارسال می‌کنید، دستگاه شما آن را به بسته‌های کوچکتر تقسیم می‌کند. این بسته‌ها سپس از طریق روترها و سوئیچ‌ها به مقصد ارسال می‌شوند. در هر مرحله، تجهیزات شبکه بسته‌ها را مسیریابی کرده و به سمت مقصد هدایت می‌کنند. در نهایت، بسته‌ها در مقصد جمع‌آوری شده و داده‌ها به صورت کامل به گیرنده تحویل داده می‌شوند.</p>



<h2 class="wp-block-heading" id="h-چالش-های-بسته-های-شبکه">چالش‌های بسته‌های شبکه</h2>



<p>اگرچه بسته‌های شبکه بسیار کارآمد هستند، اما چالش‌هایی نیز وجود دارد:</p>



<ol class="wp-block-list">
<li><strong>ازدحام شبکه</strong>: در صورتی که تعداد بسته‌های ارسالی در شبکه بسیار زیاد شود، ممکن است ازدحام رخ دهد و سرعت انتقال کاهش یابد.</li>



<li><strong>امنیت</strong>: بسته‌ها ممکن است در طول انتقال مورد حمله قرار گیرند. استفاده از روش‌های رمزنگاری و پروتکل‌های امنیتی مانند SSL/TLS می‌تواند به حفاظت از داده‌ها کمک کند.</li>



<li><strong>تأخیر</strong>: بسته‌ها ممکن است به دلیل مسیریابی از مسیرهای مختلف با تأخیر مواجه شوند. این مسئله می‌تواند بر کیفیت خدماتی مانند تماس‌های ویدیویی تأثیر بگذارد.</li>
</ol>



<h2 class="wp-block-heading" id="h-در-پایان">در پایان</h2>



<p>بسته شبکه یکی از مفاهیم اساسی در دنیای شبکه‌های کامپیوتری است که انتقال داده‌ها را به صورت کارآمد و قابل اطمینان ممکن می‌سازد. با درک بهتر این مفهوم، می‌توانید به شناخت عمیق‌تری از نحوه عملکرد شبکه‌ها و انتقال داده‌ها دست یابید. امیدواریم که این مطلب به شما کمک کرده باشد تا با مفهوم بسته‌های شبکه آشنا شوید و درک بهتری از عملکرد آنها پیدا کنید.</p>
<p>The post <a href="https://hamravesh.com/blog/what-is-a-network-pack/">بسته شبکه یا Network Packet چیست؟</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/what-is-a-network-pack/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>راه‌اندازی و اتصال به ssh در لینوکس با کلید ssh</title>
		<link>https://hamravesh.com/blog/how-to-set-up-ssh-keys-on-linux/</link>
					<comments>https://hamravesh.com/blog/how-to-set-up-ssh-keys-on-linux/#respond</comments>
		
		<dc:creator><![CDATA[بابک خوش‌نویس]]></dc:creator>
		<pubDate>Mon, 28 Oct 2024 12:13:25 +0000</pubDate>
				<category><![CDATA[شبکه]]></category>
		<category><![CDATA[مقالات]]></category>
		<category><![CDATA[لینوکس]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=3199</guid>

					<description><![CDATA[<p>در این مقاله با نحوه ایجاد جفت کلید ssh  و اتصال به آن در لینوکس آشنا می‌شوید.</p>
<p>The post <a href="https://hamravesh.com/blog/how-to-set-up-ssh-keys-on-linux/">راه‌اندازی و اتصال به ssh در لینوکس با کلید ssh</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>SSH یا Secure Shell، پروتکل رمزنگاری‌شده‌ای است که برای مدیریت و ارتباط با سرورها استفاده می‌شود. هنگام کار با سرور اوبونتو، معمولاً بیشتر وقت خود را در سِشِن ترمینالی سپری می‌کنیم که از طریق SSH به آن متصل شده‌ایم. در این راهنما، ما بر اتصال به ssh در لینوکس از طریق راه‌اندازی کلیدهای SSH بر روی Ubuntu 20.04 تمرکز خواهیم کرد. کلیدهای SSH روشی امن برای ورود به سرور فراهم می‌کنند و استفاده از آن‌ها به جای پسورد به تمام کاربران توصیه می‌شود.</p>



<h2 class="wp-block-heading" id="h-گام-اول-اتصال-به-ssh-در-لینوکس-ایجاد-جفت-کلیدها">گام اول اتصال به ssh در لینوکس — ایجاد جفت کلیدها</h2>



<p>مرحله اول، ایجاد یک جفت کلید روی دستگاه کلاینت (معمولاً رایانه شخصی شما) است:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-width:calc(1 * 0.6 * 1rem);line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="کپی" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>ssh-keygen</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">ssh-keygen</span></span></code></pre></div>



<p>به طور پیش‌فرض، نسخه‌های اخیر <code>ssh-keygen</code> یک جفت کلید RSA با طول ۳۰۷۲ بیت ایجاد می‌کنند که برای بیشتر کاربردها، امنیت کافی را فراهم می‌کند (در صورت تمایل، می‌توانید با استفاده از پرچم <code>-b 4096</code> یک کلید بزرگ‌تر ۴۰۹۶ بیتی ایجاد کنید). پس از وارد کردن دستور، باید خروجی زیر را مشاهده کنید:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Output
Generating public/private rsa key pair.
Enter file in which to save the key (/your_home/.ssh/id_rsa):</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">Output</span></span>
<span class="line"><span style="color: #F69D50">Generating</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">public/private</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">rsa</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">key</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">pair.</span></span>
<span class="line"><span style="color: #F69D50">Enter</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">file</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">in</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">which</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">to</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">save</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">the</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">key</span><span style="color: #ADBAC7"> (/your_home/.ssh/id_rsa):</span></span></code></pre></div>



<p>برای ذخیره کردن جفت کلید در زیردایرکتوری <code>.ssh/</code> در دایرکتوری home اینتر بزنید، یا مسیر دیگری مشخص کنید. اگر قبلاً یک جفت کلید SSH تولید کرده‌اید، ممکن است پرسش زیر را مشاهده کنید:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Output
/home/your_home/.ssh/id_rsa already exists.
Overwrite (y/n)?</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">Output</span></span>
<span class="line"><span style="color: #F69D50">/home/your_home/.ssh/id_rsa</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">already</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">exists.</span></span>
<span class="line"><span style="color: #F69D50">Overwrite</span><span style="color: #ADBAC7"> (y/n)</span><span style="color: #F47067">?</span></span></code></pre></div>



<p>اگر تصمیم به بازنویسی کلید روی دیسک بگیرید، دیگر نخواهید توانست با استفاده از کلید قبلی احراز هویت کنید. هنگام انتخاب بله، بسیار محتاط باشید، زیرا این یک فرایند مخرب است که قابل برگشت نیست. سپس باید خروجی زیر را مشاهده کنید:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Output
Enter passphrase (empty for no passphrase):</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">Output</span></span>
<span class="line"><span style="color: #F69D50">Enter</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">passphrase</span><span style="color: #ADBAC7"> (empty </span><span style="color: #96D0FF">for</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">no</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">passphrase</span><span style="color: #ADBAC7">):</span></span></code></pre></div>



<p>در اینجا می‌توانید به صورت اختیاری یک عبارت عبور امن وارد کنید، که به شدت توصیه می‌شود. عبارت عبور یک لایه امنیتی اضافی ایجاد می‌کند تا از ورود کاربران غیرمجاز جلوگیری کند. برای آموختن بیشتر درباره امنیت، می‌توانید به آموزش پیرامون چگونگی پیکربندی احراز هویت مبتنی بر کلید SSH در یک سرور <a href="https://hamravesh.com/blog/what-are-linux-distributions/">لینوکس</a> [<a href="https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on-a-linux-server">+</a>] مراجعه کنید. سپس باید خروجی مشابه زیر را ببینید:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Output
Your identification has been saved in /your_home/.ssh/id_rsa
Your public key has been saved in /your_home/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:/hk7MJ5n5aiqdfTVUZr+2Qt+qCiS7BIm5Iv0dxrc3ks user@host
The key's randomart image is:
+---&#91;RSA 3072&#93;----+
|                .|
|               + |
|              +  |
| .           o . |
|o       S   . o  |
| + o. .oo. ..  .o|
|o = oooooEo+ ...o|
|.. o *o+=.*+o....|
|    =+=ooB=o.... |
+----&#91;SHA256&#93;-----+</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">Output</span></span>
<span class="line"><span style="color: #F69D50">Your</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">identification</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">has</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">been</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">saved</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">in</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">/your_home/.ssh/id_rsa</span></span>
<span class="line"><span style="color: #F69D50">Your</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">public</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">key</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">has</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">been</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">saved</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">in</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">/your_home/.ssh/id_rsa.pub</span></span>
<span class="line"><span style="color: #F69D50">The</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">key</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">fingerprint</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">is:</span></span>
<span class="line"><span style="color: #F69D50">SHA256:/hk7MJ5n5aiqdfTVUZr+2Qt+qCiS7BIm5Iv0dxrc3ks</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">user@host</span></span>
<span class="line"><span style="color: #F69D50">The</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">key&#39;s randomart image is:</span></span>
<span class="line"><span style="color: #96D0FF">+---&#91;RSA 3072&#93;----+</span></span>
<span class="line"><span style="color: #96D0FF">|                .|</span></span>
<span class="line"><span style="color: #96D0FF">|               + |</span></span>
<span class="line"><span style="color: #96D0FF">|              +  |</span></span>
<span class="line"><span style="color: #96D0FF">| .           o . |</span></span>
<span class="line"><span style="color: #96D0FF">|o       S   . o  |</span></span>
<span class="line"><span style="color: #96D0FF">| + o. .oo. ..  .o|</span></span>
<span class="line"><span style="color: #96D0FF">|o = oooooEo+ ...o|</span></span>
<span class="line"><span style="color: #96D0FF">|.. o *o+=.*+o....|</span></span>
<span class="line"><span style="color: #96D0FF">|    =+=ooB=o.... |</span></span>
<span class="line"><span style="color: #96D0FF">+----&#91;SHA256&#93;-----+</span></span></code></pre></div>



<p>شما اکنون یک کلید عمومی و خصوصی دارید که می‌توانید برای احراز هویت استفاده کنید. مرحله بعدی، قرار دادن کلید عمومی بر روی سرور شما است تا بتوانید با استفاده از احراز هویت مبتنی بر کلید SSH وارد شوید.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="450" height="450" src="https://hamravesh.com/blog/wp-content/uploads/2024/06/how-to-ssh-to-linux-with-ssh-key-from-linux.png" alt="اتصال به ssh در لینوکس" class="wp-image-3211" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/06/how-to-ssh-to-linux-with-ssh-key-from-linux.png 450w, https://hamravesh.com/blog/wp-content/uploads/2024/06/how-to-ssh-to-linux-with-ssh-key-from-linux-300x300.png 300w, https://hamravesh.com/blog/wp-content/uploads/2024/06/how-to-ssh-to-linux-with-ssh-key-from-linux-150x150.png 150w, https://hamravesh.com/blog/wp-content/uploads/2024/06/how-to-ssh-to-linux-with-ssh-key-from-linux-250x250.png 250w, https://hamravesh.com/blog/wp-content/uploads/2024/06/how-to-ssh-to-linux-with-ssh-key-from-linux-100x100.png 100w" sizes="auto, (max-width: 450px) 100vw, 450px" /></figure>
</div>


<h2 class="wp-block-heading" id="h-مرحله-۲-کپی-کردن-کلید-عمومی-به-سرور-لینوکس">مرحله ۲ — کپی کردن کلید عمومی به سرور لینوکس</h2>



<p>سریع‌ترین راه برای انتقال کلید عمومی به میزبان Ubuntu، استفاده از ابزاری به نام <code>ssh-copy-id</code> است. به دلیل سادگی استفاده، این روش در صورت در دسترس بودن، به شدت توصیه می‌شود. اگر ابزار <code>ssh-copy-id</code> در دستگاه کلاینت شما موجود نیست، می‌توانید از یکی از ۲ روش جایگزین ارائه‌شده در این بخش استفاده کنید (کپی کردن از طریق SSH مبتنی بر رمز عبور یا کپی دستی کلید).</p>



<h3 class="wp-block-heading" id="h-کپی-کردن-کلید-عمومی-با-استفاده-از-ssh-copy-id">کپی کردن کلید عمومی با استفاده از <code>ssh-copy-id</code></h3>



<p>ابزار <code>ssh-copy-id</code> به طور پیش‌فرض در بسیاری از سیستم‌های عامل گنجانده شده است، بنابراین ممکن است در سیستم محلی شما در دسترس باشد. برای اینکه این روش کار کند، باید قبلاً دسترسی SSH مبتنی بر رمز عبور را به سرور خود داشته باشید.</p>



<p>برای استفاده از این ابزار، میزبان دوردستی (ریموتی) که می‌خواهیم به آن متصل شویم و حساب کاربری که دسترسی SSH مبتنی بر رمز عبور به آن داریم را مشخص می‌کنیم. این حساب کاربری همان حسابی است که کلید SSH عمومی شما به آن کپی خواهد شد. دستور به شکل زیر است:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>ssh-copy-id username@remote_host</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">ssh-copy-id</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">username@remote_host</span></span></code></pre></div>



<p>ممکن است پیام زیر را مشاهده کنید:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Output
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">Output</span></span>
<span class="line"><span style="color: #F69D50">The</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">authenticity</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">of</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">host</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&#39;203.0.113.1 (203.0.113.1)&#39;</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">can&#39;t be established.</span></span>
<span class="line"><span style="color: #96D0FF">ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.</span></span>
<span class="line"><span style="color: #96D0FF">Are you sure you want to continue connecting (yes/no)? yes</span></span></code></pre></div>



<p>این یعنی رایانه محلی شما میزبان دوردست را نمی‌شناسد. این اتفاق در اولین اتصال شما به یک میزبان جدید رخ می‌دهد. «yes» را تایپ کرده و ENTER را فشار دهید تا ادامه کار انجام شود. سپس، ابزار مربوطه کلید <code>id_rsa.pub</code> را که قبلاً ایجاد کردیم در حساب محلی ما جستجو می‌کند. وقتی کلید را پیدا کند، رمز عبور حساب کاربری ریموت را از ما درخواست می‌کند:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Output
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
username@203.0.113.1's password:</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">Output</span></span>
<span class="line"><span style="color: #F69D50">/usr/bin/ssh-copy-id:</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">INFO:</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">attempting</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">to</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">log</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">in</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">with</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">the</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">new</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">key</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">s</span><span style="color: #ADBAC7">)</span><span style="color: #96D0FF">,</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">to</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">filter</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">out</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">any</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">that</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">are</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">already</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">installed</span></span>
<span class="line"><span style="color: #F69D50">/usr/bin/ssh-copy-id:</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">INFO:</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">1</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">key</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">s</span><span style="color: #ADBAC7">) </span><span style="color: #96D0FF">remain</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">to</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">be</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">installed</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">--</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">if</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">you</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">are</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">prompted</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">now</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">it</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">is</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">to</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">install</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">the</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">new</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">keys</span></span>
<span class="line"><span style="color: #F69D50">username@203.0.113.1</span><span style="color: #F69D50">&#39;s password:</span></span></code></pre></div>



<p>رمز عبور را تایپ می‌کنیم (چیزی که تایپ کرده‌ایم به دلایل امنیتی نمایش داده نمی‌شود) و سپس ENTER را فشار می‌دهیم. ابزار مربوطه به حساب کاربری روی میزبان دوردست با استفاده از رمز عبوری که فراهم کردیم، متصل می‌شود. سپس محتویات کلید <code>~/.ssh/id_rsa.pub</code> ما را درون فایلی در دایرکتوری هوم <code>~/.ssh</code> حساب دوردست به نام <code>authorized_keys</code> کپی می‌کند. حالا باید خروجی زیر را مشاهده کنیم:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Output
Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'username@203.0.113.1'"
and check to make sure that only the key(s) you wanted were added.</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">Output</span></span>
<span class="line"><span style="color: #F69D50">Number</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">of</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">key</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">s</span><span style="color: #ADBAC7">) </span><span style="color: #96D0FF">added:</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">1</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F69D50">Now</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">try</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">logging</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">into</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">the</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">machine,</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">with:</span><span style="color: #ADBAC7">   </span><span style="color: #96D0FF">&quot;ssh &#39;username@203.0.113.1&#39;&quot;</span></span>
<span class="line"><span style="color: #F69D50">and</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">check</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">to</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">make</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">sure</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">that</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">only</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">the</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">key</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">s</span><span style="color: #ADBAC7">) </span><span style="color: #96D0FF">you</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">wanted</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">were</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">added.</span></span></code></pre></div>



<p>در این مرحله، کلید <code>id_rsa.pub</code> ما به حساب دوردست آپلود شده است. حالا می‌توانیم برای ادامه به مرحله ۳ برویم.</p>



<h3 class="wp-block-heading" id="h-کپی-کردن-کلید-عمومی-با-استفاده-از-ssh">کپی کردن کلید عمومی با استفاده از SSH</h3>



<p>اگر به ابزار <code>ssh-copy-id</code> دسترسی ندارید، اما به حسابی در سرورتان دسترسی SSH مبتنی بر رمز عبور دارید، می‌توانید کلیدهای خود را با استفاده از روش معمول SSH بارگذاری کنید. این کار را با استفاده از دستور <code>cat</code> برای خواندن محتوای کلید SSH عمومی در رایانه محلی‌مان و انتقال آن از طریق اتصال SSH به سرور ریموت انجام می‌دهیم.</p>



<p>در سمت دیگر، می‌توانیم مطمئن شویم که دایرکتوری <code>~/.ssh</code> وجود دارد و دارای مجوزهای صحیح تحت حسابی است که از آن استفاده می‌کنیم. سپس می‌توانیم محتوایی را که درون فایلی به نام <code>authorized_keys</code> پایپ کردیم را در این دایرکتوری خروجی دهیم. از نماد تغییرمسیر <code>&gt;&gt;</code> برای افزودن محتوا به جای بازنویسی آن استفاده می‌کنیم. این امکان را به ما می‌دهد تا کلیدها را بدون از بین بردن کلیدهای قبلاً افزوده شده، اضافه کنیم. دستور کامل به این شکل است:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh &amp;&amp; touch ~/.ssh/authorized_keys &amp;&amp; chmod -R go= ~/.ssh &amp;&amp; cat >> ~/.ssh/authorized_keys"</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">cat</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">~/.ssh/id_rsa.pub</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">|</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">ssh</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">username@remote_host</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;mkdir -p ~/.ssh &amp;&amp; touch ~/.ssh/authorized_keys &amp;&amp; chmod -R go= ~/.ssh &amp;&amp; cat &gt;&gt; ~/.ssh/authorized_keys&quot;</span></span></code></pre></div>



<p>ممکن است با پیام زیر مواجه شوید:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Output
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">Output</span></span>
<span class="line"><span style="color: #F69D50">The</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">authenticity</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">of</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">host</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&#39;203.0.113.1 (203.0.113.1)&#39;</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">can&#39;t be established.</span></span>
<span class="line"><span style="color: #96D0FF">ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.</span></span>
<span class="line"><span style="color: #96D0FF">Are you sure you want to continue connecting (yes/no)? yes</span></span></code></pre></div>



<p>این یعنی رایانه محلی شما میزبان دوردست را نمی‌شناسد. این اتفاق در اولین اتصال شما به میزبان جدید رخ می‌دهد. «yes» را تایپ کنید و ENTER را فشار دهید تا کار ادامه یابد. سپس، باید برای وارد کردن رمز عبور حساب کاربری دوردست از شما درخواست شود:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Output
username@203.0.113.1's password:</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">Output</span></span>
<span class="line"><span style="color: #F69D50">username@203.0.113.1</span><span style="color: #F69D50">&#39;s password:</span></span></code></pre></div>



<p>پس از وارد کردن رمز عبور، محتوای کلید <code>id_rsa.pub</code> شما به انتهای فایل <code>authorized_keys</code> حساب کاربر دوردست کپی خواهد شد. پس از آنکه این کار با موفقیت انجام شد، به مرحله ۳ بروید.</p>



<h3 class="wp-block-heading" id="h-کپی-کردن-کلید-عمومی-به-صورت-دستی">کپی کردن کلید عمومی به صورت دستی</h3>



<p>اگر دسترسی SSH مبتنی بر رمز عبور به سرور خود ندارید، باید فرایند فوق را به صورت دستی انجام دهید. پس به صورت دستی محتوای فایل <code>id_rsa.pub</code> را به فایل <code>~/.ssh/authorized_keys</code> در دستگاه دوردست اضافه می‌کنیم. برای نمایش محتوای کلید <code>id_rsa.pub</code> خود، این دستور را در کامپیوتر محلی خود تایپ کنید:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>cat ~/.ssh/id_rsa.pub</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">cat</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">~/.ssh/id_rsa.pub</span></span></code></pre></div>



<p>محتوای کلید نمایش داده می‌شود، که باید شبیه به خروجی زیر باشد:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">Output</span></span>
<span class="line"><span style="color: #F69D50">ssh-rsa</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ==</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">demo@test</span></span></code></pre></div>



<p>با استفاده از هر روشی که در دسترس دارید، به میزبان دوردست دسترسی پیدا کنید. پس از دسترسی به حساب خود در سرور دوردست، باید مطمئن شوید که دایرکتوری <code>~/.ssh</code> وجود دارد. این دستور، در صورت نیاز دایرکتوری را ایجاد می‌کند و اگر از قبل وجود داشته باشد، کاری انجام نمی‌دهد:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>mkdir -p ~/.ssh</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">mkdir</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">-p</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">~/.ssh</span></span></code></pre></div>



<p>اکنون، می‌توانید فایل <code>authorized_keys</code> را در این دایرکتوری ایجاد یا ویرایش کنید. می‌توانید محتویات فایل <code>id_rsa.pub</code> خود را در انتهای فایل <code>authorized_keys</code> اضافه کنید، و در صورت نیاز آن را با استفاده از این دستور ایجاد کنید:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>echo public_key_string >> ~/.ssh/authorized_keys
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #6CB6FF">echo</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">public_key_string</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">&gt;&gt;</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">~/.ssh/authorized_keys</span></span>
<span class="line"></span></code></pre></div>



<p>در دستور فوق، به جای <code>public_key_string</code>، خروجی دستور <code>cat ~/.ssh/id_rsa.pub</code> که در سیستم محلی خود اجرا کرده‌اید را قرار دهید. این خروجی باید با <code>ssh-rsa AAAA…</code> شروع شود. در نهایت، مطمئن می‌شویم که دایرکتوری <code>~/.ssh</code> و فایل <code>authorized_keys</code> دارای مجوزهای مناسب هستند:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>chmod -R go= ~/.ssh</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">chmod</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">-R</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">go=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">~/.ssh</span></span></code></pre></div>



<p>این دستور به‌طور بازگشتی تمام مجوزهای «group» و «other» را برای دایرکتوری <code>~/.ssh</code> حذف می‌کند. اگر از حساب <strong>روت</strong> برای تنظیم کلیدها برای حساب کاربری استفاده می‌کنید، مهم است که دایرکتوری <code>~/.ssh</code> متعلق به یوزر باشد و نه متعلق به <strong>روت</strong>:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>chown -R sammy:sammy ~/.ssh</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">chown</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">-R</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">sammy:sammy</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">~/.ssh</span></span></code></pre></div>



<p>در این آموزش، کاربر ما «sammy» نام دارد اما شما باید نام کاربری مناسب را در دستور فوق جایگزین کنید. اکنون می‌توانیم احراز هویت بدون رمز عبور با سرور Ubuntu خود را انجام دهیم.</p>



<h2 class="wp-block-heading" id="h-گام-سوم-اتصال-به-ssh-در-لینوکس-احراز-هویت-در-سرور-ubuntu-با-استفاده-از-کلیدهای-ssh">گام سوم اتصال به ssh در لینوکس — احراز هویت در سرور Ubuntu با استفاده از کلیدهای SSH</h2>



<p>اگر یکی از روش‌های بالا را با موفقیت به پایان رسانده‌اید، حالا باید قادر به ورود به میزبان دوردست بدون ارائه رمز عبور حساب دوردست باشید. فرایند کلی یکسان است:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>ssh username@remote_host</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">ssh</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">username@remote_host</span></span></code></pre></div>



<p>اگر این اولین بار است که به این میزبان متصل می‌شوید (اگر از آخرین روش بالا استفاده کرده‌اید)، ممکن است چیزی شبیه به خروجی زیر را مشاهده کنید:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Output
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">Output</span></span>
<span class="line"><span style="color: #F69D50">The</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">authenticity</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">of</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">host</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&#39;203.0.113.1 (203.0.113.1)&#39;</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">can&#39;t be established.</span></span>
<span class="line"><span style="color: #96D0FF">ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.</span></span>
<span class="line"><span style="color: #96D0FF">Are you sure you want to continue connecting (yes/no)? yes</span></span></code></pre></div>



<p>این یعنی رایانه محلی شما میزبان دوردست را نمی‌شناسد و این اولین بار است که به آن متصل می‌شوید. «yes» را تایپ کنید و سپس ENTER را فشار دهید ادامه کار انجام شود.</p>



<p>اگر برای کلید خصوصی خود عبارت عبوری (Passphrase) تعیین نکرده‌اید، بلافاصله وارد می‌شوید. اگر هنگام ایجاد کلید، عبارت عبوری برای کلید خصوصی تعیین کرده‌اید، اکنون از شما خواسته می‌شود که آن را وارد کنید (توجه داشته باشید که حروف وارد شده در سِشِن ترمینال به دلایل امنیتی نمایش داده نمی‌شوند). پس از احراز هویت، یک سشن شل جدید برای شما با حساب پیکربندی شده در سرور Ubuntu باز می‌شود.</p>



<p>اگر احراز هویت مبتنی بر کلید موفقیت‌آمیز بوده است، مطالعه این مطلب را ادامه دهید تا یاد بگیرید چگونه با غیرفعال کردن احراز هویت رمز عبور، سیستم خود را بیشتر ایمن کنید.</p>



<h2 class="wp-block-heading" id="h-گام-چهارم-غیرفعال-کردن-احراز-هویت-با-پسورد-برای-اتصال-به-سرور">گام چهارم — غیرفعال کردن احراز هویت با پسورد برای اتصال به سرور</h2>



<p>اگر توانستید بدون استفاده از رمز عبور با استفاده از SSH به حساب خود وارد شوید، به این معناست که احراز هویت مبتنی بر کلید SSH را برای حساب خود به درستی پیکربندی کرده‌اید. با این حال، مکانیزم احراز هویت بر پایه رمز عبور همچنان فعال است، به این معنی که سرور شما هنوز در معرض حملات نیرومند (Brute-Force) قرار دارد.</p>



<p>پیش از انجام مراحل این بخش، اطمینان حاصل کنید که یا احراز هویت مبتنی بر کلید SSH را برای حساب روت در این سرور پیکربندی کرده‌اید، یا بهتر اینکه، احراز هویت مبتنی بر کلید SSH را برای حساب غیر root در این سرور با امتیازات sudo پیکربندی کرده‌اید. این مرحله ورود‌های مبتنی بر رمز عبور را محدود می‌کند، بنابراین تضمین اینکه همچنان قادر به دسترسی مدیریتی خواهید بود، حیاتی است.</p>



<p>پس از تأیید اینکه حساب دوردست شما دارای امتیازات مدیریتی است، با استفاده از کلیدهای SSH، به سرور دوردست خود وارد شوید، چه به عنوان روت و چه با حسابی که دارای امتیازات سودو است. سپس، فایل پیکربندی دیمون SSH را باز کنید:</p>



<p></p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>sudo nano /etc/ssh/sshd_config</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">sudo</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">nano</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">/etc/ssh/sshd_config</span></span></code></pre></div>



<p>در داخل فایل، به دنبال دستورالعملی به نام <code>PasswordAuthentication</code> بگردید. این خط ممکن است با علامت <code>#</code> به صورت کامنت در آنده باشد. خط را با حذف #، Uncomment کنید و مقدار آن را به <code>no</code> تغییر دهید. این کار قابلیت ورود شما از طریق SSH با استفاده از رمزهای عبور حساب را غیرفعال می‌کند:</p>



<p></p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>. . .
PasswordAuthentication no
. . .</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #6CB6FF">.</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">.</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">.</span></span>
<span class="line"><span style="color: #F69D50">PasswordAuthentication</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">no</span></span>
<span class="line"><span style="color: #6CB6FF">.</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">.</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">.</span></span></code></pre></div>



<p></p>



<p>پس از اتمام کار، فایل را با فشار دادن CTRL+X و سپس Y برای تأیید ذخیره‌سازی فایل و در نهایت با زدن ENTER برای خروج از nano ببندید. برای فعال کردن این تغییرات، باید سرویس <code>sshd</code> را مجدداً راه‌اندازی کنیم:</p>



<p></p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>sudo systemctl restart ssh</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">sudo</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">systemctl</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">restart</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">ssh</span></span></code></pre></div>



<p>برای احتیاط، یک پنجره ترمینال جدید باز کنید و قبل از بستن سشن فعلی خود، تست کنید که سرویس SSH به درستی کار می‌کند یا خیر:</p>



<p></p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>ssh username@remote_host
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">ssh</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">username@remote_host</span></span>
<span class="line"></span></code></pre></div>



<p>پس از تأیید اینکه سرویس SSH شما به درستی کار می‌کند، می‌توانید تمام جلسات فعلی سرور را با خیال راحت ببندید. دیمون SSH در سرور اوبونتو شما اکنون فقط به احراز هویت مبتنی بر کلید SSH پاسخ می‌دهد و ورود‌های مبتنی بر رمز عبور غیرفعال شده‌اند.</p>



<h2 class="wp-block-heading" id="h-جمع-بندی">جمع‌بندی</h2>



<p>احراز هویت مبتنی بر کلید SSH یک رویکرد امنیتی استاندارد است که امکان دسترسی ایمن به سرورها را بدون نیاز به رمز عبور فراهم می‌آورد. با پیروی از دستورالعمل‌های ارائه شده، شما قادر به راه‌اندازی و مدیریت کلیدهای SSH برای ورود به سرور اوبونتو خود هستید. این روش نه تنها امنیت دسترسی به سرور را تقویت می‌کند، بلکه با کاهش خطر حملات نیرومند و سایر تهدیدات امنیتی، آرامش خاطر بیشتری را برای مدیران سیستم فراهم می‌آورد. پس از آنکه که احراز هویت مبتنی بر کلید پیکربندی شد، توصیه می‌شود اقدامات بعدی برای بهبود امنیت سیستم، مانند غیرفعال سازی احراز هویت مبتنی بر رمز عبور، انجام شود تا در برابر دسترسی‌های ناخواسته از سرور حفاظت بیشتری داشته باشیم.</p>
<p>The post <a href="https://hamravesh.com/blog/how-to-set-up-ssh-keys-on-linux/">راه‌اندازی و اتصال به ssh در لینوکس با کلید ssh</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/how-to-set-up-ssh-keys-on-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>آشنایی با کدهای وضعیت HTTP: معنی و کاربرد هر کد</title>
		<link>https://hamravesh.com/blog/http-status-code/</link>
					<comments>https://hamravesh.com/blog/http-status-code/#respond</comments>
		
		<dc:creator><![CDATA[ارسطو عباسی]]></dc:creator>
		<pubDate>Sun, 20 Oct 2024 11:17:29 +0000</pubDate>
				<category><![CDATA[شبکه]]></category>
		<category><![CDATA[مقالات]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=3472</guid>

					<description><![CDATA[<p>کدهای وضعیت پاسخ HTTP به صورت شمارشی و سه‌رقمی تعریف شده‌اند و هر یک نشان‌دهنده وضعیت خاصی از درخواست HTTP هستند.</p>
<p>The post <a href="https://hamravesh.com/blog/http-status-code/">آشنایی با کدهای وضعیت HTTP: معنی و کاربرد هر کد</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>وقتی یک کاربر اینترنتی آدرس وبسایتی را در مرورگر خود وارد کرده و به آن مراجعه می‌کند، یک فرآیند پیچیده در پشت صحنه اتفاق می‌افتد تا صفحه مورد نظر برای او به نمایش درآید. یکی از اجزای کلیدی این فرآیند، کدهای وضعیت پاسخ HTTP یا (<strong>HTTP Response Status Codes</strong>) هستند. این کدها اطلاعاتی در مورد وضعیت درخواست کاربر به سرور وب‌سایت و نحوه پاسخگویی سرور به این درخواست را ارائه می‌دهند. برای افراد مبتدی دنیای کامپیوتر و برنامه‌نویسی، فهم این کدها ممکن است کمی دشوار به نظر برسد.</p>



<p>کدهای وضعیت پاسخ HTTP به صورت شمارشی و سه‌رقمی تعریف شده‌اند و هر یک نشان‌دهنده وضعیت خاصی از درخواست HTTP هستند. این کدها به پنج دسته اصلی تقسیم می‌شوند که هر دسته با یک عدد خاص (از 1 تا 5) آغاز می‌شود. در ادامه، ساختار و دسته‌بندی این کدها را بررسی می‌کنیم.</p>



<h2 class="wp-block-heading" id="h-کدهای-وضعیت-1xx-اطلاعاتی">کدهای وضعیت 1xx (اطلاعاتی)</h2>



<p>کدهای وضعیت 1xx در پروتکل HTTP به معنای پاسخ‌های اطلاعاتی هستند و به ندرت در استفاده روزمره کاربران دیده می‌شوند. این کدها نشان می‌دهند که درخواست کاربر دریافت شده و در حال پردازش است. این کدها معمولاً در پروتکل‌های پیچیده‌تر و در شرایط خاص استفاده می‌شوند. در این بخش، به بررسی برخی از مهم‌ترین کدهای وضعیت 1xx خواهیم پرداخت.</p>



<h3 class="wp-block-heading">100 Continue</h3>



<p>کد 100 Continue یکی از پرکاربردترین کدهای 1xx است. این کد به این معناست که سرور درخواست اولیه کاربر را دریافت کرده و آماده دریافت بخش‌های بعدی درخواست است. این کد معمولاً در مواقعی استفاده می‌شود که درخواست کاربر به چند بخش تقسیم می‌شود، مثلاً وقتی که یک فایل بزرگ آپلود می‌شود. سرور با ارسال این کد به کلاینت می‌گوید که بخش اول درخواست را دریافت کرده و کاربر می‌تواند به ارسال بخش‌های بعدی ادامه دهد.</p>



<h3 class="wp-block-heading">101 Switching Protocols</h3>



<p>کد 101 Switching Protocols به این معناست که سرور با درخواست تغییر پروتکل از سوی کاربر موافقت کرده است. این وضعیت معمولاً زمانی رخ می‌دهد که کلاینت درخواست تغییر پروتکل از HTTP به یک پروتکل دیگر، مانند HTTPS یا WebSocket، را می‌دهد. این کد به کلاینت اطلاع می‌دهد که سرور آماده است تا ارتباط را بر اساس پروتکل جدید ادامه دهد.</p>



<h3 class="wp-block-heading">102 Processing (WebDAV)</h3>



<p>کد 102 Processing یکی از کدهای کمتر شناخته شده 1xx است که در پروتکل WebDAV استفاده می‌شود. این کد به کلاینت اطلاع می‌دهد که سرور درخواست را دریافت کرده و در حال پردازش آن است، اما هنوز پاسخی آماده نیست. این کد به خصوص در مواقعی که پردازش درخواست زمان‌بر است، مفید واقع می‌شود و از ایجاد تایم‌اوت در کلاینت جلوگیری می‌کند.</p>



<h3 class="wp-block-heading">103 Early Hints</h3>



<p>کد 103 Early Hints یک کد جدیدتر در مجموعه کدهای وضعیت 1xx است که به سرورها اجازه می‌دهد تا قبل از ارسال پاسخ نهایی، هدرهای اولیه را به کلاینت ارسال کنند. این کار می‌تواند به بهبود عملکرد وب‌سایت‌ها کمک کند، زیرا مرورگر می‌تواند منابع مورد نیاز را زودتر بارگیری کند. به عنوان مثال، اگر صفحه‌ای شامل فایل‌های CSS و JavaScript است، سرور می‌تواند با ارسال کد 103، به مرورگر اطلاع دهد که این منابع را پیش از دریافت کامل پاسخ، بارگیری کند.</p>



<h2 class="wp-block-heading" id="h-کدهای-وضعیت-2xx-موفقیت-آمیز">کدهای وضعیت 2xx (موفقیت‌آمیز)</h2>



<p>کدهای وضعیت 2xx در HTTP نشان‌دهنده این هستند که درخواست کاربر با موفقیت پردازش شده است. این کدها به طور گسترده در ارتباطات روزمره بین کاربران و سرورها استفاده می‌شوند و نشان‌دهنده موفقیت‌آمیز بودن درخواست‌ها هستند. در این بخش، به بررسی مهم‌ترین کدهای وضعیت 2xx خواهیم پرداخت.</p>



<h3 class="wp-block-heading">200 OK</h3>



<p>کد 200 OK یکی از شناخته‌شده‌ترین و پرکاربردترین کدهای وضعیت است. این کد به این معناست که درخواست کاربر به درستی پردازش شده و پاسخ (response) شامل منابع درخواستی است. این کد می‌تواند در پاسخ به انواع مختلفی از درخواست‌ها (GET ،POST ،PUT و غیره) ظاهر شود.</p>



<p><strong>مثال</strong>: وقتی شما یک صفحه وب را با موفقیت بارگذاری می‌کنید، مرورگر شما معمولاً یک کد 200 دریافت می‌کند.</p>



<h3 class="wp-block-heading">201 Created</h3>



<p>کد 201 Created به این معناست که درخواست کاربر برای ایجاد یک منبع جدید موفقیت‌آمیز بوده و منبع جدید ایجاد شده است. این کد معمولاً در پاسخ به درخواست‌های POST مشاهده می‌شود.</p>



<p><strong>مثال</strong>: اگر شما یک حساب کاربری جدید در یک وب‌سایت ایجاد کنید، سرور ممکن است با کد 201 پاسخ دهد تا نشان دهد که حساب کاربری با موفقیت ایجاد شده است.</p>



<h3 class="wp-block-heading">202 Accepted</h3>



<p>کد 202 Accepted به این معناست که درخواست دریافت شده اما هنوز پردازش نشده است. این کد معمولاً زمانی استفاده می‌شود که پردازش درخواست زمان‌بر است و سرور نمی‌تواند بلافاصله پاسخ نهایی را ارائه دهد.</p>



<h3 class="wp-block-heading">203 Non-Authoritative Information</h3>



<p>کد 203 Non-Authoritative Information به این معناست که اطلاعات بازگشتی از یک منبع غیر معتبر است. این کد معمولاً زمانی استفاده می‌شود که یک پراکسی یا سرور میانی اطلاعات را ارائه می‌دهد که ممکن است با اطلاعات اصلی متفاوت باشد.</p>



<h3 class="wp-block-heading">204 No Content</h3>



<p>کد 204 No Content نشان می‌دهد که درخواست موفقیت‌آمیز بوده اما هیچ محتوایی برای ارسال به کاربر وجود ندارد. این حالت معمولاً در درخواست‌های PUT یا DELETE دیده می‌شود که در آن‌ها فقط تغییرات بر روی سرور اعمال می‌شوند و نیازی به ارسال محتوای جدید نیست.</p>



<p><strong>مثال</strong>: اگر شما یک منبع را در سرور به‌روزرسانی کنید و سرور با کد 204 پاسخ دهد، به این معناست که عملیات با موفقیت انجام شده اما هیچ محتوایی برای ارسال وجود ندارد.</p>



<h3 class="wp-block-heading">205 Reset Content</h3>



<p>کد 205 Reset Content به این معناست که درخواست موفقیت‌آمیز بوده و کاربر باید فرم را ریست کند. این کد معمولاً زمانی استفاده می‌شود که یک فرم یا ورودی در مرورگر باید به حالت اولیه بازگردد.</p>



<p><strong>مثال</strong>: بعد از ارسال یک فرم تماس و پردازش موفقیت‌آمیز، سرور ممکن است با کد 205 پاسخ دهد تا مرورگر فرم را پاک کند.</p>



<h3 class="wp-block-heading">206 Partial Content</h3>



<p>کد 206 Partial Content به این معناست که بخشی از منبع ارسال شده است. این کد معمولاً در پاسخ به درخواست‌های محدوده‌ای (Range Requests) استفاده می‌شود.</p>



<p><strong>مثال</strong>: وقتی شما در حال دانلود یک فایل بزرگ هستید و از قابلیت ادامه دانلود استفاده می‌کنید، سرور ممکن است با کد 206 پاسخ دهد تا نشان دهد که بخشی از فایل ارسال شده است.</p>



<h3 class="wp-block-heading">207 Multi-Status (WebDAV)</h3>



<p>کد 207 Multi-Status در پروتکل WebDAV استفاده می‌شود و نشان‌دهنده این است که چندین وضعیت مختلف برای عملیات‌های مختلف در یک درخواست وجود دارد. این کد به همراه یک پیام XML ارسال می‌شود که وضعیت‌های مختلف را توضیح می‌دهد.</p>



<h3 class="wp-block-heading">208 Already Reported (WebDAV)</h3>



<p>کد 208 Already Reported نیز در پروتکل WebDAV استفاده می‌شود و نشان‌دهنده این است که اعضای یک مجموعه قبلاً در پاسخ Multi-Status گزارش شده‌اند و نیازی به گزارش مجدد آن‌ها نیست.</p>



<h3 class="wp-block-heading">226 IM Used (HTTP Delta encoding)</h3>



<p>کد 226 IM Used به این معناست که سرور با موفقیت یک درخواست GET را پردازش کرده و پاسخ با استفاده از encoding دلتا ارائه شده است.</p>



<h2 class="wp-block-heading" id="h-کدهای-وضعیت-3xx-ریدایرکت">کدهای وضعیت 3xx (ریدایرکت)</h2>



<p>کدهای وضعیت 3xx نشان‌دهنده این هستند که کاربر باید عملیات بیشتری انجام دهد تا درخواست نهایی را تکمیل کند، معمولاً به این معنا که کاربر به یک URL جدید هدایت می‌شود. این کدها به مرورگر یا کلاینت اعلام می‌کنند که باید یک درخواست جدید به یک آدرس دیگر ارسال شود. در ادامه، مهم‌ترین کدهای وضعیت 3xx را بررسی می‌کنیم.</p>



<h3 class="wp-block-heading">300 Multiple Choices</h3>



<p>کد 300 Multiple Choices به این معناست که چندین گزینه برای پاسخ وجود دارد و کاربر می‌تواند یکی از آن‌ها را انتخاب کند. این حالت معمولاً زمانی رخ می‌دهد که چندین نسخه از یک منبع وجود دارد، مانند فرمت‌های مختلف یک ویدئو یا زبان‌های مختلف یک صفحه وب.</p>



<h3 class="wp-block-heading">301 Moved Permanently</h3>



<p>کد 301 Moved Permanently نشان‌دهنده این است که منبع درخواستی به صورت دائمی به یک URL جدید منتقل شده است. مرورگرها به طور خودکار کاربران را به آدرس جدید هدایت می‌کنند و آدرس قدیمی باید به روزرسانی شود.</p>



<p><strong>مثال</strong>: اگر یک صفحه وب به آدرس جدیدی منتقل شود، سرور با کد 301 پاسخ می‌دهد تا کاربران و موتورهای جستجو آدرس جدید را به خاطر بسپارند.</p>



<h3 class="wp-block-heading">302 Found</h3>



<p>کد 302 Found نشان‌دهنده این است که منبع موقتاً به یک URL جدید منتقل شده است. برخلاف کد 301، انتقال در این حالت موقت است و URL اصلی ممکن است در آینده دوباره معتبر باشد.</p>



<p><strong>مثال</strong>: اگر یک صفحه وب موقتاً در دسترس نباشد و به صفحه دیگری منتقل شود، سرور با کد 302 پاسخ می‌دهد.</p>



<h3 class="wp-block-heading">303 See Other</h3>



<p>کد 303 See Other به این معناست که درخواست باید به یک URL جدید هدایت شود و معمولاً برای پاسخ به درخواست‌های POST استفاده می‌شود. این کد به کلاینت اطلاع می‌دهد که باید یک درخواست GET به URL جدید ارسال کند.</p>



<h3 class="wp-block-heading">304 Not Modified</h3>



<p>کد 304 Not Modified نشان می‌دهد که محتوای منبع درخواستی از آخرین باری که کاربر آن را درخواست کرده، تغییر نکرده است. مرورگر می‌تواند از نسخه کش شده خود استفاده کند و نیازی به بارگذاری مجدد منبع ندارد. این کد می‌تواند به بهبود عملکرد وب‌سایت کمک کند.</p>



<h3 class="wp-block-heading">305 Use Proxy</h3>



<p>کد 305 Use Proxy به این معناست که درخواست باید از طریق یک پروکسی سرور انجام شود. این کد به ندرت استفاده می‌شود و بسیاری از مرورگرهای مدرن آن را نادیده می‌گیرند.</p>



<h3 class="wp-block-heading">307 Temporary Redirect</h3>



<p>کد 307 Temporary Redirect مشابه کد 302 است، اما با این تفاوت که روش درخواست (مانند POST یا GET) نباید تغییر کند. این کد نشان می‌دهد که منبع موقتاً به یک URL جدید منتقل شده است و کاربران باید همچنان از روش اصلی درخواست استفاده کنند.</p>



<h3 class="wp-block-heading">308 Permanent Redirect</h3>



<p>کد 308 Permanent Redirect مشابه کد 301 است، اما با این تفاوت که روش درخواست نباید تغییر کند. این کد نشان می‌دهد که منبع به صورت دائمی به یک URL جدید منتقل شده است و کاربران باید همچنان از روش اصلی درخواست استفاده کنند.</p>



<h2 class="wp-block-heading" id="h-کدهای-وضعیت-4xx-خطای-کاربر">کدهای وضعیت 4xx (خطای کاربر)</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="538" src="https://hamravesh.com/blog/wp-content/uploads/2024/10/404-status-code-1024x538.webp" alt="خطای 404" class="wp-image-3850" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/10/404-status-code-1024x538.webp 1024w, https://hamravesh.com/blog/wp-content/uploads/2024/10/404-status-code-300x158.webp 300w, https://hamravesh.com/blog/wp-content/uploads/2024/10/404-status-code-768x404.webp 768w, https://hamravesh.com/blog/wp-content/uploads/2024/10/404-status-code-1536x807.webp 1536w, https://hamravesh.com/blog/wp-content/uploads/2024/10/404-status-code-2048x1076.webp 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>کدهای وضعیت 4xx نشان‌دهنده این هستند که مشکلی در درخواست کاربر وجود دارد. این کدها معمولاً به این معنا هستند که درخواست به صورت نادرست یا ناقص ارسال شده است و سرور نمی‌تواند آن را پردازش کند. در این بخش، به بررسی مهم‌ترین کدهای وضعیت 4xx خواهیم پرداخت.</p>



<h3 class="wp-block-heading" id="h-400-bad-request">400 Bad Request</h3>



<p>این کد به این معناست که درخواست کاربر اشتباه است و سرور نمی‌تواند آن را پردازش کند. این مشکل ممکن است به دلیل خطاهای نحوی یا اطلاعات نادرست در درخواست باشد.</p>



<h3 class="wp-block-heading" id="h-401-unauthorized">401 Unauthorized</h3>



<p>این کد نشان‌دهنده این است که کاربر برای دسترسی به منبع درخواستی نیاز به احراز هویت دارد. به عبارت دیگر، کاربر باید وارد سیستم شود یا اطلاعات لاگین معتبر ارائه دهد.</p>



<h3 class="wp-block-heading" id="h-403-forbidden">403 Forbidden</h3>



<p>این کد به این معناست که دسترسی به منبع درخواستی برای کاربر مجاز نیست، حتی اگر کاربر احراز هویت شده باشد. این مشکل ممکن است به دلیل محدودیت‌های دسترسی یا مجوزهای ناکافی باشد.</p>



<h3 class="wp-block-heading" id="h-404-not-found">404 Not Found</h3>



<p>این کد یکی از معروف‌ترین کدهای خطا است که به این معناست که منبع درخواستی وجود ندارد. ممکن است URL اشتباه وارد شده باشد یا منبع حذف شده باشد.</p>



<h2 class="wp-block-heading" id="h-کدهای-وضعیت-5xx-خطای-سرور">کدهای وضعیت 5xx (خطای سرور)</h2>



<p>کدهای وضعیت 5xx نشان‌دهنده این هستند که مشکلی در سرور وجود دارد و درخواست کاربر نمی‌تواند به درستی پردازش شود. این کدها بیانگر این هستند که درخواست کاربر به‌درستی ارسال شده، اما به دلیل خطاهای داخلی یا مشکلات دیگر، سرور قادر به ارائه پاسخ مناسب نیست. در این بخش، به بررسی مهم‌ترین کدهای وضعیت 5xx خواهیم پرداخت.</p>



<h3 class="wp-block-heading" id="h-500-internal-server-error">500 Internal Server Error</h3>



<p>این کد به این معناست که سرور با یک خطای داخلی مواجه شده و نمی‌تواند درخواست کاربر را پردازش کند. این مشکل ممکن است به دلایل مختلفی از جمله خطاهای برنامه‌نویسی یا مشکلات سرور باشد.</p>



<h3 class="wp-block-heading" id="h-502-bad-gateway">502 Bad Gateway</h3>



<p>این کد نشان‌دهنده این است که سرور به عنوان یک دروازه یا پروکسی عمل می‌کند و پاسخ نامعتبری از سرور دیگر دریافت کرده است. این مشکل ممکن است به دلیل مشکلات ارتباطی بین سرورها باشد.</p>



<h3 class="wp-block-heading" id="h-503-service-unavailable">503 Service Unavailable</h3>



<p>این کد به این معناست که سرور قادر به پردازش درخواست در حال حاضر نیست. این مشکل ممکن است به دلیل بار زیاد سرور، نگهداری سیستم یا مشکلات دیگر باشد.</p>



<h3 class="wp-block-heading">504 Gateway Timeout</h3>



<p>کد 504 Gateway Timeout نشان‌دهنده این است که زمان انتظار برای پاسخ از سرور بالادست به پایان رسیده است. این مشکل معمولاً به دلیل کندی یا عدم پاسخگویی سرور بالادست رخ می‌دهد.</p>



<p><strong>مثال</strong>: اگر یک پروکسی سرور نتواند در زمان معقولی از سرور اصلی پاسخ دریافت کند، با کد 504 پاسخ می‌دهد.</p>



<h3 class="wp-block-heading">505 HTTP Version Not Supported</h3>



<p>کد<strong> 505 HTTP Version Not Supported</strong> به این معناست که سرور از نسخه HTTP استفاده شده در درخواست پشتیبانی نمی‌کند. این مشکل ممکن است به دلیل عدم پشتیبانی سرور از نسخه‌های قدیمی یا جدید پروتکل HTTP باشد.</p>



<h2 class="wp-block-heading" id="h-نتیجه-گیری">نتیجه‌گیری</h2>



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



<p>برای مطالعه کامل‌تر لیست کدهای وضعیت HTTP می‌توانید به <strong><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Status">مستندات موزیلا</a></strong> مراجعه کنید. </p>



<p></p>
<p>The post <a href="https://hamravesh.com/blog/http-status-code/">آشنایی با کدهای وضعیت HTTP: معنی و کاربرد هر کد</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/http-status-code/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>دیتاسنتر (Data Center) چیست؟</title>
		<link>https://hamravesh.com/blog/what-is-data-center/</link>
					<comments>https://hamravesh.com/blog/what-is-data-center/#respond</comments>
		
		<dc:creator><![CDATA[ارسطو عباسی]]></dc:creator>
		<pubDate>Tue, 08 Oct 2024 08:21:31 +0000</pubDate>
				<category><![CDATA[شبکه]]></category>
		<category><![CDATA[مقالات]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=3641</guid>

					<description><![CDATA[<p>در این مطلب از وبلاگ هم‌روش قصد داریم با اجزاء مختلف دیتاسنتر، معماری، اهمیت آن و همچنین مقایسه دیتاسنتر با محیط‌های ابری آشنا شویم.</p>
<p>The post <a href="https://hamravesh.com/blog/what-is-data-center/">دیتاسنتر (Data Center) چیست؟</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>در دنیای امروز که تکنولوژی و اینترنت بخش عمده‌ای از زندگی ما را تشکیل می‌دهند، اصطلاح «دیتاسنتر» یا مرکز داده به گوشمان می‌خورد. اما دیتاسنتر دقیقاً چیست؟ به زبان ساده، دیتاسنتر به مجموعه‌ای از تسهیلات و تجهیزات گفته می‌شود که به منظور ذخیره‌سازی، مدیریت، و توزیع داده‌ها و اطلاعات به کار می‌روند. این مراکز به عنوان قلب تپنده بسیاری از سازمان‌ها و شرکت‌ها عمل می‌کنند و از اهمیت بسیار بالایی برخوردارند.</p>



<p>در این مطلب از وبلاگ هم‌روش قصد داریم با اجزاء مختلف دیتاسنتر، معماری و اهمیت آن آشنا شویم. </p>



<h2 class="wp-block-heading" id="h-اجزای-اصلی-دیتاسنتر">اجزای اصلی دیتاسنتر</h2>



<p>برای درک بهتر مفهوم دیتاسنتر، ابتدا باید با اجزای اصلی آن آشنا شویم:</p>



<ol class="wp-block-list">
<li><strong>سرورها (Servers)</strong>: سرورها کامپیوترهای قدرتمندی هستند که اطلاعات و داده‌ها را پردازش و ذخیره می‌کنند. در دیتاسنتر، هزاران سرور ممکن است وجود داشته باشد که همگی به هم متصل هستند و به ارائه خدمات مختلف می‌پردازند.</li>



<li><strong>ذخیره‌سازی (Storage)</strong>: این بخش شامل دستگاه‌ها و سیستم‌هایی است که داده‌ها را ذخیره می‌کنند. تجهیزات ذخیره‌سازی ممکن است شامل هارد دیسک‌ها، SSDها، یا سیستم‌های ابری باشد.</li>



<li><strong><a href="https://hamravesh.com/blog/category/network/">شبکه (Networking)</a></strong>: شبکه‌ها به دیتاسنتر اجازه می‌دهند که داده‌ها را بین سرورها و به کاربران نهایی منتقل کند. این بخش شامل روترها، سوییچ‌ها و کابل‌های فیبر نوری است که به ارتباطات داخلی و خارجی کمک می‌کنند.</li>



<li><strong>زیرساخت‌های فیزیکی (Physical Infrastructure)</strong>: این بخش شامل سیستم‌های برق، تهویه، سیستم‌های اطفای حریق و تجهیزات خنک‌کننده است. تمامی این زیرساخت‌ها برای اطمینان از عملکرد بهینه دیتاسنتر و جلوگیری از خرابی‌ها ضروری فراهم شده‌اند.</li>



<li><strong>امنیت (Security)</strong>: حفاظت از داده‌ها و سرورها از اهمیت بالایی برخوردار است. بنابراین، دیتاسنترها دارای سیستم‌های امنیتی پیشرفته‌ای مانند فایروال‌ها، سیستم‌های شناسایی نفوذ (IDS) و پروتکل‌های رمزنگاری هستند.</li>
</ol>



<h2 class="wp-block-heading">انواع دیتاسنتر</h2>



<p>دیتاسنترها بر اساس نوع کاربرد و نیازهای سازمان‌ها به انواع مختلفی تقسیم می‌شوند:</p>



<ol class="wp-block-list">
<li><strong>دیتاسنترهای سازمانی (Enterprise Data Centers)</strong>: این دیتاسنترها معمولاً متعلق به شرکت‌های بزرگ هستند و به طور اختصاصی برای آن‌ها طراحی و مدیریت می‌شوند. این نوع دیتاسنترها معمولاً در محل سازمان یا نزدیک به آن قرار دارند.</li>



<li><strong>دیتاسنترهای کلوکیشن (Colocation Data Centers)</strong>: در این نوع دیتاسنترها، شرکت‌ها می‌توانند سرورها و تجهیزات خود را در یک دیتاسنتر اشتراکی قرار دهند. این دیتاسنترها به سازمان‌ها اجازه می‌دهند که از زیرساخت‌های آماده استفاده کنند بدون اینکه نیاز به سرمایه‌گذاری بزرگ در تجهیزات و فضا داشته باشند.</li>



<li><strong>دیتاسنترهای ابری (Cloud Data Centers)</strong>: دیتاسنترهای ابری توسط ارائه‌دهندگان خدمات ابری مانند آمازون وب سرویس (<strong><a href="https://aws.amazon.com/compliance/data-center/" target="_blank" rel="noreferrer noopener">AWS</a></strong>)، مایکروسافت آژور، و گوگل کلود مدیریت می‌شوند. در این نوع دیتاسنتر، منابع پردازشی و ذخیره‌سازی به صورت مجازی به کاربران ارائه می‌شود.</li>



<li><strong>دیتاسنترهای لبه (Edge Data Centers)</strong>: این نوع دیتاسنترها به منظور کاهش تاخیر در انتقال داده‌ها و افزایش سرعت پردازش، نزدیک به محل کاربران نهایی قرار دارند. این دیتاسنترها برای کاربردهای حساسی مانند اینترنت اشیا (IoT) و سرویس‌های ویدیویی فوری استفاده می‌شوند.</li>
</ol>



<h2 class="wp-block-heading">معماری دیتاسنتر</h2>



<p>معماری یک دیتاسنتر به ساختار کلی و نحوه سازماندهی اجزای مختلف آن اشاره دارد. این معماری باید به گونه‌ای باشد که دیتاسنتر بتواند نیازهای فعلی و آینده را برآورده کند. سه بخش اصلی معماری دیتاسنتر عبارتند از:</p>



<ol class="wp-block-list">
<li><strong>زیرساخت فیزیکی (Physical Infrastructure)</strong>: شامل مکان، ساختار فیزیکی، سیستم‌های خنک‌کننده و تهویه، و سیستم‌های برق اضطراری است. این بخش باید به گونه‌ای طراحی شود که امکان ارتقاء و توسعه را داشته باشد.</li>



<li><strong>زیرساخت شبکه (Network Infrastructure)</strong>: شامل تمامی اتصالات و تجهیزات شبکه‌ای است که امکان انتقال داده‌ها بین سرورها و به کاربران نهایی را فراهم می‌کند. طراحی این بخش باید بهینه باشد تا ترافیک داده‌ها بدون تاخیر و اختلال منتقل شود.</li>



<li><strong>سیستم‌های نرم‌افزاری و مدیریتی (Software and Management Systems)</strong>: شامل نرم‌افزارهایی می‌شود که برای مدیریت سرورها، ذخیره‌سازی، شبکه و امنیت استفاده می‌شوند. این نرم‌افزارها به اپراتورهای دیتاسنتر کمک می‌کنند تا به صورت مؤثر و کارآمد دیتاسنتر را مدیریت کنند.</li>
</ol>



<h2 class="wp-block-heading" id="h-تفاوت-دیتاسنتر-و-کلود">تفاوت دیتاسنتر و کلود</h2>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="914" height="500" src="https://hamravesh.com/blog/wp-content/uploads/2024/08/Datacenter-VS-cloud.webp" alt="دیتاسنتر در مقابل پردازش ابری" class="wp-image-3653" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/08/Datacenter-VS-cloud.webp 914w, https://hamravesh.com/blog/wp-content/uploads/2024/08/Datacenter-VS-cloud-300x164.webp 300w, https://hamravesh.com/blog/wp-content/uploads/2024/08/Datacenter-VS-cloud-768x420.webp 768w" sizes="auto, (max-width: 914px) 100vw, 914px" /></figure>



<p>دیتاسنتر (Data Center) و کلود (Cloud) دو مفهوم مهم در حوزه فناوری اطلاعات و زیرساخت‌های دیجیتال هستند که هر یک کاربردها و ویژگی‌های خاص خود را دارند. در ادامه تفاوت‌های کلیدی این دو را توضیح می‌دهیم:</p>



<h3 class="wp-block-heading" id="h-مدیریت-و-مالکیت"><strong>مدیریت و مالکیت:</strong></h3>



<ul class="wp-block-list">
<li><strong>دیتاسنتر:</strong> در دیتاسنترها، شرکت‌ها مالکیت کامل بر سرورها و تجهیزات دارند و مسئول مدیریت، نگهداری و بروزرسانی آن‌ها هستند.</li>



<li><strong>کلود:</strong> در کلود، منابع به صورت اجاره‌ای از ارائه‌دهندگان خدمات کلود (مانند <a href="https://hamravesh.com" target="_blank" rel="noreferrer noopener"><strong>هم‌روش</strong></a>) تهیه می‌شوند و مدیریت فیزیکی تجهیزات بر عهده ارائه‌دهنده است.</li>
</ul>



<h3 class="wp-block-heading" id="h-مقیاس-پذیری"><strong>مقیاس‌پذیری:</strong></h3>



<ul class="wp-block-list">
<li><strong>دیتاسنتر:</strong> مقیاس‌پذیری در دیتاسنتر محدودتر است، زیرا گسترش زیرساخت‌های فیزیکی نیازمند سرمایه‌گذاری سنگین و زمان‌بر است.</li>



<li><strong>کلود:</strong> کلود بسیار مقیاس‌پذیر است و کاربران می‌توانند به سرعت منابع خود را با توجه به نیاز افزایش یا کاهش دهند.</li>
</ul>



<h3 class="wp-block-heading" id="h-هزینه-ها"><strong>هزینه‌ها:</strong></h3>



<ul class="wp-block-list">
<li><strong>دیتاسنتر:</strong> هزینه‌های دیتاسنتر شامل سرمایه‌گذاری اولیه برای خرید تجهیزات، نگهداری، برق، خنک‌سازی و نیروی انسانی می‌شود.</li>



<li><strong>کلود:</strong> در کلود، هزینه‌ها به صورت اشتراکی و بر اساس میزان استفاده محاسبه می‌شود، که می‌تواند هزینه‌های اولیه را کاهش دهد و انعطاف‌پذیری بیشتری در مدیریت هزینه‌ها ارائه دهد.</li>
</ul>



<h3 class="wp-block-heading" id="h-امنیت"><strong>امنیت:</strong></h3>



<ul class="wp-block-list">
<li><strong>دیتاسنتر:</strong> امنیت فیزیکی و دیجیتال در دیتاسنترها به طور مستقیم توسط شرکت مالک مدیریت می‌شود.</li>



<li><strong>کلود:</strong> امنیت در کلود توسط ارائه‌دهندگان خدمات کلود مدیریت می‌شود، اما کاربران همچنان مسئولیت امنیت داده‌های خود را بر عهده دارند و باید سیاست‌های امنیتی مناسبی را پیاده‌سازی کنند.</li>
</ul>



<h3 class="wp-block-heading" id="h-دسترسی-و-انعطاف-پذیری"><strong>دسترسی و انعطاف‌پذیری:</strong></h3>



<ul class="wp-block-list">
<li><strong>دیتاسنتر:</strong> دسترسی به منابع در دیتاسنتر معمولاً محدود به شبکه داخلی شرکت یا ارتباطات VPN است.</li>



<li><strong>کلود:</strong> کلود امکان دسترسی به منابع از هر جایی که اینترنت وجود دارد را فراهم می‌کند، که این انعطاف‌پذیری بیشتری به کاربران می‌دهد.</li>
</ul>



<h3 class="wp-block-heading" id="h-نوآوری-و-به-روزرسانی"><strong>نوآوری و به‌روزرسانی:</strong></h3>



<ul class="wp-block-list">
<li><strong>دیتاسنتر:</strong> به‌روزرسانی‌ها و نوآوری‌ها در دیتاسنتر ممکن است به دلیل هزینه و پیچیدگی، زمان‌بر باشند.</li>



<li><strong>کلود:</strong> ارائه‌دهندگان خدمات کلود معمولاً به‌روزترین فناوری‌ها را به کاربران خود ارائه می‌دهند و به‌روزرسانی‌ها به صورت مداوم و خودکار انجام می‌شود.</li>
</ul>



<h3 class="wp-block-heading" id="h-کاربردها"><strong>کاربردها:</strong></h3>



<ul class="wp-block-list">
<li><strong>دیتاسنتر:</strong> بیشتر برای سازمان‌هایی که نیاز به کنترل کامل بر زیرساخت‌ها دارند و یا به دلایل قانونی یا امنیتی نمی‌توانند از خدمات کلود استفاده کنند، مناسب است.</li>



<li><strong>کلود:</strong> مناسب برای کسب‌وکارهایی که به دنبال انعطاف‌پذیری، کاهش هزینه‌های اولیه و دسترسی آسان به منابع هستند.</li>
</ul>



<h2 class="wp-block-heading" id="h-در-پایان">در پایان</h2>



<p>دیتاسنتر بخش بسیار مهمی از دنیای فناوری کنونی ما هستند. بدون شک بدون وجود دیتاسنترها، اینترنت به‌شکل کنونی در دسترس نخواهد بود و امکان استفاده از ابزارهای مختلف وجود نخواهد داشت. در این مطلب از وبلاگ هم‌روش به بررسی دیتاسنترها و اجزاء مختلف آن پرداختیم و همچنین تفاوت آن با محیط‌های ابری را بررسی کردیم. </p>
<p>The post <a href="https://hamravesh.com/blog/what-is-data-center/">دیتاسنتر (Data Center) چیست؟</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/what-is-data-center/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>امنیت Zero-Trust چیست؟</title>
		<link>https://hamravesh.com/blog/zero-trust-security/</link>
					<comments>https://hamravesh.com/blog/zero-trust-security/#respond</comments>
		
		<dc:creator><![CDATA[بابک خوش‌نویس]]></dc:creator>
		<pubDate>Mon, 16 Sep 2024 11:22:47 +0000</pubDate>
				<category><![CDATA[شبکه]]></category>
		<category><![CDATA[مقالات]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=3422</guid>

					<description><![CDATA[<p>امنیت Zero-Trust رویکرد نوین امنیتی، پاسخی به چالش‌های پیچیده دنیای دیجیتال امروز است. با اصل «هرگز اعتماد نکن، همیشه تأیید کن»، Zero-Trust امنیت را در محیط‌های پیچیده و توزیع‌شده تقویت می‌کند. در این مقاله، ضمن پاسخ به پرسش امنیت Zero-Trust چیست به بررسی اصول، مزایا و نحوه پیاده‌سازی امنیت Zero-Trust می‌پردازیم تا درک عمیق‌تری از [&#8230;]</p>
<p>The post <a href="https://hamravesh.com/blog/zero-trust-security/">امنیت Zero-Trust چیست؟</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>امنیت Zero-Trust رویکرد نوین امنیتی، پاسخی به چالش‌های پیچیده دنیای دیجیتال امروز است. با اصل «هرگز اعتماد نکن، همیشه تأیید کن»، Zero-Trust امنیت را در محیط‌های پیچیده و توزیع‌شده تقویت می‌کند. در این مقاله، ضمن پاسخ به پرسش امنیت Zero-Trust چیست به بررسی اصول، مزایا و نحوه پیاده‌سازی امنیت Zero-Trust می‌پردازیم تا درک عمیق‌تری از این رویکرد مهم در امنیت سایبری به دست آوریم.</p>



<h2 class="wp-block-heading" id="h-zero-trust-چیست">Zero-Trust چیست؟</h2>



<p>«امنیت بدون اعتماد» یا «Zero-Trust» چارچوبی امنیتی است که طبق آن، تمام کاربران، چه در داخل شبکه سازمان باشند و چه خارج از آن، باید احراز هویت شوند، مجوز دسترسی دریافت کنند و به‌طور مداوم از نظر پیکربندی و وضعیت امنیتی مورد ارزیابی قرار گیرند. این فرآیند پیش از اعطای دسترسی به برنامه‌ها و داده‌ها یا حفظ این دسترسی انجام می‌شود. <strong>در این رویکرد</strong>،<strong> فرض بر این است که در Zero-Trust مرز شبکه سنتی دیگر وجود ندارد</strong>؛ شبکه‌ها می‌توانند محلی، ابری یا ترکیبی باشند و منابع و کارکنان می‌توانند در هر مکانی قرار داشته باشند.</p>



<p>امنیت Zero-Trust چارچوبی برای تأمین امنیت زیرساخت‌ها و داده‌ها در عصر تحول دیجیتال امروز است. این رویکرد به طور خاص به چالش‌های مدرن کسب‌وکارها از جمله تأمین امنیت کارکنان از راه دور، محیط‌های ابری ترکیبی و تهدیدات باج‌افزاری می‌پردازد. اگرچه بسیاری از فروشندگان سعی کرده‌اند تعاریف خاص خود را از امنیت Zero-Trust ارائه دهند، اما استانداردهای متعددی از سازمان‌های معتبر وجود دارد که می‌تواند به شما در هماهنگ کردن این رویکرد با سازمان‌تان کمک کند.</p>



<h2 class="wp-block-heading" id="h-امنیت-zero-trust-و-nist-800-207">امنیت Zero-Trust و NIST 800-207</h2>



<p>در برخی شرکت‌ها از استاندارد NIST 800-207 برای پیاده‌سازی امنیت Zero-Trust استفاده می‌شود. این استاندارد جامع‌ترین و بی‌طرف‌ترین معیار در این زمینه محسوب می‌شود که نه تنها برای نهادهای دولتی، بلکه برای هر سازمانی قابل استفاده است. این استاندارد همچنین شامل عناصری از مدل‌های دیگر مانند ZTX فارستر و CARTA گارتنر می‌شود. مهم‌تر از همه، استاندارد NIST سازگاری و محافظت در برابر حملات مدرن را برای مدل کاری «اولویت با فضای ابری» و «کار از هر مکان» تضمین می‌کند؛ مدلی که امروزه اکثر شرکت‌ها به دنبال دستیابی به آن هستند.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="1024" height="443" src="https://hamravesh.com/blog/wp-content/uploads/2024/07/Zero-Trust-and-NIST-800-207.png" alt="امنیت Zero-Trust و NIST 800-207" class="wp-image-3423" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/07/Zero-Trust-and-NIST-800-207.png 1024w, https://hamravesh.com/blog/wp-content/uploads/2024/07/Zero-Trust-and-NIST-800-207-300x130.png 300w, https://hamravesh.com/blog/wp-content/uploads/2024/07/Zero-Trust-and-NIST-800-207-768x332.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>در پاسخ به افزایش تعداد نقض‌های امنیتی پرسروصدا، در ماه مه ۲۰۲۱ فرمانی اجرایی صادر شد. این فرمان، آژانس‌های فدرال آمریکا را ملزم می‌کرد تا از استاندارد NIST 800-207 به عنوان گامی ضروری در پیاده‌سازی امنیت Zero-Trust پیروی کنند. در نتیجه، این استاندارد از سوی طیف گسترده‌ای از مشتریان تجاری، فروشندگان و ذینفعان سازمان‌های دولتی مورد بررسی دقیق و اصلاح قرار گرفت. به همین دلیل، بسیاری از سازمان‌های خصوصی نیز این استاندارد را به عنوان معیار عملی برای کسب‌وکارهای خصوصی در نظر می‌گیرند.</p>



<p>رویکرد «امنیت بدون اعتماد» بر اساس دستورالعمل‌های NIST، به دنبال رعایت اصول کلیدی زیر است:</p>



<ul class="wp-block-list">
<li>۱. <strong>تأیید مداوم</strong>: همیشه و در هر زمان، دسترسی به تمام منابع را بررسی و تأیید کنید.</li>



<li>۲. <strong>محدود کردنِ «شعاع انفجار»</strong>: در صورت وقوع <a href="https://hamravesh.com/blog/what-is-penetration-testing/">نفوذ</a> خارجی یا داخلی، تأثیر آن را به حداقل برسانید.</li>



<li>۳. <strong>خودکارسازی جمع‌آوری زمینه و پاسخ‌دهی</strong>: داده‌های رفتاری را در نظر بگیرید و اطلاعات زمینه‌ای را از کل زیرساخت فناوری اطلاعات (مانند هویت، نقطه پایانی، بارِ کاری و غیره) جمع‌آوری کنید تا دقیق‌ترین پاسخ را ارائه دهید.</li>
</ul>



<h2 class="wp-block-heading" id="h-چگونگی-عملکرد-zero-trust">چگونگی عملکرد Zero-Trust</h2>



<p>اجرای این چارچوب، ترکیبی از فناوری‌های پیشرفته را به کار می‌گیرد. این فناوری‌ها شامل احراز هویت چندعاملی مبتنی بر ریسک، محافظت از هویت، امنیت پیشرفته نقاط پایانی و فناوری قدرتمند مدیریت بار کاری در فضای ابری است. هدف از این ترکیب، تأیید هویت کاربر یا سیستم، بررسی شرایط دسترسی در لحظه و حفظ امنیت سیستم است. علاوه بر این، امنیت Zero-Trust نیازمند توجه به رمزگذاری داده‌ها، امن‌سازی ایمیل و بررسی سلامت دارایی‌ها و نقاط پایانی پیش از اتصال آن‌ها به برنامه‌هاست.</p>



<p>رویکرد امنیت Zero-Trust تفاوت چشمگیری با روش‌های سنتی امنیت شبکه دارد که بر اساس اصل «اعتماد کن، اما تأیید کن» عمل می‌کردند. در رویکرد سنتی، به کاربران و دستگاه‌هایی که درون محدوده سازمان قرار داشتند، به طور خودکار اعتماد می‌شد. این امر سازمان را در برابر تهدیدات داخلی بدخواهانه و سوءاستفاده از اعتبارنامه‌های مجاز توسط مهاجمان آسیب‌پذیر می‌کرد. در نتیجه، حساب‌های غیرمجاز یا به خطر افتاده می‌توانستند پس از ورود به شبکه، به طیف گسترده‌ای از منابع دسترسی پیدا کنند. این مدل سنتی با مهاجرت کسب‌وکارها به فضای ابری و شتاب گرفتن محیط‌های کاری توزیع‌شده در پی همه‌گیری که از سال ۲۰۲۰ آغاز شد، دیگر کارایی خود را از دست داد.</p>



<p>بنابراین، معماری امنیت Zero-Trust از سازمان‌ها می‌خواهد تا به‌طور مداوم نظارت و تأیید کنند که هر کاربر و دستگاه از مجوزها و ویژگی‌های مناسب برخوردار است. همچنین، این رویکرد مستلزم اجرای سیاست‌هایی است که ریسک کاربر و دستگاه را همراه با الزامات انطباق یا سایر ملاحظات، پیش از اجازه هر تراکنش، در نظر می‌گیرد. سازمان باید تمام حساب‌های خدماتی و دارای امتیازات ویژه خود را بشناسد و بتواند کنترل‌هایی را در مورد چگونگی و محل اتصال آن‌ها اعمال کند. تأیید یک‌باره کافی نیست، زیرا تهدیدها و ویژگی‌های کاربران همواره در معرض تغییر هستند.</p>



<p>در نتیجه، سازمان‌ها باید اطمینان حاصل کنند که تمام درخواست‌های دسترسی به‌طور مداوم، پیش از اعطای اجازه دسترسی به هر یک از دارایی‌های سازمانی یا ابری، مورد بررسی قرار می‌گیرند. به همین دلیل، اجرای سیاست‌های امنیت بدون اعتماد بر دید بلادرنگ نسبت به صدها ویژگی مربوط به هویت کاربر و برنامه تکیه دارد، از جمله:</p>



<ul class="wp-block-list">
<li>هویت کاربر و نوع اعتبارنامه (انسانی، برنامه‌ای)</li>



<li>امتیازات اعتبارنامه در هر دستگاه</li>



<li>اتصالات معمول برای اعتبارنامه و دستگاه (الگوهای رفتاری)</li>



<li>نوع و کارکرد سخت‌افزار نقطه پایانی</li>



<li>موقعیت جغرافیایی</li>



<li>نسخه‌های سیستم‌عامل داخلی (فرم‌ویر)</li>



<li>پروتکل احراز هویت و ریسک مربوطه</li>



<li>نسخه‌های سیستم‌عامل و سطح به‌روزرسانی‌ها</li>



<li>نرم‌افزارهای نصب شده روی نقطه پایانی</li>



<li>تشخیص‌های امنیتی یا حوادث، شامل فعالیت‌های مشکوک و شناسایی حملات</li>
</ul>



<p>استفاده از تحلیل‌ها باید با تریلیون‌ها رویداد، داده‌های گسترده سازمانی و اطلاعات تهدیدات پیوند داشته باشد تا آموزش بهتر مدل‌های هوش مصنوعی و یادگیری ماشینی برای پاسخ‌گویی دقیق‌تر سیاست‌ها تضمین شود. سازمان‌ها باید زیرساخت فناوری اطلاعات و مسیرهای احتمالی حمله را به دقت ارزیابی کنند تا در صورت وقوع نفوذ، حملات را محدود و تأثیر آن‌ها را به حداقل برسانند. این می‌تواند شامل تقسیم‌بندی بر اساس انواع دستگاه‌ها، هویت یا عملکردهای گروهی باشد. به عنوان مثال، پروتکل‌های مشکوک مانند RDP یا RPC به کنترل‌کننده دامنه همیشه باید به چالش کشیده شوند یا به اعتبارنامه‌های خاصی محدود شوند.</p>



<p>بیش از ۸۰٪ تمام حملات شامل استفاده یا سوءاستفاده از اعتبارنامه‌ها در شبکه هستند. با توجه به حملات جدید و مداوم علیه اعتبارنامه‌ها و مخازن هویت، محافظت‌های اضافی برای اعتبارنامه‌ها و داده‌ها به امنیت ایمیل و ارائه‌دهندگان دروازه وب امن (CASB) گسترش می‌یابد. این امر به تضمین امنیت بیشتر رمز عبور، یکپارچگی حساب‌ها، پایبندی به قوانین سازمانی و اجتناب از خدمات فناوری اطلاعات سایه با ریسک بالا کمک می‌کند.</p>



<h2 class="wp-block-heading" id="h-کاربردهای-امنیت-zero-trust">کاربردهای امنیت Zero-Trust</h2>



<p>رویکرد امنیتی «Zero-Trust» که سال‌هاست به عنوان یک استاندارد مطرح شده، اخیراً به عنوان پاسخی برای امن‌سازی تحول دیجیتال و مقابله با تهدیدات پیچیده و ویرانگر سال‌های اخیر، شکل رسمی‌تری به خود گرفته است. اگرچه هر سازمانی می‌تواند از این رویکرد بهره‌مند شود، اما در شرایط زیر، سازمان شما می‌تواند فوراً از مزایای آن استفاده کند:</p>



<p>اگر نیاز دارید زیرساختی را محافظت کنید که شامل این موارد است:</p>



<ul class="wp-block-list">
<li>چند ابری، ترکیبی و با هویت‌های متعدد</li>



<li>دستگاه‌های مدیریت نشده</li>



<li>سیستم‌های قدیمی</li>



<li>نرم‌افزارهای تحت وب (SaaS)</li>
</ul>



<p>اگر می‌خواهید با تهدیدات کلیدی زیر مقابله کنید:</p>



<ul class="wp-block-list">
<li>باج‌افزار &#8211; مشکلی دوبخشی شامل اجرای کد مخرب و سرقت هویت</li>



<li>حملات زنجیره‌ی تأمین &#8211; معمولاً شامل دستگاه‌های مدیریت نشده و کاربران ویژه‌ای می‌شود که از راه دور کار می‌کنند.</li>



<li>تهدیدات داخلی &#8211; تحلیل رفتار کاربران از راه دور در این مورد بسیار چالش‌برانگیز است.</li>
</ul>



<p>اگر سازمان شما با این ملاحظات روبروست:</p>



<ul class="wp-block-list">
<li>چالش‌های مربوط به تخصص تحلیلگران و مرکز عملیات امنیتی</li>



<li>تأثیر بر تجربه‌ی کاربری (به‌ویژه هنگام استفاده از احراز هویت چندعاملی)</li>



<li>الزامات صنعتی یا قانونی (مانند بخش مالی یا دستور امنیت بدون اعتماد دولت آمریکا)</li>



<li>نگرانی در حفظ بیمه‌ی سایبری (به دلیل تغییرات سریع بازار بیمه در نتیجه‌ی حملات باج‌افزاری)</li>
</ul>



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



<h3 class="wp-block-heading" id="h-مثال-حمله-بعدی-مشابه-sunburst">مثال حمله بعدی مشابه Sunburst</h3>



<p>حمله‌ی زنجیره‌ تأمین نرم‌افزاری Sunburst در سال ۲۰۲۱ نشان داد که چرا سازمان‌ها نمی‌توانند حتی در مورد حساب‌های خدماتی استاندارد و ابزارهای قبلاً مورد اعتماد، گارد خود را پایین بیاورند. همه شبکه‌ها در مجموعه فناوری خود، از برنامه‌های تحت وب گرفته تا نظارت بر شبکه و امنیت، به‌روزرسانی‌های خودکار دارند. خودکارسازی پچ‌ها برای بهداشت مناسب شبکه ضروری است. با این حال، حتی برای به‌روزرسانی‌های اجباری و خودکار، رویکرد «بدون اعتماد» به معنای جلوگیری از اقدامات بالقوه مخرب است.</p>



<p>تحلیل فنی حمله‌ی سان‌برست نشان می‌دهد که چگونه هر ابزاری، به‌ویژه ابزاری که معمولاً در یک شبکه استفاده می‌شود، می‌تواند از طریق سازوکار فروشنده/به‌روزرسانی تصاحب شود &#8211; و چگونه باید اصول معماری «بدون اعتماد» برای کاهش این تهدیدها اعمال شود.</p>



<p>رویکرد «Zero-Trust» و اصل حداقل دسترسی، سیاست‌ها و مجوزهای سختگیرانه‌ای را برای تمام حساب‌ها، از جمله اعتبارنامه‌های برنامه‌ای مانند حساب‌های خدماتی، الزامی می‌کند. حساب‌های خدماتی به‌طور کلی باید رفتارهای شناخته شده و امتیازات اتصال محدودی داشته باشند. در مورد Sunburst، یک حساب خدماتی با مجوزهای بیش از حد، حرکت جانبی را برای مهاجمان امکان‌پذیر کرد. این حساب‌ها هرگز نباید مستقیماً تلاش کنند به یک کنترل‌کننده‌ی دامنه یا سیستم احراز هویتی مانند ADFS دسترسی پیدا کنند، و هرگونه ناهنجاری رفتاری باید به سرعت شناسایی و در همان لحظه تشدید شود.</p>



<h2 class="wp-block-heading" id="h-اصول-بنیادی-مدل-امنیت-zero-trust-چیست">اصول بنیادی مدل امنیت Zero Trust چیست؟</h2>



<p>مدل Zero Trust (بر اساس استاندارد NIST 800-207) شامل اصول اساسی زیر است:</p>



<ul class="wp-block-list">
<li>۱. «<strong>تأیید مداوم</strong>» (<strong>Continuous verification</strong>): همیشه و در همه حال، دسترسی به تمام منابع را بررسی کنید.</li>



<li>۲. <strong>محدود کردن</strong> «<strong>شعاع انفجار</strong>» (<strong>Blast Radius</strong>): در صورت وقوع نفوذ خارجی یا داخلی، تأثیر آن را به حداقل برسانید.</li>



<li>۳. <strong>خودکارسازی جمع‌آوری اطلاعات زمینه‌ای و واکنش</strong>: برای دقیق‌ترین ارزیابی، داده‌های رفتاری را در نظر بگیرید و اطلاعات زمینه‌ای را از کل زیرساخت فناوری اطلاعات (شامل هویت، نقطه پایانی، بار کاری و غیره) جمع‌آوری کنید.</li>
</ul>



<h3 class="wp-block-heading" id="h-۱-تأیید-مداوم-continuous-verification">۱. «تأیید مداوم» (Continuous verification)</h3>



<p>تأیید مداوم به این معنا است که در هیچ زمانی، هیچ منطقه، اعتبارنامه یا دستگاهی مورد اعتماد نیست. به همین دلیل است که عبارت معروف «هرگز اعتماد نکن، همیشه تأیید کن» رایج شده است. برای اینکه این تأیید مداوم بر روی مجموعه گسترده‌ای از دارایی‌ها به طور مؤثر اعمال شود، چند عنصر کلیدی باید وجود داشته باشد:</p>



<ul class="wp-block-list">
<li><strong>دسترسی مشروط بر اساس ریسک</strong>: این امر اطمینان می‌دهد که جریان کار تنها زمانی قطع می‌شود که سطح ریسک تغییر می‌کند. این روش امکان تأیید مداوم را فراهم می‌سازد، بدون آنکه تجربه‌ کاربری را به خطر بیندازد.</li>



<li><strong>استقرار سریع و مقیاس‌پذیر مدل سیاست پویا</strong>: از آنجا که بارهای کاری، داده‌ها و کاربران اغلب جابجا می‌شوند، خط‌مشی ما نه تنها باید ریسک را در نظر بگیرد، بلکه باید شامل الزامات انطباق و فناوری اطلاعات برای سیاست‌گذاری نیز باشد. رویکرد «Zero Trust» سازمان‌ها را از رعایت الزامات انطباقی و سازمانی خاص معاف نمی‌کند.</li>
</ul>



<h3 class="wp-block-heading" id="h-۲-محدود-کردن-شعاع-آسیب">۲. محدود کردن شعاع آسیب</h3>



<p>اگر نفوذی رخ دهد، کاهش تأثیر آن بسیار مهم است. رویکرد Zero Trust محدوده اعتبارنامه‌ها یا مسیرهای دسترسی برای مهاجم را محدود می‌کند و به سیستم‌ها و افراد فرصت می‌دهد تا به حمله واکنش نشان داده و آن را خنثی کنند. محدود کردن شعاع آسیب به این معناست:</p>



<ul class="wp-block-list">
<li><strong>استفاده از تفکیک مبتنی بر هویت</strong>: تفکیک سنتی مبتنی بر شبکه می‌تواند از نظر عملیاتی چالش‌برانگیز باشد، زیرا بارهای کاری، کاربران، داده‌ها و اعتبارنامه‌ها اغلب تغییر می‌کنند.</li>



<li><strong>اصل کمترین امتیاز</strong>: هر زمان که از اعتبارنامه‌ها استفاده می‌شود، حتی برای حساب‌های غیر انسانی (مانند حساب‌های سرویس)، بسیار مهم است که به این اعتبارنامه‌ها فقط حداقل قابلیت لازم برای انجام وظیفه داده شود. همان‌طور که وظایف تغییر می‌کنند، محدوده دسترسی نیز باید تغییر کند. بسیاری از حملات از حساب‌های سرویس با امتیازات بیش از حد استفاده می‌کنند، زیرا این حساب‌ها معمولاً تحت نظارت نیستند و اغلب مجوزهای بیش از حد نیاز دارند.</li>
</ul>



<h3 class="wp-block-heading" id="h-۳-خودکارسازی-جمع-آوری-اطلاعات-زمینه-ای-و-واکنش">۳. خودکارسازی جمع‌آوری اطلاعات زمینه‌ای و واکنش</h3>



<p>برای تصمیم‌گیری مؤثر و دقیق، داشتن اطلاعات بیشتر مفید است، به‌شرطی که بتوان آن‌ها را در لحظه پردازش و بر اساس آن‌ها عمل کرد. مؤسسه ملی استاندارد و فناوری (NIST) راهنمایی‌هایی برای استفاده از اطلاعات از منابع زیر ارائه می‌دهد:</p>



<ul class="wp-block-list">
<li><strong>اعتبارنامه‌های کاربری</strong>: شامل انسانی و غیرانسانی (حساب‌های سرویس، حساب‌های غیر ممتاز، حساب‌های ممتاز &#8211; از جمله اعتبارنامه‌های ورود یکپارچه)</li>



<li><strong>بارهای کاری</strong>: شامل ماشین‌های مجازی، کانتینرها و مواردی که در استقرارهای ترکیبی به کار گرفته می‌شوند.</li>



<li><strong>نقاط پایانی</strong>: هر دستگاهی که برای دسترسی به داده‌ها استفاده می‌شود.</li>



<li><strong>شبکه</strong></li>



<li><strong>دیتا</strong></li>



<li>سایر منابع (معمولاً از طریق APIها):
<ul class="wp-block-list">
<li><strong>SIEM</strong></li>



<li><strong>SSO</strong></li>



<li><strong>ارائه‌دهندگان هویت</strong> (مانند Active Directory)</li>



<li><strong>اطلاعات تهدیدات</strong></li>
</ul>
</li>
</ul>



<h2 class="wp-block-heading" id="h-مراحل-پیاده-سازی-مدل-امنیت-zero-trust">مراحل پیاده‌سازی مدل امنیت Zero Trust</h2>



<p>اگرچه نیازهای هر سازمان منحصربه‌فرد است، می‌توان مراحل زیر را برای پیاده‌سازی یک مدل Zero Trust بالغ پیشنهاد کرد:</p>



<ul class="wp-block-list">
<li><strong>مرحله ۱</strong>: <strong>تجسم</strong> – درک تمامی منابع، نقاط دسترسی آن‌ها و تجسم ریسک‌های مربوطه</li>



<li><strong>مرحله ۲</strong>: <strong>کاهش خطر</strong> – شناسایی و توقف تهدیدها یا کاهش تأثیر نفوذ در صورتی که تهدید را نتوان فوراً متوقف کرد.</li>



<li><strong>مرحله ۳</strong>: بهینه‌سازی – گسترش محافظت به تمام جنبه‌های زیرساخت فناوری اطلاعات و تمامی منابع، صرف‌نظر از موقعیت آن‌ها، در عین بهینه‌سازی تجربه‌ی کاربری برای کاربران نهایی، تیم‌های فناوری اطلاعات و امنیت</li>
</ul>



<h2 class="wp-block-heading" id="h-جمع-بندی">جمع‌بندی</h2>



<p>رویکرد امنیتی Zero-Trust پاسخی به چالش‌های امنیتی عصر دیجیتال است که بر اصل «هرگز اعتماد نکن، همیشه تأیید کن» استوار است. این رویکرد با تأیید مداوم هویت‌ها، محدود کردن دامنه آسیب در صورت نفوذ، و جمع‌آوری و تحلیل خودکار اطلاعات زمینه‌ای، امنیت را در محیط‌های پیچیده و توزیع‌شده امروزی تقویت می‌کند. پیاده‌سازی موفق Zero-Trust نیازمند درک دقیق منابع و ریسک‌ها، کاهش خطرات، و بهینه‌سازی محافظت در تمام جنبه‌های زیرساخت فناوری اطلاعات است. این رویکرد به سازمان‌ها کمک می‌کند تا در برابر تهدیدات پیشرفته مانند حملات زنجیره تأمین و باج‌افزارها مقاوم‌تر شوند.</p>
<p>The post <a href="https://hamravesh.com/blog/zero-trust-security/">امنیت Zero-Trust چیست؟</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/zero-trust-security/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>تفاوت IPv4 و IPv6</title>
		<link>https://hamravesh.com/blog/ipv4-vs-ipv6/</link>
					<comments>https://hamravesh.com/blog/ipv4-vs-ipv6/#respond</comments>
		
		<dc:creator><![CDATA[ارسطو عباسی]]></dc:creator>
		<pubDate>Sun, 28 Jul 2024 14:57:31 +0000</pubDate>
				<category><![CDATA[شبکه]]></category>
		<category><![CDATA[مقالات]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=3406</guid>

					<description><![CDATA[<p>در این مطلب از وبلاگ هم‌روش به بررسی تفاوت‌های بین IPv4 و IPv6 پرداخته شد و مزایا و چالش‌های گذار به IPv6 بررسی شد.</p>
<p>The post <a href="https://hamravesh.com/blog/ipv4-vs-ipv6/">تفاوت IPv4 و IPv6</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>در دنیای شبکه، آدرس‌های IP نقش مهمی در شناسایی دستگاه‌ها و تسهیل ارتباطات اینترنتی دارند. با رشد فزاینده تعداد دستگاه‌های متصل به اینترنت، درک تفاوت‌های بین IPv4 و IPv6 اهمیت بیشتری یافته است. در این مطلب از وبلاگ هم‌روش به ارائه مقایسه جامع این دو پروتکل خواهیم پرداخت و همچنین ساختارها، تفاوت‌ها و مزایای گذار به IPv6 را مورد بررسی قرار می‌دهیم.</p>



<h2 class="wp-block-heading" id="h-ipv4-چیست">IPv4 چیست؟</h2>



<p> IPv4 یا پروتکل اینترنت نسخه ۴ (Internet Protocol version 4) یکی از پروتکل‌های اصلی لایه شبکه در مدل TCP/IP است که برای ارسال داده‌ها در شبکه‌های کامپیوتری مورد استفاده قرار می‌گیرد. IPv4 آدرس‌های IP را به صورت 32 بیتی ارائه می‌دهد و به وسیله آن‌ها دستگاه‌ها در یک شبکه به یکدیگر متصل می‌شوند. IPv4 که در اوایل دهه 1980 توسعه یافت، از یک طرح آدرس‌دهی 32 بیتی استفاده می‌کند که اجازه می‌دهد تا مجموعاً 2^32 آدرس (بیش از 4 میلیارد آدرس) وجود داشته باشد.</p>



<p>یک آدرس IPv4 معمولاً به صورت اعشاری و به صورت چهار اکتت که با نقطه جدا شده‌اند، نمایش داده می‌شود. به عنوان مثال، یک آدرس IPv4 ممکن است به این صورت باشد: 192.168.1.1.</p>



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



<h2 class="wp-block-heading" id="h-ipv6-چیست">IPv6 چیست؟</h2>



<p>IPv6، یا نسخه ششم پروتکل اینترنت، به منظور پاسخگویی به محدودیت‌های IPv4 توسعه یافته است. این پروتکل از یک طرح آدرس‌دهی 128 بیتی استفاده می‌کند که امکان وجود تعداد بیشتری آدرس را فراهم می‌کند، به طوری که تقریباً بی‌نهایت آدرس می‌تواند وجود داشته باشد.</p>



<p>یک آدرس IPv6 معمولاً به صورت هگزادسیمال و به صورت هشت گروه چهاررقمی که با دونقطه جدا شده‌اند، نمایش داده می‌شود. به عنوان مثال، یک آدرس IPv6 ممکن است به این صورت باشد: </p>



<pre class="wp-block-code"><code>2001:0db8:85a3:0000:0000:8a2e:0370:7334</code></pre>



<p>از مزایای IPv6 می‌توان به فضای آدرس‌دهی بسیار بزرگ‌تر، بهبود ویژگی‌های امنیتی و عملکرد بهتر برای برنامه‌ها و خدمات مدرن اشاره کرد. IPv6 همچنین با پشتیبانی از پیکربندی خودکار، مدیریت شبکه را ساده‌تر می‌کند.</p>



<h2 class="wp-block-heading" id="h-تفاوت-های-بین-ipv4-و-ipv6">تفاوت‌های بین IPv4 و IPv6</h2>



<p>IPv4 و IPv6 در چندین جنبه کلیدی تفاوت دارند که در اینجا به برخی از آن‌ها اشاره می‌شود:</p>



<ol class="wp-block-list">
<li><strong>روش آدرس‌دهی</strong>: IPv4 از آدرس‌دهی 32 بیتی استفاده می‌کند که مجموعاً قابلیت استفاده از 4 میلیارد آدرس را فراهم می‌کند، در حالی که IPv6 از آدرس‌دهی 128 بیتی استفاده می‌کند که کاربری تعداد بیشتری آدرس را امکان‌پذیر می‌سازد.</li>



<li><strong>فرمت و نمایش آدرس</strong>: آدرس‌های IPv4 به صورت اعشاری و با نقطه جدا شده‌اند (مانند <code>192.168.1.1</code>)، در حالی که آدرس‌های IPv6 به صورت هگزادسیمال و با دونقطه جدا شده‌اند (مانند <code>2001:0db8:85a3:0000:0000:8a2e:0370:7334</code>).</li>



<li><strong>پیچیدگی و اندازه سربرگ</strong>: سربرگ IPv6 به گونه‌ای طراحی شده که با حذف یا ساده‌سازی برخی از فیلدهای موجود در سربرگ، ساده‌تر و کارآمدتر از IPv4 باشد.</li>



<li><strong>پیکربندی و مدیریت</strong>: در IPv4 معمولاً از پروتکل DHCP برای تخصیص آدرس‌ها استفاده می‌شود، در حالی که IPv6 از پیکربندی خودکار و آدرس‌دهی <a href="https://www.networkacademy.io/ccna/ipv6/stateless-address-autoconfiguration-slaac"><strong>Stateless</strong></a> پشتیبانی می‌کند که مدیریت شبکه را ساده‌تر می‌کند.</li>



<li><strong>ویژگی‌های امنیتی</strong>: IPv6 به صورت پیش‌فرض از IPsec پشتیبانی می‌کند که امکان ارتباطات امن‌تری را فراهم می‌کند، در حالی که در IPv4 این ویژگی به صورت اختیاری است.</li>



<li><strong>عملکرد و کارایی</strong>: IPv6 با بهبود در زمینه‌هایی مانند مسیریابی و مدیریت ترافیک شبکه، به گونه‌ای طراحی شده که عملکرد بهتری برای برنامه‌ها و خدمات مدرن ارائه دهد.</li>
</ol>



<h2 class="wp-block-heading" id="h-گذار-از-ipv4-به-ipv6">گذار از IPv4 به IPv6</h2>



<p>با توجه به محدودیت‌های IPv4 و نیاز به فضای آدرس‌دهی بیشتر، گذار به IPv6 ضروری شده است. این گذار با چالش‌ها و موانعی همراه است که در این بخش به برخی از آن‌ها پرداخته می‌شود:</p>



<ol class="wp-block-list">
<li><strong>روش‌های گذار</strong>: روش‌های مختلفی برای گذار از IPv4 به IPv6 وجود دارد، از جمله استفاده از دوپشته (Dual Stack)، تونل‌زنی (Tunneling) و ترجمه (Translation). هر یک از این روش‌ها مزایا و معایب خاص خود را دارند و بسته به شرایط و نیازهای شبکه انتخاب می‌شوند.</li>



<li><strong>چالش‌ها و موانع</strong>: یکی از چالش‌های اصلی در گذار به IPv6، سازگاری با تجهیزات و نرم‌افزارهای موجود است. بسیاری از دستگاه‌ها و برنامه‌ها هنوز از IPv4 پشتیبانی می‌کنند و نیاز به به‌روزرسانی یا جایگزینی دارند.</li>



<li><strong>وضعیت فعلی پذیرش IPv6</strong>: پذیرش IPv6 در سراسر جهان در حال افزایش است، اما هنوز به طور کامل جایگزین IPv4 نشده است. بسیاری از سازمان‌ها و ارائه‌دهندگان خدمات اینترنتی در حال گذار به IPv6 هستند، اما این فرایند زمان‌بر است.</li>
</ol>



<h2 class="wp-block-heading" id="h-مزایای-ipv6-برای-علاقه-مندان-به-شبکه-و-کاربران-عمومی">مزایای IPv6 برای علاقه‌مندان به شبکه و کاربران عمومی</h2>



<p>IPv6 برای علاقه‌مندان به شبکه و کاربران عمومی مزایای زیادی دارد که در اینجا به برخی از آن‌ها اشاره می‌شود:</p>



<ol class="wp-block-list">
<li><strong>افزایش اتصال و مقیاس‌پذیری</strong>: فضای آدرس‌دهی بسیار بزرگ‌تر IPv6 امکان اتصال تعداد بیشتری دستگاه به اینترنت را فراهم می‌کند، که برای رشد آینده شبکه‌های اینترنتی حیاتی است.</li>



<li><strong>بهبود ویژگی‌های امنیتی</strong>: IPv6 به صورت پیش‌فرض از IPsec پشتیبانی می‌کند که امکان ارتباطات امن‌تر و محافظت بهتر در برابر تهدیدات امنیتی را فراهم می‌کند.</li>



<li><strong>عملکرد بهتر برای برنامه‌ها و خدمات مدرن</strong>: IPv6 با بهبود در زمینه‌هایی مانند مسیریابی و مدیریت ترافیک شبکه، عملکرد بهتری برای برنامه‌ها و خدمات مدرن ارائه می‌دهد.</li>



<li><strong>آینده‌نگری اینترنت</strong>: با فراهم کردن فضای آدرس‌دهی کافی برای رشد آینده شبکه‌های اینترنتی و حمایت از نوآوری‌های جدید، گذار به IPv6 به عنوان یک گام مهم در آینده‌نگری اینترنت محسوب می‌شود.</li>
</ol>



<h2 class="wp-block-heading" id="h-تصورات-غلط-رایج-و-سوالات-متداول-درباره-ipv6">تصورات غلط رایج و سوالات متداول درباره IPv6</h2>



<p>برخی از تصورات غلط رایج و سوالات متداول درباره IPv6 به شرح زیر است:</p>



<ul class="wp-block-list">
<li><strong>تصور غلط: IPv6 تنها برای سازمان‌های بزرگ است</strong>: در واقع، IPv6 برای همه کاربران اینترنتی مفید است، زیرا فضای آدرس‌دهی بیشتری را فراهم می‌کند و ویژگی‌های امنیتی بهتری دارد.</li>



<li><strong>تصور غلط: پیاده‌سازی IPv6 بسیار پیچیده است</strong>: در حالی که گذار به IPv6 نیازمند برنامه‌ریزی و آماده‌سازی است، بسیاری از ابزارها و راهنماهای موجود می‌توانند این فرایند را ساده‌تر کنند.</li>
</ul>



<h3 class="wp-block-heading" id="h-سوالات-متداول"><strong>سوالات متداول</strong>:</h3>



<ul class="wp-block-list">
<li><strong>سازگاری با IPv4</strong>: آیا IPv6 با IPv4 سازگار است؟ IPv6 و IPv4 به طور مستقیم سازگار نیستند، اما می‌توان از روش‌هایی مانند دوپشته و تونل‌زنی برای تسهیل فرایند گذار استفاده کرد.</li>



<li><strong>تأثیر بر شبکه‌های موجود</strong>: گذار به IPv6 چه تأثیری بر شبکه‌های موجود دارد؟ در بسیاری از موارد، شبکه‌های موجود نیاز به به‌روزرسانی و آماده‌سازی برای پشتیبانی از IPv6 دارند، اما این فرایند می‌تواند به صورت مرحله‌ای انجام شود.</li>
</ul>



<h2 class="wp-block-heading" id="h-نتیجه-گیری">نتیجه‌گیری</h2>



<p>در این مطلب از وبلاگ هم‌روش به بررسی تفاوت‌های بین IPv4 و IPv6 پرداخته شد و مزایا و چالش‌های گذار به IPv6 بررسی شد. با توجه به محدودیت‌های IPv4 و نیاز به فضای آدرس‌دهی بیشتر، پذیرش و پیاده‌سازی IPv6 ضروری است. این گذار نه تنها فضای آدرس‌دهی کافی برای رشد آینده شبکه‌های اینترنتی را فراهم می‌کند، بلکه با بهبود ویژگی‌های امنیتی و عملکرد شبکه، امکان ارتباطات امن‌تر و کارآمدتر را نیز فراهم می‌کند. آینده‌نگری اینترنت نیازمند پذیرش IPv6 است و هرچه زودتر به این گذار بپیوندیم، بهتر می‌توانیم از مزایای آن بهره‌مند شویم.</p>
<p>The post <a href="https://hamravesh.com/blog/ipv4-vs-ipv6/">تفاوت IPv4 و IPv6</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/ipv4-vs-ipv6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>زبیکس Zabbix چیست و چطور کار می‌کند؟ – مرور کلی + کاربردها</title>
		<link>https://hamravesh.com/blog/what-is-zabbix/</link>
					<comments>https://hamravesh.com/blog/what-is-zabbix/#respond</comments>
		
		<dc:creator><![CDATA[بابک خوش‌نویس]]></dc:creator>
		<pubDate>Sun, 21 Jul 2024 17:48:38 +0000</pubDate>
				<category><![CDATA[شبکه]]></category>
		<category><![CDATA[دواپس]]></category>
		<category><![CDATA[مقالات]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=2563</guid>

					<description><![CDATA[<p>در این نوشته به این پرسش پاسخ داده شده است که Zabbix چیست و نحوه کار زبیکس چیست یا چه کاربردهایی دارد. زبیکس Zabbix چیست؟ «زبیکس» (Zabbix) ابزار مانیتورینگ متن‌بازی است که برای نظارت بر سرورها، شبکه‌ها، اجزای فناوری اطلاعات، سرویس‌های ابری و ماشین‌های مجازی استفاده می‌شود. ابزار مانیتورینگ زبیکس از متریک‌های مختلف برای نظارت [&#8230;]</p>
<p>The post <a href="https://hamravesh.com/blog/what-is-zabbix/">زبیکس Zabbix چیست و چطور کار می‌کند؟ – مرور کلی + کاربردها</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>در این نوشته به این پرسش پاسخ داده شده است که Zabbix چیست و نحوه کار زبیکس چیست یا چه کاربردهایی دارد.</p>



<h2 class="wp-block-heading" id="h-زبیکس-zabbix-چیست">زبیکس Zabbix چیست؟</h2>



<p>«زبیکس» (Zabbix) ابزار مانیتورینگ متن‌بازی است که برای نظارت بر سرورها، شبکه‌ها، اجزای فناوری اطلاعات، سرویس‌های ابری و ماشین‌های مجازی استفاده می‌شود. ابزار مانیتورینگ زبیکس از متریک‌های مختلف برای نظارت بر مصرف پهنای باند شبکه، فضای دیسک و بار پردازشی CPU استفاده می‌کند. </p>



<p>زبیکس از سیستم‌عامل‌های مختلفی مانند macOS، سولاریس، لینوکس و بسیاری دیگر پشتیبانی می‌کند. این ابزار از پایگاه‌داده‌ای مجزا برای ذخیره داده‌ها و مانیتورینگ برنامه‌ها استفاده می‌کند. هسته زبیکس با زبان برنامه‌نویسی C نوشته شده و رابط وب آن با زبان PHP طراحی شده است.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="894" height="450" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/05/Zabbix.png" alt="رابط کاربری زبیکس Zabbix" class="wp-image-2727" style="width:787px;height:auto" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/05/Zabbix.png 894w, https://hamravesh.com/blog/wp-content/uploads/2024/05/Zabbix-300x151.png 300w, https://hamravesh.com/blog/wp-content/uploads/2024/05/Zabbix-768x387.png 768w" sizes="auto, (max-width: 894px) 100vw, 894px" /></figure>
</div>


<h2 class="wp-block-heading" id="h-تاریخچه-و-ریشه-پیدایش-zabbix">تاریخچه و ریشه پیدایش Zabbix</h2>



<p>زبیکس توسط «الکسی ولادیشف» (Alexei Vladyshev) ایجاد شده و در حال حاضر توسط شرکت Zabbix SIA به طور فعال توسعه داده و پشتیبانی می‌شود. زبیکس سازوکاری نظارتی و توزیع شده در سطح سازمانی و اوپن‌سورس است. زبیکس نرم‌افزاری است که به وسیله آن نظارت بر سلامت و یکپارچگی پارامترهای متعدد شبکه و سرورها انجام می‌شود.</p>



<p>زبیکس از مکانیزم انعطاف‌پذیر «اعلانی» (Notification) استفاده می‌کند که به کاربران امکان می‌دهد هشدارهای ایمیلی را برای تقریباً هر رویدادی پیکربندی کنند. این امر پاسخگویی سریع به مشکلات سرور را ممکن می‌سازد. زبیکس ویژگی‌های عالی گزارش‌گیری و مصورسازی داده‌ها را بر اساس داده‌های آرشیو شده ارائه می‌دهد که این امر باعث می‌شود زبیکس برای «برنامه‌ریزی ظرفیت» (Capacity Planning) برنامه مناسبی باشد.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="600" height="400" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/05/Alexei-Vladyshev.png" alt="خالق Zabbix زبیکس Alexei Vladyshev الکسی ولادیشف" class="wp-image-2639" style="width:787px;height:auto" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/05/Alexei-Vladyshev.png 600w, https://hamravesh.com/blog/wp-content/uploads/2024/05/Alexei-Vladyshev-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /><figcaption class="wp-element-caption">Alexei Vladishev</figcaption></figure>
</div>


<h2 class="wp-block-heading" id="h-ویژگی-های-زبیکس-چیست">ویژگی‌های زبیکس چیست؟</h2>



<p>به طور خلاصه می‌توان ویژگی‌ها و قابلیت‌های زبیکس را به صورت زیر فهرست کرد:</p>



<ul class="wp-block-list">
<li>امکان «بصری‌سازی» (Visualization)</li>



<li>وجود Zabbix API</li>



<li>اطلاع‌رسانی اعلانی و بازسازی و احیای مجدد</li>



<li>دیپلوی کردن بدون دردسر</li>



<li>امنیت و احراز هویت</li>



<li>جمع‌آوری متریک‌ها (داده‌های مربوط به منابع و سرویس‌های مختلف)</li>



<li>شناسایی انحراف از شرایط عادی و مطلوب</li>



<li>امکان مانیتورینگ توزیع شده</li>
</ul>



<h2 class="wp-block-heading" id="h-چرا-از-zabbix-استفاده-کنیم">چرا از Zabbix استفاده کنیم؟</h2>



<p>در این بخش به طور مختصر برخی از دلایل اهمیت زبیکس و ضرورت استفاده از آن ارائه شده‌اند.</p>



<ul class="wp-block-list">
<li>اون‌سورس بودن زبیکس</li>



<li>راه‌اندازی بسیار آسان</li>



<li>کانفیگ و پیکربندی ساده و راحت</li>



<li>وجود ساختار درختی سلسله مراتبی برای نمایش سرویس‌ها و زیرساخت‌های مختلف</li>



<li>فرآیند داخلی نگهداری و مدیریت منابع در Zabbix</li>



<li>agentهای بسیار کارآمدی برای پلتفرم‌های مبتنی بر یونیکس و WIN32</li>



<li>منحنی یادگیری هموار</li>



<li>بازگشت سرمایه (ROI) بالا (به علت هزینه گزاف Downtime)</li>



<li>هزینه پایین نگهداری و استفاده از زبیکس</li>



<li>سیستم مانیتورینگ متمرکز (ذخیره شدن تمام اطلاعات از جمله تنظیمات، داده‌های عملکردی و غیره در یک پایگاه داده رابطه‌ای)</li>



<li>پشتیبانی Zabbix از پروتکل SNMP (ویرایش ۱ و ۲) برای دریافت Trap و همچنین استعلام (Polling) از دستگاه‌ها و سرویس‌های مختلف</li>



<li>قابلیت‌های نمایش و ارائه دیداری اطلاعات در زبیکس</li>
</ul>



<h2 class="wp-block-heading" id="h-مزایای-استفاده-از-zabbix-چیست">مزایای استفاده از Zabbix چیست؟</h2>



<p>حال در این بخش به شرح برخی از مزایای زبیکس پرداخته شده است.</p>



<ul class="wp-block-list">
<li>رابط وب مناسب و شکیل</li>



<li>هم امکان مانیتور کردن سرورها و هم دارای قابلیت نظارت دستگاه‌های شبکه</li>



<li>انعطاف‌پذیری در تفویض اختیارات به کاربران</li>



<li>سهولت دستکاری و پیکربندی: انجام شدن تمام تنظیمات زبیکس از طریق رابط وب</li>



<li>پشتیبانی از لینوکس، سولاریس، FreeBSD و غیره</li>



<li>قابل اطمینان در خصوص احراز هویت کاربران</li>



<li>امکان گزارش مشکلات از طریق ایمیل و پیامک</li>
</ul>



<h2 class="wp-block-heading" id="h-معایب-زبیکس-چیست">معایب زبیکس چیست؟</h2>



<p>از معدود معایب زبیکس می‌توان به ۳ مورد زیر اشاره کرد.</p>



<ul class="wp-block-list">
<li>اجبار در شامل شدن Amazon RDS</li>



<li>رابط کاربری (UI) و تجربه کاربری (UX) باید جذاب‌تر و با جزئیات بیشتری طراحی شود.</li>



<li>زبیکس باید Templatesهای بیشتری برای مانیتورینگ غنی‌تر ارائه دهد.</li>
</ul>



<h2 class="wp-block-heading" id="h-بهترین-جایگزین-ها-برای-zabbix-چیست">بهترین جایگزین‌ها برای Zabbix چیست؟</h2>



<p>فهرستی از جایگزین‌های مناسب برای زبیکس به شرح زیر است:</p>



<ul class="wp-block-list">
<li>Datadog</li>



<li>AppDynamics</li>



<li>Dynatrace</li>



<li>LogicMonitor</li>



<li>PRTG Network Monitor</li>



<li>checkmk</li>



<li>Microsoft System Center</li>
</ul>



<h2 class="wp-block-heading" id="h-بهترین-منابع-یادگیری-زبیکس">بهترین منابع یادگیری زبیکس</h2>



<p>در این بخش فهرستی از بهترین منابع یادگیری Zabbix و به همراه لینک دسترسی به آن‌ها ارائه شده است.</p>



<ul class="wp-block-list">
<li><a href="https://www.devopsschool.com/blog/what-is-zabbix-and-use-of-it/">آموزش کوتاه ماهیت زبیکس و کاربرد آن</a></li>



<li><a href="https://www.youtube.com/watch?v=wnObZNfJJSQ">آموزش پایه‌ای زبیکس رایگان برای افراد تازه کار به همراه دمو</a></li>



<li><a href="https://solutionsreview.com/network-monitoring/the-best-zabbix-tutorials-on-youtube/">معرفی بهترین آموزش‌های زبیکس در یوتیوب</a></li>
</ul>



<h2 class="wp-block-heading" id="h-سوالات-مربوط-به-zabbix-در-مصاحبه-شغلی">سوالات مربوط به Zabbix در مصاحبه شغلی</h2>



<p>در این بخش از مطلب Zabbix چیست به برخی از رایج‌ترین سوالات مصاحبه مربوط به زبیکس و پاسخ آن‌ها پرداخته شده است.</p>



<h3 class="wp-block-heading" id="h-با-زبیکس-بر-چه-چیزهایی-می-توان-نظارت-کرد-و-مانیتورینگ-انجام-داد">با زبیکس بر چه چیزهایی می‌توان نظارت کرد و مانیتورینگ انجام داد؟</h3>



<p>زبیکس شاخص‌های مختلفی را برای مانیتورینگ ارائه می‌دهد؛ مانند میزان مصرف بسته‌های شبکه، بار پردازشی CPU و میزان اشغال فضای دیسک. این نرم‌افزار عملیات مانیتورینگ را برای سیستم‌عامل‌های لینوکس، HP-UX، مک اواس ایکس، سولاریس و دیگر سیستم‌عامل‌ها انجام می‌دهد. اما برای ویندوز باید از Agentها استفاده شود.</p>



<h3 class="wp-block-heading" id="h-آیا-پرومتئوس-از-زبیکس-بهتر-است">آیا پرومتئوس از زبیکس بهتر است؟</h3>



<p>پرومتئوس به دلیل پایگاه داده‌‌ای که دارد، سریع‌تر است، اما زبیکس ردپای کوچک‌تری دارد (چون با زبان C نوشته شده است). ردپای کوچک‌تر یعنی Zabbix بازدهی حافظه، بهینه‌سازی فضا و حفظ منابع بهتری دارد. در زبیکس می‌توانید اکثر کارها را از طریق رابط وب انجام دهید، اما در پرومتئوس باید مانند نگیوس، فایل‌ها را ویرایش کنید.</p>



<h3 class="wp-block-heading" id="h-زبیکس-بهتر-است-یا-nagios">زبیکس بهتر است یا Nagios؟</h3>



<p>پس از مقایسه این دو، مشخص است که زبیکس برنده است. در حالی که Nagios Core امکانات پایه‌ای برای مانیتورینگ شبکه دارد، اما انعطاف‌پذیری و قابلیت پیکربندی زبیکس را ندارد. در واقع زبیکس ابزار رایگان مانیتورینگ شبکه است که مانند محصولات گران‌قیمت عمل می‌کند.</p>



<h3 class="wp-block-heading" id="h-آیا-زبیکس-از-netflow-پشتیبانی-می-کند">آیا زبیکس از <strong>Netflow</strong> پشتیبانی می‌کند؟</h3>



<p>بله،‌ زبیکس امکان مانیتورینگ و یکپارچه‌سازی با Netflow (پروتکل رصد ترافیک شبکه) را دارد.</p>



<h3 class="wp-block-heading" id="h-آیا-zabbix-ابزار-دواپس-محسوب-می-شود">آیا Zabbix ابزار دواپس محسوب می‌شود؟</h3>



<p>هم Nagios و هم زبیکس ابزارهای «سُنتی» هستند که کاربرد گسترده دارند قابل دانلود و متن‌باز هستند. اما این ابزارها برای پاسخگویی به محیط‌های پویا،‌ سریع و مجهز دواپس قابلیت‌ها و خصوصیات لازم را ندارند.</p>



<h3 class="wp-block-heading" id="h-چگونه-می-توان-با-زبیکس-مانیتورینگ-کوبرنتیز-انجام-داد">چگونه می‌توان با زبیکس مانیتورینگ کوبرنتیز انجام داد؟</h3>



<p>برای نصب، فایل <code>k8s-stats.py</code> را در مسیر <code>/etc/zabbix/scripts/</code> و فایل <code>k8s.conf</code> را در <code>/etc/zabbix/zabbix_agentd.d/</code> کپی می‌کنیم. الگوی زبیکس (<code>k8s-Zabbix-template.xml</code>) را در سرور زبیکس وارد می‌کنیم. در کوبرنتیز یک کاربر زبیکس ایجاد می‌کنیم (می‌توانیم از <code>Zabbix-user-example.yml</code> استفاده کنیم) و توکن و آدرس سرور API آن را در <code>k8s-stats.py</code> تنظیم کنیم. همچنین الگو را به هاست اعمال می‌کنیم.</p>



<h3 class="wp-block-heading" id="h-آیا-استفاده-از-zabbix-آسان-است">آیا استفاده از Zabbix آسان است؟</h3>



<p>زبیکس رابط کاربری آسان و نمودارهای زیبا و نقشه‌های قابل سفارشی‌سازی دارد. انعطاف‌پذیری سازوکار Zabbix شگفت‌انگیز است. پلتفرم بسیار قابل اعتمادی به حساب می‌آید و ما هرگز با مشکلی در زمینه مقیاس‌پذیری یا پایداری زبیکس مواجه نمی‌شویم. در کل به نظر می‌رسد که استفاده از زبیکس در مقایسه با سایر برنامه‌ها آسان‌تر است.</p>



<h3 class="wp-block-heading" id="h-آیا-زبیکس-ابزار-مناسب-و-کارآمدی-به-حساب-می-آید">آیا زبیکس ابزار مناسب و کارآمدی به حساب می‌آید؟</h3>



<p>می‌توان Zabbix‌ را بهترین برنامه برای مانیتورینگ Security‌در نظر گرفت. می‌توان گفت زبیکس ابزار نرم‌افزاری متن‌بازی برای مانیتورینگ انواع اجزای فناوری اطلاعات از جمله شبکه‌ها، سرورها، ماشین‌های مجازی و سرویس‌های ابری است. زبیکس ابزاری با کیفیت بالا و امنیت فوق‌العاده است.</p>



<h3 class="wp-block-heading" id="h-آیا-zabbix-از-جاوا-استفاده-می-کند">آیا Zabbix از جاوا استفاده می‌کند؟</h3>



<p>زبیکس نرم‌افزاری است که پارامترهای متعدد شبکه و وضعیت و یکپارچگی سرورها را مانیتور می‌کند. Gateway جاوای زبیکس یک سرویس پس‌زمینه (Daemon) نوشته شده به زبان جاوا است.</p>



<h3 class="wp-block-heading" id="h-آیا-زبیکس-در-ویندوز-قابل-اجرا-است">آیا زبیکس در ویندوز قابل اجرا است؟</h3>



<p>بله، زبیکس می‌تواند روی سیستم‌عامل ویندوز نیز اجرا شود. اگرچه زبیکس نرم‌افزاری متن‌باز است که اصولاً برای سیستم‌عامل‌های لینوکس و یونیکس طراحی شده، اما Agent زبیکس برای ویندوز نیز در دسترس است. با نصب این Agent روی سرورها و ماشین‌های ویندوزی، می‌توان آن‌ها را به سرور مرکزی زبیکس متصل و اطلاعات و شاخص‌های مانیتورینگ را از آن‌ها جمع‌آوری کرد. بنابراین زبیکس امکان مانیتورینگ تمامی سرورها و منابع را، اعم از لینوکسی یا ویندوزی، فراهم می‌آورد.</p>



<h3 class="wp-block-heading" id="h-آیا-زبیکس-rrm-است">آیا زبیکس RRM است؟</h3>



<p>زبیکس نرم‌افزار مدیریت و نظارت از راه دور یا «RMM» نیست، بلکه نرم‌افزار نظارت بر شبکه به حساب می‌آید که امکان نظارت و مدیریت عملکرد شبکه را در زمان واقعی فراهم می‌کند. در مقابل اما، SolarWinds RMM نرم‌افزار مدیریت از راه دور محسوب می‌شود که با استفاده از probe‌ها و مانیتورها به کمک مدیریت کارهای عملیاتی شبکه می‌آید. Zabbix نرم‌افزار مانیتورینگ شبکه است که امکان مانیتورینگ و مدیریت لحظه‌ای شبکه را فراهم می‌کند.</p>



<h3 class="wp-block-heading" id="h-پروکسی-زبیکس-یا-zabbix-proxy-چطور-کار-می-کند">پروکسی زبیکس یا Zabbix Proxy چطور کار می‌کند؟</h3>



<p>پروکسی زبیکس پروسه‌ای است که می‌تواند داده‌های مانیتورینگ را از یک یا چند دستگاه تحت نظارت جمع‌آوری کند و این اطلاعات را به سرور زبیکس بفرستد. به این ترتیب، پروکسی به جای سرور عمل می‌کند. تمام داده‌های جمع‌آوری شده موقتاً به صورت لوکال ذخیره و سپس به سرور زبیکس مربوطه منتقل می‌شوند.</p>



<h3 class="wp-block-heading" id="h-استفاده-از-زبیکس-چقدر-هزینه-دارد">استفاده از زبیکس چقدر هزینه دارد؟</h3>



<p>زبیکس یک سازوکار اوپن‌سورس است و هزینه‌ای متحمل نمی‌شوید. این محصول متن‌باز و برای استفاده رایگان است. از نسخه زبیکس ۷ به بعد، تمام نسخه‌های بعدی تحت مجوز عمومی GNU Affero نسخه ۳ (AGPLv3) منتشر خواهند شد. شما می‌توانید نسخه مربوطه را تغییر دهید و چنین نسخه‌ای تغییر یافته را تحت شرایط AGPLv3 که توسط بنیاد نرم‌افزار آزاد منتشر شده، منتشر کنید. </p>



<p>برای جزئیات بیشتر از جمله پاسخ به سوالات رایج درباره AGPLv3، به <a href="http://www.fsf.org/licenses/gpl-faq.html">پرسش و پاسخ‌های عمومی بنیاد نرم‌افزار آزاد</a> مراجعه کنید. زبیکس نرم‌افزاری متن‌باز است، اما اگر از آن در محیط تجاری استفاده می‌کنید، از شما تقاضا می‌شود با خرید سطحی از پشتیبانی فنی، توسعه زبیکس را حمایت کنید. تمام نسخه‌های قبلی زبیکس تا ۶.۴ تحت مجوز عمومی GNU نسخه ۲ (GPLv2) منتشر شده‌اند. شرایط رسمی GPLv2 و AGPLv3 در لینک [<a href="http://www.fsf.org/licenses/">+</a>] موجود است.</p>



<h3 class="wp-block-heading" id="h-زبیکس-چگونه-با-پرومتئوس-تلفیق-می-شود">زبیکس چگونه با پرومتئوس تلفیق می‌شود؟</h3>



<p>پرومتئوس در آخرین نسخه زبیکس به صورت داخلی تلفیق و ادغام شده است که این امکان را به ما می‌دهد تا به راحتی متریک‌ها را از collectorها جمع‌آوری و پردازش کنیم. برای ایجاد یک آیتم master HTTP، به Configuration &gt; Hosts &gt; Items بروید، روی Create item کلیک و پارامترهای آیتم را در فُرم وارد کنید.</p>



<h3 class="wp-block-heading" id="h-آیا-zabbix-ابزار-مانیتورینگ-مداوم-یا-continuous-monitoring-است">آیا Zabbix ابزار مانیتورینگ مداوم یا Continuous Monitoring است؟</h3>



<p>بله، زبیکس ابزار مانیتورینگ مداوم یا «Continuous Monitoring» محسوب می‌شود. تفاوت عمده بین زبیکس و Nagios هم همین است که Nagios ابزار مانیتورینگ مداوم نیست، در حالی که زبیکس ابزاری برای مانیتورینگ پیوسته و مداوم به‌حساب می‌آید.</p>



<h3 class="wp-block-heading" id="h-آیا-زبیکس-saas-محسوب-می-شود">آیا زبیکس SaaS محسوب می‌شود؟</h3>



<p>خیر، زبیکس سرویس SaaS یا «Software as a Service» نیست. Zabbix Cloud پلتفرم لوکال (On-Premise) است که توسط شرکت زبیکس ارائه می‌شود، اما کاربر باید آن را در محیط خودش نصب و راه‌اندازی کند.</p>



<h3 class="wp-block-heading" id="h-آیا-zabbix-شاخه-و-فورکی-از-nagios-است">آیا Zabbix شاخه و فورکی از Nagios است؟</h3>



<p>خیر، زبیکس شاخه یا fork از نیجیوس نیست. زبیکس در سال ۲۰۰۱ معرفی شد و توسعه‌ای کامل، جدید و مستقل است، نه یک فورک ساده از نیجیوس. مشخصه اصلی زبیکس این است که دید جامع و یکپارچه‌ای به مانیتورینگ دارد. زبیکس علاوه بر Statusها، پرفورمنس را هم پوشش می‌دهد که یکی از بزرگترین نواقص نیجیوس است.</p>



<h3 class="wp-block-heading" id="h-خالق-زبیکس-کیست">خالق زبیکس کیست؟</h3>



<p>زبیکس توسط «آلکسی ولادیشف» (Alexei Vladishev) ساخته شده است. شرکت زبیکس در سال ۲۰۰۵ زمانی تاسیس شد که مدیرعامل و مالک آن، آلکسی ولادیشف، تصمیم گرفت راه‌حل و سازوکار مانیتورینگی که روی آن کار می‌کرد را بیشتر توسعه دهد.</p>
<p>The post <a href="https://hamravesh.com/blog/what-is-zabbix/">زبیکس Zabbix چیست و چطور کار می‌کند؟ – مرور کلی + کاربردها</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/what-is-zabbix/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SSH چیست؟</title>
		<link>https://hamravesh.com/blog/what-is-ssh/</link>
					<comments>https://hamravesh.com/blog/what-is-ssh/#respond</comments>
		
		<dc:creator><![CDATA[ارسطو عباسی]]></dc:creator>
		<pubDate>Wed, 17 Jul 2024 08:16:12 +0000</pubDate>
				<category><![CDATA[شبکه]]></category>
		<category><![CDATA[مقالات]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=2201</guid>

					<description><![CDATA[<p>پروتکل SSH یا Secure Shell روشی برای ارسال دستورات به کامپیوترها به صورت امن روی شبکه‌های عمدتا ناامن است. SSH برای برقراری ارتباط میان دستگاه‌های مختلف از تکنیک‌های کریپتوگرافی برای احرازهویت و رمزنگاری استفاده می‌کند. استفاده‌های اصلی SSH عمدتا کنترل سرورها به صورت ریموت، مدیریت زیرساخت و انتقال فایل است. اما تمامی این موارد از [&#8230;]</p>
<p>The post <a href="https://hamravesh.com/blog/what-is-ssh/">SSH چیست؟</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>پروتکل SSH یا Secure Shell روشی برای ارسال دستورات به کامپیوترها به صورت امن روی شبکه‌های عمدتا ناامن است. SSH برای برقراری ارتباط میان دستگاه‌های مختلف از تکنیک‌های کریپتوگرافی برای احرازهویت و رمزنگاری استفاده می‌کند.</p>



<p>استفاده‌های اصلی SSH عمدتا کنترل سرورها به صورت ریموت، مدیریت زیرساخت و انتقال فایل است. اما تمامی این موارد از طریق مراحل و پروسه‌های نسبتا پیچیده‌ای انجام می‌شوند. برای درک چیستی و چگونه کار کردن SSH نیاز است با مفاهیم مختلفی آشنا شویم که هدف این مطلب از وبلاگ هم‌روش دقیقا همین است. </p>



<h2 class="wp-block-heading" id="h-ssh-چه-کاری-انجام-می-دهد">SSH چه کاری انجام می‌دهد؟</h2>



<p><strong>برقراری</strong> <strong>ارتباطات رمزنگاری‌شده: </strong>اصلی‌ترین استفاده SSH ایجاد امکان دسترسی به کامپیوترهای ریموت (دور از جایی که کاربر قرار دارد) است. سرورها نمونه گسترده‌ای از این کامپیوترها هستند. SSH هر داده‌ای که بین کلاینت و سرور منتقل می‌شود را به صورت کامل رمزنگاری می‌کند تا امنیت داده‌ها حفظ شود. به همین دلیل افراد خارج از این رابطه بسیار به سختی می‌توانند در این ارتباط مداخله‌ای داشته باشند. </p>



<p><strong>تونل‌زنی یا Tunneling: </strong>تونلینگ یک <strong><a href="https://hamravesh.com/blog/category/network/">فناوری شبکه‌</a></strong> است که امکان برقراری ارتباط دو کامپیوتر را از طریق یک کامپیوتر میانی فراهم می‌کند. از این روش برای ساخت شبکه‌های خصوصی مجازی یا VPN استفاده می‌کنند. SSH برای پیاده‌سازی این حالت از تکنیکی به نام Port Forwarding استفاده می‌کند. در ادامه این مقاله آن را بررسی خواهیم کرد.</p>



<h2 class="wp-block-heading" id="h-ssh-چگونه-کار-می-کند">SSH چگونه کار می‌کند؟</h2>



<ol class="wp-block-list">
<li><strong>تبادل کلید</strong>: هنگامی که یک اتصال SSH آغاز می‌شود، ابتدا یک عملیات <strong>تبادل کلید رمزنگاری</strong> بین میزبان (سرور) و مشتری (کلاینت) انجام می‌شود. این فرآیند شامل ایجاد یک کانال ارتباطی امن است که اطلاعات را قبل از شروع ارتباط واقعی، به صورت رمزنگاری شده منتقل می‌کند.</li>



<li><strong>احراز هویت</strong>: پس از برقراری یک کانال ارتباطی امن، مرحله بعدی احراز هویت کاربر است. SSH از چندین روش احراز هویت پشتیبانی می‌کند: از جمله احراز هویت بر پایه <strong>رمزعبور</strong>، <strong>کلید عمومی (public key)</strong> و روش‌های احراز هویت بر پایه <strong><a href="https://en.wikipedia.org/wiki/Generic_Security_Services_Application_Program_Interface" target="_blank" rel="noreferrer noopener">GSSAPI</a></strong>.</li>



<li><strong>ارتباط امن</strong>: پس از احراز هویت موفق، یک کانال ارتباطی امن برقرار می‌شود. داده‌های منتقل شده بین کلاینت و سرور به صورت رمزنگاری شده هستند و این بدان معناست که حتی اگر داده‌ها توسط افراد دیگری دزدیده شوند، بدون داشتن کلید رمزگشایی، قابل فهم نخواهند بود.</li>



<li><strong>دسترسی از راه دور یا انتقال فایل</strong>: پس از برقراری اتصال امن، کاربران می‌توانند به صورت ریموت به سرور دسترسی پیدا کنند. برای انجام <strong>انتقال فایل</strong>، SSH از پروتکل‌هایی مانند <strong>SCP (Secure Copy Protocol)</strong> یا <strong>SFTP (SSH File Transfer Protocol)</strong> استفاده می‌کند.</li>
</ol>



<p>SSH با استفاده از الگوریتم‌های رمزنگاری پیشرفته، مانع از شنود، تغییر داده‌ها و حملات مرد میانی (Man-in-the-Middle) می‌شود. در نتیجه هدف و شیوه کاری آن ایجاد یک ارتباط با حداکثر میزان امنیت است.</p>



<h2 class="wp-block-heading" id="h-منظور-از-port-forwarding-در-ssh-چیست">منظور از Port Forwarding در SSH چیست؟</h2>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="397" data-id="2209" src="https://hamravesh.com/blog/wp-content/uploads/2024/03/ssh-tunneling-and-port-forwarding-1024x397.webp" alt="تشریح سیستم پورت فورواردینگ در SSH" class="wp-image-2209" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/03/ssh-tunneling-and-port-forwarding-1024x397.webp 1024w, https://hamravesh.com/blog/wp-content/uploads/2024/03/ssh-tunneling-and-port-forwarding-300x116.webp 300w, https://hamravesh.com/blog/wp-content/uploads/2024/03/ssh-tunneling-and-port-forwarding-768x298.webp 768w, https://hamravesh.com/blog/wp-content/uploads/2024/03/ssh-tunneling-and-port-forwarding.webp 1172w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</figure>



<p>Port Forwarding در SSH به معنای انتقال اطلاعات از یک پورت روی یک سیستم به پورت دیگری روی سیستم دیگر از طریق یک کانال ارتباطی امن (معمولاً یک اتصال SSH) است. این فرایند اجازه می‌دهد ترافیک شبکه که برای یک پورت خاص در نظر گرفته شده است به طور امن از طریق یک سرور میانی، که می‌تواند برای دور زدن محدودیت‌های شبکه یا دسترسی ایمن به شبکه‌های داخلی از راه دور مفید باشد، منتقل شود.</p>



<p>در SSH، تکنیک Port Forwarding به دو شکل اصلی وجود دارد:</p>



<ol class="wp-block-list">
<li><strong>Local Port Forwarding</strong>: این روش برای دسترسی ایمن به یک سرور از راه دور از طریق یک سرور میانی استفاده می‌شود. کاربر، یک پورت محلی روی دستگاه خود باز می‌کند که ترافیک را به یک پورت خاص روی سرور مقصد از طریق اتصال SSH منتقل می‌کند.</li>



<li><strong>Remote Port Forwarding</strong>: این روش برای اجازه دادن به کاربران ریموت، برای دسترسی به سرویس‌های محلی روی دستگاه شما از طریق یک سرور میانی استفاده می‌شود. در این حالت، یک پورت روی سرور میانی باز می‌شود که ترافیک را به یک پورت خاص روی دستگاه شما از طریق اتصال SSH منتقل می‌کند.</li>
</ol>



<p>Port Forwarding در SSH اغلب برای موارد زیر استفاده می‌شود:</p>



<ul class="wp-block-list">
<li>دسترسی امن به اپلیکیشن‌های وب پشت یک فایروال یا شبکه خصوصی</li>



<li>تونل‌زنی امن برای پروتکل‌هایی مانند HTTP ،SMTP و FTP</li>



<li>دور زدن فایروال‌ها و فیلترهای شبکه برای دسترسی به سرویس‌ها</li>
</ul>



<h2 class="wp-block-heading">مزایا و معایب استفاده از SSH</h2>



<h3 class="wp-block-heading">مزایا:</h3>



<ol class="wp-block-list">
<li><strong>امنیت بالا</strong>: SSH از رمزنگاری قوی برای اطمینان از امنیت داده‌های انتقالی استفاده می‌کند، که از دسترسی و خوانش اطلاعات توسط افراد غیرمجاز جلوگیری می‌کند.</li>



<li><strong>جلوگیری از حملات man-in-the-middle</strong>:  فناوری SSH از قابلیت <strong>احرازهویت</strong> مبتنی بر رمزنگاری استفاده می‌کند که از حملات ایجاد شده توسط افرادی که قصد دارند ارتباط بین دو سیستم را به دست بگیرند، جلوگیری می‌کند.</li>



<li><strong>پورت فورواردینگ</strong>: این ویژگی امکان انتقال امن داده‌ها را بین مشتری و سرور فراهم می‌کند، حتی از طریق شبکه‌هایی که به طور پیش‌فرض ایمن نیستند.</li>



<li><strong>قابلیت استفاده گسترده</strong>: SSH در سیستم‌عامل‌های مختلف مانند Linux ،Windows و macOS پشتیبانی می‌شود و کاربردهای متنوعی دارد: از جمله مدیریت سرور، انتقال فایل، و موارد دیگر.</li>
</ol>



<h3 class="wp-block-heading">معایب:</h3>



<ol class="wp-block-list">
<li><strong>پیکربندی و مدیریت</strong>: راه‌اندازی اولیه و مدیریت کلیدهای SSH می‌تواند پیچیده باشد، به‌خصوص در محیط‌هایی که تعداد زیادی سرور و کاربر وجود دارد.</li>



<li><strong>خطرات امنیتی ناشی از مدیریت نامناسب</strong>: استفاده نادرست از کلیدهای SSH یا نگهداری ضعیف از آن‌ها می‌تواند باعث نفوذهای امنیتی شود. این شامل استفاده از کلیدهای SSH باز و بدون پسورد و یا نگهداری نکردن به‌روزرسانی‌های امنیتی است.</li>



<li><strong>محدودیت‌های عملکردی</strong>: اگرچه SSH برای امنیت طراحی شده است، اما استفاده از رمزنگاری می‌تواند بر عملکرد شبکه تأثیر بگذارد، به‌ویژه در انتقال فایل‌های بزرگ یا در شبکه‌های با پهنای باند پایین.</li>



<li><strong>وابستگی به نرم‌افزار</strong>: برای استفاده از SSH، هر دو سرور و کلاینت باید نرم‌افزارهای مربوطه را نصب کرده باشند. این موضوع می‌تواند در محیط‌هایی که از تجهیزات قدیمی‌تر یا سیستم‌عامل‌های خاص استفاده می‌کنند، محدودیت ایجاد کند.</li>
</ol>



<h2 class="wp-block-heading" id="h-آموزش-استفاده-از-ssh">آموزش استفاده از SSH</h2>



<p>برای استفاده از SSH نیاز است که آن را ابتدا روی سیستم خودتان به صورت نصب شده داشته باشید. در سیستم‌عامل‌های لینوکس، ویندوز و مک، به صورت پیشفرض و بدون نیاز به ابزاری خاص می‌توانید از طریق خط فرمان PowerShell یا Terminal به دستور <code>ssh</code> دسترسی داشته باشید. </p>



<p>البته در ارتباط با کامپیوترهای سرور این قضیه متفاوت است که ما قصد نداریم راجع به آن صحبت کنیم. در ادامه چند دستور ساده و کاربردی ssh را بررسی خواهیم کرد. </p>



<h3 class="wp-block-heading" id="h-دسترسی-به-سرور-از-طریق-ssh">دسترسی به سرور از طریق SSH</h3>



<p>برای دسترسی به یک سرور از طریق SSH، می‌توانید از دستور زیر در ترمینال یا کنسول خود استفاده کنید:</p>



<pre class="wp-block-code"><code>ssh username@hostname
</code></pre>



<p>در این مثال <code>username</code> نام کاربری است که شما روی سرور دارید و <code>hostname</code> آدرس IP یا نام دامنه سرور مورد نظر است.</p>



<h3 class="wp-block-heading">انتقال فایل با استفاده از SCP</h3>



<p>SCP یکی از ابزار‌های SSH است برای انتقال فایل بین دو کامپیوتر استفاده می‌شود. مثلاً برای کپی یک فایل از سیستم محلی به سرور، می‌توانید از دستور زیر استفاده کنید:</p>



<pre class="wp-block-code"><code>scp path/to/local/file username@hostname:path/to/remote/directory</code></pre>



<p>و برای انتقال فایل از سرور به سیستم محلی می‌توانید به شکل زیر عمل کنید:</p>



<pre class="wp-block-code"><code>scp username@hostname:path/to/remote/file path/to/local/directory
</code></pre>



<h3 class="wp-block-heading">ایجاد کلیدهای SSH برای ورود بدون رمز عبور</h3>



<p>با ایجاد کلیدهای SSH می‌توانید بدون وارد کردن رمز عبور وارد سرور شوید. این کار با اجرای دستور زیر در سیستم محلی شما انجام می‌شود:</p>



<pre class="wp-block-code"><code>ssh-keygen -t rsa
</code></pre>



<p>پس از ایجاد کلیدها، باید کلید عمومی خود را به فایل <code>~/.ssh/authorized_keys</code> در سرور اضافه کنید.</p>



<h3 class="wp-block-heading">اجرای دستورات روی سرور</h3>



<p>برای اجرای دستورات روی یک سرور از طریق SSH، می‌توانید از ساختار زیر استفاده کنید:</p>



<pre class="wp-block-code"><code>ssh username@hostname "command_to_run"</code></pre>



<p>برای مثال، برای به‌روزرسانی پکیج‌ها روی یک سرور Ubuntu، می‌توانید دستور زیر را اجرا کنید:</p>



<pre class="wp-block-code"><code>ssh username@hostname "sudo apt-get update &amp;&amp; sudo apt-get upgrade -y"
</code></pre>



<h2 class="wp-block-heading" id="h-جمع-بندی">جمع‌بندی</h2>



<p>SSH را می‌توان یکی از ضروری‌ترین ابزارهای مدیریت سرور دانست که بسیاری از متخصصین حوزه‌های مختلف نرم‌افزار روزانه از آن استفاده می‌کنند. در این مطلب از وبلاگ هم‌روش ما به صورت کامل SSH را بررسی کردیم و همچنین با ساختار و شیوه کارکرد آن آشنا شدیم. برای درک عمیق</p>
<p>The post <a href="https://hamravesh.com/blog/what-is-ssh/">SSH چیست؟</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/what-is-ssh/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>TCP/IP چیست و چطور کار می‌کند؟</title>
		<link>https://hamravesh.com/blog/what-is-tcp-ip/</link>
					<comments>https://hamravesh.com/blog/what-is-tcp-ip/#respond</comments>
		
		<dc:creator><![CDATA[بابک خوش‌نویس]]></dc:creator>
		<pubDate>Tue, 16 Jul 2024 19:21:27 +0000</pubDate>
				<category><![CDATA[شبکه]]></category>
		<category><![CDATA[مقالات]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=3127</guid>

					<description><![CDATA[<p>TCP/IP مجموعه‌ای از قوانین برای انتقال داده‌ها بین دستگاه‌ها در شبکه است. این قوانین زمانی اهمیت پیدا می‌کنند که بخواهیم اطلاعات را در فضای آنلاین منتقل کنیم. در ادامه این نوشته بیشتر شرح می‌دهیم که TCP/IP چیست و به این مسئله می‌پردازیم که TCP/IP چطور کار می‌کند. در ارسال نامه اگر بخواهیم از خدمات پستی [&#8230;]</p>
<p>The post <a href="https://hamravesh.com/blog/what-is-tcp-ip/">TCP/IP چیست و چطور کار می‌کند؟</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>TCP/IP مجموعه‌ای از قوانین برای انتقال داده‌ها بین دستگاه‌ها در شبکه است. این قوانین زمانی اهمیت پیدا می‌کنند که بخواهیم اطلاعات را در فضای آنلاین منتقل کنیم. در ادامه این نوشته بیشتر شرح می‌دهیم که TCP/IP چیست و به این مسئله می‌پردازیم که TCP/IP چطور کار می‌کند.</p>



<p>در ارسال نامه اگر بخواهیم از خدمات پستی استفاده کنیم، مطابق با قوانین باید نام و آدرس را روی پاکت نامه بنویسیم. باید تعداد معینی تمبر استفاده کنیم و نامه را داخل صندوق پستی بیاندازیم. همچنین، قوانین بیشتری هم وجود داشت که نحوه تعامل کارمندان پستی با نامه ما را تعیین می‌کرد. اینترنت تمبر نیاز ندارد، اما قوانین خودش را دارد. مدل TCP/IP مجموعه‌ای جامع از پروتکل‌ها است که نحوه عملکرد اینترنت را همان‌طور که امروزه می‌شناسیم تعریف می‌کند.</p>



<h2 class="wp-block-heading" id="h-tcp-ip-چیست-و-مخفف-چه-عبارتی-است">TCP/IP چیست و مخفف چه عبارتی است؟</h2>



<p>TCP/IP مجموعه‌ای از پروتکل‌های شبکه است که الزامات انتقال داده‌ها به شکل ایمن و کارآمد را در اینترنت تعریف می‌کند. TCP مخفف عبارت «Transmission Control Protocol» به معنای «پروتکل کنترل انتقال» است که مسئولیت تحویل داده‌ها از یک دستگاه به دستگاه دیگر را بر عهده دارد. IP مخفف Internet Protocol بوده که وظیفه‌اش یافتن آدرس IP مقصد است.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="430" height="450" src="https://hamravesh.com/blog/wp-content/uploads/2024/06/TCP-IP-Model.png" alt="مدل TCP/IP چیست" class="wp-image-3137" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/06/TCP-IP-Model.png 430w, https://hamravesh.com/blog/wp-content/uploads/2024/06/TCP-IP-Model-287x300.png 287w" sizes="auto, (max-width: 430px) 100vw, 430px" /></figure>
</div>


<h2 class="wp-block-heading" id="h-tcp-ip-چگونه-کار-می-کند">TCP/IP چگونه کار می‌کند؟</h2>



<p>TCP/IP بر اساس مدل ارتباطی کلاینت-سرور عمل می‌کند، جایی که دستگاه کلاینت خدمات را از دستگاه سرور دریافت می‌کند. وظیفه اصلی TCP/IP، انتقال دقیق پیام‌ها بین دستگاه‌ها در شبکه است.</p>



<p>برای دستیابی به حداکثر دقت، پیام‌ها به بسته‌های داده (قطعات کوچک اطلاعاتی با سرصفحه‌هایی برای هدایت آن‌ها از طریق شبکه) تقسیم می‌شوند. اگر هر یک از بسته‌ها در مسیر دچار مشکل شوند، نیازی به ارسال مجدد کل پیام نیست — سیستم فقط بسته مورد نیاز را دوباره ارسال می‌کند.</p>



<p>مدل TCP/IP مسئول انتقال داده‌ها بین ۲ دستگاه است. چرا فقط ۲ دستگاه؟ برخلاف رادیو، ارسال داده‌ها در اینترنت فقط به‌صورت پخش کردن (Broadcast) به همه شنونده‌ها نیست. حتی زمانی که صدها کامپیوتر به‌طور همزمان در حال به اشتراک‌گذاری داده‌ها هستند، تنها ۲ دستگاه در هر مبادله داده شرکت می‌کنند.</p>



<h2 class="wp-block-heading" id="h-معرفی-۴-لایه-اصلی-tcp-ip">معرفی ۴ لایه اصلی TCP/IP</h2>



<p>پروتکل‌های TCP/IP روی ۴ لایه عمل می‌کنند. این سیستم چهار لایه‌ای، نحوه‌ای است که از طریق آن مدل TCP/IP اطمینان حاصل می‌کند دستگاه‌ها و برنامه‌های مختلف می‌توانند به‌راحتی با یکدیگر «ارتباط» برقرار کرده و داده‌ها را به‌صورت کارآمد منتقل کنند. این ۴ لایه عبارتند از:</p>



<ul class="wp-block-list">
<li>لایه کاربرد (اپلیکیشن)</li>



<li>لایه انتقال (ترانسپورت)</li>



<li>لایه اینترنت</li>



<li>لایه پیوند داده (دیتالینک)</li>
</ul>



<h3 class="wp-block-heading" id="h-لایه-اپلیکیشن-در-tcp-ip-چیست">لایه اپلیکیشن در TCP/IP چیست؟</h3>



<p>«لایه کاربرد» (Application Layer) در بالاترین لایه قرار دارد و حاوی پروتکل‌های این لایه است. این لایه برای کاربران قابل درک‌تر است، چرا که این پروتکل‌ها در برنامه‌های کاربردی کاربران تعبیه شده‌اند (و از همین رو این نام را گرفته است). برای مثال، برنامه‌های ایمیل از پروتکل SMTP یا همان «Simple Mail Transfer Protocol» استفاده می‌کنند. مرورگرها از HTTP یا «Hypertext Transfer Protocol» بهره می‌برند و به همین ترتیب سایر برنامه‌های دیگر نیز از پروتکل‌های دیگر این لایه استفاده می‌کنند. سایر پروتکل‌های رایج در لایه کاربردی عبارتند از:</p>



<ul class="wp-block-list">
<li>Dynamic Host Configuration Protocol | DHCP (پروتکل پویای پیکربندی میزبان)</li>



<li>File Transfer Protocol | FTP  (پروتکل انتقال فایل)</li>



<li>Simple Network Management Protocol | SNMP (پروتکل ساده مدیریت شبکه)</li>
</ul>



<h3 class="wp-block-heading" id="h-لایه-انتقال-در-tcp-ip-چیست">لایه انتقال در TCP/IP چیست؟</h3>



<p>همان‌طور که از نامش پیداست، لایه انتقال، مسئولیت انتقال داده‌ها را برعهده دارد. این لایه شامل پروتکل TCP و همچنین UDP (پروتکل داده‌نگاری کاربر |‌ User Datagram Protocol ) می‌شود. UDP ساده‌تر از TCP است و معمولاً توسط برنامه‌های بلادرنگ (Real-Time) استفاده می‌شود که نیازی به امنیت بالا ندارند.</p>



<p> TCP ارتباط بین ۲ شبکه را برقرار می‌کند و برای کارایی بیشتر، داده‌ها را به قطعات کوچک‌تری (به نام بسته‌ها یا پکت‌ها) تقسیم می‌کند. TCP همچنین قواعد بازسازی را به هر بسته اضافه می‌کند تا پس از اتمام انتقال، داده‌ها به ترتیب صحیح دوباره در کنار هم قرار گیرند.</p>



<h3 class="wp-block-heading" id="h-لایه-اینترنت-در-tcp-ip">لایه اینترنت در TCP/IP</h3>



<p>پروتکل‌های لایه اینترنت شامل IP و همچنین ARP (پروتکل تفسیر آدرس)، IGMP (پروتکل مدیریت گروهی اینترنت) و ICMP (پروتکل پیام کنترلی اینترنت) می‌شوند. لایه اینترنت، مسئول مدیریت و جابه‌جایی بسته‌های داده بین شبکه‌ها است.</p>



<h3 class="wp-block-heading" id="h-لایه-پیوند-داده-data-link-در-tcp-ip">لایه پیوند داده Data Link در TCP/IP</h3>



<p>لایه پیوند داده، پایین‌ترین لایه در انتقال داده است و می‌توان آن را لایه رابط شبکه نیز نامید. وظیفه این لایه این است که اطمینان حاصل کند داده‌ها نه تنها به آدرس IP (روتر) مقصد می‌رسند، بلکه به دستگاه مورد نظر در آن شبکه (مثلا گوشی شما که به آن روتر متصل است) نیز ارسال می‌شوند. این کار شامل شناسایی آدرس MAC دستگاه مقصد و مدیریت انتقال داده از طریق کابل‌های اترنت و وای‌فای است.</p>



<h2 class="wp-block-heading" id="h-ارتباط-tcp-و-آدرس-های-ip">ارتباط TCP و آدرس‌های IP</h2>



<p>انواع مختلفی از آدرس IP وجود دارد. یک آدرس IP می‌تواند عمومی یا خصوصی، و همچنین استاتیک یا پویا باشد. اما آیا TCP/IP با تمامی انواع آدرس IP کار می‌کند؟ بله. هر پروتکل اینترنتی که دستگاه شما استفاده کند، باز هم در فرایند انتقال داده TCP/IP عمل خواهد کرد. </p>



<p>بهترین و ساده‌ترین راه برای پیدا کردن آدرس TCP/IP شما، گوگل کردن عبارت «What&#8217;s my IP address» است. اما اگر قصد دارید آدرس IP دستگاه خاصی را در شبکه خود پیدا کنید، این روش جواب نمی‌دهد. برای پیدا کردن آدرس IP دستگاهی مانند یک پرینتر شبکه، سعی کنید به تنظیمات شبکه رفته و آدرس IPv4 را پیدا کنید. متاسفانه دستورالعمل‌های یکسانی برای همه سیستم‌عامل‌ها وجود ندارد، چرا که هر سیستم‌عامل طراحی خاص خودش را دارد.</p>



<h2 class="wp-block-heading" id="h-تفاوت-ip-با-tcp-ip-چیست">تفاوت IP با TCP/IP چیست؟</h2>



<p>اگرچه TCP/IP و IP هر دو نقش مهمی در ارتباطات داده از طریق اینترنت ایفا می‌کنند، اما با یکدیگر متفاوت هستند. TCP/IP یک استک (مجموعه‌ای از پروتکل‌ها برای هدف خاصی) است، در حالی که IP پروتکل سطح پایین منفرد محسوب می‌شود. در واقع، TCP/IP از IP برای انتقال بسته‌های داده استفاده می‌کند &#8211; اما علاوه بر آن، دستگاه‌ها و سرورها را نیز به هم متصل می‌کند.</p>



<p>IP به‌تنهایی محدود به بسته‌های داده با طول ۲۰ تا ۲۴ بایت است &#8211; قطعات بزرگ‌تر باید در چندین بسته ارسال شده و در مقصد دوباره بازسازی شوند. این روش همیشه کارآمد نیست، زیرا برای هر بسته نیاز به یک درخواست داده جداگانه وجود دارد. در مقابل، TCP/IP تمام داده‌ها را یک‌جا ارسال می‌کند و هم قبل و هم بعد از تحویل، بررسی‌هایی را برای اطمینان از یکپارچگی داده‌ها انجام می‌دهد. TCP/IP همچنین برای مسیریابی داده‌ها، ازدحام شبکه را کنترل می‌کند.</p>



<h2 class="wp-block-heading" id="h-تفاوت-مدل-osi-با-tcp-ip-چیست">تفاوت مدل OSI با TCP/IP چیست؟</h2>



<p>تفاوت بین TCP/IP و <a href="https://hamravesh.com/blog/what-is-osi-model/">مدل OSI</a>، تفاوت بین عمل و تئوری است &#8211; TCP/IP مجموعه پروتکل به‌صورت عملی است، در حالی که OSI <strong>مدل مفهومی مستقل از پروتکل</strong> محسوب می‌شود. به عبارت دیگر، TCP/IP از پروتکل‌های استاندارد برای رفع چالش‌های ارتباطی روزمره استفاده می‌کند، در حالی که OSI چارچوب فراگیری برای روش‌های ارتباطی مختلف ارائه می‌دهد.</p>



<p>هر ۲ مدل TCP/IP و OSI از لایه‌ها برای دسته‌بندی عملیات استفاده می‌کنند، با هم‌پوشانی قابل توجهی در کارکردها &#8211; برای مثال، لایه شبکه و لایه انتقال در هر ۲ مدل نقش یکسانی دارند. با این حال، در حالی که مدل TCP/IP تنها از ۴ لایه تشکیل شده است، مدل OSI هفت لایه دارد. همچنین اندازه هدرهای TCP/IP بیست بایت است، در حالی که هدرهای OSI فقط ۵ بایت هستند. اما TCP/IP و OSI شباهت‌های بیشتری نسبت به تفاوت‌هایشان دارند. هر ۲ مدل‌های منطقی هستند که از سیستم‌های لایه‌بندی شده برای تعریف نحوه انتقال بسته‌های داده از طریق شبکه‌ها استفاده می‌کنند.</p>



<h2 class="wp-block-heading" id="h-مزایای-مدل-tcp-ip-چیست">مزایای مدل TCP/IP چیست؟</h2>



<p>دلایل خوبی برای محبوبیت TCP/IP وجود دارد و TCP/IP مزایای بسیاری در حوزه ارتباطات و شبکه دارد که در ادامه به مهم‌ترین آن‌ها اشاره شده است.</p>



<ul class="wp-block-list">
<li><strong>قابلیت کار با دستگاه‌ها و نرم‌افزارهای سازندگان مختلف را دارد</strong>: از آنجایی که TCP/IP مجموعه‌ای از پروتکل‌های استانداردسازی شده است، امکان ارتباط آسان بین ماشین‌های مختلف را فراهم می‌کند. مشخصات پروتکل‌های مدل TCP/IP به‌صورت عمومی در دسترس هستند، بنابراین پیاده‌سازی راهکارهای سازگار تا حد زیادی ساده است.</li>



<li><strong>به‌صورت جهانی پذیرفته شده است</strong>. TCP/IP محبوبیت دارد، زیرا مفید است &#8211; و در عین حال، مفید بودنش هم به دلیل محبوبیتش است. TCP/IP بنیان اینترنت را تشکیل می‌دهد و گستردگی جهانی آن، امکان ارتباط دستگاه‌ها در هر نقطه از جهان را فراهم می‌آورد.</li>



<li><strong>قابلیت مقیاس‌پذیری بالایی دارد</strong>. توانایی اضافه کردن راحت سرویس‌ها و دستگاه‌های جدید به زیرساخت‌های موجود، کلید گسترش شبکه‌ها &#8211; از جمله بزرگ‌ترین آن، یعنی اینترنت &#8211; است.</li>



<li><strong>انعطاف‌پذیر است</strong>. مدل TCP/IP به نوع خاصی از شبکه فیزیکی وابسته نیست، در واقع می‌تواند به‌راحتی با انواع مختلف فناوری‌های شبکه (مانند اترنت و وای‌فای) تطبیق داده شود.</li>
</ul>



<h2 class="wp-block-heading" id="h-کاستی-های-مدل-tcp-ip-چیست">کاستی‌های مدل TCP/IP چیست؟</h2>



<p>با وجود محبوبیت، مدل TCP/IP به هیچ وجه بی‌نقص نیست. اینجا برخی از معایب آن را شمرده‌ایم که باید از آن‌ها آگاه باشید:</p>



<ul class="wp-block-list">
<li>«<strong>پیکربندی پیچیده‌ای دارد</strong>.» مدل TCP/IP انعطاف‌پذیر و مقیاس‌پذیر است، به شرط اینکه بدانید چکار می‌کنید. معماری لایه‌بندی شده می‌تواند رفع اشکالات را دشوار سازد.</li>



<li>«<strong>در مقایسه با بسیاری از مدل‌های دیگر</strong>،<strong> پهنای باند بیشتری مصرف می‌کند</strong>.» TCP/IP هدرها و تأییدیه‌های اضافی را به هر بسته داده اضافه می‌کند تا ارتباطات پایدار را تضمین کند، منتظر تأیید دریافت می‌ماند و بسته‌های گم شده یا خراب را دوباره ارسال می‌کند. اگرچه این اقدامات TCP/IP را قابل اعتماد می‌کند، اما باعث افزایش تاخیر و مصرف پهنای باند بیشتر می‌شوند.</li>



<li>«<strong>برای شبکه‌های کوچک بهینه‌سازی نشده است</strong>.» TCP/IP در ابتدا برای شبکه‌های گسترده (WAN) طراحی شده بود. در نتیجه برای شبکه‌های محلی (LAN) و شبکه‌های شخصی (PAN) مناسب نیست.</li>



<li>«<strong>رو به جلو نیست</strong>.» TCP/IP مدل قدرتمندی به حساب می‌آید، اما در برابر تغییر مقاوم است. از آنجایی که مفاهیم سرویس‌ها، رابط‌ها و پروتکل‌ها را به وضوح جدا نمی‌کند، TCP/IP در توصیف فناوری‌های جدید در شبکه‌های جدید با مشکل مواجه می‌شود.</li>
</ul>



<h2 class="wp-block-heading" id="h-جمع-بندی">جمع‌بندی</h2>



<p>مجموعه پروتکل‌های TCP/IP سیستم چندلایه‌ای است که اساس کارکرد اینترنت و ارتباطات شبکه را تشکیل می‌دهد. با تقسیم داده‌ها به بسته‌های کوچک و استفاده از <a href="https://en.wikipedia.org/wiki/Internet_protocol_suite">پروتکل‌های مختلف</a> برای تضمین انتقال موثر و امن، TCP/IP به دستگاه‌ها امکان می‌دهد به طور دقیق و کارآمد با یکدیگر ارتباط برقرار کنند. این مدل، با وجود محدودیت‌هایی که دارد، به دلیل قابلیت انعطاف، مقیاس‌پذیری و پذیرش جهانی، همچنان به‌عنوان استاندارد طلایی در شبکه‌های کامپیوتری شناخته می‌شود و نقش بنیادینی در تکامل دیجیتالی جهان ایفا می‌کند.</p>
<p>The post <a href="https://hamravesh.com/blog/what-is-tcp-ip/">TCP/IP چیست و چطور کار می‌کند؟</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/what-is-tcp-ip/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Reverse Proxy چیست؟ – شرح پروکسی سرورها</title>
		<link>https://hamravesh.com/blog/what-is-reverse-proxy/</link>
					<comments>https://hamravesh.com/blog/what-is-reverse-proxy/#respond</comments>
		
		<dc:creator><![CDATA[بابک خوش‌نویس]]></dc:creator>
		<pubDate>Sun, 30 Jun 2024 19:40:00 +0000</pubDate>
				<category><![CDATA[شبکه]]></category>
		<category><![CDATA[مقالات]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=2642</guid>

					<description><![CDATA[<p>در این نوشته پروکسی سرور را تعریف می‌کنیم، به اینکه Reverse Proxy چیست پاسخ می‌دهیم،‌ تفاوت‌های میان Forward Proxy و Reverse Proxy را شرح می‌دهیم و مزایای استفاده از Reverse Proxy را بیان می‌کنیم. Reverse Proxy چیست؟ ریوِرس پروکسی یا پروکسی معکوس (Reverse Proxy)، سرویس‌دهنده‌ای است که جلوتر از وب سرورها قرار می‌گیرد و درخواست‌های [&#8230;]</p>
<p>The post <a href="https://hamravesh.com/blog/what-is-reverse-proxy/">Reverse Proxy چیست؟ – شرح پروکسی سرورها</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>در این نوشته پروکسی سرور را تعریف می‌کنیم، به اینکه Reverse Proxy چیست پاسخ می‌دهیم،‌ تفاوت‌های میان Forward Proxy و Reverse Proxy را شرح می‌دهیم و مزایای استفاده از Reverse Proxy را بیان می‌کنیم.</p>



<h2 class="wp-block-heading" id="h-reverse-proxy-چیست">Reverse Proxy چیست؟</h2>



<p>ریوِرس پروکسی یا پروکسی معکوس (Reverse Proxy)، سرویس‌دهنده‌ای است که جلوتر از وب سرورها قرار می‌گیرد و درخواست‌های کاربران (مثل مرورگر وب) را به آن وب سرورها هدایت می‌کند. Reverse Proxy معمولاً برای افزایش امنیت، عملکرد و قابلیت اطمینان به‌کار گرفته می‌شود. برای درک بهتر نحوه عملکرد پراکسی معکوس و مزایای آن، ابتدا باید تعریف «پروکسی سرور» (Proxy Server) را بدانیم.</p>



<h2 class="wp-block-heading" id="h-پروکسی-سرور-چیست">پروکسی سرور چیست؟</h2>



<p>«فوروارد پروکسی» (Forward Proxy) که اغلب به آن «پروکسی»، «پروکسی سرور» یا «وب پروکسی» می‌گویند، سرویس‌دهنده‌ای است که در مقابل گروهی از ماشین‌های کاربر قرار می‌گیرد. زمانی که این کامپیوترها درخواست‌هایی را به سایت‌ها و سرویس‌های اینترنتی ارسال می‌کنند، سرور پروکسی این درخواست‌ها را دریافت و مانند واسطه به‌جای کاربران با سرورهای وب ارتباط برقرار می‌کند. به‌عنوان مثال، فرض کنید ۳ کامپیوتر در ارتباط پروکسی معمولی دخیل هستند:</p>



<ul class="wp-block-list">
<li>A رایانه خانگی کاربر</li>



<li>B سرور پروکسی</li>



<li>C سرور اصلی وب‌سایت (جایی که داده‌های وب‌سایت ذخیره شده‌اند)</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="892" height="450" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/05/Forward-Proxy.png" alt="روند پروکسی Forward Proxy" class="wp-image-2675" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/05/Forward-Proxy.png 892w, https://hamravesh.com/blog/wp-content/uploads/2024/05/Forward-Proxy-300x151.png 300w, https://hamravesh.com/blog/wp-content/uploads/2024/05/Forward-Proxy-768x387.png 768w" sizes="auto, (max-width: 892px) 100vw, 892px" /></figure>
</div>


<p>در ارتباط معمولی اینترنتی، کامپیوتر A مستقیماً با C ارتباط برقرار می‌کند؛ کلاینت درخواست‌ها را به سرور اصلی ارسال و سرور اصلی پاسخ‌ها را به کلاینت می‌فرستد. اما با وجود یک پروکسی، A درخواست‌ها را به B می‌فرستد، B آن‌ها را به C انتقال می‌دهد، C پاسخ‌ها را به B می‌فرستد و B آن‌ها را به A باز می‌گرداند.</p>



<h2 class="wp-block-heading" id="h-چرا-از-پروکسی-سرور-استفاده-می-کنیم">چرا از پروکسی سرور استفاده می‌کنیم؟</h2>



<p>شاید بپرسید چرا باید یک واسطه اضافی به فعالیت‌های اینترنتی خود اضافه کنیم؟ دلایل مختلفی برای استفاده از پروکسی سرورها وجود دارد، از جمله:</p>



<ul class="wp-block-list">
<li><strong>دور زدن محدودیت‌های اینترنتی:</strong> برخی از دولت‌ها، مدارس و سازمان‌ها از فایروال‌ها برای محدود کردن دسترسی کاربران به اینترنت استفاده می‌کنند. با استفاده از پروکسی سرور، می‌توان از این محدودیت‌ها عبور کرد. به‌جای اتصال مستقیم به وب‌سایت‌ها، به پروکسی متصل می‌شوید و پروکسی به وب‌سایت مورد نظر شما وصل می‌شود.</li>



<li><strong>مسدود کردن محتوای خاص:</strong> در مقابل، می‌توان از پروکسی‌ها برای مسدود کردن دسترسی گروهی از کاربران به وب‌سایت‌های خاص استفاده کرد. به‌عنوان مثال، شبکه مدرسه‌ای ممکن است به گونه‌ای تنظیم شود که از طریق پروکسی به وب متصل شود و از این راه قوانین فیلترینگ محتوا را اعمال کند. مثلاً از فوروارد کردن پاسخ‌ها از فیس‌بوک و سایر شبکه‌های اجتماعی خودداری شود.</li>



<li><strong>محافظت از حریم خصوصی:</strong> در برخی موارد، کاربران عادی اینترنت به دنبال افزایش ناشناس بودن خود در فضای آنلاین هستند. اما در موارد دیگر، کاربران اینترنت در کشورهایی زندگی می‌کنند که دولت می‌تواند مجازات‌های شدیدی را برای مخالفان سیاسی اعمال کند. انتقاد از دولت در یک انجمن وب یا در شبکه‌های اجتماعی می‌تواند منجر به جریمه یا حبس برای این کاربران شود. اگر مخالفان از پروکسی سرور برای اتصال به وب‌سایتی که در آن نظرات سیاسی حساس خود را ارسال می‌کند استفاده کند، ردیابی آدرس IP مورد استفاده برای ارسال نظرات به او دشوارتر خواهد بود. فقط آدرس IP سرور پروکسی قابل مشاهده خواهد بود.</li>
</ul>



<h2 class="wp-block-heading" id="h-تفاوت-پروکسی-معکوس-با-پروکسی-معمولی-چیست">تفاوت پروکسی معکوس با پروکسی معمولی چیست؟</h2>



<p>پروکسی معکوس برخلاف پروکسی معمولی که بین کاربر و اینترنت قرار می‌گیرد، بین «سرور اصلی» (Origin Server) و اینترنت قرار می‌گیرد. به عبارت دیگر، درخواست‌های کاربران را قبل از رسیدن به سرور اصلی رهگیری می‌کند و به‌جای سرور اصلی به آن‌ها پاسخ می‌دهد.</p>



<p>تفاوت ظریف اما مهمی بین این ۲ نوع پروکسی وجود دارد. به طور خلاصه، پروکسی معمولی مانع از برقراری ارتباط مستقیم سرور اصلی با هر کاربر می‌شود، در حالی که پروکسی معکوس مانع از برقراری ارتباط مستقیم هر کاربر با سرور اصلی می‌شود. برای درک بهتر، به این مثال توجه کنید:</p>



<ul class="wp-block-list">
<li><strong>D:</strong> تعدادی کامپیوتر خانگی کاربران</li>



<li><strong>E:</strong> سرور پروکسی معکوس</li>



<li><strong>F:</strong> یک یا چند سرور اصلی</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="892" height="450" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/05/Reverse-Proxy.png" alt="روند پروکسی معکوس Reverse Proxy" class="wp-image-2683" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/05/Reverse-Proxy.png 892w, https://hamravesh.com/blog/wp-content/uploads/2024/05/Reverse-Proxy-300x151.png 300w, https://hamravesh.com/blog/wp-content/uploads/2024/05/Reverse-Proxy-768x387.png 768w" sizes="auto, (max-width: 892px) 100vw, 892px" /></figure>
</div>


<h2 class="wp-block-heading" id="h-مزایای-استفاده-از-پروکسی-معکوس">مزایای استفاده از پروکسی معکوس</h2>



<ul class="wp-block-list">
<li><strong>توزیع بار (Load Balancing):</strong> وب‌سایت‌های پربازدید با میلیون‌ها کاربر در روز، ممکن است با تنها یک سرور اصلی واحد، قادر به مدیریت حجم ترافیک ورودی نباشند. در این حالت، می‌توان از چندین سرور برای توزیع بار استفاده کرد؛ یک پروکسی معکوس به عنوان توزیع‌کننده بار عمل می‌کند و ترافیک ورودی را به طور مساوی بین سرورها تقسیم می‌کند تا از اضافه‌بار روی یک سرور خاص جلوگیری شود. در صورت خرابی کامل یک سرور، سرورهای دیگر می‌توانند جایگزین آن شده و ترافیک را مدیریت کنند.</li>



<li><strong>محافظت در برابر حملات:</strong> با استفاده از پروکسی معکوس، آدرس IP سرورهای اصلی وب‌سایت یا سرویس، هرگز آشکار نمی‌شود. این امر، حملات هدفمند مانند DDoS را برای مهاجمان دشوارتر می‌کند. مهاجمان فقط می‌توانند به پروکسی معکوس، مثلCDN کلودفلر، حمله کنند که از امنیت و منابع بیشتری برای دفع حملات سایبری برخوردار است.</li>



<li><strong>Global server load balancing</strong> <strong>یا GSLB:</strong> در این نوع توزیع بار، وب‌سایت می‌تواند در سرورهای مختلفی در سراسر جهان توزیع شود و پروکسی معکوس، کاربران را به نزدیک‌ترین سرور از نظر جغرافیایی هدایت می‌کند. این امر، مسافت طی شده توسط درخواست‌ها و پاسخ‌ها را کاهش می‌دهد و زمان بارگذاری را به حداقل می‌رساند.</li>



<li><strong>ذخیره‌سازی (Caching):</strong> پروکسی معکوس می‌تواند محتوا را ذخیره کند که این امر منجر به افزایش و بهبود عملکرد می‌شود. به عنوان مثال، اگر کاربری در پاریس از یک وب‌سایت با سرورهای اصلی در لس‌آنجلس که از پروکسی معکوس استفاده می‌کند بازدید کند، ممکن است به جای اتصال مستقیم به سرور اصلی در لس‌آنجلس، به سرور پروکسی معکوس محلی در پاریس متصل شود. سپس سرور پروکسی می‌تواند داده‌های پاسخ را ذخیره (یا به طور موقت ذخیره) کند. کاربران بعدی در پاریس که از این وب‌سایت بازدید می‌کنند، نسخه ذخیره‌شده محلی را از سرور پروکسی معکوس پاریس دریافت می‌کنند که منجر به عملکرد بسیار بهتر و سریع‌تر می‌شود.</li>



<li><strong>رمزگذاری SSL:</strong> رمزگذاری و رمزگشایی ارتباطات SSL (یا TLS) برای هر کاربر می‌تواند برای سرور اصلی از نظر محاسباتی پرهزینه باشد. یک پروکسی معکوس را می‌توان برای رمزگشایی تمام درخواست‌های ورودی و رمزگذاری تمام پاسخ‌های خروجی پیکربندی کرد که باعث آزاد شدن منابع ارزشمند روی سرور اصلی می‌شود.</li>
</ul>



<h2 class="wp-block-heading" id="h-نحوه-پیاده-سازی-reverse-proxy">نحوه پیاده‌سازی Reverse Proxy</h2>



<p>دو روش اصلی برای پیاده‌سازی پروکسی معکوس وجود دارد که در ادامه به هر یک پرداخته شده است.</p>



<h3 class="wp-block-heading" id="h-راه-اندازی-سرور-reverse-proxy-اختصاصی">راه‌اندازی سرور Reverse Proxy اختصاصی</h3>



<p>این روش به دانش فنی و منابع سخت‌افزاری و نرم‌افزاری بالایی نیاز دارد و شامل خرید و پیکربندی سرورهای فیزیکی و نصب و راه‌اندازی نرم‌افزار Reverse Proxy می‌شود.</p>



<h3 class="wp-block-heading" id="h-استفاده-از-خدمات-cdn">استفاده از خدمات CDN</h3>



<p>CDN یا Content Delivery Network شبکه‌ای از سرورهای توزیع‌شده در سراسر جهان است که محتوای وب را به کاربران نزدیک به محل سکونتشان ارائه می‌دهد. بسیاری از CDNها، مانند Cloudflare، خدمات پروکسی معکوس را نیز ارائه می‌دهند. استفاده از CDN، راه‌حلی آسان‌تر و مقرون به صرفه‌تر برای بهره‌مندی از مزایای پروکسی معکوس است.</p>



<h4 class="wp-block-heading" id="h-مزایای-استفاده-از-cdn-برای-پیاده-سازی-پروکسی-معکوس">مزایای استفاده از CDN برای پیاده‌سازی پروکسی معکوس</h4>



<ul class="wp-block-list">
<li><strong>آسان‌تر</strong>: نیاز به دانش فنی و منابع سخت‌افزاری و نرم‌افزاری کمتری دارد.</li>



<li><strong>مقرون به صرفه تر</strong>: هزینه‌های راه‌اندازی و نگهداری پایین‌تر است.</li>



<li><strong>مقیاس‌پذیری</strong>: به راحتی قابل مقیاس‌بندی برای پاسخگویی به ترافیک در حال رشد است.</li>



<li><strong>عملکرد</strong>: CDNها معمولاً از نظر عملکردی سریع‌تر از سرورهای پروکسی معکوس اختصاصی هستند.</li>



<li><strong>امنیت</strong>: CDNها از امنیت بالایی در برابر حملات سایبری برخوردار هستند.</li>
</ul>



<p>در نهایت، انتخاب روش مناسب برای پیاده‌سازی پروکسی معکوس به نیازها و منابع شما بستگی دارد. اگر دانش فنی و منابع کافی را دارید، راه‌اندازی سرور پروکسی معکوس اختصاصی می‌تواند به شما کنترل و انعطاف‌پذیری بیشتری بدهد. اما اگر به دنبال راه‌حلی آسان‌تر و مقرون به صرفه‌تر هستید، استفاده از خدمات CDN گزینه بهتری است.</p>



<h2 class="wp-block-heading" id="h-جمع-بندی">جمع‌بندی</h2>



<p>پروکسی معکوس سرویسی است که بین سرور اصلی و اینترنت قرار می‌گیرد و به‌جای سرور اصلی به درخواست‌های کاربران پاسخ می‌دهد. این روش مزایای متعددی از جمله افزایش امنیت، عملکرد و قابلیت اطمینان وب‌سایت را به همراه دارد.</p>



<p>از جمله مزایای پروکسی معکوس می‌توان به توزیع بار، محافظت در برابر حملات، GSLB، ذخیره‌سازی محتوا و رمزگذاری SSL اشاره کرد. دو روش اصلی برای پیاده‌سازی پروکسی معکوس وجود دارد: راه‌اندازی سرور اختصاصی و استفاده از خدمات CDN. انتخاب روش مناسب به نیازها و منابع شما بستگی دارد.</p>
<p>The post <a href="https://hamravesh.com/blog/what-is-reverse-proxy/">Reverse Proxy چیست؟ – شرح پروکسی سرورها</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/what-is-reverse-proxy/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>حمله DDoS چیست و چگونه اتفاق می‌افتد؟</title>
		<link>https://hamravesh.com/blog/ddos-attack/</link>
					<comments>https://hamravesh.com/blog/ddos-attack/#respond</comments>
		
		<dc:creator><![CDATA[ارسطو عباسی]]></dc:creator>
		<pubDate>Wed, 12 Jun 2024 12:32:36 +0000</pubDate>
				<category><![CDATA[شبکه]]></category>
		<category><![CDATA[مقالات]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=2234</guid>

					<description><![CDATA[<p>DDoS یا Distributed Denial-of-Service حمله‌ای است که با هدف ایجاد وقفه در فرایند بارگذاری وبسایت و ترافیک عادی آن انجام می‌شود. اتفاقی که در این حمله می‌افتد این است که ترافیک ورودی وبسایت شما افزایش پیدا کرده و سرورهای شما قادر به پاسخگویی‌ آن‌ها نخواهند بود. اما این ترافیک از طرف کاربران واقعی صورت نمی‌گیرد، [&#8230;]</p>
<p>The post <a href="https://hamravesh.com/blog/ddos-attack/">حمله DDoS چیست و چگونه اتفاق می‌افتد؟</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>DDoS یا Distributed Denial-of-Service حمله‌ای است که با هدف ایجاد وقفه در فرایند بارگذاری وبسایت و ترافیک عادی آن انجام می‌شود. اتفاقی که در این حمله می‌افتد این است که ترافیک ورودی وبسایت شما افزایش پیدا کرده و سرورهای شما قادر به پاسخگویی‌ آن‌ها نخواهند بود. </p>



<p>اما این ترافیک از طرف کاربران واقعی صورت نمی‌گیرد، بات‌ها و نرم‌افزارهایی برای انجام DDoS طراحی می‌شوند که انجام چنین کاری را با سادگی هر چه بیشتر امکان‌پذیر کنند.</p>



<p>برای انجام چنین حملاتی هکرها می‌توانند از کامپیوترهای آلوده سوءاستفاده کرده و آن‌ها را به منابعی برای انجام حملات مورد استفاده قرار دهند. </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="512" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/04/ddos_attack_traffic_metaphor-1024x512.png" alt="ترافیک ماشین‌ها به صورت مصنوعی" class="wp-image-2237" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/04/ddos_attack_traffic_metaphor-1024x512.png 1024w, https://hamravesh.com/blog/wp-content/uploads/2024/04/ddos_attack_traffic_metaphor-300x150.png 300w, https://hamravesh.com/blog/wp-content/uploads/2024/04/ddos_attack_traffic_metaphor-768x384.png 768w, https://hamravesh.com/blog/wp-content/uploads/2024/04/ddos_attack_traffic_metaphor-1536x768.png 1536w, https://hamravesh.com/blog/wp-content/uploads/2024/04/ddos_attack_traffic_metaphor-2048x1024.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>برای درک ساده‌تر حمله DDoS، خیابانی را تصور کنید که به صورت معمول ترافیک چندانی نداشته و مردم به سادگی در آن تردد می‌کنند. اگر هکر تصمیم بگیرد که صدها خودرو به صورت غیرمعمول از این خیابان عبور کنند، تردد در خیابان به مشکل خورده و در نتیجه مردم عادی مانند قبل نمی‌توانند به سادگی به مقصد‌شان برسند.</p>



<h2 class="wp-block-heading" id="h-حمله-ddos-چگونه-کار-می-کند">حمله DDoS چگونه کار می‌کند؟</h2>



<p>در حملات DDoS ما با حجم عظیمی از دستگاه‌های متصل به اینترنت روبه‌رو هستیم. دستگاه‌هایی که می‌توانند برای یک سرور خاص درخواستی را ارسال کنند. این دستگاه‌ها لزوما می‌توانند کامپیوترهای عادی نباشند. برای مثال دستگاه‌های IoT یا اینترنت اشیاء نیز می‌توانند در این حمله مشارکت داشته باشند.</p>



<p>از آنجایی که تامین امنیت دستگاه‌های IoT به نسبت سخت‌تر بوده و پروتکل‌های امنیتی بسیاری برای آن‌ها وجود ندارد، این دستگاه‌ها بیشتر آلوده شده و در خدمت هکرها قرار می‌گیرد. هر کدام از دستگاه‌های آلوده‌ای که می‌توانند در یک حمله DDoS مشارکت داشته باشند را یک Bot یا Zombie می‌نامند و به گروه بزرگی از این بات‌ها نیز <strong><a href="https://www.cloudflare.com/learning/ddos/what-is-a-ddos-botnet/#:~:text=A%20botnet%20refers%20to%20a,device%20is%20called%20a%20bot.">Botnet</a></strong> گفته می‌شود.</p>



<p>زمانی که یک بات‌نت ایجاد شود، هکرها می‌توانند با ارسال یک دستور به صورت ریموت، تمام بات‌ها را متحد کرده و به یک هدف مشخص حمله کنند. در این حالت هر بات یک درخواست را برای IP Address مربوطه ارسال کرده و باعث می‌شوند تا سرور مشغول شده و توانایی مدیریت درخواست و ارسال پاسخ درست را نداشته باشد. در نتیجه کاربران عادی دیگر نمی‌توانند مانند قبل به سرور دسترسی داشته باشند.</p>



<p>چالش اصلی که در این حالت پیش خواهد آمد این است که تشخیص بات از کاربر عادی بسیار سخت بوده و برای حل این مشکل حتما باید راهکاری پیدا کنیم. </p>



<h2 class="wp-block-heading">چگونه حمله DDoS را تشخیص دهیم؟</h2>



<p>تشخیص حمله DDoS می‌تواند چالش‌برانگیز باشد، زیرا این حملات ممکن است در ابتدا شبیه به افزایش ناگهانی و معمول ترافیک وب به نظر برسند. یکی از معمول‌ترین نشانه‌های آن کُند شدن بیش از حد وبسایت و یا از کار افتادن آن به صورت کلی است. اما جدای از آن چند نشانه و روش دیگر نیز وجود دارد که می‌تواند به شما در تشخیص و مقابله با این حملات کمک کند. </p>



<h3 class="wp-block-heading">تحلیل ترافیک وب</h3>



<ul class="wp-block-list">
<li><strong>افزایش ناگهانی ترافیک:</strong> یکی از واضح‌ترین نشانه‌های حمله DDoS، افزایش ناگهانی و غیرمنتظره در ترافیک وب سایت یا برنامه است. اگر ترافیک بدون دلیل مشخصی افزایش یابد، ممکن است نشانه‌ای از حمله باشد. برای مثال اگر شما صاحب یک فروشگاه آنلاین باشید در یک بازه خاص می‌توانید نسبت بازدید کننده به مشتری را متوجه شوید. برای مثال از هر صد بازدیدکننده یک خریدار وجود دارد. اما در صورتی که حمله DDoS صورت بگیرد، ترافیک ورودی شما افزایش بسیار زیادی می‌یابد اما مشتری جدیدی ظاهر نمی‌شود!</li>



<li><strong>الگوهای ترافیک غیرعادی:</strong> ترافیک تولید شده توسط بات‌ها ممکن است الگوهای خاصی داشته باشند، مانند درخواست‌های متمرکز به یک صفحه خاص یا از منابع جغرافیایی خاص.</li>



<li><strong>پراکندگی جغرافیایی:</strong> حملات DDoS معمولاً از طریق شبکه‌های گسترده‌ای از دستگاه‌های مختلف در سراسر جهان انجام می‌شوند. ترافیک غیرمعمول از مناطق مختلف می‌تواند نشان‌دهنده یک حمله باشد. برای مثال شما صاحب یک کسب و کار آنلاین در ایران هستید، افزایش بازدید ناگهانی از کشوری مانند مکزیک یا اندونزی و&#8230; می‌تواند نشانه‌ای از یک حمله DDoS باشد. </li>
</ul>



<h3 class="wp-block-heading">مانیتورینگ منابع سرور</h3>



<ul class="wp-block-list">
<li><strong>بار بالا بر روی سرورها:</strong> افزایش بار و استفاده از منابع بر روی سرورها، مانند CPU و حافظه، می‌تواند نشانه‌ای از حمله DDoS باشد.</li>



<li><strong>افزایش تعداد درخواست‌ها:</strong> یک افزایش قابل توجه در تعداد درخواست‌های دریافتی می‌تواند نشان‌دهنده تلاش برای فلج کردن سرور باشد.</li>



<li><strong>خطاهای سرور افزایش یافته:</strong> افزایش تعداد خطاهای سرور مانند خطاهای 503 (سرویس غیرقابل دسترس) می‌تواند نشانه‌ای از فشار ناشی از یک حمله باشد.</li>
</ul>



<h3 class="wp-block-heading" id="h-انواع-حملات-ddos">انواع حملات DDoS</h3>



<p>با وجود اینکه حملات DDoS با یک هدف (افزایش بار ترافیکی سرور و از دسترس خارج کردن آن) صورت می‌گیرد، اما راهکارها و روش‌های مختلفی برای انجام آن وجود دارد. در ادامه با پنج مورد این روش‌ها آشنا خواهیم شد.</p>



<h3 class="wp-block-heading">1. حملات حجمی (Volume-Based Attacks)</h3>



<p>این نوع حملات با هدف ایجاد اشباع در پهنای باند شبکه انجام می‌شود. هکرها با ارسال حجم عظیمی از ترافیک به سایت یا سرور هدف، سعی در اختلال یا متوقف کردن سرویس دارند. مثال‌هایی از این نوع حملات شامل UDP Flood ،ICMP (Ping) Flood، و دیگر اشکال flood attacks می‌شوند.</p>



<h3 class="wp-block-heading">2. حملات پروتکل (Protocol Attacks)</h3>



<p>این حملات روی لایه پروتکل شبکه، مانند لایه انتقال (TCP/IP) تمرکز دارند و با هدف ایجاد اختلال در سرویس‌دهی عمل می‌کنند. آنها از ضعف‌های موجود در پروتکل‌های شبکه برای اشباع سرور یا تجهیزات شبکه با درخواست‌های غیرمعتبر استفاده می‌کنند. SYN Flood و Ping of Death نمونه‌هایی از این نوع حملات هستند.</p>



<h3 class="wp-block-heading" id="h-3-حملات-لایه-اپلیکیشن-application-layer-attacks">3. حملات لایه اپلیکیشن (Application Layer Attacks)</h3>



<p>حملات لایه اپلیکیشن (<strong><a href="https://hamravesh.com/blog/what-is-osi-model/">۷ لایه شبکه</a></strong>) به طور خاص، لایه برنامه (مانند وب سرورها) را هدف قرار می‌گیرند و سعی در ایجاد خلل در سرویس‌های خاص دارند. این حملات اغلب دشوارتر برای تشخیص هستند زیرا ترافیک تولید شده توسط آن‌ها می‌تواند شبیه به درخواست‌های معتبر باشد. نمونه‌هایی از این نوع حملات شامل HTTP Flood و Slowloris است.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="512" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/04/application_layer_ddos_example-1024x512.png" alt="حمله DDoS در لایه اپلیکیشن" class="wp-image-2242" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/04/application_layer_ddos_example-1024x512.png 1024w, https://hamravesh.com/blog/wp-content/uploads/2024/04/application_layer_ddos_example-300x150.png 300w, https://hamravesh.com/blog/wp-content/uploads/2024/04/application_layer_ddos_example-768x384.png 768w, https://hamravesh.com/blog/wp-content/uploads/2024/04/application_layer_ddos_example-1536x768.png 1536w, https://hamravesh.com/blog/wp-content/uploads/2024/04/application_layer_ddos_example-2048x1024.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption"><strong>ساختار حمله لایه Application </strong></figcaption></figure>



<h3 class="wp-block-heading">4. حملات چند وجهی (Multi-Vector Attacks)</h3>



<p>حملات چند وجهی ترکیبی از دو یا چند نوع حمله DDoS مختلف هستند که به طور همزمان اجرا می‌شوند. این رویکرد باعث می‌شود تشخیص و مقابله با حملات دشوارتر شود، زیرا نیازمند راه‌حل‌های امنیتی جامع و چندلایه است.</p>



<h3 class="wp-block-heading" id="h-5-حملات-تقویتی-amplification-attacks">5. حملات تقویتی (Amplification Attacks)</h3>



<p>حملات تقویتی با استفاده از ضریب بزرگ‌نمایی غیرمستقیم، حجم قابل توجهی از ترافیک را به سمت هدف می‌فرستند. در این روش، مهاجمان از سرورهای غیرمستقیم با استفاده از آسیب‌پذیری‌های خاص برای افزایش حجم ترافیک استفاده می‌کنند. NTP Amplification و DNS Amplification دو نمونه از این نوع حملات هستند.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="512" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/04/amplification_ddos_example-1024x512.png" alt="حملات تقویتی یا (Amplification Attacks)" class="wp-image-2243" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/04/amplification_ddos_example-1024x512.png 1024w, https://hamravesh.com/blog/wp-content/uploads/2024/04/amplification_ddos_example-300x150.png 300w, https://hamravesh.com/blog/wp-content/uploads/2024/04/amplification_ddos_example-768x384.png 768w, https://hamravesh.com/blog/wp-content/uploads/2024/04/amplification_ddos_example-1536x768.png 1536w, https://hamravesh.com/blog/wp-content/uploads/2024/04/amplification_ddos_example-2048x1024.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption"><strong>ساختار حمله تقویتی یا Amplification Attack</strong></figcaption></figure>



<h2 class="wp-block-heading" id="h-چگونه-با-حملات-ddos-مقابله-کنیم">چگونه با حملات DDoS مقابله کنیم؟</h2>



<p>اصلی‌ترین نگرانی در ارتباط با حملات DDoS مشخص کردن ترافیک عادی از حملات است. با تشخیص کاربران واقعی از بات‌ها شما به سرعت می‌توانید بات‌ها را مسدود کرده و حجم ترافیک ورودی را کاهش دهید تا کاربران واقعی بتوانند مانند سابق از سرویس‌های شما استفاده کنند. </p>



<p> اما انجام چنین کاری ساده نیست! در واقع چالش اصلی در حملات DDoS نیز همین موضوع است. برای حل این مشکل چندین روش وجود دارد که در ادامه برخی از اصلی‌ترین آن‌ها را بررسی خواهیم کرد:</p>



<h3 class="wp-block-heading" id="h-روش-blackhole-routing">روش Blackhole routing</h3>



<p>یکی از راهکارهای مقابله با DDoS استفاده از تکنیکی با نام «مسیردهی به سیاه‌چاله» است. در این روش، مدیران شبکه یک مسیر null را ایجاد کرده و تمام ترافیک‌های ورودی را به آن مسیر ارسال می‌کنند. البته همانطور که از توضیحات معلوم است، این روش چندان ایده‌آل نیست چرا که منظور از «تمام ترافیک‌های ورودی» در جمله قبلی، در واقع تمام ترافیک‌های کاربران واقعی و بات‌هاست. پس در نتیجه کسی به سرور اصلی دسترسی پیدا نخواهد کرد. </p>



<p>از این روش برای کمتر کردن میزان خسارات استفاده شده و به عنوان یک راه‌حل موقت در نظر گرفته می‌شود.</p>



<h3 class="wp-block-heading"><strong>روش Rate Limiting</strong></h3>



<p>روش دیگر، محدود کردن تعداد درخواست‌های ورودی به سرور در یک بازه زمانی خاص است. در این حالت سرور برای مثال در یک ساعت به تنها ۱۰۰۰ درخواست پاسخ داده و درخواست بیشتر را در آن بازه زمانی قبول نمی‌کند. </p>



<p>با وجود آنکه استفاده از این روش می‌تواند در جلوگیری از Web Scraping، سرقت محتوا توسط بات‌ها و همچنین عملیات Brute Force جوابگو باشد، اما در حملات پیچیده DDoS نباید انتظار زیادی در حل مشکلات از آن داشت.  </p>



<h3 class="wp-block-heading">فایروال</h3>



<p>فایروال یکی از کاربردی‌ترین روش‌ها برای حل حملات DDoS لایه ۷ است. با قرار دادن یک فایروال بین اینترنت و سرور اصلی، می‌توان فایروال را به چیزی شبیه به Reverse Proxy تبدیل کرد که در مقابل انواع خاصی از ترافیک‌های مشکوک و مخرب می‌تواند مقاومت کند. </p>



<p>با فیلترکردن درخواست‌ها براساس مجموعه‌ای از قوانین که برای شناسایی حملات DDoS استفاده می‌شود می‌توان تا حد زیادی از حملات لایه ۷ جلوگیری کرد. </p>



<h3 class="wp-block-heading" id="h-شبکه-توزیع-محتوا"><strong>شبکه توزیع محتوا</strong></h3>



<p>شبکه‌های توزیع محتوا (CDNs) می‌توانند با پراکندگی درخواست‌ها بر روی سرورهای متعدد، فشار ناشی از این حملات را کاهش دهند. با استفاده درست از شبکه‌های توزیع محتوا شما می‌توانید تا حد زیادی حملات DDoS را کنترل کنید. </p>



<h2 class="wp-block-heading">در پایان</h2>



<p>حملات DDoS از جمله شایع‌ترین حملات در دنیای دیجیتال است که سالانه میلیون‌ها دلار به کسب‌وکارهای دیجیتالی آسیب وارد می‌کند. با شناخت بهتر ساختار حملات DDoS و روش‌های مقابله با آن می‌توانید از آسیب‌های آن جلوگیری کنید. </p>



<p>همچنین استفاده از سرویس‌های ابری هم‌روش به کسب‌وکار شما کمک می‌کند تا در صورت بروز حملات DDoS در کمترین زمان ممکن آن را حل کرده و کمترین خسارت به وبسایت و سرویس‌های شما وارد شود. </p>
<p>The post <a href="https://hamravesh.com/blog/ddos-attack/">حمله DDoS چیست و چگونه اتفاق می‌افتد؟</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/ddos-attack/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>فایروال چیست و چطور کار می‌کند؟</title>
		<link>https://hamravesh.com/blog/what-is-firewall/</link>
					<comments>https://hamravesh.com/blog/what-is-firewall/#respond</comments>
		
		<dc:creator><![CDATA[بابک خوش‌نویس]]></dc:creator>
		<pubDate>Sat, 18 May 2024 16:30:00 +0000</pubDate>
				<category><![CDATA[شبکه]]></category>
		<category><![CDATA[مقالات]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=2343</guid>

					<description><![CDATA[<p>به‌طور خلاصه و به بیان ساده، «فایروال» (Firewall &#124; دیوار آتش) بین شبکه و اینترنت قرار می‌گیرد و جریان داده‌ها را هنگام ورود و خروج از شبکه کنترل می‌کند تا از تهدیدهای امنیتی احتمالی جلوگیری شود. در این مطلب پس از پاسخ به این پرسش که فایروال چیست، شرح خواهیم داده چرا فایروال باید هم [&#8230;]</p>
<p>The post <a href="https://hamravesh.com/blog/what-is-firewall/">فایروال چیست و چطور کار می‌کند؟</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>به‌طور خلاصه و به بیان ساده، «<strong>فایروال</strong>» (Firewall | دیوار آتش) بین شبکه و اینترنت قرار می‌گیرد و جریان داده‌ها را هنگام ورود و خروج از شبکه کنترل می‌کند تا از تهدیدهای امنیتی احتمالی جلوگیری شود. در این مطلب پس از پاسخ به این پرسش که فایروال چیست، شرح خواهیم داده چرا فایروال باید هم داده‌های ورودی و هم داده‌های خروجی را بازرسی کند. همچنین درک خواهیم کرد که فایروال پروکسی، WAF و دیگر انواع فایروال چه هستند و با هم چه تفاوت‌هایی دارند.</p>



<h2 class="wp-block-heading" id="h-فایروال-چیست">فایروال چیست؟</h2>



<p>فایروال یک سیستم امنیتی است که بر اساس مجموعه‌ای از قوانین امنیتی، ترافیک شبکه را نظارت و کنترل می‌کند. فایروال‌ها معمولا بین یک شبکه قابل اعتماد و یک شبکه غیرقابل اعتماد قرار می‌گیرند که اغلب شبکه غیرقابل اعتماد، اینترنت است. به‌عنوان مثال، شبکه‌های ادارات و شرکت‌ها اغلب از فایروال برای محافظت شبکه خود در برابر تهدیدات آنلاین استفاده می‌کنند.</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="800" height="380" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/04/What-is-Firewall.png" alt="محل قرارگیری فایروال" class="wp-image-2346" style="width:787px;height:auto" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/04/What-is-Firewall.png 800w, https://hamravesh.com/blog/wp-content/uploads/2024/04/What-is-Firewall-300x143.png 300w, https://hamravesh.com/blog/wp-content/uploads/2024/04/What-is-Firewall-768x365.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure>



<p>فایروال‌ها تصمیم می‌گیرند که آیا باید به ترافیک ورودی و خروجی اجازه عبور دهند یا خیر. آن‌ها می‌توانند به‌صورت سخت‌افزاری، نرم‌افزاری یا ترکیبی از هر دو ساخته شوند. واژه «فایروال» (دیوار آتش) در واقع از یک عملیات ساختمانی به اقتباس گرفته شده که در آن دیوارهایی در میان یا از میان ساختمان‌های طراحی شده برای محصور کردن آتش‌سوزی ساخته می‌شوند. به همین ترتیب، فایروال‌های شبکه نیز برای محدود کردن تهدیدات آنلاین مورد استفاده قرار می‌گیرند.</p>



<h2 class="wp-block-heading" id="h-تاریخچه-فایروال">تاریخچه فایروال</h2>



<p>پیدایش فایروال به اواخر دهه ۱۹۸۰ بازمی‌گردد. اولین دیوارهای آتش، بسته‌های داده خاصی را عبور می‌دادند یا مسدود می‌کردند. آن‌ها با بررسی هِدرهای لایه شبکه و لایه انتقال، برای مشاهده آدرس IP و پورت مبدأ و مقصد (مانند دیدن بخش‌های «به» و «از» در یک ایمیل)، تصمیم می‌گرفتند که کدام بسته‌ها را عبور دهند و کدام را مسدود کنند. این کار از عبور ترافیک غیرمجاز جلوگیری می‌کرد و بسیاری از حملات بدافزاری را متوقف می‌ساخت.</p>



<p>نسل بعدی فایروال‌ها، قابلیت‌های «حالت‌مند» (Stateful) را اضافه کردند و نسل‌های جدیدتر (مانند NGFW) توانایی بررسی ترافیک در لایه اپلیکیشن را نیز به دست آوردند. همان‌طور که قابلیت‌های فایروال‌ها در طول زمان تکامل یافته، روش استقرار آن‌ها نیز تغییر کرده است. در ابتدا، دیوارهای آتش دستگاه‌های سخت‌افزاری فیزیکی بودند که به زیرساخت شبکه شرکت‌ها متصل می‌شدند. اما با انتقال فرآیندهای کسب و کار به فضای ابری، هدایت تمام ترافیک شبکه از طریق یک جعبه فیزیکی، ناکارآمد شد. امروزه دیوارهای آتش می‌توانند به صورت نرم‌افزاری یا مجازی در فضای ابری نیز اجرا شوند.</p>



<h2 class="wp-block-heading" id="h-ضرورت-استفاده-از-فایروال-چیست">ضرورت استفاده از فایروال چیست؟</h2>



<p>کاربرد اصلی فایروال، «امنیت» است. فایروال‌ها می‌توانند ترافیک مخرب ورودی را قبل از رسیدن به شبکه رهگیری کرده و همچنین از خروج اطلاعات حساس از شبکه جلوگیری کنند. فایروال‌ها همچنین می‌توانند برای فیلتر کردن محتوا استفاده شوند.</p>



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



<h2 class="wp-block-heading" id="h-آشنایی-با-انواع-فایروال">آشنایی با انواع فایروال</h2>



<p>در این بخش به معرفی و شرح هر یک از انواع فایروال می‌پردازیم. ابتدا به فایروال‌های مبتنی بر پروکسی پرداخته می‌شود.</p>



<h3 class="wp-block-heading" id="h-فایروال-های-مبتنی-بر-پروکسی">فایروال‌های مبتنی بر پروکسی</h3>



<p>این نوع از فایروال‌ها، پروکسی‌هایی هستند که بین کلاینت‌ها و سرورها قرار می‌گیرند. کلاینت‌ها به فایروال متصل می‌شوند و فایروال بسته‌های خروجی را بررسی می‌کند. سپس یک اتصال با گیرنده مورد نظر (وب سرور) برقرار می‌کند. به همین ترتیب، زمانی که وب سرور قصد دارد پاسخی را به کلاینت ارسال کند، فایروال آن درخواست را رهگیری می‌کند، بسته‌ها را بررسی می‌کند و سپس پاسخ را از طریق اتصال جداگانه بین فایروال و کلاینت تحویل می‌دهد. فایروال مبتنی بر پروکسی به طور مؤثر از برقراری اتصال «مستقیم» بین کلاینت و سرور جلوگیری می‌کند.</p>



<h3 class="wp-block-heading" id="h-فایروال-وضعیت-محور-یا-حافظه-دار">فایروال وضعیت‌محور یا حافظه‌دار</h3>



<p>یک برنامه یا اپلیکیشن «وابسته به حالت» (<a href="https://hamravesh.com/blog/stateful-vs-stateless/">Stateful</a>) در علوم کامپیوتر، برنامه‌ای است که داده‌ها و اطلاعات مربوط به رویدادها و تعاملات قبلی را ذخیره می‌کند. «فایروال وضعیت‌محور» به جای بررسی هر بسته به‌صورت جداگانه، اطلاعات مربوط به اتصالات باز را ذخیره و از این اطلاعات برای تجزیه‌وتحلیل ترافیک ورودی و خروجی استفاده می‌کند. از آن‌جایی که فایروال‌های وضعیت‌محور همه بسته‌ها را بررسی نمی‌کنند، سرعت آن‌ها از دیوارهای آتش مبتنی بر پروکسی بیشتر است.</p>



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



<p>فایروال‌های وضعیت‌محور می‌توانند از پورت‌ها نیز محافظت کنند، به این صورت که تمام پورت‌ها را بسته نگه می‌دارند، مگر اینکه بسته‌های ورودی درخواست دسترسی به یک پورت خاص را داشته باشند. این ویژگی می‌تواند در برابر نوعی حمله به نام «ردیابی پورت» (Port Scanning)، مقاومت ایجاد کند. لازم به توضیح است که یک درگاه شبکه یا همان پورت، محلی است که اطلاعات از آنجا ارسال می‌شود؛ پورت یک مکان فیزیکی نیست، بلکه یک نقطه پایانی ارتباطی به حساب می‌آید.</p>



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



<h3 class="wp-block-heading" id="h-فایروال-های-نسل-جدید">فایروال‌های نسل جدید</h3>



<p>فایروال‌های نسل جدید یا «نسل بعدی» (Next-generation Firewalls |‌ NGFW)، دیوارهای آتشی هستند که توانایی‌های دیوارهای آتش سنتی را دارند، اما علاوه بر آن از ویژگی‌ها و قابلیت‌های افزوده‌ای هم برخوردارند تا در برابر تهدیدهای موجود در لایه‌های دیگرِ مدل OSI نیز محافظت کنند. برخی از ویژگی‌های اختصاصی فایروال‌های نسل جدید عبارتند از:</p>



<ul class="wp-block-list">
<li>«<strong>بازرسی عمیق بسته</strong>»<strong> </strong>(<strong>DPI </strong>|<strong> Deep Packet Inspection</strong>): فایروال‌های NGFW نسبت به فایروال‌های سنتی، بازرسی عمیق‌تری از بسته‌ها انجام می‌دهند. این بازرسی عمیق می‌تواند به مواردی مانند محتوای بسته‌ها و اینکه چه برنامه‌ای توسط بسته‌ها در حال دسترسی است، توجه کند. این امر به فایروال امکان می‌دهد قوانین فیلترینگ ریزتری را اعمال کند.</li>



<li>«<strong>آگاهی از برنامه</strong>» (<strong>Application Awareness</strong>): با فعال کردن این ویژگی، فایروال از برنامه‌های در حال اجرا و پورت‌هایی که این برنامه‌ها استفاده می‌کنند، آگاه می‌شود. این قابلیت می‌تواند در برابر انواع خاصی از بدافزارها که هدف آن‌ها متوقف کردن یک فرایند در حال اجرا و سپس تصرف پورت آن است، محافظت کند.</li>



<li>«<strong>آگاهی از هویت</strong>» (<strong>Identity Awareness</strong>): این ویژگی به فایروال اجازه می‌دهد قوانینی را بر اساس هویت، مانند اینکه از کدام کامپیوتر استفاده می‌شود، کدام کاربر وارد سیستم شده است و غیره، اعمال کند.</li>



<li>«<strong>ایجاد محیط ایزوله</strong>» (<strong>Sandboxing</strong>): فایروال‌ها می‌توانند بخش‌هایی از کدهای مرتبط با بسته‌های ورودی را جدا کرده و آن‌ها را در یک محیط «ایزوله» (Sandbox) اجرا کنند تا اطمینان حاصل شود رفتار مخربی ندارند. نتایج این آزمون سندباکس می‌تواند به عنوان معیاری برای تصمیم‌گیری در مورد این موضوع استفاده شود که آیا باید به بسته‌ها اجازه ورود به شبکه داده شود یا خیر.</li>
</ul>



<h3 class="wp-block-heading" id="h-فایروال-های-وب-اپلیکیشن-فایروال-کاربرد-وب-waf">فایروال‌های وب‌اپلیکیشن (فایروال کاربرد وب | WAF)</h3>



<p>در حالی که فایروال‌های سُنتی به محافظت از شبکه‌های خصوصی در برابر وب‌اپلیکیشن‌های مخرب کمک می‌کنند، «فایروال‌های وب‌اپلیکیشن» (Web Application Firewall |‌ WAF) به محافظت از وب‌اپلیکیشن‌ها در برابر کاربران مخرب کمک می‌کنند. یک فایروال WAF با فیلتر کردن و نظارت بر ترافیک HTTP بین یک وب اپلیکیشن و اینترنت، به محافظت از اپلیکیشن وب کمک می‌کند. معمولاً WAF وب اپلیکیشن‌ها را در برابر حملاتی مانند «جعل درخواست میان سایتی» (Cross-Site Forgery)، «اسکریپت‌نویسی میان سایتی» (XSS | Cross-Site Scripting)، «ادغام فایل» (File Inclusion) و تزریق SQL، به همراه برخی موارد دیگر محافظت می‌کند.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="800" height="362" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/04/WAF.png" alt="نقش فایروال وب اپلیکیشن یا Web Application Firewall" class="wp-image-2361" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/04/WAF.png 800w, https://hamravesh.com/blog/wp-content/uploads/2024/04/WAF-300x136.png 300w, https://hamravesh.com/blog/wp-content/uploads/2024/04/WAF-768x348.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure>



<p>با استقرار فایروال وب‌اپلیکیشن در مقابل یک وب‌اپلیکیشن، سپری بین وب‌اپلیکیشن و اینترنت قرار خواهد گرفت. در حالی که یک فایروال مبتنی بر پروکسی از هویت ماشین کاربر با استفاده از یک واسط محافظت می‌کند، فایروال وب‌اپلیکیشن نوعی پروکسی معکوس است که به وسیله عبور دادن کاربران از فایروال قبل از رسیدن به سرور از قرار گرفتن سرور در معرض دید محافظت می‌کند.</p>



<p>یک فایروال وب‌اپلیکیشن بر اساس مجموعه‌ای از قوانین عمل می‌کند که اغلب به آن‌ها «Policy» (خط مشی |‌ سیاست) گفته می‌شود. هدف این خط مشی‌ها، محافظت در برابر آسیب‌پذیری‌های موجود در اپلیکیشن به وسیله فیلتر کردن ترافیک مخرب است. بخشی از ارزش یک وب‌اپلیکیشن از سرعت و سهولت اعمال تغییرات در سیاست‌ها نشأت می‌گیرد که امکان واکنش سریع‌تر به انواع مختلف بُردارهای حمله را فراهم می‌کند؛ در طول یک حمله DDoS، «محدودسازی نرخ» (Rate Limiting) می‌تواند با تغییر سیاست‌های فایروال به سرعت اعمال شود. محصولات تجاری فایروال وب‌اپلیکیشن، همه روزه میلیون‌ها کاربر وب را در برابر حملات محافظت می‌کنند.</p>



<h3 class="wp-block-heading" id="h-فایروال-به-عنوان-سرویس-firewall-as-a-service-fwaas">فایروال به‌عنوان سرویس | Firewall-as-a-service | FWaaS</h3>



<p>فایروال به‌عنوان سرویس (FWaaS)، مدلی جدیدتر برای ارائه قابلیت‌های فایروال از طریق فناوری ابری است. این سرویس ممکن است «دیوار آتش ابری» نیز نامیده شود. FWaaS مانعی مجازی در اطراف پلتفرم‌های ابری، زیرساخت و برنامه‌ها ایجاد می‌کند؛ درست مانند دیوارهای آتش سُنتی که مانع محافظتی در اطراف شبکه داخلی یک سازمان ایجاد می‌کنند. FWaaS اغلب برای محافظت از دارایی‌های ابری و «چندابری» (Multi-Cloud) نسبت به فایروال‌های سنتی مناسب‌تر است.</p>



<h2 class="wp-block-heading" id="h-فایروال-شبکه-چیست">فایروال شبکه چیست؟</h2>



<p>«فایروال شبکه» (Network Firewall) فایروالی است که از شبکه در برابر تهدیدات محافظت می‌کند. تقریباً تمام فایروال‌های امنیتی، فایروال شبکه محسوب می‌شوند، هرچند فایروال‌ها می‌توانند از دستگاه‌های منفرد نیز محافظت کنند. در حالی که فایروال‌ها بخش مهمی از امنیت شبکه هستند، این حوزه جنبه‌های دیگری از جمله «کنترل دسترسی»، «احراز هویت کاربران» و «کاهش حملات DDoS» نیز دارد.</p>



<h2 class="wp-block-heading" id="h-فایروال-ها-مبتنی-بر-نرم-افزارند-یا-سخت-افزار-محور">فایروال‌ها مبتنی بر نرم‌افزارند یا سخت‌افزار محور؟</h2>



<p>در ابتدا، فایروال‌ها دستگاه‌های سخت‌افزاری بودند و برخی از فایروال‌های سخت افزاری همچنان مورد استفاده قرار می‌گیرند، اما بسیاری از دیوارهای آتش مُدِرن و امروزی، نرم‌افزاری هستند؛ یعنی می‌توانند روی انواع مختلف سخت‌افزار اجرا شوند. در همین حال، فایروال‌های FWaaS در بستر ابری میزبانی می‌شوند.</p>



<h2 class="wp-block-heading" id="h-جمع-بندی">جمع‌بندی</h2>



<p>فایروال ابزار امنیتی مهمی است که در بین شبکه و اینترنت قرار گرفته و بر اساس قوانین امنیتی، ترافیک ورودی و خروجی را کنترل می‌کند. این ابزار می‌تواند نرم‌افزاری، سخت‌افزاری یا ترکیبی از هر دو باشد و انواع متنوعی مانند فایروال پروکسی، فایروال حالت‌مند، فایروال نسل جدید، فایروال وب (WAF) و فایروال به عنوان سرویس (FWaaS) دارد. فایروال‌ها با مسدود کردن ترافیک مخرب و تهدیدآمیز از نفوذ به شبکه جلوگیری و همچنین از خروج اطلاعات حساس از شبکه ممانعت می‌کنند.</p>
<p>The post <a href="https://hamravesh.com/blog/what-is-firewall/">فایروال چیست و چطور کار می‌کند؟</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/what-is-firewall/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
