راه های مختلفی برای تقویت امنیت وب سرور NGINX وجود دارد که یکی از آنها کنترل دسترسی بر اساس آدرس IP است. در این پست نحوه ایمن سازی برنامه های کاربردی وب را با کنترل دسترسی بر اساس آدرس IP کاربر در NGINX توضیح خواهیم داد.

شما با کنترل دسترسی IP ها می توانید از وقوع بسیاری از تهدیدات امنیتی از طرف هکر ها، جلوگیری کنید.

فرض میکنیم شما وب سرور Nginx را روی سرور خود نصب و اجرا کرده اید. اگر به راهنما نیاز دارید، پیشنهاد میکنیم آموزش نصب LEMP را ببینید. در آموزش نصب LEMP، نحوه نصب Nginx روی CentOS 7 آمده است.


 

کنترل دسترسی بر اساس آدرس IP کاربر در NGINX

 

با استفاده از ماژول ngx_http_access_module در NGINX میتوانید دسترسی آدرس‌های IP کاربران خاص را کنترل کنید. با دستوراتی که در ادامه میگوییم، میتوانید دسترسی یک IP را قبول یا رد (Allow, Deny) کنید.

دستورالعمل مجاز (allow directive) همانطور که از نام آن پیداست اجازه دسترسی به یک آدرس IP خاص، شبکه، سوکت یونیکس و برخی موارد دیگر را می دهد. و دستورالعمل رد (deny directive) دسترسی به یک آدرس IP خاص، شبکه، سوکت یونیکس و موارد دیگر را رد می کند.

هر دو دستورالعمل در HTTP، سرور، مکان و همچنین limit_except معتبر هستند. در اینجا مثالی از استفاده از دستورات مجاز و رد برای محدود کردن دسترسی به یک سرویس API آورده شده است:

upstream app_api {
keepalive 100;
server 10.1.1.50:5000;
server 10.1.1.71:5001;
}
server {
listen 80;
server_name _;
access_log /var/log/nginx/app_api_access.log main;
error_log /var/log/nginx/app_api_error.log debug;
root / usr / share / nginx / html /;
location / {
try_files $ uri / api;
}
location / api {
proxy_read_timeout 3600;
proxy_connect_timeout 3600s;
keepalive_timeout 15;
send_timeout 300;
proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $ scheme;
proxy_set_header Host $ http_host;
proxy_redirect off;

proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_pass http: // app_api $ request_uri;

#list of allowed IPs to access API
allow 10.10.10.20;
allow 10.10.40.29;
allow 192.168.2.23;
allow 192.168.10.0/24;
deny all;
}
}

 

در مثال بالا، هرگونه درخواست برای دسترسی به هر یک از نقاط پایانی API پروکسی فقط برای آدرس‌های IP 10.10.10.20، 10.10.40.29، 192.168.2.23 و همه IP های موجود در شبکه 192.168.10.0/24 مجاز است. همچنین با توجه به خط آخر، درخواست از هر آدرس IP یا شبکه یا سوکت دامنه یونیکس دیگر رد خواهد شد.

کسانی که IP آنها مجاز نیست، به محض ورود به سرور شما، با ارور 403 مواجه می شوند.

Control Access ip iranicaserver

 

بعد از این کار فایل /var/log/nginx/app_api_error.log را چک کنید. گزارش هایی مبنی بر اینکه چه IP هایی برای ورود به سرور شما تلاش کرده اند و تلاش آنها ناموفق بوده را خواهید دید.

Control Access ip iranicaserver


 

برای زمان هایی که قصد دارید دسترسی افزاد خاصی را به سایت یا سرور خود مجاز یا محدود کنید، این روش بسیار کاربرد دارد. همچنین با کنترل دسترسی IP ها باعث افزایش امنیت سایت خود می شوید.

 

 

 

4رای - امتیاز 5 ممنون از امتیازی که دادید..!

دسته بندی شده در: