Tạo quy tắc tường lửa trong Google Cloud

Nếu không thực hiện các biện pháp phòng ngừa thích hợp, bạn sẽ có nguy cơ làm cho hệ thống của mình gặp phải các lỗ hổng mới. Do đó, chìa khóa để kiểm soát lưu lượng truy cập vào và ra khỏi các phiên bản của bạn trên Google Cloud là tạo các quy tắc tường lửa. Trong lớp học lập trình này, bạn sẽ tìm hiểu về các quy tắc tường lửa trong Google Cloud và cách áp dụng các quy tắc này cho phiên bản máy ảo Compute Engine.

Quy tắc tường lửa là gì?

Quy tắc tường lửa trong Google Cloud cho phép bạn cho phép hoặc từ chối lưu lượng truy cập đến và từ phiên bản máy ảo dựa trên cấu hình mà bạn chỉ định. Quy tắc tường lửa được bật luôn được thực thi, bảo vệ bản sao của bạn bất kể cấu hình và hệ điều hành của chúng, bất kể chúng có được khởi động hay không.

Mọi mạng VPC đều hoạt động như một tường lửa phân phối. Mặc dù quy tắc tường lửa được xác định ở cấp độ mạng, nhưng các kết nối vẫn được phép hoặc bị từ chối trên cơ sở mỗi bản sao. Bạn có thể coi các quy tắc tường lửa là tồn tại không chỉ giữa các phiên bản và các mạng khác mà còn giữa các phiên bản riêng lẻ trong cùng một mạng.

Sản phẩm bạn sẽ tạo ra

  • Hai phiên bản Compute Engine trong các mạng con khác nhau
  • Kiểm tra ping mạng
  • Quy tắc tường lửa sử dụng thẻ phiên bản
  • Kiến trúc sau:

Kiến thức bạn sẽ học được

  • Đặc điểm của quy tắc tường lửa
  • Cách áp dụng quy tắc tường lửa cho các phiên bản bằng cách sử dụng thẻ phiên bản
  • Các phương pháp hay nhất về quy tắc tường lửa

Bạn cần có

  • Tài khoản Google
  • 2 phiên bản Compute Engine

Thiết lập môi trường theo tiến độ riêng

Nếu chưa có Tài khoản Google, bạn phải tạo một Tài khoản. Đăng nhập vào Google Cloud Console và tạo một dự án mới:

Ghi nhớ mã dự án, một tên riêng biệt cho mọi dự án Google Cloud. Lớp học này sẽ được gọi trong các lớp học lập trình này là PROJECT_ID.

Tiếp theo, bạn sẽ cần bật tính năng thanh toán trong Cloud Console để sử dụng tài nguyên của Google Cloud.

Nếu tham gia lớp học lập trình này, bạn sẽ không mất quá vài đô la, nhưng có thể sẽ hiệu quả hơn nếu bạn quyết định sử dụng nhiều tài nguyên hơn hoặc nếu bạn để các tài nguyên đó chạy (xem phần dọn dẹp ở cuối lớp học lập trình này). Người dùng mới của Google Cloud đủ điều kiện dùng thử 300 đô la dùng thử miễn phí.

Khởi tạo môi trường dự án của bạn

Chuyển đến computete > Compute Engine > VM Instances.

Sau khi bật xong API Compute Engine, bạn sẽ thực hiện hầu hết các công việc với Cloud Shell, cho phép bạn quản lý cơ sở hạ tầng và ứng dụng từ dòng lệnh trong bất kỳ trình duyệt nào. Máy ảo dựa trên Debian được tải bằng tất cả các công cụ phát triển mà bạn sẽ cần (công cụ dòng lệnh gcloud, Git và các công cụ khác), đồng thời cung cấp thư mục gốc 5 GB ổn định. Mở Cloud Shell bằng cách nhấp vào biểu tượng ở phần trên cùng bên phải của màn hình.

