بلاک و وایت لیست کردن آیپی ها | Nginx from scratch
۲۸ تیر ۱۴۰۴
یاد میگیریم چطور یک آیپی رو بلاک کنیم یا آیپی های مورد نظرمون رو بلاک یا وایت لیست کنیم تا فقط از طریق یکسری آیپی خاص بتوان به وب سرویس دسترسی داشت.
بعضی مواقع نیاز داریم تا دسترسی به یک مسیر خاص رو بر حسب IP محدود کنیم. برای اینکار میتونیم از ترکیب دستورهای allow
و deny
استفاده کنیم.
با دستور allow میتونیم مشخص کنیم چه کسانی اجازه دسترسی دارند و با deny دسترسی سایرین رو محدود کنیم. به همراه دستورهای allow و deny میتونیم از یک IP , CIDR و یا مقدار all
استفاده کنیم. (مستندات)
در مثال بالا، اول با deny all
همهی دسترسیها را محدود کردیم و بعد با دستورهای allow
فقط به IP های دلخواه اجازهی دسترسی دادیم.
در بعضی مواقع نیاز داریم تا تنها دسترسی به HTTP Method خاصی را محدود کنیم, در این حالت میتوان از دستور limit_except
استفاده کنیم. این دستور مشخص میکند چه متدهایی نباید محدود شوند!
نکته: محدود نکردن GET باعث میشود که متد HEAD نیز محدود نشود.
طبق مستندات , متدهای زیر را میتوان همراه با دستور limit_except
استفاده کرد:
با استفاده از دستور satisty
میتونیم چندین محدودیت ایجاد کنیم و مشخص کنیم در صورتی با پاس شدن یکی یا همه ی آنها کاربر اجازه دسترسی داشته باشد (مستندات). این دستور به همراه any
یا all
مورد استفاده قرار میگیرد.
با توجه به مثال بالا از any
استفاده کردیم. بدین ترتیب, اگر آیپی کاربر در رنجی که مشخص کردیم باشد و یا یوزرنیم و پسوورد صحیحی ارائه دهد, میتواند به محتوا دسترسی داشته باشد.
سورس کد تمامی مثال هایی که در بالا مطرح کردیم از طریق گیت هاب قابل دسترس هستند.
قسمت قبل: ایجاد پسوورد بر روی یک مسیر | Nginx from scratch
قسمت بعد: فشرده سازی پاسخ ها | Nginx from scratch