Vous venez de recevoir votre belle Freebox, vous avez hâte d’en profiter, mais vous préférez ne pas trop foutre de bordel dans votre réseau existant ? Lisez la suite !
Ce petit guide s’adresse à ceux qui veulent faire tourner un serveur Linux grâce à une Freebox en mode modem.
1/ Matériel nécessaire[ul]
[li] Une Freebox (v4)[/li][li] Un switch Ethernet[/li][li] Un serveur Linux avec support iptables (option « Network packet filtering » dans le kernel)[/li][li] Une ou plusieurs machines clients (sinon ca sert à rien )[/li][/ul]2/ Câblage
Le schéma suivant montre comment on relie tout ça (oui oui, la fbx est connectée directement sur le switch) :
Note : j’ai pompé honteusement les images sur ce site.
3/ Configuration réseau du serveur
Nous allons maintenant configurer Linux pour qu’il utilise la fbx à travers le switch, pour cela, il convient d’éditer plusieurs fichiers :
/etc/resolv.conf
[quote]nameserver 212.27.32.176
nameserver 212.27.32.177[/quote]
Si vous disposez d’un serveur DNS en local, vous pouvez bien sur mettre son IP à la place des serveurs Free.
/etc/network/interfaces [sur debian]
[quote]auto eth0
iface eth0 inet static
address 192.168.10.1
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255
auto eth0:0
iface eth0:0 inet static
address 82.239.137.x
netmask 255.255.255.0
network 82.239.137.0
broadcast 82.239.137.255
gateway 82.239.137.254[/quote]
Il vous faut bien entendu remplacer les IP eth0:0 par celle communiquées par Free lors de l’inscription.
Pour valider les changements (toujours sur Debian) : /etc/init.d/networking restart
A partir de maintenant, le serveur devrait avoir accès au net. Testez avec « ping ».
Attention : Vu qu’on a mis le net sur la même interface que le réseau local, tous les services accessibles sur eth0 (samba, ftp, ssh, XFree…) sont aussi accessible depuis le Net ! C’est pour cela qu’il convient de configurer le firewall iptables au plus vite.
4/ NAT + firewall
Editez un fichier avec le script suivant, que vous devez modifier en fonction de votre installation.
iptables-start.sh
[quote]#!/bin/sh
/etc/network/if-pre-up.d/iptables-start.sh
Execution des modules ftp
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
Remise a zero des regles de filtrage
iptables -F
iptables -X
iptables -t nat -F
DEBUT regles firewall
DEBUT politiques par defaut
Connexions entrantes bloquees
iptables -P INPUT DROP
Connexions forwardees acceptees
iptables -P FORWARD ACCEPT
Connexions sortantes acceptees
iptables -P OUTPUT ACCEPT
FIN politiques par defaut
On rejete les paquets SYN avec le flag FIN positionne
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j LOG --log-prefix "[IPTABLES] SYN/FIN: " --log-level warn
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
On accepte les paquets relatifs a des connexions deja etablies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
L’Asie me fait chier, je bloque tout
iptables -A INPUT -p tcp --source 200.0.0.0/6 -j DROP
iptables -A INPUT -p tcp --source 210.0.0.0/7 -j DROP
iptables -A INPUT -p tcp --source 218.0.0.0/6 -j DROP
iptables -A INPUT -p tcp --source 222.0.0.0/8 -j DROP
Connexion rapide a IRCNet
iptables -A INPUT -p tcp --source 62.4.23.42 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp --source 194.117.194.75 -j REJECT --reject-with tcp-reset
On accepte le ftp
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
On accepte le ssh
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
On accepte le Web
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Les serveurs IRCNet verifient le port suivant :
iptables -A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset
On accepte le ping
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
Pas de filtrage sur l’interface de « loopback », ni sur eth0 (pour les IP du reseau local)
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s 192.168.10.0/24 -i eth0 -j ACCEPT
FIN regles firewall
DEBUT partage de connexion
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE
FIN partage de connexion
DEBUT port forwarding
Port forward pour Warcraft 3
iptables -t nat -A PREROUTING -p tcp --dport 6112 -i eth0 -j DNAT --to 192.168.10.2:6112
iptables -t nat -A PREROUTING -p udp --dport 6112 -i eth0 -j DNAT --to 192.168.10.2:6112
iptables -t nat -A PREROUTING -p tcp --dport 6200 -i eth0 -j DNAT --to 192.168.10.2:6200
FIN port forwarding[/quote]
Notez bien les lignes suivantes. Il faut remplacer les IP par celles de votre réseau local.
[quote]iptables -A INPUT -s 192.168.10.0/24 -i eth0 -j ACCEPT
[…]
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE[/quote]
Placez ce script dans un endroit où il sera lancé automatiquement à chaque démarrage du serveur et rendez-le exécutable (chmod 755). N’oubliez pas non plus d’autoriser le NAT : « echo 1 1> /proc/sys/net/ipv4/ip_forward ».
5/ Les PC clients
Les PC clients doivent être configurés 192.168.10.x/24 avec 192.168.10.1 comme passerelle et les DNS de Free (ou ceux d’un autre serveur). Et surtout n’activez pas de DHCP sur les PC clients !!!
Voilà, fin de ce petit guide. Have fun !