Hướng Dẫn Cấu Hình Quy Tắc Tường Lửa VPC Google Cloud với Lọc Đích
Trong bài viết này, chúng ta sẽ cùng nhau tìm hiểu cách cấu hình quy tắc tường lửa VPC trên Google Cloud bằng cách sử dụng lọc đích (Destination Filter). Việc này cực kỳ quan trọng để bảo vệ và kiểm soát lưu lượng truy cập vào các máy chủ ảo (VM) trong mạng VPC của bạn.
Mục Tiêu
Mục tiêu chính của hướng dẫn này là cho phép lưu lượng truy cập chỉ đến các VM cụ thể bên trong VPC dựa trên địa chỉ IP đích của chúng. Điều này hữu ích khi bạn muốn chỉ cung cấp quyền truy cập cho một VM cụ thể từ Internet trong khi giữ các VM khác trong cùng một subnet bị chặn.
Bảng Nội Dung
- Giới thiệu
- Bước 1: Tạo Hai VM
- Bước 2: Tạo Quy Tắc Tường Lửa với Lọc Đích
- Bước 3: Kiểm Tra Quy Tắc Tường Lửa
- Bước 4: Thực Tế và Tóm Tắt
- Mẹo và Thực Hành Tốt
- Câu Hỏi Thường Gặp
Bước 1: Tạo Hai VM
Chúng ta sẽ tạo hai VM (VM1 và VM2) trong cùng một subnet (mysubnet1) và triển khai một máy chủ web nginx đơn giản bằng cách sử dụng một script khởi động.
Script khởi động: nginx-webserver.sh
bash
#!/bin/bash
sudo apt install -y telnet
sudo apt install -y nginx
sudo systemctl enable nginx
sudo chmod -R 755 /var/www/html
HOSTNAME=$(hostname)
sudo echo "<!DOCTYPE html> <html>
<body style='background-color:rgb(250, 210, 210);'>
<h1>Chào mừng đến với Latchu@DevOps - Ứng dụng WebVM App1 </h1>
<p><strong>Tên máy chủ VM:</strong> $HOSTNAME</p>
<p><strong>Địa chỉ IP VM:</strong> $(hostname -I)</p>
<p><strong>Phiên bản ứng dụng:</strong> V1</p>
<p>Nền tảng Google Cloud - Các demo</p>
</body></html>" | sudo tee /var/www/html/index.html
Lệnh Tạo VM
bash
# Thiết lập dự án
gcloud config set project gcpdemos
# Tạo VM1
gcloud compute instances create myvm1-destination1 \
--zone=us-central1-a \
--machine-type=e2-micro \
--network-interface=subnet=mysubnet1 \
--metadata-from-file=startup-script=nginx-webserver.sh
# Tạo VM2
gcloud compute instances create myvm2-destination2 \
--zone=us-central1-a \
--machine-type=e2-micro \
--network-interface=subnet=mysubnet1 \
--metadata-from-file=startup-script=nginx-webserver.sh
Quan Sát
Cả hai VM1 và VM2 đã được khởi động, nhưng lưu lượng HTTP (cổng 80) sẽ không thành công vì chưa có quy tắc tường lửa nào tồn tại.
Bước 2: Tạo Quy Tắc Tường Lửa với Lọc Đích
Chúng ta sẽ tạo một quy tắc tường lửa để cho phép lưu lượng HTTP chỉ đến VM1 (sử dụng địa chỉ IP nội bộ của nó).
Cấu Hình Quy Tắc Tường Lửa
- Tên: fw-ingress-80-destination-filter
- Mạng: vpc2-custom
- Ưu tiên: 1000
- Hướng: Ingress
- Hành động: Allow
- Mục tiêu: Tất cả các máy chủ trong mạng
- Nguồn: 0.0.0.0/0 (bất kỳ từ Internet)
- Lọc đích: VM1_INTERNAL_IP/32 (ví dụ: 10.225.0.6/32)
- Giao thức/Cổng: TCP:80
Tạo Quy Tắc
Chạy lệnh sau để tạo quy tắc:
bash
gcloud compute firewall-rules create fw-ingress-80-destination-filter \
--network vpc2-custom \
--allow tcp:80 \
--source-ranges 0.0.0.0/0 \
--target-tags VM1_INTERNAL_TAG \
--priority 1000
Bước 3: Kiểm Tra Quy Tắc Tường Lửa
Kiểm Tra VM1
bash
telnet VM1_EXTERNAL_IP 80
curl VM1_EXTERNAL_IP
- Kết quả: Thành công.
- Truy cập trình duyệt: http://VM1_EXTERNAL_IP → ✅ Trang tải thành công.
Kiểm Tra VM2
bash
telnet VM2_EXTERNAL_IP 80
curl VM2_EXTERNAL_IP
- Kết quả: Thất bại.
- Truy cập trình duyệt: http://VM2_EXTERNAL_IP → ❌ Trang không truy cập được.
Quan Sát
- VM1 có thể truy cập vì IP của nó đã được cho phép trong quy tắc lọc đích.
- VM2 bị chặn vì IP của nó không được bao gồm trong quy tắc tường lửa.
Bước 4: Thực Tế và Tóm Tắt
Như bạn thấy, quy tắc tường lửa GCP không chỉ có thể lọc lưu lượng dựa trên nguồn mà còn dựa trên đích. Bằng cách sử dụng các bộ lọc đích, chúng ta có thể kiểm soát chặt chẽ những VM nào trong một subnet được phép tiếp cận. Điều này cung cấp một lớp bảo mật bổ sung trong các môi trường nhiều VM.
Mẹo và Thực Hành Tốt
- Luôn luôn kiểm tra các quy tắc tường lửa của bạn: Đảm bảo rằng lưu lượng truy cập đến là cần thiết và an toàn.
- Ghi chú địa chỉ IP và các tag: Giúp dễ dàng quản lý và theo dõi trong tương lai.
- Thực hiện kiểm tra định kỳ: Để xác minh rằng các quy tắc vẫn còn hợp lệ và không có lỗ hổng bảo mật nào xuất hiện.
Câu Hỏi Thường Gặp
1. Tôi có thể sử dụng nhiều quy tắc tường lửa không?
Có, bạn có thể tạo nhiều quy tắc cho các mục đích khác nhau và quản lý chúng một cách hiệu quả.
2. Có cách nào để kiểm tra các quy tắc tường lửa không?
Bạn có thể sử dụng lệnh gcloud compute firewall-rules list để xem tất cả các quy tắc hiện có.
3. Làm thế nào để xóa một quy tắc tường lửa?
Sử dụng lệnh gcloud compute firewall-rules delete [RULE_NAME] để xóa quy tắc không cần thiết.
Kết Luận
Cấu hình quy tắc tường lửa VPC trên Google Cloud với lọc đích là một kỹ thuật hiệu quả để bảo vệ các VM của bạn. Bằng cách chỉ cho phép lưu lượng truy cập đến những VM cụ thể, bạn có thể tăng cường bảo mật cho hạ tầng điện toán đám mây của mình. Hãy thử ngay hôm nay và đảm bảo rằng môi trường của bạn luôn được bảo vệ.
👉 Đừng quên theo dõi các bài viết tiếp theo để cập nhật thêm nhiều kiến thức thú vị về Google Cloud!