Qu'est-ce que la transmission ip du noyau?

70

J'ai vu sur de nombreux blogs, en utilisant cette commande pour activer le transfert IP tout en utilisant de nombreux outils de sécurité / sniffing réseau sur Linux

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

Quelqu'un peut-il m'expliquer en termes profanes, qu'est-ce que cette commande fait essentiellement? Cela transforme-t-il votre système en routeur?

Madhur Ahuja
la source
1
fichier python pour activer et désactiver le portforwarding gist.github.com/addminuse/7747903cd420b15f17e0

Réponses:

77

"Transfert IP" est un synonyme de "routage". Il s’appelle "transfert IP du noyau" car c’est une fonctionnalité du noyau Linux.

Un routeur a plusieurs interfaces réseau. Si le trafic arrive sur une interface correspondant à un sous-réseau d'une autre interface réseau, un routeur le transfère ensuite à l'autre interface réseau.

Supposons donc que vous avez deux cartes réseau: l'une (la carte réseau 1) est à l'adresse 192.168.2.1/24 et l'autre (la carte réseau 2) à l'adresse 192.168.3.1/24. Si le transfert est activé et qu'un paquet arrive sur le NIC 1 avec une "adresse de destination" de 192.168.3.8, le routeur le renverra en dehors du NIC 2.

Il est courant que les routeurs faisant office de passerelles vers Internet aient une route par défaut, de sorte que tout trafic ne correspondant à aucune carte réseau passe par la carte réseau de la route par défaut. Ainsi, dans l'exemple ci-dessus, si vous disposez d'une connexion Internet sur le NIC 2, vous devez définir le NIC 2 comme itinéraire par défaut, puis le trafic provenant du NIC 1 qui n'est pas destiné à quelque chose sur 192.168.2.0/24 sera renvoyé. via le NIC 2. Espérons qu’il existe d’autres routeurs, après le NIC 2, qui peuvent l’acheminer davantage (dans le cas d’Internet, le saut suivant serait celui de votre fournisseur de services Internet, puis celui de leurs fournisseurs en amont, etc.).

Activer ip_forwardindique à votre système Linux de le faire. Pour que cela ait un sens, vous avez besoin de deux interfaces réseau (deux ou plusieurs cartes NIC câblées, cartes WiFi ou chipsets, liaisons PPP sur un modem 56k ou série, etc.).

Lors du routage, la sécurité est importante et c'est là que le filtre de paquets de Linux iptables, est impliqué. Vous aurez donc besoin d’une iptablesconfiguration cohérente avec vos besoins.

Notez que l'activation du transfert avec iptablesdésactivé et / ou sans prendre en compte le pare-feu et la sécurité peut vous rendre vulnérable aux vulnérabilités si l'une des cartes réseau fait face à Internet ou à un sous-réseau sur lequel vous n'avez pas le contrôle.

LawrenceC
la source
2
Bien, vous voudrez faire NAT si NIC 2 est une adresse IP privée. Linux peut aussi faire du NAT et iptablesc'est le moyen de le configurer.
LawrenceC
A-t-il besoin d'un NAT pour les données allant du NIC 2 au NIC 1?
GutenYe
2
En règle générale, le NAT fonctionnera du LAN au WAN. Par conséquent, si le NIC 2 a une adresse IP privée et que le NIC 1 a un 1 public, vous avez besoin du NAT. Plus précisément, l'interface Internet face (NIC 1 par ci - dessus) a besoin d' une MASQUERADErègle iptablesest POSTROUTINGsur une chaîne pour le faire. Voir revsys.com/writings/quicktips/nat.html et i.stack.imgur.com/rzz83.png .
LawrenceC
En termes simples, sera-t-il vrai si je dis que l'activation du transfert IP signifie que la machine peut transmettre un paquet d'une de ses cartes réseau à une autre de ses cartes réseau? En outre, serait-ce vrai si je dis que l'activation du transfert IP n'est pas vraiment requise sur une machine avec un seul IP / NIC?
Sree
1
@ultrasawblade Dans le cas du transfert IP activé et disposant d'une connexion Internet sur le NIC 2 et également comme route par défaut, si ce dernier reçoit un paquet destiné au 192.168.2.2 en provenance du NIC 1, que fera le routeur?
bobo
3

Lorsqu'il est activé, le "transfert IP" permet à une machine Linux de recevoir les paquets entrants et de les transférer. Une machine Linux agissant en tant qu'hôte ordinaire n'aurait pas besoin d'activer le transfert IP, car elle génère et reçoit simplement du trafic IP pour ses propres objectifs (objectifs de son utilisateur).

Cependant, il existe des cas où le transfert IP est utile: 1. Nous voulons que notre machine agisse en tant que routeur, recevant des paquets d’autres hôtes et les acheminant vers leur destination. 2. Nous sommes des méchants et nous voulons usurper l'identité d'une autre machine dans une soi-disant " attaque médiatique ". Dans ce cas, nous voulons intercepter et voir tout le trafic dirigé vers la victime, mais nous voulons également le lui transmettre, afin qu'elle ne "ressente" pas notre présence.

Andrea Araldo
la source