Sự khác biệt giữa các chuỗi OUTPUT và FORWARD trong iptables là gì?


22

CentOS 6.0

Tôi đang nghiên cứu iptables và đang bị lẫn lộn về sự khác biệt giữa các chuỗi FORWARD và OUTPUT. Trong tài liệu đào tạo của tôi, nó ghi:

Nếu bạn đang nối thêm (-A) hoặc xóa khỏi (-D) chuỗi, bạn sẽ muốn áp dụng chuỗi đó cho dữ liệu mạng di chuyển theo một trong ba hướng:

  • INPUT - Tất cả các gói đến được kiểm tra theo các quy tắc trong chuỗi này.
  • OUTPUT - Tất cả các gói đi được kiểm tra theo các quy tắc trong chuỗi này.
  • FORWARD - Tất cả các gói được gửi đến một máy tính khác được kiểm tra theo các quy tắc trong chuỗi này.

Điều này làm tôi bối rối bởi vì, trong tâm trí của tôi, các gói để lại cho một máy chủ sẽ được gửi đi. Vì vậy, có những kịch bản mà một gói sẽ được chuyển đến một máy tính khác nhưng KHÔNG được "gửi đi"? Làm thế nào iptables phân biệt giữa hai?

Câu trả lời:


26

OUTPUT dành cho các gói được phát ra từ máy chủ. Đích đến của chúng thường là một máy chủ khác, nhưng có thể là cùng một máy chủ thông qua giao diện loopback, vì vậy không phải tất cả các gói đi qua OUTPUT trên thực tế đều được gửi đi.

FORWARD dành cho các gói không được phát ra bởi máy chủ cũng như không được hướng đến máy chủ. Chúng là các gói mà máy chủ chỉ đơn thuần là định tuyến.

Khi bạn bắt đầu đào sâu vào xáo trộn gói và NAT, toàn bộ câu chuyện khá phức tạp .


Thật thú vị ... vì mục đích hiểu biết của tôi, có công bằng không khi nói rằng OUTPUT dành cho các gói "có nguồn gốc" từ hệ thống ... và FORWARD dành cho các gói không có nguồn gốc từ hệ thống hoặc được dành cho nó và thay vào đó là "thông qua" hệ thống?
Mike B

1
Không hoàn toàn, các gói được "chuyển tiếp" cũng là "đầu ra" bởi giao diện mạng .. giống như các gói được "nhập" trước khi chúng được "chuyển tiếp" .. Gói đi vào, dành cho hệ thống nước ngoài, gói đi vào chuỗi "chuyển tiếp" , iptables quyết định OK để chuyển tiếp, gói vào "chuỗi đầu ra", kiểm tra iptables, xem "ok" của nó để đầu ra, gói rời khỏi .. simples!
Grizly

2
@Grizly Không, từ bộ nhớ (Tôi thừa nhận tôi đã không kiểm tra đặc biệt khi viết câu trả lời này) và theo sơ đồ tôi liên kết với, một gói luôn đi qua đúng một trong ba filterchuỗi ( INPUThay OUTPUThay FORWARD). (Giả sử một số chuỗi khác không bỏ qua trước đó.) Chuỗi manglenatchuỗi khác nhau, có thể bạn đang nghĩ về manglechuỗi?
Gilles 'SO- ngừng trở nên xấu xa'

0

Theo hiểu biết của tôi:

INPUT: dst IP nằm trên máy chủ, thậm chí nó có nhiều cổng với nhiều mạng con

OUTPUT: src IP là từ máy chủ, một trong hai cổng

FORWARD: Không phải IP dst trên máy chủ cũng như IP src từ máy chủ

nhập mô tả hình ảnh ở đây

Ví dụ: đến bộ định tuyến A

VÀO là:

192.168.10.1 -> 192.168.10.199

192.168.10.1 -> 192.168.2.1

ĐẦU RA là:

192.168.10.199 -> xxxx

192.168.2.1 -> xxxx

KIẾM là:

192.168.10.1 -> 192.168.2.199

192.168.10.1 -> 192.168.8.1

192.168.10.1 -> 192.168.8.199

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.