Apa itu penerusan ip kernel?

70

Saya telah melihat di banyak blog, menggunakan perintah ini untuk mengaktifkan penerusan IP saat menggunakan banyak alat keamanan jaringan / sniffing di linux

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

Adakah yang bisa menjelaskan kepada saya dalam istilah awam, apa dasarnya perintah ini lakukan? Apakah ini mengubah sistem Anda menjadi router?

Madhur Ahuja
sumber
1
file python untuk mengaktifkan dan menonaktifkan portforwarding gist.github.com/addminuse/7747903cd420b15f17e0

Jawaban:

77

"Penerusan IP" adalah sinonim untuk "perutean." Ini disebut "kernel IP forwarding" karena ini adalah fitur dari kernel Linux.

Router memiliki beberapa antarmuka jaringan. Jika lalu lintas masuk pada satu antarmuka yang cocok dengan subnet dari antarmuka jaringan lain, router kemudian meneruskan lalu lintas itu ke antarmuka jaringan lainnya.

Jadi, katakanlah Anda memiliki dua NIC, satu (NIC 1) ada di alamat 192.168.2.1/24, dan yang lainnya (NIC 2) adalah 192.168.3.1/24. Jika penerusan diaktifkan, dan sebuah paket masuk pada NIC 1 dengan "alamat tujuan" 192.168.3.8, router akan mengirim ulang paket itu dari NIC 2.

Biasanya router berfungsi sebagai gateway ke Internet untuk memiliki rute default di mana lalu lintas apa pun yang tidak cocok dengan NIC akan melalui NIC rute default. Jadi dalam contoh di atas, jika Anda memiliki koneksi internet pada NIC 2, Anda akan menetapkan NIC 2 sebagai rute default Anda dan lalu lintas apa pun yang datang dari NIC 1 yang tidak diperuntukkan untuk sesuatu pada 192.168.2.0/24 akan hilang melalui NIC 2. Mudah-mudahan ada router lain melewati NIC 2 yang dapat merutekannya lebih lanjut (dalam kasus Internet, hop berikutnya adalah router ISP Anda, dan kemudian penyedia mereka router hulu, dll.)

Mengaktifkan ip_forwardmemberitahu sistem Linux Anda untuk melakukan ini. Agar bermakna, Anda memerlukan dua antarmuka jaringan (2 atau lebih kartu NIC kabel, kartu Wifi atau chipset, tautan PPP melalui modem atau serial 56k, dll.).

Saat melakukan perutean, keamanan sangat penting dan di situlah filter paket Linux iptables, terlibat. Jadi Anda akan memerlukan iptableskonfigurasi yang konsisten dengan kebutuhan Anda.

Perhatikan bahwa mengaktifkan penerusan dengan iptablescacat dan / atau tanpa memperhitungkan firewall dan keamanan dapat membuat Anda terbuka terhadap kerentanan jika salah satu NIC menghadap ke Internet atau subnet yang tidak Anda kendalikan.

LawrenceC
sumber
2
Benar, Anda ingin melakukan NAT jika NIC 2 adalah IP pribadi. Linux dapat melakukan NAT juga dan iptablesmerupakan cara untuk mengaturnya.
LawrenceC
Apakah perlu NAT untuk data dari NIC 2 ke NIC 1?
GutenYe
2
Biasanya NAT akan bekerja dari LAN ke WAN, jadi jika NIC 2 memiliki IP pribadi, dan NIC 1 memiliki 1 publik, Anda memang perlu NAT; khusus, antarmuka internet menghadap (NIC 1 per di atas) membutuhkan MASQUERADEaturan dalam iptables's POSTROUTINGpada rantai untuk melakukan itu. Lihat revsys.com/writings/quicktips/nat.html dan i.stack.imgur.com/rzz83.png .
LawrenceC
Dengan kata sederhana, apakah benar jika saya mengatakan bahwa mengaktifkan IP forwarding berarti memungkinkan mesin untuk melewatkan paket dari salah satu NIC-nya ke NIC lainnya? Juga, apakah itu benar jika saya katakan mengaktifkan IP forwarding tidak benar-benar diperlukan pada mesin dengan IP / NIC tunggal?
Sree
1
@ultrasawblade Dalam kasus penerusan IP diaktifkan dan memiliki koneksi internet pada NIC 2 dan juga sebagai rute default, jika menerima paket yang ditujukan untuk 192.168.2.2 dari NIC 1, apa yang akan dilakukan router?
bobo
3

Saat diaktifkan, "Penerusan IP" memungkinkan mesin Linux menerima paket yang masuk dan meneruskannya. Mesin Linux yang bertindak sebagai host biasa tidak perlu mengaktifkan IP forwarding, karena hanya menghasilkan dan menerima lalu lintas IP untuk keperluannya sendiri (yaitu, tujuan penggunanya).

Namun, ada beberapa kasus ketika penerusan IP berguna: 1. Kami ingin mesin kami bertindak sebagai router, menerima paket dari host lain dan mengarahkan mereka ke tujuan. 2. Kami adalah orang jahat dan kami ingin meniru mesin lain dalam apa yang disebut " man-in-the-middle-attack ". Dalam hal ini, kami ingin mencegat dan melihat semua lalu lintas diarahkan ke korban, tetapi kami juga ingin meneruskan lalu lintas ini kepadanya, sehingga dia tidak "merasakan" kehadiran kami.

Andrea Araldo
sumber