Créer une passerelle avec iptables

Je ne comprends pas grand-chose aux réseaux, bien que je les utilise, d’une manière ou d’une autre. Par exemple, aller sur internet, configurer une connexion en ethernet ou en wifi, ou utiliser un réseau local. (avec ssh, sshfs… )

Là je voulais avoir une machine en passerelle : un portable connecté à Internet en wifi, et la machine cliente connectée à la passerelle est un autre portable, relié par l’interface eth0 (donc un cable ethernet).

Alors, merci aux archers qui m’ont aidée sur le chan #archlinux-fr (serveur freenode) : CalimeroTecnik, quinq, et tuxce. Après avoir suivi leurs indications, tout fonctionne parfaitement.

Voici le résumé de l’opération. Après avoir installé le paquet iptables:

server : wlan0 lui fournit internet, eth0 est connecté sur un pc client qui veut internet.

1/activer le transfert de paquets au niveau du noyau (/proc etc)
server=> echo 1 > /proc/sys/net/ipv4/ip_forward

2/activer le NAT sur ta passerelle
server=> iptables -t nat -A POSTROUTING -o wlan0 -j SNAT –to-source 192.168.1.32

3/monter un réseau ethernet entre les deux PCs
server=> ifconfig eth0 192.168.0.3

client=> ifconfig eth0 192.168.0.9
client=> route add default gw 192.168.0.3
client=> echo nameserver 208.67.222.222 > /etc/resolv.conf

/! Veiller à avoir une famille d’ip différente sur les deux interfaces réseau: ici sur
eth il y a 192.168.0.xxx et sur wlan il y a 192.168.1.xxx

/! Les adresses des réseaux sont choisies en fonction du réseau déjà existant. Ici, l’ip du
client sur l’interface eth0 était déjà configurée dans le système, j’ai donc réutilisé la même. Autrement, on peut choisir n’importe laquelle, du moment que c’est dans la bonne famille d’adresse (l’avant-dernier groupe de chiffres)

Enfin, il faut aussi faire attention au DNS qui est configuré dans le fichier /etc/resolv.conf de la passerelle.

Chez moi, il y avait le DNS du routeur Adsl, c’est à dire son ip, alors que je passe d’abord par le routeur wifi… en mettant les DNS de chez OpenDNS, ça fonctionne… Vous pouvez aussi mettre les DNS de votre fournisseur d’accès internet, (FAI), ou encore les DNS de OpenNic, ça devrait fonctionner tout aussi bien.

Proxy cache Polipo

Voici une alternative à Squid, à essayer à l’occasion. Polipo permet tout comme Squid, de rendre la navigation sur Internet plus confortable, pour les connexions internet de faible capacité, tout en prenant moins sur les ressources de la machine où il est installé.

Polipo – a caching web proxy : http://www.pps.jussieu.fr/~jch/software/polipo/

Polipo is a small and fast caching web proxy (a web cache, an HTTP proxy, a proxy server). While Polipo was designed to be used by one person or a small group of people, there is nothing that prevents it from being used by a larger group.

Sous Archlinux, il y a des PKGBUILDS sur AUR:

1 aur/polipo 1.0.4-3 (48)
A small and fast caching web proxy.

2 aur/polipo-darcs darcs-2 (2)

A small and fast HTTP proxy (can be used with Tor)

Sysrq ou les touches magiques

Les touches magiques c’est bien. Quand tout est planté même le clavier, ça peut permettre de reprendre la main, ou au pire de rebooter sans toucher aux boutons physiques de la machine.

Voici une liste des commandes pouvant être employées, présentées par « Le petit journal d’un linuxien novice ».

Si cette option sysrq ne fonctionne pas dans votre distribution, il est possible d’en activer l’option dans /etc/sysctl.conf : kernel.sysrq = 1

Merci à tuxce de archlinux.fr pour cette information fournie il y a quelques temps déjà. Il ajoutait sur ce fil de discussion:

pour la prise en compte sans redémarrage : echo 1 > /proc/sys/kernel/sysrq

puis lors d’un blocage: shift+alt+sysrq+r passe le évenements clavier directement au noyau et un ctrl+alt+f1 devient possible.