Voici la proposition d’infrastructure: le raspberry pi est placé entre deux routeurs. On configurera deux IP sur l’interface.
Configuration des interfaces et du routage
Comme nous venons de le dire, on va configurer deux IP sur l’interface eth0 du raspberry pi.
Voici le fichier de configuration de l’interface:
pi@raspberrypi ~ $ cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
auto eth0:0
iface eth0:0 inet static
address 192.168.3.1
netmask 255.255.255.0
pi@raspberrypi ~ $
Dans notre cas, la passerelle par défaut est configurée vers le routeur relié à internet.
On active le routage:
Tout d’abord, en live (attention au reboot …)
root@raspberrypi:/home/pi# echo 1 > /proc/sys/net/ipv4/ip_forward
Puis de manière plus persistante:
pi@raspberrypi ~ $ sudo vi /etc/sysctl.conf
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
Voici la table de routage:
pi@raspberrypi ~ $ netstat -r -n
Table de routage IP du noyau
Destination Passerelle Genmask Indic MSS Fenêtre irtt Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
pi@raspberrypi ~ $
Translation d’adresse
Pour le plaisir et pour ne pas avoir à configurer de route sur le routeur relié à internet, On ajoute en plus de la translation d’adresse.
pi@raspberrypi ~ $ sudo iptables -t nat -A POSTROUTING -s 192.168.3.2 -o eth0 -j MASQUERADE
Bonus: installation de squid en proxy http transparent
Installation de squid
root@raspberrypi:/media# apt-get install squid3
Configuration de squid
On précise le mode transparent après la directive http_port et le réseau local autorisé pour le protocole http.
root@raspberrypi:/home/pi# vi /etc/squid3/squid.conf
http_port 3128 transparent
acl localnet src 192.168.3.0/24
http_access allow localnet
Squid est redémarré (/etc/init.d/squid3 restart). Redirection du trafic vers squid
Et on oublie pas de rediriger le trafic http vers le port 3128 utilisé par squid.
root@raspberrypi:/home/pi# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
Vérification
Les logs des sites visités sont dans le fichier access.log