یک پست آموزشی در خصوص دیپلوی کردن به روش امن تر و ریسک هایی که شاید نمیدونستید وجود دارن.
معمولاً یک IP دارید که آیپی سرورتون هست و اونجا دیپلوی میکنید.
مشکل اول: DDoS
برای امن شدن در برابر DDoS معمولاً میاین سراغ یک سرویسی مثل Cloudflare. دامینتون رو اونجا ثبت میکنید، name serverتون رو کلادفلیر میکنید، و اگه رو DNS پروکسی زده باشید خودش منیج میکنه که زیر حمله Under Attack Mode فعال بشه.
منتهی این مدل خودش دو تا مشکل امنیتی داره:
مشکل ۱: لو رفتن IP سرور
اگه اتکر به هر نحوی به IP واقعی سرورتون دسترسی پیدا کنه، میتونه مستقیم به سرور اتک بزنه، نه به سایتتون. یعنی کل لایهی محافظتی کلادفلیر رو دور میزنه.
مشکل ۲: ترافیک انکریپتنشده بین Cloudflare و سرور
حتی وقتی پروکسی کلادفلیر روشنه، ترافیک بین edge کلادفلیر و سرور شما لزوماً انکریپت نیست. بهصورت پیشفرض این بخش میتونه بهصورت HTTP ساده روی اینترنت پابلیک رد و بدل بشه (مگه اینکه SSL روی سرورتون نصب کرده باشید و mode رو Full/Strict گذاشته باشید). یعنی همون بخشی که از edge کلادفلیر تا IP سرور طی میشه، اگه کسی مسیر رو شنود کنه یا بین راه بایسته، میتونه ترافیک رو بخونه یا دستکاری کنه.
راهحل: Cloudflare Tunnel
به جای اینکه پورت ریورسپروکسیتون (nginx یا هرچی) رو مستقیم روی اینترنت پابلیک باز نگه دارید، یک پراسس به اسم cloudflared روی سرور بالا میارید که خودش یک کانکشن outbound به شبکهی کلادفلیر میزنه. یعنی هیچ پورتی روی سرورتون باز نیست، سرور خودش میره وصل میشه به کلادفلیر.
ترافیک کاربر اول میرسه به edge کلادفلیر (همونجا DDoS protection و WAF اعمال میشه)، بعد از همون تونلی که از قبل برقرار شده به سرور شما فوروارد میشه. این تونل خودش بهصورت پیشفرض انکریپته، پس دیگه نگران HTTP ساده بین کلادفلیر و سرورتون هم نیستید.
نتیجه: چون IP سرور اصلاً exposed نیست و مسیر هم سرتاسر انکریپته، اتکر نه چیزی برای هدف گرفتن مستقیم داره، نه جایی برای شنود ترافیک.
@PyBackendHub
Post #1277
4.49K
- ❤ 21
- 👍 5
- 👏 2