Nội dung bài viết
Giới thiệu
GeoIP (Geolocation IP) là công nghệ cho phép xác định vị trí địa lý của một thiết bị dựa trên địa chỉ IP. Công nghệ này được sử dụng rộng rãi trong nhiều ứng dụng khác nhau, bao gồm:
- Quảng cáo và Tiếp thị: Điều chỉnh nội dung quảng cáo dựa trên vị trí địa lý của người dùng để tăng tính hiệu quả.
- Phân tích trang web: Cung cấp thông tin về khách truy cập từ các vùng địa lý khác nhau, giúp quản trị viên hiểu rõ hơn về đối tượng mục tiêu.
- Bảo mật: Phát hiện và ngăn chặn truy cập trái phép từ các vị trí đáng ngờ.
- Dịch vụ Nội dung: Cung cấp nội dung phù hợp với khu vực của người dùng, chẳng hạn như ngôn ngữ hoặc tin tức địa phương.
- Điều chỉnh giá: Tùy chỉnh giá sản phẩm hoặc dịch vụ dựa trên vị trí của người dùng.
Công nghệ GeoIP thường sử dụng các cơ sở dữ liệu IP được cập nhật liên tục để tra cứu và xác định vị trí địa lý tương ứng với từng địa chỉ IP. Những cơ sở dữ liệu này chứa thông tin về địa chỉ IP và các thuộc tính địa lý như quốc gia, thành phố, khu vực, và đôi khi cả mã bưu điện.
Hướng dẫn cài đặt GeoIP
Bước 1: Cài đặt GeoIP từ Source Github
cd /usr/local/src
wget https://github.com/maxmind/geoip-api-mod_geoip2/archive/1.2.10.tar.gz -O GeoIP.1.2.10.tar.gz
tar -zxvf GeoIP.1.2.10.tar.gz
cd geoip-api-mod_geoip2-1.2.10/
apxs -i -a -L/usr/local/lib -I/usr/local/include -lGeoIP -c mod_geoip.c
/usr/local/directadmin/custombuild/build rewrite_confs
Chú ý: Nếu chạy các lệnh trên gặp lỗi mod_geoip.c:63:19: fatal error: GeoIP.h: No such file or directory
như hình dưới, thì bạn chỉ cần chạy lại lệnh để thực hiện biên dịch lại.
yum install GeoIP-devel -y
Bước 2: Kích hoạt Module trong file cấu hình
echo "LoadModule geoip_module /usr/lib/apache/mod_geoip.so" >> /etc/httpd/conf/extra/httpd-includes.conf
Sau đó bạn khởi động lại dịch vụ Apache. Nếu kết quả trả về geoip_module (shared)
đã thành công.
systemctl restart httpd
apachectl -M 2>&1 | grep geoip
Bước 3: Sử dụng GeoIP để chặn truy cập theo quốc gia
Ở đây mình sẽ làm một ví dụ đó là sử dụng GeoIP để chặn truy cập một quốc gia nào đó. Và để chặn IP của một quốc gia nào đó truy cập vào website, các bạn có thể sử dụng rule bên dưới và thêm vào file .htaccess
của website cần chặn.
<IfModule mod_geoip.c>
GeoIPEnable On
RewriteEngine On
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(SG|CN)$
RewriteRule ^(.*)$ – [F,L]
</IfModule>
Chú thích:
- SG và CN: là mã quốc gia mà bạn muốn chặn (và ngăn cách giữa các quốc gia là dấu | , ở đây thì mình đang làm mẫu chặn 2 quốc gia là Singapore và Trung Quốc )
Bước 4: Kiểm tra kết quả
Sau khi cấu hình GeoIP xong, bây giờ bạn hãy kiểm tra kết quả trước và sau khi chặn có gì khác biệt nhé
- Trước khi chặn
Mình có một máy chủ ở Singapore, và mình sẽ thực hiện lệnh curl -I https://damtrungkien.com
để kiểm tra. Và kết quả trả về mã 200 tức là có quyền truy cập.
Và bây giờ mình sẽ thêm rule chặn vào như hình.
- Sau khi chặn
Và bây giờ mình kiểm tra lại thì kết quả đã trả về mã 403 , tức là không có quyền truy cập.
Lưu ý: Nếu không hoạt động bạn hãy khởi động lại dịch vụ webserver
Như vậy ở bài viết trên mình đã hướng dẫn các bạn cách cài đặt và sử dụng GeoIP vô cùng đơn giản và hiệu quả. Hy vọng bài viết sẽ giúp ích cho bạn.
Chúc các bạn thành công..!