Theo dõi một gói TPROXY đến tận socket
Kiểm tra socket nhận, dấu gói và tuyến chính sách cục bộ như một đường giao hàng duy nhất của proxy trong suốt.
Bộ đếm TPROXY có thể tăng trong khi ứng dụng không nhận được gì. Quy tắc đã khớp, nhưng việc giao hàng cục bộ vẫn phụ thuộc vào định tuyến chính sách và một socket nhận tương thích.
TPROXY trên Linux có thể chặn lưu lượng mà không ghi lại đích như DNAT. Vì vậy các gói hướng tới đích không phải cục bộ phải đến được một socket cục bộ phù hợp.
Theo dõi đường giao hàng
- Lưu lượng đến máy chặn trên giao diện và họ địa chỉ dự định.
- Quy tắc chặn và dấu gói xác định chính sách giao hàng cục bộ.
- Một quy tắc chính sách khớp sẽ chọn tuyến giao các gói cục bộ.
- Proxy dùng bộ lắng nghe trong suốt được hỗ trợ với tùy chọn socket cần thiết.
Ví dụ IPv4 của nhân yêu cầu ứng dụng hỗ trợ IP_TRANSPARENT. Một bộ lắng nghe thông thường trên cùng cổng, hoặc thiết lập liên kết không cục bộ toàn cục, không chứng minh được sự hỗ trợ đó.
| Quan sát | Kiểm tra tiếp theo |
|---|---|
| Không có gói vào liên quan | Đường lưu lượng và giao diện vào |
| Gói đến; bộ đếm chặn đứng yên | Họ địa chỉ, chuỗi và điều kiện khớp |
| Quy tắc khớp; giao hàng cục bộ thất bại | Dấu và việc chọn tuyến chính sách |
| Socket lắng nghe; ứng dụng không thấy gì | Khả năng socket trong suốt và chủ sở hữu bộ lắng nghe |
| Yêu cầu bắt đầu; các phản hồi sau thất bại | Khớp socket đã thiết lập và tuyến quay về |
Lưu cấu hình đã nạp và không gian tên mạng cùng mỗi quan sát. Một quy tắc sau có thể ghi đè dấu hoặc chọn tuyến khác. Nếu việc chặn diễn ra trên máy chủ trong khi bộ lắng nghe chạy trong container, một tuyến cục bộ hợp lệ của máy chủ không tự động giao vào container đó.
Tính đến các gói sau
Ví dụ của nhân gồm khớp socket và một đường DIVERT đánh dấu các gói thuộc socket trong suốt. Bỏ qua nó có thể để lưu lượng sau ở một đường khác dù lần chặn đầu thành công.
Dùng chế độ trong suốt mà ứng dụng hỗ trợ và tài liệu nhân tương ứng cho từng họ địa chỉ. Lệnh tuyến cục bộ IPv4 không cấu hình IPv6, và hỗ trợ ở một họ không chứng minh hành vi socket của họ kia.
TPROXY cũng không tạo ra thương lượng SOCKS. Thành phần từ trong suốt sang SOCKS vẫn phải khám phá đích và thương lượng với thượng nguồn của nó.
Chuyển từ REDIRECT
Ghi lại cách ứng dụng hiện có lấy được đích ban đầu. REDIRECT thay đổi đích và dựa vào cơ chế khôi phục phù hợp; TPROXY cần socket trong suốt và cách bố trí định tuyến riêng. Chọn theo ứng dụng và chính sách địa chỉ nguồn.
Ghép bộ đếm với tuyến đã chọn, khả năng socket và nhật ký ứng dụng trước khi đổi chế độ chặn. Trên một bản phân phối cung cấp các phương tiện cần thiết, một bước giao hàng còn thiếu là điểm khởi đầu tốt hơn việc biên dịch lại nhân.