مسدود کردن IP کشورها در Nginx با GeoIP Module
بستن IP کشورها در Nginx با GeoIP Module
در این آموزش نحوه راه اندازی ماژول GeoIP در وب سرور nginx برای مسدود کردن IP کشورهای بازدید کننده رو توضیح میدیم که IP کشورهای بازدید کننده از سوی دیتابیس GeoIP تشخیص داده میشه و nginx به ماژول HttpGeoipModule باید کامپایل بشه تا فعال بشه.
ابتدا EPEL و Nginx-Mainline رو نصب و فعال میکنیم ، سپس nginx-module-geoip رو نصب میکنیم
sudo yum install epel-release
yum install nginx-module-geoip
بعد کد زیر رو در این مسیر ” /etc/nginx/nginx.conf ” اضافه میکنیم
load_module "modules/ngx_http_geoip_module.so";
برای چک کردن اینکه خطای syntax در فایل nginx.confن نباشه کد زیر رو در ترمینال میزنیم
nginx -t
اگه خطایی نبود Nginx رو reload میکنیم
nginx -s reload
و دستور زیر رو برای تایید ماژول اجرا میکنیم
nginx -V خروجی به شکل زیر خواهد بود : nginx version: nginx/1.13.5 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) built with OpenSSL 1.0.1e-fips 11 Feb 2013 TLS SNI support enabled configure arguments: --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --pid-path=/var/run/nginx.pid --lock-path=/var/lock/subsys/nginx --user=nginx --group=nginx --with-http_gzip_static_module --with-http_stub_status_module --with-http_ssl_module --with-pcre --with-file-aio --with-http_realip_module --without-http_scgi_module --without-http_uwsgi_module --without-http_fastcgi_module --with-http_geoip_module --add-module=/tmp/nginx-sticky-module-ng --add-module=/tmp/nginx_upstream_check_module
تنظیم کردن Geoip برای مسدود لیست کشورها
فایل زیر رو ویرایش میکنیم
/etc/nginx/nginx.conf
و کد زیر رو در بلاک http {} block قرار میدیم
[...] geoip_country /usr/share/GeoIP/GeoIP.dat; map $geoip_country_code $allowed_country { default yes; FK no; FM no; EH no; } [...]
توجه کنین […] کپی نشه ، […] فقط برای نمایش بلاک بندی است.
در کد بالا تمای کشورها اجازه ی ورود به سایت رو دارن ، غیر از 3 تا کشور FK , FM , EH .
اسم لیست کشورها برای مسدود سازی رو میتونین از این سایت دریافت کنین
[...] geoip_country /usr/share/GeoIP/GeoIP.dat; map $geoip_country_code $allowed_country { default no; FK yes; FM yes; EH yes; } [...]
همچنین در کد بالا تمامی کشورها اجازه ی ورود به سایت رو ندارن به غیر از 3 کشور FK , FM , EH که اجازه ورود دارن.