قرار دادن یک CDN یا reverse proxy جلوی سایت، ترافیک را جذب میکند و آدرس سرور را پنهان میکند، اما فقط تا زمانی که IP واقعی ناشناخته بماند. مهاجمان بهندرت CDN را میشکنند. آنها مستقیماً دنبال origin میگردند. این راهنما فهرست میکند origin از کجا لو میرود و چگونه میتوان آن را وادار کرد همهچیز جز پروکسی شما را رد کند.
origin چگونه پیدا میشود
- تاریخچه DNS: سرویسها رکوردهای قدیمی را نگه میدارند، بنابراین IPی که پیش از افزودن CDN استفاده میکردید هنوز ثبت شده است.
- زیردامنهها: رکوردهای
mail.،ftp.یاdev.که مستقیم به سرور اشاره میکنند. - هدرهای ایمیل: ایمیل خروجی از همان میزبان، IP آن را در هدرها فاش میکند.
- شفافیت گواهی و اسکنهای اینترنتی: اسکنرها یک گواهی را با هر IPای که آن را ارائه میدهد تطبیق میدهند.
- رفتار برنامه: وبهوکها، دریافتکنندههای تصویر و قابلیتهای «این URL را بررسی کن» از origin به بیرون متصل میشوند.
گام ۱: از صفر و تمیز شروع کنید
اگر سرور قبلاً در معرض دید قرار گرفته، امنترین راهحل یک IP جدید یا یک سرور جدید و مهاجرت است. پنهان کردن آدرسی که از قبل عمومی شده جواب نمیدهد. جابهجایی را با راهنمای مهاجرت بدون قطعی برنامهریزی کنید.
گام ۲: فقط ترافیک پروکسی را بپذیرید
پورتهای وب را فقط از بازههای منتشرشده پروکسی باز کنید و هیچ چیز دیگری را نه. با UFW این کار به شکل زیر است، با استفاده از بازههایی که ارائهدهنده شما منتشر میکند.
sudo ufw default deny incoming
sudo ufw allow OpenSSH
for ip in $(cat proxy-ranges.txt); do sudo ufw allow from "$ip" to any port 443 proto tcp; done
sudo ufw enable
چون بازهها تغییر میکنند، فهرست را بهصورت زمانبندیشده بهروز کنید. برای اطمینان بیشتر از authenticated origin pulls (mutual TLS) استفاده کنید تا Nginx هر کلاینتی را که گواهی پروکسی را ندارد رد کند.
گام ۳: هر چیزی را که میتواند نشت کند جدا کنید
- ایمیل را از طریق میزبان یا رلهای دیگر ارسال کنید، هرگز از origin.
- زیردامنههای غیر وب را از IP مربوط به origin دور نگه دارید.
- درخواستهای خروجی برنامه را از طریق یک پروکسی یا یک worker جداگانه انجام دهید.
- یک server block پیشفرض Nginx تعریف کنید که برای
Hostناشناخته پاسخ خالی برگرداند، تا اسکن IP خام چیزی نشان ندهد.
server {
listen 443 ssl default_server;
ssl_reject_handshake on;
}
گام ۴: مثل یک مهاجم تست کنید
دامنه خود را در ابزارهای تاریخچه DNS جستوجو کنید، بازه IP خودتان را برای یافتن گواهی اسکن کنید و هدرهای ایمیل یک پیام آزمایشی را بررسی کنید. اگر هر یک از آنها origin را نشان داد، IP را عوض کنید و دوباره تکرار کنید.
به یاد داشته باشید این کار چه میکند و چه نمیکند: از در دسترس بودن و حریم خصوصی آدرس محافظت میکند. اینکه صاحب حساب کیست را پنهان نمیکند. برای آن، گمنامی واقعی هاستینگ گمنام را بخوانید و برای حملاتی که از لایه شبکه عبور میکنند دفاعهای لایه 7 را ببینید.