image 11
Hướng dẫn cài đặt GeoIP trên DirectAdmin 14

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

  1. Di chuyển vào thư mục /usr/local/src
  2. 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.
  3. Giải nén tệp tin GeoIP.1.2.10.tar.gz. Các tùy chọn zx là để giải nén và v là để in ra thông tin về quá trình giải nén.
  4. Di chuyển vào thư mục vừa được tạo ra sau khi giải nén.
  5. Sử dụng apxs để biên dịch và cài đặt module mod_geoip2
  6. 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
CleanShot 2023 12 18 at 21.24.26
Hướng dẫn cài đặt GeoIP trên DirectAdmin 15

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
CleanShot 2023 12 18 at 22.13.06
Hướng dẫn cài đặt GeoIP trên DirectAdmin 16

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
CleanShot 2023 12 18 at 21.26.10
Hướng dẫn cài đặt GeoIP trên DirectAdmin 17

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

CleanShot 2023 12 18 at 22.03.24
Hướng dẫn cài đặt GeoIP trên DirectAdmin 18

Tôi sử dụng đoạn .htaccess sau để chặn


    GeoIPEnable On
    RewriteEngine On
	RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(CN|SG)$
	RewriteRule ^(.*)$ – [F,L] 
  • 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

CleanShot 2023 12 18 at 22.05.02
Hướng dẫn cài đặt GeoIP trên DirectAdmin 19

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.