0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

Hướng Dẫn Tích Hợp SafeLine WAF với Apache APISIX Nhanh Chóng

Đăng vào 1 tháng trước

• 4 phút đọc

Hướng Dẫn Tích Hợp SafeLine WAF với Apache APISIX

Bạn muốn thêm một tường lửa ứng dụng web (WAF) mã nguồn mở mạnh mẽ vào cổng API của mình? Trong hướng dẫn này, chúng ta sẽ cùng nhau tích hợp SafeLine WAF với Apache APISIX, giúp bảo vệ toàn diện lưu lượng truy cập và chặn các yêu cầu độc hại như SQL injection, XSS và nhiều hơn nữa.

Mục Lục

Giới Thiệu về APISIX và SafeLine

Apache APISIX là một cổng API hiệu suất cao, thân thiện với đám mây, cung cấp các tính năng như định tuyến động, chia tách lưu lượng và cân bằng tải.
SafeLine WAF, được phát triển bởi Chaitin Tech, cung cấp khả năng bảo vệ HTTP tiên tiến và một công cụ phát hiện tích hợp để bảo vệ các ứng dụng web.

Với APISIX v3.5.0 hoặc cao hơn, plugin chaitin-waf có thể dễ dàng định tuyến lưu lượng qua SafeLine để kiểm tra an ninh.

Yêu Cầu Hệ Thống

  • APISIX ≥ 3.5.0
  • SafeLine ≥ 5.6.0

Bước 1: Cấu Hình SafeLine cho Lưu Lượng TCP

Mặc định, SafeLine sử dụng Unix sockets để giao tiếp. Để tích hợp với APISIX, hãy chuyển sang chế độ TCP.

bash Copy
cd /data/safeline/resources/detector/

Chỉnh sửa detector.yml và thêm các dòng sau:

yaml Copy
bind_addr: 0.0.0.0
listen_port: 8000

Cấu hình này sẽ cho phép SafeLine lắng nghe trên cổng 8000 cho lưu lượng TCP.

Bước 2: Mở Cổng 8000

Sửa đổi compose.yaml để mở cổng 8000 cho container SafeLine:

bash Copy
cd /data/safeline/

Thêm phần ports vào dịch vụ detect:

yaml Copy
detect:
  ...
  ports:
    - 8000:8000

Khởi động lại SafeLine:

bash Copy
docker compose down
docker compose up -d

Bước 3: Cài Đặt APISIX (qua Docker)

Sao chép và chạy APISIX sử dụng Docker:

bash Copy
git clone https://github.com/apache/apisix-docker
cd apisix-docker/compose
echo 'APISIX_DOCKER_TAG=3.5.0-debian' >> .env
docker compose -f docker-compose-release.yaml up -d

Truy cập:

Bước 4: Kết Nối SafeLine với APISIX

Liên kết công cụ phát hiện của SafeLine với APISIX qua Admin API:

bash Copy
curl http://127.0.0.1:9180/apisix/admin/plugin_metadata/chaitin-waf \
  -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' \
  -X PUT -d '
{
  "nodes":[
    {
      "host": "192.168.99.11",
      "port": 8000
    }
  ]
}'

Bước 5: Tạo Một Tuyến Đường APISIX với WAF Kích Hoạt

Tạo một tuyến đường trong APISIX với bảo vệ của SafeLine WAF:

bash Copy
curl http://127.0.0.1:9180/apisix/admin/routes/1 \
  -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' \
  -X PUT -d '
{
   "uri": "/*",
   "plugins": {
       "chaitin-waf": {}
    },
   "upstream": {
       "type": "roundrobin",
       "nodes": {
           "192.168.99.12:80": 1
       }
   }
}'

Bước 6: Kiểm Tra Cài Đặt Bảo Mật

Kiểm tra với một yêu cầu bình thường:

bash Copy
curl 'http://127.0.0.1:9080/'

Mô phỏng một cuộc tấn công SQL injection:

bash Copy
curl 'http://127.0.0.1:9080/' -d 'a=1 and 1=1'

Phản hồi dự kiến:

json Copy
{
  "code": 403,
  "success": false,
  "message": "blocked by Chaitin SafeLine Web Application Firewall",
  "event_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

Mẹo Cuối: Kích Hoạt Bảo Vệ Trang Web cho WAF Địa Phương

Sau khi chuyển sang chế độ TCP, đừng quên cập nhật cấu hình NGINX để bảo vệ trang web địa phương.

  1. Nhân đôi tệp cấu hình:
bash Copy
cp /data/safeline/resources/nginx/safeline_unix.conf /data/safeline/resources/nginx/safeline_http.conf
  1. Chỉnh sửa nginx.conf:
nginx Copy
# include /etc/nginx/safeline_unix.conf;
include /etc/nginx/safeline_http.conf;
  1. Khởi động lại SafeLine:
bash Copy
docker restart safeline

Kết Luận

Bằng cách thực hiện các bước trên, bạn đã tích hợp thành công SafeLine WAF với APISIX để bảo vệ cổng API của mình. Bạn có thể bảo vệ các API khỏi các cuộc tấn công phổ biến như SQL injection, XSS và nhiều hơn nữa.

Tham Gia Cộng Đồng SafeLine


Thực Hành Tốt Nhất

  • Luôn cập nhật phiên bản mới nhất của APISIX và SafeLine để tận dụng các tính năng bảo mật mới nhất.
  • Kiểm tra định kỳ các cấu hình bảo mật để đảm bảo không có lỗ hổng nào tồn tại.

Những Cạm Bẫy Thường Gặp

  • Không thay đổi địa chỉ IP và cổng trong cấu hình đúng cách có thể dẫn đến lỗi kết nối.
  • Bỏ qua bước kiểm tra bảo mật có thể khiến API của bạn dễ bị tấn công.

Mẹo Hiệu Suất

  • Đảm bảo rằng hệ thống của bạn có đủ tài nguyên để xử lý lưu lượng truy cập, đặc biệt khi có tấn công lớn.
  • Sử dụng caching để giảm tải cho APISIX và cải thiện tốc độ phản hồi.

Câu Hỏi Thường Gặp

  1. SafeLine WAF có miễn phí không?
    Có, SafeLine WAF là mã nguồn mở và miễn phí sử dụng.
  2. Tôi có thể sử dụng SafeLine WAF với các cổng API khác không?
    Có, SafeLine WAF có thể tích hợp với nhiều cổng API khác nhau, không chỉ APISIX.
  3. Cách khắc phục khi xảy ra lỗi kết nối?
    Kiểm tra các cấu hình địa chỉ IP và cổng, đảm bảo rằng chúng khớp với cấu hình của APISIX.
Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào