TRAFFIC MIRRORING
- Tháng Mười Một 14, 2022
- Posted by: Huyền Khánh
- Category: Uncategorized
Xin chào mọi người, trong quá trình học AWS và thực tế làm việc , mọi người đã từng phải tracing một vài route cụ thể trên network chưa nhỉ ? Theo lẽ thông thường, bên AWS có cung cấp cho chúng ta một service để làm việc này, đó chính là VPC Flow logs. Tuy nhiên, có một vài trường hợp, VPC Flow Logs chưa đủ để cho chúng ta nhìn thấy những thông tin chi tiết. Vậy thì chúng ta có những phương án nào khác ? Một trong số những phương án được sử dụng phổ biến nhất, đó chính là Traffic Mirroring. Vậy thì hôm nay chúng ta cùng tìm hiểu qua một chút về Traffic Mirroring nhé.
- Khái niệm về Traffic Mirroring
Traffic Mirroring là một tính năng của VPC, cho phép chúng ta copy network traffic của một ENI nào đó và gửi đến một thành phần khác (nằm ngoài hệ thống) để phục vụ cho mục đích đảm bảo bảo mật hoặc giám sát ngoài băng tần (Out of band).
Destination của traffic mirroring có thể là một instance, hoặc một vài instance, đặt nằm sau một Load Balancer nào đó. Các thành phần này thậm chí có thể nằm ở một account khác (Tuy nhiên chi phí vẫn tính cho tài khoản có ENI là nguồn copy traffic. Rule này mới được AWS update vào tháng 10/2022)
Lưu ý, tính năng Traffic Mirroring này không áp dụng với toàn bộ các instance type (instance làm source để tracing và monitoring). Theo Doc của AWS thì Traffic Mirroring áp dụng với đại đa số các instance có Nitro system. Một vài loại instance không được support, chúng ta tham khảo tại đây: https://docs.aws.amazon.com/vpc/latest/mirroring/traffic-mirroring-limits.html
Traffic Mirroring có một số thành phần cơ bản như sau
Mirroring Filter: Đây là một bộ lọc, áp dụng cho Destination và cho biết chúng ta muốn sao chép traffic loại nào để đưa tới thành phần làm nhiệm vụ monitoring.
Mirroring Target: khai báo thông tin của một điểm đến của một traffic nào đó. Có thể là một instance, hoặc cũng có thể là một Load Balancer.
Mirroring Session: Là một session bao gồm cả Mirroring Filter và Mirroring Target. Một Target có thể có tối đa 3 Mirroring Sessions nhằm phục vụ cho các nhu cầu monitoring khác nhau. Các thành phần Source và Target có thể nằm ở các VPC khác nhau, miễn là chúng có thể liên kết với nhau thông qua các loại kết nối khác như VPC Peering hoặc Transit Gateway.
- So sánh Traffic Mirroring với VPC Flow logs.
VPC Flow Logs:
Khi thiết kế hệ thống, để đảm bảo chúng ta có thể tracing và monitor được thông tin đi vào trong VPC của mình, chúng ta sử dụng VPC Flow Logs. VPC Flow Logs là cách được sử dụng tương đối phổ biến, khi chúng ta muốn monitor hoặc lưu trữ lại logs của một network traffic. Tuy nhiên thông tin trên VPC Flow Logs chưa được chi tiết và rõ ràng khi chúng ta log ra.
Chúng ta chỉ có thể tracing được có thông tin nào đó (với số byte tương ứng) được gửi từ Source IP nào đó tới Destination IP/ENI, có trạng thái là gì, …
Mặc dù VPC Flow Logs có thể sử dụng kèm theo meta-data, khá hữu ích khi chúng ta muốn tracing một vài request nhất định xem flow đi trong hệ thống như thế nào, tuy nhiên thông tin từ VPC Flow Logs nói chung chưa có những thông tin chi tiết khác để thuận tiện hơn cho việc tracking.
VPC Flow Logs thiết lập khá đơn giản, không cần cài thêm các thành phần phụ khác.
Mirroring Traffic
Nếu như VPC khá đơn giản và tiện lợi, thì Mirroring Traffic lại không như vậy. Để sử dụng và tracking với Mirroring Traffic, chúng ta cần cài thêm một số thành phần. Mặc dụ việc cài đặt không quá phức tạp, nhưng nhìn chung, so với VPC Flow Logs thì cũng sẽ tốn công sức hơn.
Ở phía Target, chúng ta sẽ cần cài một vài tool open source để lắng nghe traffic đi vào (tương tự như destination gốc, mặc dù chỉ là mirroring traffic). Việc cài đặt và chỉnh sửa này có thể sẽ tốn thời gian, nhưng giúp chúng ta có thể analyze sâu hơn vào các traffic request. Zeek và Suricata là các tool có thể hỗ trợ giám sát các thông tin về bảo mật trên network, giúp chúng ta detect được các loại traffic: https://zeek.org/
Kết quả nhìn thấy trên Kibana cho thấy, khi sử dụng Traffic Mirroring chúng ta có thể biết được những thông tin nhiều hơn khi chỉ sử dụng VPC Flow Logs. Ví dụ như cũng là traffic SSH vào một bên khác, chúng ta có thể biết được kiểu connect, loại server, kiểu mã hóa, …
Như vậy, có thể kết luận, Traffic Mirror giúp tracing thông tin chi tiết và đầy đủ hơn là VPC Flow Logs.
Trên đây là một vài thông tin nho nhỏ, giúp mọi người hiểu hơn về Traffic Mirroring và một vài đặc điểm của nó. Hy vọng mọi người có thể áp dụng vào hệ thống của mình để trace được tốt hơn.
Để hiểu rõ về các service và có thể vận hành chuyên nghiệp trên hệ thống AWS, mời các bạn tham khảo và đăng kí khóa học AWS Practical : https://codestar.vn/product/aws-co-ban/
Mời mọi người tham khảo thêm các khóa học chuyên sâu về Devops on AWS : https://codestar.vn/product/devops-on-aws/
Và tham gia thêm khóa học Devops on K8S để mở rộng phạm vi triển khai và vận hành trên hệ thống K8S : https://codestar.vn/product/khoa-hoc-kubernetes-fundamentals-k8s/