📡 Khám Phá Quy Tắc Tường Lửa VPC Trên Google Cloud
Khi bạn tạo các phiên bản máy ảo (VM) trong Google Cloud, chúng nằm trong một mạng Đám Mây Riêng Ảo (VPC). Theo mặc định, các quy tắc tường lửa VPC quyết định lưu lượng nào được phép vào (ingress) và ra (egress) khỏi các VM của bạn.
📖 Mục Lục
- Giới Thiệu
- Quy Tắc Tường Lửa VPC Là Gì?
- Các Loại Quy Tắc Tường Lửa
- Thành Phần Của Quy Tắc Tường Lửa VPC
- Quy Tắc Tường Lửa Ngầm Trong GCP
- Thực Hành Tốt Nhất
- Phân Tích Thế Giới Thực
- Tóm Tắt
- Câu Hỏi Thường Gặp
🔍 Giới Thiệu
Trong môi trường đám mây ngày nay, việc quản lý lưu lượng mạng an toàn và hiệu quả là vô cùng quan trọng. Google Cloud cung cấp các quy tắc tường lửa cho mạng VPC, cho phép nhà phát triển kiểm soát tốt hơn lưu lượng vào và ra từ các phiên bản máy ảo. Bài viết này sẽ cung cấp cho bạn cái nhìn sâu sắc về các thành phần của quy tắc tường lửa VPC, cùng với các ví dụ thực tế và mẹo tối ưu hóa.
✅ Quy Tắc Tường Lửa VPC Là Gì?
Quy tắc tường lửa cho phép bạn cho phép hoặc từ chối kết nối đến hoặc từ các máy ảo trong VPC của bạn. Các quy tắc có thể áp dụng cho các VM trong một VPC đơn hoặc trên nhiều VPC (sử dụng chính sách tường lửa). Chúng hoạt động ở cấp độ giao diện mạng, có nghĩa là chúng kiểm soát cách lưu lượng di chuyển vào/ra khỏi NIC của VM.
✅ Các Loại Quy Tắc Tường Lửa
- Quy Tắc Ingress → Kiểm soát lưu lượng vào (gói tin vào một VM).
- Quy Tắc Egress → Kiểm soát lưu lượng ra (gói tin rời khỏi một VM).
🔹 Thành Phần Của Quy Tắc Tường Lửa VPC
1. Hướng Lưu Lượng
- Ingress (Vào): Lưu lượng vào VM.
Ví dụ: Một người dùng từ internet truy cập VM của bạn qua cổng 80 (HTTP).
- Egress (Ra): Lưu lượng rời khỏi VM.
Ví dụ: VM của bạn kết nối đến cơ sở dữ liệu bên ngoài hoặc tải xuống các bản cập nhật.
2. Ưu Tiên
- Số nhỏ hơn = ưu tiên cao hơn.
Ví dụ:
- Quy tắc-1: Từ chối SSH (22), ưu tiên 200
- Quy tắc-2: Cho phép SSH (22), ưu tiên 100
→ Quy tắc-2 thắng vì 100 < 200, vì vậy SSH được cho phép.
3. Hành Động Khi Khớp
- Cho phép: Cho phép lưu lượng.
Ví dụ: Cho phép HTTP (tcp:80) để người dùng có thể mở trang web của bạn.
- Từ chối: Chặn lưu lượng.
Ví dụ: Từ chối RDP (tcp:3389) từ internet vì lý do bảo mật.
4. Đối Tượng
- Xác định các VM mà quy tắc áp dụng cho.
Ví dụ: Áp dụng “Cho phép SSH” chỉ cho các VM có tag = admin-access. Các VM khác vẫn bị chặn.
- Các loại đối tượng:
- Đối tượng mặc định - tất cả các phiên bản trong mạng VPC: Quy tắc tường lửa áp dụng cho tất cả các phiên bản trong mạng VPC.
- Các phiên bản theo thẻ mạng mục tiêu: Quy tắc tường lửa chỉ áp dụng cho các phiên bản trong mạng VPC có thẻ mạng khớp.
- Các phiên bản theo tài khoản dịch vụ mục tiêu: Quy tắc tường lửa chỉ áp dụng cho các phiên bản trong mạng VPC sử dụng một tài khoản dịch vụ cụ thể.
5. Nguồn (đối với Ingress)
- Xác định nơi lưu lượng vào đang đến từ đâu.
Ví dụ: Cho phép SSH (tcp:22) chỉ từ địa chỉ IP văn phòng 203.0.113.10 thay vì cho phép toàn bộ internet (0.0.0.0/0).
6. Nguồn (đối với Egress)
- Thường được mặc định là chính VM (không thường được tùy chỉnh).
Ví dụ: Nếu cần, chỉ cho phép lưu lượng khi VM sử dụng một tài khoản dịch vụ cụ thể.
7. Đích (đối với Egress)
- Xác định nơi lưu lượng ra có thể đi đến.
Ví dụ: Cho phép VM gửi lưu lượng chỉ đến subnet cơ sở dữ liệu nội bộ 10.10.0.0/24, chặn truy cập internet.
8. Giao Thức và Cổng
- Giới hạn giao tiếp theo giao thức/cổng.
Ví dụ:
tcp:443 → Cho phép chỉ lưu lượng HTTPS udp:53 → Cho phép truy vấn DNS tcp:80-90 → Cho phép một dải cổng web
9. Trạng Thái Thi Hành
- Bạn có thể kích hoạt/tắt một quy tắc tường lửa mà không cần xóa nó.
Ví dụ: Trong quá trình bảo trì, tạm thời kích hoạt quy tắc SSH, sau đó vô hiệu hóa nó khi công việc hoàn tất.
✅ Quy Tắc Tường Lửa Ngầm Trong GCP
GCP tự động cung cấp hành vi tường lửa mặc định thông qua các quy tắc ngầm:
🔹 Quy Tắc Egress Ngầm
- Theo mặc định, tất cả lưu lượng ra đều được cho phép.
- Quy tắc:
Hành động → Cho phép Đích → 0.0.0.0/0 (IPv4), ::/0 (IPv6) Ưu tiên → 65536 (ưu tiên thấp nhất) - Ảnh hưởng: Các phiên bản VM có thể kết nối với internet bằng địa chỉ IP công cộng hoặc qua Cloud NAT.
👉 Ví dụ: Nếu VM của bạn cố gắng tải xuống các bản cập nhật từ internet, nó sẽ hoạt động trừ khi bạn ghi đè bằng một quy tắc egress có ưu tiên cao hơn.
🔹 Quy Tắc Ingress Ngầm
- Theo mặc định, tất cả lưu lượng vào đều bị từ chối.
- Quy tắc:
Hành động → Từ chối Nguồn → 0.0.0.0/0 Ưu tiên → 65536 - Ảnh hưởng: Không ai có thể truy cập VM của bạn từ internet cho đến khi bạn rõ ràng cho phép lưu lượng ingress.
👉 Ví dụ: Để SSH vào một VM, bạn phải tạo một quy tắc ingress cho phép tcp:22 từ IP của bạn.
🛠️ Thực Hành Tốt Nhất
- Thực hiện nguyên tắc tối thiểu: Chặn tất cả lưu lượng theo mặc định và chỉ cho phép lưu lượng cụ thể mà bạn cần.
- Quy tắc cho phép: Đối với các quy tắc cho phép, hãy giới hạn chúng cho các VM cụ thể bằng cách chỉ định tài khoản dịch vụ của các VM.
- Giới hạn quy tắc dựa trên địa chỉ IP: Cố gắng giảm thiểu các quy tắc tường lửa cho mỗi địa chỉ IP, sử dụng dải IP để dễ dàng theo dõi quy tắc trong dài hạn và tốt cho mục đích tuân thủ và kiểm toán.
- Kích hoạt ghi nhật ký quy tắc tường lửa: Kích hoạt ghi nhật ký để xác minh rằng các quy tắc tường lửa đang được sử dụng theo cách dự kiến. Cài đặt này sẽ phát sinh chi phí bổ sung và việc sử dụng nó một cách chọn lọc là điều được khuyến nghị.
✅ Phân Tích Thế Giới Thực
Hãy nghĩ về quy tắc tường lửa như những nhân viên bảo vệ tại một tòa nhà:
- Quy Tắc Ingress = Ai được phép vào tòa nhà.
- Quy Tắc Egress = Nơi mọi người được phép đi khi họ rời đi.
- Ưu Tiên = Lệnh của nhân viên bảo vệ nào được tuân theo trước.
- Quy Tắc Ngầm = Chính sách công ty mặc định → “Không ai vào trừ khi chúng tôi cho phép, mọi người có thể đi ra trừ khi bị hạn chế.”
🔑 Tóm Tắt
- Quy tắc tường lửa xác định cho phép/từ chối cho ingress/egress.
- Các quy tắc có thành phần: hướng đi, ưu tiên, đối tượng, nguồn/đích, giao thức/cổng, thi hành.
- Các quy tắc ngầm → outbound mở, inbound bị từ chối theo mặc định.
- Luôn xác định các quy tắc rõ ràng cho mục đích bảo mật và kiểm toán.
❓ Câu Hỏi Thường Gặp
1. Tại sao cần quy tắc tường lửa trong VPC?
Quy tắc tường lửa giúp bảo vệ các phiên bản VM của bạn khỏi các mối đe dọa bên ngoài và kiểm soát lưu lượng vào và ra.
2. Làm thế nào để tạo một quy tắc tường lửa mới?
Bạn có thể tạo quy tắc tường lửa mới thông qua giao diện người dùng Google Cloud hoặc bằng cách sử dụng gcloud CLI.
3. Có thể áp dụng nhiều quy tắc tường lửa cho một VM không?
Có, nhiều quy tắc tường lửa có thể áp dụng cho một VM, nhưng quy tắc có ưu tiên cao hơn sẽ được thực hiện trước.
4. Làm thế nào để ghi nhật ký lưu lượng tường lửa?
Bạn có thể kích hoạt ghi nhật ký trong cài đặt quy tắc tường lửa để theo dõi lưu lượng.
5. Có cần tạo quy tắc tường lửa cho tất cả các VM không?
Có, để đảm bảo an toàn, bạn nên tạo quy tắc tường lửa rõ ràng cho tất cả các VM trong mạng VPC của mình.