0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Hướng Dẫn Cấu Hình Quy Tắc Tường Lửa VPC Google Cloud

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

• 4 phút đọc

Giới thiệu

Khi làm việc với Google Cloud, việc thiết lập quy tắc tường lửa cho các phiên bản máy ảo (VM) là rất quan trọng để đảm bảo an ninh và kiểm soát lưu lượng truy cập. Khác với việc áp dụng quy tắc cho "Tất cả các phiên bản", việc sử dụng Tag mục tiêu cho phép bạn áp dụng quy tắc tường lửa chỉ cho những VM có tag cụ thể. Đây là một phương pháp tốt nhất trong môi trường sản xuất vì:

  • Bạn kiểm soát được VM nào nhận lưu lượng.
  • Bạn tránh việc phơi bày tất cả các VM trong VPC.

Trong bài hướng dẫn này, chúng ta sẽ thực hiện các bước sau:

  1. Triển khai một VM với máy chủ web.
  2. Thử truy cập và nhận lỗi (không có quy tắc tường lửa).
  3. Tạo quy tắc tường lửa nhắm đến tag = mywebserver.
  4. Áp dụng tag cho VM.
  5. Truy cập lại và kiểm tra sự hoạt động.

Bước 1: Tạo VM Instance

Chúng ta sẽ bắt đầu bằng cách tải lên tệp nginx-webserver.sh vào Cloud Shell. Tệp này sẽ cài đặt và cấu hình máy chủ web nginx.

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 - Ứng dụng WebVM 1 </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 - Demo</p> 
</body></html>" | sudo tee /var/www/html/index.html

Tiếp theo, chúng ta sẽ tạo VM trong subnet tùy chỉnh:

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

Kiểm tra danh sách VM:

bash Copy
gcloud compute instances list

Kiểm tra trước khi tạo quy tắc tường lửa:

bash Copy
telnet <ĐỊA_CHỈ_IP_CÔNG_KHAI> 80   # Kết quả sẽ là lỗi
curl <ĐỊA_CHỈ_IP_CÔNG_KHAI>        # Kết quả sẽ là lỗi

Quan sát: Ứng dụng không thể truy cập được → bị chặn bởi quy tắc từ chối mặc định.


Bước 2: Tạo Quy Tắc Tường Lửa Ingress

Chúng ta sẽ tạo một quy tắc tường lửa cho phép lưu lượng vào cổng 80:

  • Tên: fw-ingress-80-target-tags
  • Mô tả: Cho phép lưu lượng vào cổng 80 cho các tag mục tiêu chỉ định
  • Mạng: vpc2-custom
  • Ưu tiên: 1000
  • Hướng: Ingress
  • Hành động khi khớp: Allow
  • Mục tiêu: Tag mục tiêu đã chỉ định
  • Tag mục tiêu: mywebserver
  • 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 Tạo để hoàn tất.


Bước 3: Áp Dụng Tag Cho VM Và Truy Cập Ứng Dụng

Tiếp theo, chúng ta sẽ thêm tag cho VM:

bash Copy
gcloud compute instances add-tags myvm2-target-tags \
    --zone us-central1-a \
    --tags mywebserver

Kiểm tra tag đã được gán:

bash Copy
gcloud compute instances describe myvm2-target-tags --zone=us-central1-a

Hoặc kiểm tra trong tab chi tiết VM trên Console.

Kiểm tra sau khi áp dụng tag:

bash Copy
telnet <ĐỊA_CHỈ_IP_CÔNG_KHAI> 80   # Kết quả sẽ thành công
curl <ĐỊA_CHỈ_IP_CÔNG_KHAI>        # Kết quả sẽ trả về trang HTML

Truy cập vào địa chỉ sau trong trình duyệt:

bash Copy
http://<ĐỊA_CHỈ_IP_CÔNG_KHAI>

Quan sát: Ứng dụng đã tải thành công → quy tắc tường lửa hoạt động vì VM đã có tag đúng.


Bước 4: Dọn Dẹp

Cuối cùng, chúng ta cần dọn dẹp các tài nguyên đã tạo:

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

# Xóa VM
gcloud compute instances delete myvm2-target-tags \
    --zone=us-central1-a --delete-disks=all 

✅ Kết Luận Học Được:

  • Mục tiêu = Tất cả các phiên bản: Rộng, ít bảo mật, tất cả các VM trong VPC bị ảnh hưởng.
  • Mục tiêu = Tags: Chi tiết, bảo mật, chỉ các VM có tag mới bị phơi bày.
  • Phương pháp tốt nhất: Luôn sử dụng tags hoặc tài khoản dịch vụ để giới hạn quy tắc tường lửa trong sản xuất.

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

  • Sử dụng Tags: Gán tags cho VM để dễ dàng quản lý và kiểm soát lưu lượng.
  • Theo dõi Log: Theo dõi log tường lửa để phát hiện các sự cố không mong muốn.

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

  • Quên Gán Tag: Nếu bạn không gán tag, quy tắc sẽ không áp dụng cho VM.
  • Tag không chính xác: Đảm bảo tag đúng với quy tắc đã tạo.

Mẹo Tăng Hiệu Suất

  • Tối ưu Quy Tắc: Giảm số lượng quy tắc tường lửa để tăng tốc độ xử lý.
  • Sử dụng Dải IP: Chỉ định dải IP cụ thể thay vì 0.0.0.0/0 để giảm thiểu rủi ro.

Phần Hỏi Đáp

H1: Tôi có thể sử dụng nhiều tag cho một VM không?
Có, bạn có thể gán nhiều tag cho một VM, quy tắc sẽ áp dụng nếu có một trong các tag đó.

H2: Quy tắc tường lửa có thể được áp dụng cho dịch vụ nào?
Quy tắc tường lửa có thể áp dụng cho tất cả các dịch vụ trên Google Cloud, nhưng thường được sử dụng cho VM.

H3: Làm thế nào để kiểm tra quy tắc tường lửa đã hoạt động?
Sử dụng lệnh telnet hoặc curl để kiểm tra kết nối đến VM và kiểm tra xem quy tắc có hoạt động hay không.

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