Bạn cũng có thể chọn và chọn nhiều khu vực. Để biết thêm thông tin, hãy xem phần Khu vực và amp; Khu vực.

Xem các quy tắc tường lửa hiện có bằng cách chuyển đến Kết nối mạng > Mạng VPC > Quy tắc tường lửa.

Xin lưu ý rằng chỉ có các quy tắc tường lửa được tạo cho mạng mặc định.

Bạn cần phải tạo các quy tắc tường lửa cho các phiên bản Compute Engine hiện có của mình để thực hiện theo ngữ cảnh, vì bạn chưa chỉ định bất kỳ quy tắc tường lửa nào khi tạo custom-network1.

Tiếp theo, hãy tạo quy tắc tường lửa cho phép truy cập vào các bản sao được gắn thẻ ssh.

Ở lại trang quy tắc tường lửa. Nhấp vào Tạo quy tắc tường lửa.

Thêm các thông số kỹ thuật sau:

  • Tên: allow-ssh
  • Mạng: custom-network1
  • Hướng lưu lượng truy cập: Lối vào
  • Hành động khi khớp: cho phép
  • Mục tiêu: Thẻ mục tiêu cụ thể
  • Thẻ mục tiêu: iperf-access
  • Dải IP nguồn: 0.0.0.0/0
  • Giao thức và cổng: Giao thức và cổng đã chỉ định: tcp: 22

Áp dụng thẻ cho hai trường hợp hiện có.

Chuyển đến trang phiên bản Compute Engine bằng cách chuyển đến Computete > Compute Engine > VMVM.

Nhấp vào phiên bản 1 và xem thông tin chi tiết về phiên bản máy ảo. Nhấp vào Chỉnh sửa.

Cuộn xuống phần thẻ mạng và đặt một thẻ có tên là iperf-access.

Nhấp vào Lưu ở dưới cùng. Quay lại trang phiên bản máy ảo và lặp lại phiên bản 2 bằng cách nhấp vào nút chỉnh sửa rồi thêm lại iperf-access làm thẻ phiên bản.

iPerf

iPerf là công cụ kiểm tra mạng thường dùng có thể tạo luồng dữ liệu TCP/UDP và đo thông lượng của mạng vận chuyển chúng. Bạn sẽ sử dụng mã này để chạy thử nghiệm nhanh giữa các phiên bản của mình trong các mạng con khác nhau trong custom-network1.

Cài đặt iPerf

Chuyển đến trang phiên bản Compute Engine.

Xem hai máy ảo bạn đã tạo trong lớp học lập trình cuối cùng bằng cách nhấp vào nút ssh bên cạnh mỗi danh sách phiên bản.

Bạn sẽ thấy hai cửa sổ ssh bật lên. Cài đặt iPerf trong cả hai bằng lệnh sau:

sudo apt-get install iperf

Chạy thử nghiệm iPerf

Trong instance-2, hãy chỉ định rằng đó là máy chủ iPerf bằng cách nhập nội dung sau vào thiết bị đầu cuối ssh:

iperf -s

Trong cửa sổ ssh của bản sao 1, hãy nhập lệnh sau, bao gồm IP nội bộ của instance-2:

iperf -c [INSTANCE-2 INTERNAL IP]

Sự cố này sẽ bị treo vì bạn chưa triển khai một quy tắc tường lửa khác để cho phép liên lạc giữa instance-1instance-2. Chấm dứt lệnh bằng cách nhập Control+Z (Command+Z trên Macintosh).

Lần này, bạn sẽ tạo quy tắc tường lửa với Cloud Shell.

Đảm bảo rằng bạn đang ở trong Cloud Shell chứ không phải phiên bản ssh của thực thể. Tạo quy tắc tường lửa bằng cách nhập những thông tin sau:

gcloud compute firewall-rules create iperf-access --allow tcp:5001 \
      --source-ranges 0.0.0.0/0 \
      --network custom-network1 \
      --target-tags=iperf-access

