Blog CLEMANET
Systèmes et réseaux

Configurer un raspberry pi en coupure

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