Tout d’abord, bonjour à tous.
Je viens de m’inscrire sur le forum car j’ai besoin d’aide mais je ne sais pas si
c’est bien ici que je dois poster ma question. Bon je me lance.
Je tente, depuis un mois, d’installer un routeur sur la base d’un mini-PC sur lequel
est installé une Debian Squeeze 6.0.5, un demon dchp (isc-dhcp-server), un dns
(bind9) qui font correctement leur travail sur le réseau local.
Un rapide descriptif :
mini-PC :
SmartTeck Nano PC AMD APU E350
CPU AMD E350 Dual Core 2x1,6 GHz
(pour ceux que sa intéresse réf : SMT-FOX-NTA3500-BL).
Quelques messages du noyeau :
[code]Il dispose d’une carte réseau interne 10/100/1000 Mbits (connecté à un commutateur sur le réseau local) :
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)
Subsystem: Foxconn International, Inc. Device 0e29
Aug 1 15:37:14 debian-apu-e350 kernel: [ 2.091570] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
Aug 1 15:37:14 debian-apu-e350 kernel: [ 2.091604] r8169 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
Aug 1 15:37:14 debian-apu-e350 kernel: [ 2.091662] r8169 0000:02:00.0: setting latency timer to 64
Aug 1 15:37:14 debian-apu-e350 kernel: [ 2.091672] r8169 0000:02:00.0: (unregistered net_device): unknown MAC, using family default
Aug 1 15:37:14 debian-apu-e350 kernel: [ 2.091756] r8169 0000:02:00.0: irq 27 for MSI/MSI-X
Aug 1 15:37:14 debian-apu-e350 kernel: [ 2.092667] r8169 0000:02:00.0: eth0: RTL8168b/8111b at 0xf7db8000, d0:27:88:79:a7:ff, XID 0c900800 IRQ 27
Il dispose aussi d’une carte réseau interne Wifi b/g/n :
03:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01)
Subsystem: Foxconn International, Inc. Device e025
Aug 2 05:05:01 debian-apu-e350 kernel: [ 8.643813] phy0: Atheros AR9285 MAC/BB Rev:2 AR5133 RF Rev:e0: mem=0xf8440000, irq=17
Aug 2 05:08:20 debian-apu-e350 kernel: [ 7.643130] ath9k 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
Aug 2 05:08:20 debian-apu-e350 kernel: [ 7.643147] ath9k 0000:03:00.0: setting latency timer to 64
Aug 2 05:08:20 debian-apu-e350 kernel: [ 8.366879] phy0: Selected rate control algorithm 'ath9k_rate_control’
Aug 2 05:08:20 debian-apu-e350 kernel: [ 8.367892] Registered led device: ath9k-phy0::radio
Aug 2 05:08:20 debian-apu-e350 kernel: [ 8.367918] Registered led device: ath9k-phy0::assoc
Aug 2 05:08:20 debian-apu-e350 kernel: [ 8.367947] Registered led device: ath9k-phy0::tx
Aug 2 05:08:20 debian-apu-e350 kernel: [ 8.367971] Registered led device: ath9k-phy0::rx
Aug 2 05:08:20 debian-apu-e350 kernel: [ 8.367991] phy0: Atheros AR9285 MAC/BB Rev:2 AR5133 RF Rev:e0: mem=0xf82c0000, irq=17
Afin de faire le pont avec Internet, j’ai branché un adaptateur USB -> ethernet sur un des ports USB arrière (connecté au modem LiveBox) :
Aug 1 15:36:17 debian-apu-e350 kernel: [ 7.471773] eth1: register ‘MOSCHIP usb-ethernet driver’ at usb-0000:00:12.2-4, MOSCHIP 7830/7730 usb-NET adapter, 00:13:3b:00:05:ed
Aug 1 15:36:17 debian-apu-e350 kernel: [ 7.471816] usbcore: registered new interface driver MOSCHIP usb-ethernet driver[/code]
Or, malgré avoir modifié le fichier /etc/sysctl.conf comme suit :
[code]net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0
Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
net.ipv4.conf.all.secure_redirects = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0[/code]
et obtenu du noyeau les messages suivants :
Aug 1 15:37:17 debian-apu-e350 kernel: [ 18.471016] Bridge firewalling registered
Aug 2 05:05:08 debian-apu-e350 kernel: [ 25.010713] ip_tables: (C) 2000-2006 Netfilter Core Team
Aug 2 05:05:08 debian-apu-e350 kernel: [ 25.067280] nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
Aug 2 05:05:08 debian-apu-e350 kernel: [ 25.067802] CONFIG_NF_CT_ACCT is deprecated and will be removed soon. Please use
Aug 2 05:05:08 debian-apu-e350 kernel: [ 25.067809] nf_conntrack.acct=1 kernel parameter, acct=1 nf_conntrack module option or
Aug 2 05:05:08 debian-apu-e350 kernel: [ 25.067816] sysctl net.netfilter.nf_conntrack_acct=1 to enable it.
Aug 2 05:08:20 debian-apu-e350 kernel: [ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-2.6.32-5-686 root=UUID=1567d930-0364-4d56-b665-4ddd33a851f8 ro ipv6.disable=0 quiet
avoir créé dans un fichier rc.firewall les directives iptables suivantes :
[code]#!/bin/sh
Installation du pare-feu :
Efface les anciennes affectations :
iptables --flush
iptables --table nat --flush
iptables --table filter --flush
iptables --table mangle --flush
Efface toutes les chaines qui ne sont pas par défaut dans les filtres :
iptables --delete-chain
iptables --table nat --delete-chain
iptables --table filter --delete-chain
iptables --table mangle --delete-chain
Création de nouvelles règles :
iptables --table filter -P INPUT ACCEPT
iptables --table filter -P FORWARD ACCEPT
iptables --table filter -P OUTPUT ACCEPT
iptables --table nat -P PREROUTING ACCEPT
iptables --table nat -P POSTROUTING ACCEPT
iptables --table nat -P OUTPUT ACCEPT
Règles pour une machine serveur faisant office de routeur NAT :
# Pas de filtrage sur la boucle locale :
iptables --table filter --append INPUT --in-interface lo -j ACCEPT
# Pas de filtrage sur les interfaces locales :
iptables --table filter --append INPUT --in-interface eth0 -j ACCEPT
iptables --table filter --append INPUT --in-interface wlan0 -j ACCEPT
Valide l’IP FORWARDing et MASQUERADing (NAT) :
# Accès à Internet à travers les interfaces eth0 (réseau local) - eth1 (réseau Internet) :
# Accepte le protocole IGMP (pour la multicéast) :
iptables --table filter --append INPUT -p igmp -j ACCEPT
# Accepte le protocole ICMP (notamment le ping) :
iptables --table filter --append INPUT -p icmp -j ACCEPT
# Active le NAT d'iptables.
iptables --table nat --append POSTROUTING --out-interface eth1 -j MASQUERADE
# Accepte les paquets entrants relatifs à des connexions déjà établies.
iptables --table filter --append FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Autorisation des requêtes DNS venant d'un serveur local.
iptables --table filter --append INPUT --in-interface eth1 -p udp --sport 53 --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables --table filter --append INPUT --in-interface eth1 -p tcp --sport 53 --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables --table filter --append OUTPUT --out-interface eth0 -p udp --sport 1024: --dport 53 -m state ! --state INVALID -j ACCEPT
iptables --table filter --append OUTPUT --out-interface eth0 -p tcp --sport 1024: --dport 53 -m state ! --state INVALID -j ACCEPT
iptables --table filter --append OUTPUT --out-interface wlan0 -j ACCEPT
iptables --table filter --append OUTPUT --out-interface eth0 -j ACCEPT
iptables --table filter --append OUTPUT --out-interface lo -j ACCEPT
# Gestion du problème de MTU entre le serveur NAT relié au fournisseur et les machines derrière lui :
iptables --table mangle --append FORWARD --out-interface eth0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Chargement dans le noyeau :
iptables-save | iptables-restore
Sauvegarde de la table en cours :
iptables-save>/etc/rc.d/firewall-`date +%Y-%m-%d_%T`.txt
exit 0
[/code]
avoir créé dans un fichier rc.route, les directives suivantes :
[code]#!/bin/sh
Configuration de la table de routage :
echo -n " Ajout route défaut -> eth0"
route add -net default gw 192.168.1.254 dev eth0 # eth0
echo " -> [ Fait ]"
echo -n " Ajout route défaut -> eth1"
route add -net 0.0.0.0 gw 192.168.0.1 dev eth1 # eth1
echo " -> [ Fait ]"
echo -n " Ajout route défaut -> wlan0"
route add default gw 192.168.1.253 dev wlan0 # wlan0
echo " -> [ Fait ]"
Sauvegarde de la table de routage :
route>/etc/rc.d/routage-`date +%Y-%m-%d_%T`.txt
exit 0[/code]
et obtenu le message suivant :
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
0.0.0.0 192.168.1.253 0.0.0.0 UG 0 0 0 wlan0
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth1
En résumé :
- eth0 : réseau local (192.168.1.0), adresse fixe par configuration static dans /etc/network/interface;
- eth1 : réseau externe (192.168.0.0), adresse obtenue par le dhcp du modem LiveBox;
- wlan0 : interface pour gérer un point d’acces WiFi pour connexion sans fil (utilisation ultérieure).
je parviens à :
- pinger toutes les machines à partir du serveur sur le réseau local 192.168.1.0);
- pinger le serveur (192.168.1.254) et d’autres machines à partir d’une quelconque machine du réseau local (192.168.1.0);
- pinger le modem (192.168.0.1) à partir d’une quelconque machine du réseau local (192.168.1.0);
- je parviens à me connecter au modem LiveBox (192.168.0.1) à partir du serveur ou d’une quelconque machine du réseau local (192.168.1.0).
On peut considérer donc que le routeur fonctionne correctement.
Sauf que, si je tente de pinger par exemple google.fr, çà ne marche pas (unknown host). Le serveur ntpd ou le dns local ne parviennent pas non plus à se connecter à Internet.
En dehors du réseau local, rien ne marche sur Internet.
Toutefois, je pense à quelque chose qui pourrait faire que la connexion ne fonctionne pas : la déconnexion intempestive de l’adaptateur USB -> ethernet. S’il est possible, peut-on rendre ce branchement permanent ?
Si quelqu’un voit une erreur de configuration ou si il y a quelque chose de plus à rajouter, je suis preneur.
Je reste (comme on le dit habituellement) à votre disposition pour des précisions (excuses pour la mise en page pour la table de routage).
Merci d’avance pour vos réponses ou conseils.
Jean-Pierre.
, la question est de savoir comment diable ce fran.b est apparu dans ton message, association d’idées surement