Hãy xác nhận rằng bạn đã tạo hồ sơ như sau:

gcloud compute firewall-rules list

NAME                         NETWORK          DIRECTION  PRIORITY  ALLOW                         DENY  DISABLED
allow-ssh                    custom-network1  INGRESS    1000      tcp:22                              False
default-allow-icmp           default          INGRESS    65534     icmp                                False
default-allow-internal       default          INGRESS    65534     tcp:0-65535,udp:0-65535,icmp        False
default-allow-rdp            default          INGRESS    65534     tcp:3389                            False
default-allow-ssh            default          INGRESS    65534     tcp:22                              False
iperf-access                 custom-network1  INGRESS    1000      tcp:5001                            False

Quay lại cửa sổ SSH của instance-2. Phiên iperf của bạn vẫn sẽ hoạt động. Nếu không, hãy chạy lại lệnh sau.

iperf -s

Trong cửa sổ ssh instance-1, hãy nhập lệnh sau, bao gồm IP nội bộ của instance-2:

iperf -c [INSTANCE-2 INTERNAL IP]

Bạn sẽ thấy iPerf thiết lập kết nối đến instance-2 và trả lại kết quả hiệu suất mạng nội bộ từ instance-1 đến instance-2.

Giờ đây, bạn đã biết những thông tin cơ bản về việc tạo quy tắc tường lửa trong Google Cloud.

Những điều bạn đã biết

  • Các trường hợp bị ảnh hưởng bởi quy tắc tường lửa như thế nào
  • Cách tạo quy tắc tường lửa qua Cloud Console và Cloud Shell
  • Cách áp dụng thẻ cho các quy tắc và trường hợp tường lửa
  • Cách chạy thử nghiệm iPerf giữa các phiên bản

Các bước tiếp theo

Xóa các phiên bản Compute Engine bằng cách sử dụng các lệnh sau trong Cloud Shell:

gcloud compute instances delete instance-1 --zone us-central1-a

The following instances will be deleted. Any attached disks configured
 to be auto-deleted will be deleted unless they are attached to any
other instances or the `--keep-disks` flag is given and specifies them
 for keeping. Deleting a disk is irreversible and any data on the disk
 will be lost.
 - [instance-1] in [us-central1-a]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/ypc-demo/zones/us-central1-a/instances/instance-1].
gcloud compute instances delete instance-2 --zone europe-west1-d

The following instances will be deleted. Any attached disks configured
 to be auto-deleted will be deleted unless they are attached to any
other instances or the `--keep-disks` flag is given and specifies them
 for keeping. Deleting a disk is irreversible and any data on the disk
 will be lost.
 - [instance-2] in [europe-west1-d]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/ypc-demo/zones/europe-west1-d/instances/instance-2].

Xóa quy tắc tường lửa bằng các lệnh sau:

gcloud compute firewall-rules delete allow-ssh

The following firewalls will be deleted:
 - [allow-ssh]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/global/firewalls/allow-ssh].
gcloud compute firewall-rules delete iperf-access

The following firewalls will be deleted:
 - [iperf-access]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/global/firewalls/iperf-access].

Xóa mạng con bằng các lệnh sau:

gcloud compute networks subnets delete subnet-us-central-192 --region us-central1

The following subnetworks will be deleted:
 - [subnet-us-central-192] in [us-central1]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/regions/us-central1/subnetworks/subnet-us-central-192].
gcloud compute networks subnets delete subnet-europe-west-192 --region europe-west1

The following subnetworks will be deleted:
 - [subnet-europe-west-192] in [europe-west1]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/regions/europe-west1/subnetworks/subnet-europe-west-192].

Xóa VPC tùy chỉnh bằng lệnh sau:

gcloud compute networks delete custom-network1

The following networks will be deleted:
 - [custom-network1]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/global/networks/custom-network1].