0
0
Lập trình
NM

Hướng dẫn cấu hình quy tắc tường lửa VPC trong GCP

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

• 4 phút đọc

Giới thiệu

Trong Google Cloud Platform (GCP), lưu lượng truy cập Ingress bị từ chối theo mặc định trong VPC (quy tắc ngầm định). Điều này có nghĩa là nếu bạn triển khai một máy ảo (VM) với một máy chủ web trên cổng 80 (HTTP), nó sẽ không thể truy cập từ Internet cho đến khi bạn cho phép rõ ràng bằng một quy tắc tường lửa Ingress.

Trong bài viết này, chúng ta sẽ:

  1. Triển khai một VM với Nginx.
  2. Kiểm tra truy cập vào VM → không thành công (không có quy tắc tường lửa).
  3. Tạo một quy tắc tường lửa Ingress với mục tiêu là Tất cả các phiên bản.
  4. Kiểm tra lại → thành công.

Tạo VM Instance

Bước 1: Tải lên script khởi động Nginx

Đầu tiên, bạn cần tải lên script khởi động nginx-webserver.sh lên Cloud Shell với nội dung như sau:

bash Copy
#!/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 - 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>Google Cloud Platform - Demos</p> 
</body></html>" | sudo tee /var/www/html/index.html

Bước 2: Tạo VM

Tiếp theo, tạo một VM bằng lệnh sau:

bash Copy
gcloud compute instances create myvm1-allinstances \
    --zone=us-central1-a \
    --machine-type=e2-micro \
    --network-interface=subnet=mysubnet1 \
    --metadata-from-file=startup-script=nginx-webserver.sh

Bước 3: Xác minh VM

Kiểm tra danh sách VM để đảm bảo rằng VM đã được tạo thành công:

bash Copy
gcloud compute instances list
  • Xác nhận VM nằm trong vpc2-custommysubnet1.
  • Lưu ý địa chỉ IP nội bộ và địa chỉ IP bên ngoài.

Bước 4: Kiểm tra trước khi áp dụng quy tắc tường lửa

Thực hiện các lệnh sau để kiểm tra kết nối trước khi tạo quy tắc tường lửa:

bash Copy
telnet <EXTERNAL_IP> 80   # Kết quả sẽ thất bại
curl <EXTERNAL_IP>        # Kết quả sẽ thất bại
  • Nhận xét: Ứng dụng không thể truy cập (bị chặn bởi quy tắc Ingress ngầm định).

Tạo quy tắc tường lửa Ingress

Bước 1: Truy cập vào phần tường lửa

Đi tới VPC Networks → vpc2-custom → FIREWALLS → THÊM QUY TẮC TƯỜNG LỬA.

Bước 2: Cấu hình quy tắc

  • Tên: fw-ingress-80-allinstances
  • Mô tả: Cho phép lưu lượng vào cổng 80 cho tất cả các phiên bản trong mạng
  • Mạng: vpc2-custom
  • Độ ưu tiên: 1000
  • Hướng lưu lượng: Ingress
  • Hành động khi khớp: Cho phép
  • Đối tượng: Tất cả các phiên bản trong mạng
  • Bộ lọc nguồn: Dải IPv4
  • Dải IPv4 nguồn: 0.0.0.0/0
  • Giao thức và cổng: TCP → 80

Nhấn Create để hoàn tất.

Truy cập ứng dụng

Bước 1: Xác minh lại danh sách VM

Kiểm tra lại danh sách VM:

bash Copy
gcloud compute instances list

Bước 2: Kiểm tra sau khi áp dụng quy tắc tường lửa

Thực hiện các lệnh sau để kiểm tra kết nối sau khi tạo quy tắc tường lửa:

bash Copy
telnet <EXTERNAL_IP> 80   # Kết quả sẽ kết nối thành công
curl <EXTERNAL_IP>        # Kết quả sẽ trả về trang HTML

Bước 3: Kiểm tra qua trình duyệt

Mở trình duyệt và truy cập địa chỉ:

Copy
http://<EXTERNAL-IP>

Dọn dẹp

Bước 1: Xóa quy tắc tường lửa

bash Copy
# Xóa quy tắc tường lửa
gcloud compute firewall-rules delete fw-ingress-80-allinstances 

Bước 2: Xóa VM

bash Copy
# Xóa VM
gcloud compute instances delete myvm1-allinstances --zone=us-central1-a --delete-disks=all

✅ Bài học quan trọng

  • Nếu không có quy tắc tường lửa → Lưu lượng Ingress bị từ chối theo mặc định.
  • Với mục tiêu = Tất cả các phiên bản → Mọi VM trong VPC có thể nhận lưu lượng trên cổng đã cho.
  • Đối với môi trường sản xuất, tốt hơn là sử dụng thẻ hoặc tài khoản dịch vụ thay vì "tất cả các phiên bản" để hạn chế tiếp xúc.

Thực tiễn tốt nhất

  • Luôn kiểm tra quy tắc tường lửa trước khi triển khai.
  • Sử dụng các thẻ để phân loại và quản lý quyền truy cập tốt hơn.

Những cạm bẫy phổ biến

  • Không xác định đúng dải IP nguồn có thể dẫn đến việc chặn lưu lượng không mong muốn.

Mẹo hiệu suất

  • Giảm độ ưu tiên của quy tắc tường lửa để tăng cường bảo mật.

Khắc phục sự cố

  • Nếu không thể truy cập ứng dụng, kiểm tra lại cấu hình tường lửa và xác nhận rằng VM đang chạy.

Câu hỏi thường gặp (FAQ)

  1. Tại sao lưu lượng Ingress bị chặn theo mặc định?
    • Để bảo vệ các VM khỏi các mối đe dọa từ bên ngoài.
  2. Có thể sử dụng quy tắc tường lửa cho các cổng khác không?
    • Có, bạn chỉ cần thay đổi số cổng trong cấu hình quy tắc tường lửa.

Kết luận

Trên đây là hướng dẫn chi tiết cách cấu hình quy tắc tường lửa VPC trong GCP để cho phép lưu lượng truy cập đến các VM của bạn. Hãy áp dụng những gì bạn đã học để đảm bảo rằng các ứng dụng của bạn luôn sẵn sàng và an toàn. Nếu có thắc mắc, hãy để lại câu hỏi bên dưới!

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