Làm thế nào để bạn buộc linux xử lý một gói tcp như thể nó ở ip đích?


0

Tình huống:

  • Một gói tcp đến trên eth0 với đích đến 8.8.8.8.
  • Gói này đáp ứng một số tiêu chí khiến tôi muốn chặn nó (giả sử tôi quan tâm đến tất cả các gói từ nguồn 10.0.0.5 hoặc tất cả các gói trên cổng 80).
  • Gói tin được sử dụng theo quy tắc iptables để tôi có thể làm điều gì đó thú vị với nó.

Thay vì bỏ qua gói hoặc định tuyến nó đến đích chính xác, tôi có thể làm gì để gửi nó đến ngăn xếp ip cục bộ để bất kỳ chương trình nào nghe trên cổng chính xác nhận được nó?


Để làm rõ: Tôi không muốn sửa đổi ip đích của gói và tôi không muốn giả mạo ip đích cho toàn mạng - Tôi chỉ muốn đánh cắp các gói tôi có thể khớp với quy tắc iptables.

Tôi đã thử iptables -j REDIRECT nhưng dường như không thể làm được điều này.
Tôi cũng đã nghĩ đến việc tạo một giao diện tạm thời chấp nhận các gói từ tất cả các ips và sử dụng iptables để gửi các gói tin đến nó, nhưng theo những gì tôi đã đọc sẽ khiến linux niêm phong mọi gói tin mà nó nhìn thấy bởi vì nó nghĩ rằng nó có một ip đích hợp lệ cho tất cả chúng, ngay cả khi định tuyến bị tắt.

Giải pháp không phải là độc quyền cho tcp miễn là nó hoạt động với tcp.

Có cách nào để làm điều này?

Câu trả lời:


1

Có thể thực hiện việc này bằng cách sử dụng GIẢM trên IPTables. Có một vài điều không được đề cập về những nỗ lực của bạn ở đây và có thể đã bị bỏ qua - tức là nó cần sử dụng chuỗi prerouting (hoặc chuỗi đầu ra, nhưng có lẽ không phải ở đây). Tôi cũng nghĩ rằng nó cũng yêu cầu sử dụng bảng NAT:

  1. Bạn sẽ muốn sử dụng một cái gì đó như iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8000

  2. Bạn cần một chương trình chạy trên cổng 8000 trên máy cục bộ để thực sự xử lý các yêu cầu.

  3. Bạn có thể cần điều chỉnh ngăn xếp của mình, ví dụ như bật chuyển tiếp ip, bật send_redirects tùy thuộc vào trường hợp sử dụng của bạn.

Một suy nghĩ cho bạn - những gì bạn đang cố gắng thực hiện đã được giải quyết trong Linux để "ủy quyền minh bạch", vì vậy sử dụng các hướng dẫn như thế này có thể giúp bạn tiến xa đến mục tiêu của mình.

Bạn cũng có thể muốn xóa sạch định nghĩa của mình về "tất cả các gói trên cổng 80" - điều đó có thể sẽ không hoạt động nếu câu trả lời được đưa ra cho câu hỏi bạn thực sự hỏi - tôi nghi ngờ bạn có nghĩa là tất cả các gói được dành cho cổng 80 - rất khác nhau cho tất cả các gói nhận được từ cổng 80 là tốt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.