Chuyển tiếp ip kernel là gì?


70

Tôi đã thấy trên nhiều blog, sử dụng lệnh này để cho phép chuyển tiếp IP trong khi sử dụng nhiều công cụ đánh hơi / bảo mật mạng trên linux

echo 1 > /proc/sys/net/ipv4/ip_forward

Bất cứ ai có thể giải thích cho tôi trong điều khoản giáo dân, về cơ bản lệnh này làm gì? Liệu nó biến hệ thống của bạn thành bộ định tuyến?


1
tập tin python để kích hoạt và vô hiệu hóa chuyển tiếp gist.github.com/addminuse/7747903cd420b15f17e0

Câu trả lời:


77

"Chuyển tiếp IP" là một từ đồng nghĩa với "định tuyến." Nó được gọi là "chuyển tiếp IP kernel" vì đây là một tính năng của kernel Linux.

Một bộ định tuyến có nhiều giao diện mạng. Nếu lưu lượng truy cập đến trên một giao diện khớp với mạng con của giao diện mạng khác, thì bộ định tuyến sẽ chuyển tiếp lưu lượng đó đến giao diện mạng khác.

Vì vậy, giả sử bạn có hai NIC, một (NIC 1) ở địa chỉ 192.168.2.1/24 và cái còn lại (NIC 2) là 192.168.3.1/24. Nếu chuyển tiếp được bật và một gói đến trong NIC 1 với "địa chỉ đích" là 192.168.3.8, bộ định tuyến sẽ gửi lại gói đó ra khỏi NIC 2.

Điều phổ biến là các bộ định tuyến hoạt động như các cổng vào Internet để có một tuyến mặc định, theo đó bất kỳ lưu lượng nào không khớp với bất kỳ NIC nào sẽ đi qua NIC của tuyến mặc định. Vì vậy, trong ví dụ trên, nếu bạn có kết nối internet trên NIC 2, bạn sẽ đặt NIC 2 làm tuyến đường mặc định của mình và sau đó, bất kỳ lưu lượng truy cập nào đến từ NIC 1 không dành cho thứ gì đó trong 192.168.2.0/24 sẽ đi thông qua NIC 2. Hy vọng rằng có các bộ định tuyến khác qua NIC 2 có thể định tuyến thêm (trong trường hợp Internet, bước nhảy tiếp theo sẽ là bộ định tuyến ISP của bạn và sau đó là nhà cung cấp bộ định tuyến ngược dòng, v.v.)

Kích hoạt ip_forwardcho hệ thống Linux của bạn làm điều này. Để nó có ý nghĩa, bạn cần hai giao diện mạng (bất kỳ 2 hoặc nhiều thẻ NIC có dây, thẻ Wifi hoặc chipset, liên kết PPP qua modem 56k hoặc nối tiếp, v.v.).

Khi thực hiện định tuyến, bảo mật rất quan trọng và đó là nơi bộ lọc gói của Linux iptables, được tham gia. Vì vậy, bạn sẽ cần một iptablescấu hình phù hợp với nhu cầu của bạn.

Lưu ý rằng việc cho phép chuyển tiếp với iptablestài khoản bị vô hiệu hóa và / hoặc không có tường lửa và bảo mật có thể khiến bạn mở các lỗ hổng nếu một trong các NIC đối mặt với Internet hoặc mạng con bạn không có quyền kiểm soát.


2
Đúng vậy, bạn sẽ muốn làm NAT nếu NIC 2 là IP riêng. Linux cũng có thể làm NAT và iptableslà cách để thiết lập nó.
LawrenceC

Có cần NAT cho dữ liệu đi từ NIC 2 đến NIC 1 không?
GutenYe

2
Thông thường NAT sẽ hoạt động từ mạng LAN đến mạng LAN, do đó, nếu NIC 2 có IP riêng và NIC 1 có công khai 1, bạn cần NAT; Cụ thể, giao diện Internet phải đối mặt với (NIC 1 mỗi ở trên) cần có một MASQUERADEquy tắc trong iptables's POSTROUTINGtrên một chuỗi để làm điều đó. Xem revsys.com/writings/quicktips/nat.htmli.stack.imgur.com/rzz83.png .
LawrenceC

Nói một cách đơn giản, liệu tôi có đúng không khi nói rằng việc bật chuyển tiếp IP có nghĩa là cho phép máy chuyển một gói từ một trong các NIC của nó sang một NIC khác? Ngoài ra, có đúng không nếu tôi nói việc kích hoạt chuyển tiếp IP không thực sự cần thiết trên một máy có một IP / NIC duy nhất?
Sree

1
@ultrasawblade Trong trường hợp chuyển tiếp IP được kích hoạt và có kết nối internet trên NIC 2 và cũng là tuyến mặc định, nếu nhận được gói tin dành cho 192.168.2.2 từ NIC 1, bộ định tuyến sẽ làm gì?
bobo

3

Khi được bật, "chuyển tiếp IP" cho phép máy Linux nhận các gói đến và chuyển tiếp chúng. Một máy Linux hoạt động như một máy chủ thông thường sẽ không cần phải bật chuyển tiếp IP, bởi vì nó chỉ tạo và nhận lưu lượng IP cho mục đích riêng của nó (tức là mục đích của người dùng).

Tuy nhiên, có những trường hợp khi chuyển tiếp IP hữu ích: 1. Chúng tôi muốn máy của chúng tôi hoạt động như một bộ định tuyến, nhận các gói từ các máy chủ khác và định tuyến chúng đến đích của chúng. 2. Chúng tôi là những kẻ xấu và chúng tôi muốn mạo danh một cỗ máy khác trong cái gọi là " cuộc tấn công giữa chừng ". Trong trường hợp này, chúng tôi muốn chặn và xem tất cả lưu lượng truy cập hướng đến nạn nhân, nhưng chúng tôi cũng muốn chuyển tiếp lưu lượng này cho cô ấy để cô ấy không "cảm nhận" sự hiện diện của chúng tôi.

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.