VPC Flow Logs
VPC Flow Logs là tính năng giúp ghi lại thông tin về lưu lượng IP traffic (giao thông mạng) vào các interface trong VPC của AWS. Nó có thể ghi lại thông tin lưu lượng truy cập vào các subnet hoặc các ENI (Elastic Network Interface) riêng lẻ của các instance EC2. Các thông tin này rất hữu ích trong việc giám sát và khắc phục các sự cố kết nối mạng trong môi trường AWS.
Dữ liệu của VPC Flow Logs có thể được lưu trữ tại S3 hoặc CloudWatch Logs. Với S3, bạn có thể tự tùy chỉnh các giá trị retention period và cách lưu trữ. Trong khi đó, với CloudWatch Logs, bạn có thể chọn các tính năng như tạo metric filters, alarms hoặc tạo dashboard để giám sát các dữ liệu lưu lượng mạng.
Tính năng này cũng cho phép ghi lại thông tin lưu lượng từ các interface được quản lý bởi AWS như ELB, RDS, ElastiCache, Redshift, WorkSpaces, NATGW, Transit Gateway, giúp bạn theo dõi các truy cập vào các dịch vụ này.
VPC Flow Logs Syntax
VPC Flow Logs cung cấp thông tin về lưu lượng IP đi qua các interface trong VPC của bạn, bao gồm VPC Flow Logs, Subnet Flow Logs và ENI Flow Logs. Với VPC Flow Logs, bạn có thể theo dõi và khắc phục sự cố kết nối mạng, bao gồm xác định các IP và các cổng kết nối gặp vấn đề.
VPC Flow Logs sử dụng cú pháp để giúp xác định các thông tin quan trọng, bao gồm địa chỉ nguồn (srcaddr) và địa chỉ đích (dstaddr) để xác định các IP gặp vấn đề. Ngoài ra, cú pháp còn giúp xác định các cổng nguồn (srcport) và cổng đích (dstport) để xác định các cổng kết nối gặp vấn đề.
Một thông tin quan trọng khác mà VPC Flow Logs cung cấp là thông tin về thành công hoặc thất bại của yêu cầu kết nối do Security Group hoặc NACL gây ra, được gọi là “Action”.
Các Flow Logs cũng có thể được sử dụng cho phân tích mô hình sử dụng hoặc phát hiện các hành vi độc hại.
Bạn có thể truy vấn VPC Flow Logs bằng cách sử dụng Athena trên S3 hoặc CloudWatch Logs Insights. AWS cung cấp các ví dụ về cú pháp của Flow Logs tại địa chỉ https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs-records-examples.html.
VPC Flow Logs –Troubleshoot SG & NACL issues
Trong quá trình giám sát và phân tích các sự cố liên quan đến bảo mật trong VPC, trường ACTION (hoạt động) trong bảng VPC Flow Logs là một trường quan trọng. Nó cho biết sự thành công hoặc thất bại của các yêu cầu truy cập mạng dựa trên các quy tắc bảo mật được áp dụng trong VPC, bao gồm Security Group (SG) và Network Access Control List (NACL).
Nếu các yêu cầu truy cập mạng được chặn, ta có thể tìm hiểu nguyên nhân bằng cách xem giá trị trong trường ACTION. Các trường hợp có thể xảy ra như sau:
– Incoming Requests (Yêu cầu đến):
- Inbound REJECT (Từ chối đến) => Được từ chối ở cả SG và NACL
- Inbound ACCEPT (Chấp nhận đến), Outbound REJECT (Từ chối đi) => Được chấp nhận tại SG nhưng bị từ chối ở NACL
– Outgoing Requests (Yêu cầu đi):
- Outbound REJECT (Từ chối đi) => Được từ chối ở cả SG và NACL
- Outbound ACCEPT (Chấp nhận đi), Inbound REJECT (Từ chối đến) => Được chấp nhận tại SG nhưng bị từ chối ở NACL
Việc phân tích các giá trị trong trường ACTION sẽ giúp chúng ta xác định được nguyên nhân gây ra vấn đề và đưa ra các giải pháp phù hợp để khắc phục vấn đề.
VPC Flow Logs – Architectures
VPC Flow Logs là dữ liệu nhật ký lưu lượng IP trong VPC. Nó có thể được chuyển đến S3 hoặc CloudWatch Logs để phân tích và giám sát. Trong trường hợp này, chúng ta giả sử dữ liệu VPC Flow Logs đã được gửi đến CloudWatch Logs.
Sau đó, chúng ta có thể sử dụng CloudWatch Contributor Insights để phân tích và tìm kiếm thông tin về lưu lượng mạng. Chúng ta có thể sử dụng công cụ này để tìm kiếm các IP address xuất hiện nhiều lần trong dữ liệu nhật ký, hoặc phân tích các yêu cầu đến hoặc đi từ các IP address cụ thể.
Cuối cùng, chúng ta có thể sử dụng kết quả từ CloudWatch Contributor Insights để tìm ra top-10 IP address xuất hiện nhiều lần nhất trong dữ liệu nhật ký.
Sơ đồ dưới liên quan đến việc sử dụng VPC Flow Logs để giám sát lưu lượng IP đi vào và ra khỏi giao diện VPC, và sau đó sử dụng các bộ lọc để giám sát các sự kiện cụ thể trong nhật ký và cảnh báo nếu như có các hành vi đáng ngờ được phát hiện.
Cụ thể, quá trình diễn ra như sau:
- VPC Flow Logs: VPC sẽ ghi lại thông tin về lưu lượng IP đi vào và ra khỏi giao diện VPC và lưu trữ trong CloudWatch Logs.
- CloudWatch Logs: Logs sẽ được lưu trữ trong CloudWatch Logs. Chúng ta có thể sử dụng các bộ lọc định tuyến để lọc các thông tin liên quan đến các sự kiện cụ thể mà chúng ta quan tâm.
- Metric Filters: Chúng ta có thể sử dụng Metric Filters để lọc và tạo các số liệu thống kê dựa trên các sự kiện trong logs. Ví dụ, nếu chúng ta quan tâm đến các truy cập SSH hoặc RDP, chúng ta có thể sử dụng Metric Filter để lọc các sự kiện liên quan đến SSH và RDP.
- CloudWatch Alarms: Các số liệu thống kê được tạo ra từ Metric Filters có thể được sử dụng để tạo CloudWatch Alarms. Nếu số liệu thống kê vượt quá ngưỡng được đặt trước, CloudWatch Alarms sẽ chuyển sang trạng thái cảnh báo.
- Amazon SNS: Nếu một CloudWatch Alarm được kích hoạt, nó sẽ thông báo đến Amazon SNS (Simple Notification Service). Amazon SNS có thể được cấu hình để gửi thông báo đến các địa chỉ email, tin nhắn văn bản hoặc các phương tiện thông báo khác.
Tóm lại, quá trình này giúp chúng ta giám sát các sự kiện quan trọng trong logs và cảnh báo nếu như có các hành vi đáng ngờ được phát hiện.
Sơ đồ mô tả quá trình sử dụng VPC Flow Logs để phân tích và trực quan hóa dữ liệu mạng trong AWS.
Cụ thể, dữ liệu VPC Flow Logs được ghi lại và lưu trữ trong một bucket S3. Sau đó, Amazon Athena được sử dụng để truy vấn và phân tích dữ liệu trong bucket S3 đó. Athena cho phép chạy các truy vấn SQL trực tiếp trên dữ liệu S3.
Kết quả của truy vấn Athena có thể được trực quan hóa bằng cách sử dụng Amazon QuickSight. QuickSight là một dịch vụ trực quan hóa dữ liệu của AWS, cho phép tạo các bảng điều khiển, biểu đồ và báo cáo từ dữ liệu.
Với quá trình này, người dùng có thể phân tích và trực quan hóa dữ liệu mạng trong AWS, giúp phát hiện và giải quyết các vấn đề bảo mật hoặc hiệu suất trong mạng.