Cổng hay máy khách được chuyển tiếp? Đọc địa chỉ nguồn
Đích đến thấy nguồn đã dịch, không phải địa chỉ riêng của máy khách. Dùng trạng thái cổng, danh tính và suy luận có nhãn thay vì đoán theo TTL.
Máy chủ web ghi lại một địa chỉ, và mọi người cho rằng nó thuộc về tiến trình của chính cổng. Nó có thể thuộc về một máy khách được chuyển tiếp mà địa chỉ riêng đã biến mất ở bước dịch. Đích đến chỉ thấy nguồn mạng hiển thị và không gì hơn. Đây là một phát biểu về ranh giới, không phải tuyên bố rằng nguồn gốc không bao giờ có thể xác lập.
Đích đến thực sự thấy gì
Lấy một máy khách ở 10.20.0.7, một cổng có địa chỉ ngoài là 198.51.100.10 và một đích đến trên internet. Nếu cổng dịch nguồn của máy khách, socket của đích ghi lại 198.51.100.10. Địa chỉ riêng biến mất khỏi gói tin, và đích không thể đọc lại nó từ tiêu đề đó. Những con số này chỉ để minh họa, không phải bản ghi từ mạng của bạn.
Quan sát vẫn hữu ích: nó xác định nguồn mạng mà đích phải cho phép hoặc chặn. Nó chỉ không xác định con người hay tiến trình đứng sau. Với người vận hành đích, sự phân biệt đó quyết định việc chặn là quyết định mạng hay quyết định tài khoản.
Trạng thái dịch không hiển thị với đích đến
Cổng giữ ánh xạ giữa kết nối đã dịch và máy khách gốc, và chính trạng thái đó là thứ đích còn thiếu. mô tả NAT truyền thống tách bản ghi dịch khỏi các tiêu đề hiển thị sau đó. Đọc một phía không cho bạn phía kia.
Các thiết kế khác nhau tạo ra bằng chứng khác nhau. Lưu lượng được định tuyến với địa chỉ nguồn được giữ nguyên cho thấy địa chỉ thật của máy khách, trong khi proxy ứng dụng kết thúc kết nối và tạo một kết nối mới. Tuyến giữ nguyên nguồn cũng đòi hỏi địa chỉ của máy khách có thể định tuyến ngược từ đích, điều mà không phải triển khai nào cũng cung cấp. Hãy hỏi thiết kế nào đang được triển khai trước khi diễn giải một dòng nhật ký.
conntrack -L -s 198.51.100.10
tcpdump -ni eth0 host 198.51.100.10
TTL và dấu vân tay là manh mối, không phải bằng chứng
TTL trong IPv4 phụ thuộc vào giá trị ban đầu do người gửi chọn và số bước nhảy mà gói đã đi qua. Không có cả hai dữ kiện, một giá trị không thể chứng minh rằng đã xảy ra bước nhảy VPN. Một bước nhảy định tuyến thêm đã biết cũng không phân biệt được router LAN, đường hầm hay một cách bố trí chuyển tiếp khác. Hãy coi chênh lệch TTL là một câu hỏi, không phải kết luận.
Các tín hiệu khác cũng hành xử như vậy. Tiêu đề User-Agent có thể do ứng dụng đặt, và sự giống nhau về thời gian có thể phản ánh hạ tầng dùng chung chứ không phải một người dùng chung. Nhiều người dùng có thể chia sẻ một lối ra, và một người dùng có thể đổi đường giữa các phiên. Khi thu thập cùng nhau, vài tín hiệu yếu có thể biện minh cho việc xem xét kỹ hơn hồ sơ của một cổng, nhưng chúng không trở thành bằng chứng mạnh nhờ tích tụ.
Cấp quyền theo danh tính, không theo địa chỉ
Nếu đích phải tách việc quản trị cổng khỏi hoạt động của người dùng từ xa, hãy cấp cho các vai trò đó danh tính đã xác thực riêng và các thao tác được phép. Một nguồn công khai dùng chung vẫn có thể phục vụ như một hạn chế mạng, nhưng nó không thay thế việc xác thực người dùng hoặc thiết bị.
Giữ bằng chứng có nhãn: nguồn quan sát được, tài khoản đã xác thực, thời điểm và suy luận đang được xem xét. Đừng dịch «không thấy nguồn bên trong ở đây» thành «không thể quy nguồn ở bất cứ đâu». Nhãn quan trọng khi người không tham gia điều tra đọc hồ sơ nhiều tháng sau.
Ghi lại ngày quan sát và hệ thống tạo ra nó. Một đoạn nhật ký không có quy nguồn thì khó bảo vệ về sau.