NỘI DUNG
GeoIP là một cơ sở dữ liệu địa chỉ IP được sử dụng để xác định vị trí địa lý của một địa chỉ IP. Thông tin này có thể được sử dụng cho nhiều mục đích khác nhau, chẳng hạn như:
- Phân tích lưu lượng truy cập trang web
- Xác định quốc gia hoặc khu vực của người dùng
- Tùy chỉnh nội dung dựa trên vị trí địa lý
Trong bài viết này, chúng ta sẽ hướng dẫn bạn cách cài đặt GeoIP trên DirectAdmin.
Bước 1: SSH vào máy chủ
Việc đầu tiên bạn cần SSH vào máy chủ Linux, nếu bạn chưa biết cách SSH hãy xem bài viết tại đây
Bước 2: Tải và cài đặt GeoIP
Bạn hãy copy các lệnh sau để thực hiện cài đặt
Chú thích các lệnh
- Di chuyển vào thư mục
/usr/local/src
- Sử dụng
wget
để tải về phiên bản 1.2.10 của module mod_geoip2 từ trang GitHub của MaxMind. Tệp tin sẽ được lưu với tên làGeoIP.1.2.10.tar.gz
. - Giải nén tệp tin
GeoIP.1.2.10.tar.gz
. Các tùy chọnz
vàx
là để giải nén vàv
là để in ra thông tin về quá trình giải nén. - Di chuyển vào thư mục vừa được tạo ra sau khi giải nén.
- Sử dụng
apxs
để biên dịch và cài đặt modulemod_geoip2
- Chạy lệnh này để tái cấu hình DirectAdmin và Apache để áp dụng các thay đổi vừa được thực hiện.
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
Sau khi thực hiện hoàn tất bạn sẽ thấy một file /usr/lib/apache/mod_geoip.so
Chú ý: Nếu bạn gặp lỗi mod_geoip.c:63:19: fatal error: GeoIP.h: No such file or directory
hãy chạy lệnh sau và thực hiện biên dịch lại.
yum install GeoIP-devel
Bước 3: 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.
apachectl -M 2>&1 | grep geoip
Thông thường tôi sử dụng GeoIP để chặn truy cập các quốc gia chỉ định. Ví dụ bên dưới tôi sẽ chặn quốc gia SG bằng GeoIP với .htaccess
- Trước khi chặn
Tôi đứng tại một máy chủ VPS ở SG và curl -I https://caissl.com/
về. Kết quả trả về 200
Tôi sử dụng đoạn .htaccess
sau để chặn
<IfModule mod_geoip.c>
GeoIPEnable On
RewriteEngine On
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(CN|SG)$
RewriteRule ^(.*)$ – [F,L]
</IfModule>
- Sau khi chặn
Lưu ý: Nếu không hoạt độngg bạn hãy khởi động lại dịch vụ webserver
Bây giờ tôi thực hiện curl lại kết quả trả về 403
Như vậy, bạn đã biết cách cài đặt GeoIP trên DirectAdmin. GeoIP là một công cụ hữu ích có thể được sử dụng cho nhiều mục đích khác nhau.