<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Geekfault &#187; routeur</title>
	<atom:link href="http://geekfault.org/tag/routeur/feed/" rel="self" type="application/rss+xml" />
	<link>http://geekfault.org</link>
	<description>If it doesn&#039;t segfault, you&#039;re doing it wrong.</description>
	<lastBuildDate>Sun, 16 Oct 2011 00:54:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>EeeGW : Créer soi-même une passerelle réseau</title>
		<link>http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/</link>
		<comments>http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 11:44:59 +0000</pubDate>
		<dc:creator>bragon</dc:creator>
				<category><![CDATA[eeegw]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[Matériel]]></category>
		<category><![CDATA[gateway]]></category>
		<category><![CDATA[how]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[nat]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[routeur]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=1711</guid>
		<description><![CDATA[Le routeur-passerelle (gateway, en anglais) est le lien entre votre réseau local et l&#8217;Internet. Sans doute utilisez-vous simplement la box fournie par votre FAI ou un autre modem-routeur acheté en magasin, mais installer et configurer soi-même son gateway présente de nombreux avantages. Je vous présente via cet article ma transformation d&#8217;un EeePC, qui ne me [...]
<h3>Si vous avez aimé ce post...</h3><ol>
<li><a href='http://geekfault.org/2010/02/20/eeegw-ze-retour-du-detour-proxycache/' rel='bookmark' title='EeeGW &#8211; ZE retour du détour ! &#8211; Proxycache.'>EeeGW &#8211; ZE retour du détour ! &#8211; Proxycache.</a></li>
<li><a href='http://geekfault.org/2010/05/24/eeegw-part-iii-quality-of-service-aka-qos/' rel='bookmark' title='Eeegw &#8211; part III &#8211; Quality Of Service aka QOS'>Eeegw &#8211; part III &#8211; Quality Of Service aka QOS</a></li>
<li><a href='http://geekfault.org/2009/05/20/firmware-linksys-wag200g/' rel='bookmark' title='Firmware modifié pour Linksys WAG200G'>Firmware modifié pour Linksys WAG200G</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><!--pagetitle:Introduction--><a href="http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/img00263/" rel="attachment wp-att-1864"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;' align="left"   src="http://geekfault.org/wp-content/uploads/2009/12/IMG00263-300x225.jpg" alt="" title="IMG00263" width="300" height="225" class="alignleft size-medium wp-image-1864" /></a>Le routeur-passerelle (gateway, en anglais) est le <strong>lien entre votre réseau local et l&#8217;Internet</strong>. Sans doute utilisez-vous simplement la box fournie par votre FAI ou un autre modem-routeur acheté en magasin, mais installer et configurer soi-même son gateway présente de nombreux avantages.</p>
<p>Je vous présente via cet article ma transformation d&#8217;un <strong>EeePC</strong>, qui ne me servait à rien, en routeur-passerelle réseau. Je vous présente mon travail, mais il est très facile d&#8217;adapter ce travail à votre utilisation et à votre propre machine afin de la transformer en un super routeur Linux qui tue tout <img src='http://geekfault.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
<!--more--></p>
<h3>Article illustré par l&#8217;exemple</h3>
<p>Cette documentation est adapté à mon LAN qui est paramétré sur le subnet 10.0.69.0/24. Le eeegw, comme je l&#8217;appelle, prend donc l&#8217;adresse 10.0.69.250/24 est sera la gateway de mon réseau afin que mes autres machines puissent accéder à l&#8217;internet.</p>
<h3>À quoi ça sert de monter sa propre Gateway ? </h3>
<ul>
<li>Ne pas avoir à redémarrer sa connexion internet chaque fois qu&#8217;on a envie de toucher aux règles de firewalling. En effet les box des FAI nécessitent de redémarrer pour prendre en compte de nouveaux paramètres</li>
<li>Ne pas avoir une boite noire à la place de routeur : on peut surveiller son réseau et savoir quels sont les packets qui y passent</li>
<li>Pouvoir loguer via iptables et ulogd par exemple <em>(futur article)</em></li>
<li>Pouvoir grapher via rrdtool / Mrtg la bande passante qui passe par vos liens</li>
<li>Pouvoir héberger un petit blog (par exemple) directement sur votre passerelle</li>
<li>Pouvoir mettre en place un proxy transparent pour votre connexion pour mettre en cache les pages les plus souvent demandées et ainsi économiser de la bande passante <em>(futur article)</em></li>
<li>Savoir exactement ce qui se passe avec votre connexion internet</li>
<li>Mettre en place des outils de détection d&#8217;attaques sur votre réseau via SNORT <em>(futur article)</em></li>
</ul>
<h3>Choisir le bon matériel</h3>
<p>N&#8217;importe quel ordinateur avec un tant soit peu de puissance est suffisant pour faire un bon gateway, il suffit que cette machine soit munie de <strong>plusieurs interfaces réseau</strong>.</p>
<p>Durant des années j&#8217;ai eu en tant que passerelle un PII 266Mhz muni de 128MB de ram et d&#8217;un disque dur de 2Go. Pour cette nouvelle gateway j&#8217;ai choisi le <strong>EeePC 7&#8243;</strong> que j&#8217;ai baptisé <strong>eeegw</strong> <img src='http://geekfault.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Pourquoi ce choix? Parce que le EeePC dispose de beaucoup d&#8217;avantages à être transformé en Gateway :</p>
<ul>
<li>Il est muni d&#8217;une batterie donc non affecté par une coupure de courant éventuelle</li>
<li>Il dispose d&#8217;une interface réseau ethernet et d&#8217;une interface wifi </li>
<li>La carte wifi intégrée est une Atheros et supporte donc (via le pilote madwifi) les multi wireless WAN </li>
<li>Sa puissance est honorable (512 de RAM / 900Mhz / 4Go de SSD)</li>
<li>On peut très facilement installer une distribution GNU/Linux dessus </li>
<li>On peut installer un serveur web dessus en toute tranquillité</li>
<li>Son matériel est pleinement supporté par le noyau Linux</li>
<li>Sa consommation est très faible, permettant donc d&#8217;être allumé 24/24 sans détruire son budget EDF </li>
</ul>
<h3>Installer la bonne distribution</h3>
<p>Si comme moi vous souhaitez transformer un EeePC, je vous conseille Debian. Personnelement j&#8217;aurais bien choisi Gentoo, mais le EeePC prendrait trop de temps à compiler, et ne refroidit pas spécialement bien.</p>
<p>Installer la distribution Debian sur un EeePC est très bien documenté, il vous suffit de créer une clée usb bootable. Je vous renvoie à la documentation de Debian : <a href="http://wiki.debian.org/DebianEeePC/HowTo/Install">EeeDebian</a>.</p>
<h3>Glossaire des packets Debian nécessaires pour ce howto </h3>
<ul>
<li>iproute</li>
<li>iptables</li>
<li>apache2</li>
<li>munin munin-node</li>
<li>wireless-tools</li>
</ul>
<p><!--nextpage--><!--pagetitle:Connexions internet--></p>
<h3> Se connecter aux FAI sur les interfaces concernées </h3>
<p>Je dispose pour ma part d&#8217;une connexion au web fournie via le fournisseur d&#8217;accès Nerim (j&#8217;établis donc la connexion en <strong>PPPoE</strong> comme avec la plupart des fournisseurs ADSL). Je dispose d&#8217;une seconde connexion via du <strong>WiFi</strong> fourni par un de mes voisins (qui accepte que je me serve de sa connexion).</p>
<p>Ne vous inquiétez pas si vous n&#8217;avez qu&#8217;une seule connexion, ou si vous avez Free+Numericable ou n&#8217;importe quelle autre combinaison, cet article est facilement adaptable à votre configuration.</p>
<h3>Connexion PPP</h3>
<p>Configurez la connexion PPPoE:<br />
<code>/etc/ppp/peers/dsl-provider</code><br />
<code> # Minimalistic default options file for DSL/PPPoE connections<br />
noipdefault<br />
defaultroute<br />
replacedefaultroute<br />
hide-password<br />
#lcp-echo-interval 30<br />
#lcp-echo-failure 4<br />
noauth<br />
persist<br />
#mtu 1492<br />
#persist<br />
#maxfail 0<br />
#holdoff 20<br />
plugin rp-pppoe.so eth0<br />
user "plopplop@adslc.fai.fai"<br />
usepeerdns </code></p>
<p>Et enregistrez vos identifiants:<br />
<code>/etc/ppp/chap-secret</code><br />
<code># Secrets for authentication using CHAP<br />
# client server secret IP addresses<br />
"plopplop@adslc.fai.fai" * "mdpdelamortquituedevotreFAI"</code> </p>
<p>Et créez le script qui initiera cette connexion:<br />
<code>/etc/eeegw/fai.sh</code><br />
<code>#!/bin/bash<br />
/usr/sbin/pppd call dsl-provider</code> </p>
<p>Placez ensuite ce script fai.sh dans les régles de pre-up du fichier Debian /etc/network/interfaces. Votre connexion ppp sera ainsi demarré au boot de la eeegw. Voir, pour exemple, le mien en fin d&#8217;article.</p>
<p>Finalement, un script pour s&#8217;assurer que votre connexion PPP est bien up avec votre fournisseur d&#8217;accès ADSL. Il est lancé via un cron toutes les 5 minutes ainsi, si la connexion tombe, ce script lui permettra de se relancer automatiquement.<br />
<code>/etc/eeegw/nerim.sh</code><br />
<code lang="bash">#!/bin/bash</p>
<p>#SERVERS="62.4.16.36 feth1-0-thevenin.nerim.net www.nerim.net hsrp1-telehouse.nerim.net feth0-0-julo.nerim.net"<br />
SERVERS2=irc.geeknode.org<br />
STATUS_LINK=0</p>
<p>USER=`id -u`</p>
<p>if [ ! "$USER" = "0" ];<br />
then<br />
  echo "you're not root, you can't check adsl."<br />
  exit<br />
fi</p>
<p>if [ -f /var/run/checkadsl ]<br />
then<br />
  echo already running<br />
  exit<br />
fi</p>
<p>if ! /sbin/ifconfig ppp0 > /dev/null<br />
then<br />
  echo "No pppd running. Restarting NOW."<br />
  killall pppd<br />
  /etc/init.d/networking restart<br />
  exit<br />
fi</p>
<p>touch /var/run/checkadsl</p>
<p>## recupere l'ip du peer<br />
ip=$(/sbin/ifconfig  ppp0 | /bin/grep "P-t-P" | /usr/bin/cut -d":" -f3 | /usr/bin/cut -d" " -f1)<br />
SERVERS=$ip</p>
<p>for i in $SERVERS;<br />
do<br />
  ping -c 3 $i<br />
#1>/dev/null 2>/dev/null<br />
  if [ "$?" = "0" ];<br />
  then<br />
    STATUS_LINK=1<br />
    rm -f /var/run/checkadsl<br />
    echo "exit c est ok on passe au deuxieme test"<br />
  exit 0<br />
  fi<br />
done</p>
<p># on sen bat du test maintenant<br />
if [ "$STATUS_LINK" = "0" ];<br />
then<br />
  echo "ADSL Link DOWN. Restarting NOW."</p>
<p>  /etc/init.d/net.ppp0 restart<br />
  rm -f /var/run/checkadsl<br />
fi</p>
<p>rm -f /var/run/checkadsl</code></p>
<h3>Connexion wifi</h3>
<p>Voici une simple configuration de l&#8217;interface WiFi. Je vous renvoie à la documentation adaptée pour plus de détails.</p>
<p>Placez la clé wep dans /etc/eeegw/fb.key puis créez le script<br />
<code>/etc/eeegw/wifi.sh</code><br />
<code>#!/bin/bash<br />
wlanconfig ath0 destroy<br />
wlanconfig ath0 create wlandev wifi0 wlanmode sta<br />
sleep 5<br />
ifconfig ath0 up<br />
iwconfig ath0 essid freebox key `cat /etc/eeegw/fb.key`<br />
dhclient ath0</code> </p>
<p>Ajoutez /etc/eeegw/wifi.sh à vos régles pre-up du fichier /etc/network/interfaces</p>
<h3>Autre type de connexion </h3>
<p>Si par exemple vous êtes chez Free, je vous conseille de monter votre Freebox en mode <strong>bridge</strong>. Ainsi votre eeegw n&#8217;aura plus qu&#8217;à effectuer un bound dhcp sur eth0 afin d&#8217;obtenir l&#8217;IP publique Free et tous les packets arriveront donc directement sur votre eeegw.</p>
<p>Pour redispatcher la connexion, vous pouvez soit le faire via une seconde carte réseau sur votre eeegw (ou votre pc équivalent), soit transformer votre eeegw en point d&#8217;accès WiFi! Transformer un eeepc en eeeap est expliqué ici : <a href="http://geekshell.org/~bragon/doku/doku.php?id=ap.sh">eeeAP</a> </p>
<p><!--nextpage--><!--pagetitle:Répartition entre plusieurs connexions--></p>
<h3>Faire fonctionner les deux connexions ensemble</h3>
<p>Plusieurs choix s&#8217;offrent à vous:</p>
<ul>
<li>Vous n&#8217;avez qu&#8217;un seul lien vers une seule connexion internet. Passez directement à l&#8217;étape suivante.</li>
<li>Vous avez deux connexions web qui ont le même débit et vous souhaitez partager symétriquement le débit</li>
<li>Vous avez deux connexions web qui n&#8217;ont pas le même débit et vous souhaitez partager asymétriquement le débit</li>
<li>Vous avez deux connexions web qui ont ou pas le même débit : une en tant que connexion principale et l&#8217;autre en secours ou pour certaines routes en particulier</li>
<p>Personnellement j&#8217;utilise cette dernière solution, mais je vais aussi vous expliquer les deux autres possibilités de répartiton.</p>
<h3>Activer IP Forwarding </h3>
<p>Quel que soit les choix que vous ferrez par la suite vous avez besoin d&#8217;activer ip_forward dans votre noyau.</p>
<p>Indispensable pour que votre routeur fonctionne!<br />
<code>/etc/sysctl.conf</code><br />
<code>net.ipv4.ip_forward = 1<br />
net.ipv6.conf.all.forwarding = 1</code></p>
<p>Et rechargez la configuration:<br />
<code># sysctl -p</code></p>
<h3>Distribuer sur deux connexions ayant le même poids</h3>
<p>Imaginons que nous ayons FAI-1 derrière eth1 et FAI-2 derrière eth2. Ce deux connexions sont relativement identiques et nous souhaitons donc simplement distribuer équitablement le traffic et ainsi profiter du débit des deux connexions.</p>
<p>eth1: net=192.168.1.0/24, IP=192.168.1.130, Gateway=192.168.1.1<br />
eth2: net=192.168.2.0/24, IP=192.168.2.131, Gateway=192.168.2.1</p>
<p><code>ip route add 192.168.1.0 dev eth1 src 192.168.1.130 table fai1<br />
ip route add default via 192.168.1.1 table fai1</p>
<p>ip route add 192.168.2.0 dev eth2 src 192.168.2.131 table fai2<br />
ip route add default via 192.168.2.1 table fai2</p>
<p>ip route add 192.168.1.0 dev eth1 src 192.168.1.130 ip route add 192.168.2.0 dev eth2 src 192.168.2.131</p>
<p>ip rule add from 192.168.1.130 table fai1<br />
ip rule add from 192.168.2.131 table fai2</p>
<p>ip route add default scope global nexthop via 192.168.1.1 dev eth1 weight 1 nexthop via 192.168.2.1 dev eth2 weight 1</code></p>
<h3>Distribuer sur deux réseaux de poids différents</h3>
<p>Petit schéma explicatif de ce qu&#8217;on peut espérer faire avec une passerelle comme <strong>eeegw</strong></p>
<p>(schéma a compléter)</p>
<p>Un script pour <strong>loadbalancer</strong> les connexions sur <strong>deux wan</strong> ayant différents poids : <strong>Notre eeegw devient multi lien ou dualwan</strong></p>
<p><code lang="bash">#!/bin/bash</p>
<p>##ip rule flush</p>
<p>## recupere l'ip du peer<br />
peer=$(/sbin/ifconfig  ppp0 | /bin/grep "P-t-P" | /usr/bin/cut -d":" -f3 | /usr/bin/cut -d" " -f1)</p>
<p>ip route add ${peer} dev ppp0 table uplink1<br />
#ip route add default via 213.41.185.56 table uplink1</p>
<p>ip route add 192.168.0.0/24 dev ath0 src 192.168.0.12 table uplink2<br />
#ip route add default via 192.168.1.1 table uplink2</p>
<p>ip rule add from 192.168.0.12 table uplink2<br />
ip rule add from 213.41.185.56 table uplink1</p>
<p>ip route add default scope global nexthop via 192.168.0.254 dev ath0 weight 1 nexthop via ${peer} weight 3</code></p>
<p>Le but du script share_wan.sh est d&#8217;enlever les deux routes par defaut engendré par le faite de se connecter en ppp et avec dhcp sur le wifi.<br />
Ensuite il faut mettre en route par defaut soit le lien ppp soit le lien wifi.<br />
La dernière ligne sert a donner un poids de 3 à la connexion Nerim et un poid de 1 à la connexion wifi.</p>
<p>Ainsi on enverra 3 fois plus de packets à Nerim qu&#8217;au WiFi.</p>
<p><code>/etc/eeegw/share_wan.sh</code><br />
<code lang="bash"><br />
#!/bin/bash<br />
ip route del default dev ppp0  scope link<br />
ip route del default via 192.168.0.254 dev ath0<br />
ip route add default scope global nexthop via 192.168.0.254 dev ath0 weight 1 nexthop via ${peer} weight 3<br />
</code></p>
<h3>Routes par defaut / routes statiques</h3>
<p>J&#8217;utilise ce système de route static via mon script route_static.sh pour définir via quel FAI je préfère me rendre pour tel ou tel service. C&#8217;est très pratique. (Je rappelle que j&#8217;utilise le cas numero 4, c&#8217;est à dire que ma connexion ppp est ma connexion principale, mais la connexion wifi ne me sert que ne backup au cas ou, et pour des routes particulières).</p>
<p><code>/etc/eeegw/route_static.sh</code><br />
<code lang="bash">#!/bin/bash</p>
<p>## recupere l'ip du peer PPP<br />
peer=$(/sbin/ifconfig  ppp0 | /bin/grep "P-t-P" | /usr/bin/cut -d":" -f3 | /usr/bin/cut -d" " -f1)</p>
<p># telephone passe par la connexion ppp<br />
ip route add 81.93.243.132 via ${peer}</p>
<p># vpn perso passe par la connexion wifi<br />
ip route add 81.93.247.160 via ${peer}<br />
ip route add 193.47.184.2 via ${peer}<br />
ip route add 94.23.219.37 via 192.168.0.254</code> </p>
<p><!--nextpage--><!--pagetitle:Réseau local--></p>
<h3>Serveur DHCP</h3>
<p>L&#8217;eeegw doit donner des IPs via DHCP aux différentes machines du réseau.<br />
<code># apt-get install dhcpd </code></p>
<p><code>/etc/dhcp3/dhcpd.conf</code><br />
<code># option definitions common to all supported networks...<br />
option domain-name "lucifer.bragon.info";<br />
option domain-name-servers 8.8.8.8;</p>
<p>ddns-update-style none;</p>
<p>authoritative;</p>
<p>default-lease-time 86400;<br />
max-lease-time 86400;</p>
<p>subnet 10.0.69.0 netmask 255.255.255.0 {<br />
  range 10.0.69.10 10.0.69.199;<br />
 option routers 10.0.69.250;<br />
}</p>
<p># Réservations<br />
host satanas {<br />
     hardware ethernet 00:02:b3:21:40:c0;<br />
     fixed-address 10.0.69.18;<br />
     option routers 10.0.69.250;<br />
     option broadcast-address 10.0.69.255;<br />
}</code></p>
<h3>Rajouter des VPN</h3>
<p>Vous pouvez bien sûr rajouter des connexions VPN sur votre eeegw.<br />
En effet cela vous permettra de directement propager la connectivité au VPN à toutes les machines de votre lan.<br />
Pour se faire je vous renvoi vers les articles de target0 et moi même concernant les VPN.</p>
<p><a href="http://geekfault.org/2009/10/04/allocation-dipv6-over-openvpn/">http://geekfault.org/2009/10/04/allocation-dipv6-over-openvpn/</a><br />
<a href="http://geekfault.org/2009/09/24/allocation-dadresses-ipv4-publiques-over-vpn/">http://geekfault.org/2009/09/24/allocation-dadresses-ipv4-publiques-over-vpn/</a></p>
<h3>Quality Of Service / tc qdisc</h3>
<p>La qualité de service sur le reseau est très importante si vous ne voulez pas que vos utilisateurs se plaignent de lags.</p>
<p>Par exemple lorsqu&#8217;un appel en VoIP est émit, il est très désagréable de se mettre à laguer tout d&#8217;un coup car un de vos collaborateurs envoie un e-mail avec une pièce jointe énorme. Pour éviter d&#8217;avoir ce genre de désagrements, il faut mettre des priorités sur le traffic entrant et sortant.</p>
<p>J&#8217;ai décidé de faire un article prochainement afin de vous expliquer comment je gère la QOS de ma eeegw.</p>
<p><!--nextpage--><!--pagetitle:Firewalling et NAT--></p>
<h3>Firewalling</h3>
<p><code>/etc/eeegw/firewall.sh</code><br />
<code lang="bash">#!/bin/bash<br />
# REMISE à ZERO des règles de filtrage<br />
iptables -F<br />
iptables -t nat -F</p>
<p># DEBUT des "politiques par défaut"<br />
# Je veux que les connexions entrantes soient bloquées par défaut<br />
iptables -P INPUT DROP</p>
<p># Je veux que les connexions destinées à être forwardées soient acceptées par défaut<br />
iptables -P FORWARD ACCEPT</p>
<p># Je veux que les connexions sortantes soient acceptées par défaut<br />
iptables -P OUTPUT ACCEPT</p>
<p># FIN des "politiques par défaut"<br />
# Pas de filtrage sur l'interface de "loopback"<br />
iptables -A INPUT -i lo -j ACCEPT<br />
iptables -A INPUT -i eth0 -j ACCEPT</p>
<p>#on ne filtre pas les vpn<br />
iptables -A INPUT -i tap0 -j ACCEPT<br />
iptables -A INPUT -i tap1 -j ACCEPT<br />
iptables -A INPUT -i ethylix0 -j ACCEPT</p>
<p># J'accepte le protocole ICMP (i.e. le "ping")<br />
iptables -A INPUT -p icmp -j ACCEPT</p>
<p># J'accepte le protocole IGMP (pour le multicast)<br />
iptables -A INPUT -p igmp -j ACCEPT</p>
<p># J'accepte les packets entrants relatifs ? des connexions d?j? ?tablies<br />
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT</p>
<p>#ssh<br />
iptables -A INPUT -p tcp --dport 22 -j ACCEPT<br />
iptables -A INPUT -p tcp --dport 2605 -j ACCEPT</p>
<p>#apache<br />
iptables -A INPUT -p tcp --dport 80 -j ACCEPT<br />
iptables -A INPUT -p tcp --dport 443 -j ACCEPT</p>
<p>#tftp<br />
iptables -A INPUT -p udp --dport 69 -j ACCEPT</p>
<p>#mon smtp<br />
iptables -A INPUT -p tcp --dport 25 -j ACCEPT</p>
<p>#vpn<br />
iptables -A INPUT -p tcp --dport 7777 -j ACCEPT</p>
<p># voip<br />
#iptables -A INPUT -p tcp --dport 5060 -j ACCEPT<br />
#iptables -A INPUT -p tcp --dport 5061 -j ACCEPT</p>
<p># supervision zabbix</p>
<p>iptables -A INPUT -p tcp --dport 10050 -j ACCEPT<br />
iptables -A INPUT -p tcp --dport 10051 -j ACCEPT</p>
<p>#Munin<br />
iptables -A INPUT -p tcp --dport 4949 -j ACCEPT</p>
<p># La règle par défaut pour la chaine INPUT devient "REJECT" (il n'est pas possible de mettre REJECT comme politique par défaut)<br />
#iptables -A INPUT -j REJECT</p>
<p>#forward de la connection<br />
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE<br />
iptables -t nat -A POSTROUTING -o ath0 -j MASQUERADE<br />
iptables -t nat -A POSTROUTING -o tap0 -j MASQUERADE<br />
iptables -t nat -A POSTROUTING -o tap1 -j MASQUERADE<br />
iptables -t nat -A POSTROUTING -o ethylix0 -j MASQUERADE</p>
<p>iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -o ppp0 --clamp-mss-to-pmtu</code></p>
<p>Le but du script de firewall est d&#8217;être lancé une première fois, puis d&#8217;être sauvegardé comme la Debian-Way le suggère. Pocédons donc comme suit :<br />
<code># sh /etc/eeegw/firewall.sh<br />
# iptables-save > /etc/network/firewall</code><br />
Ainsi au boot des interfaces la machine lancera les règles iptables sauvegardées. </p>
<h3>Firewall en sortie</h3>
<p>NB : Dans cette exemple le firewall n&#8217;agit qu&#8217;en entrée, c&#8217;est à dire que par defaut nous laissons tout sortir sur le réseau. Vous pourriez sans aucun soucis filtrer en sortie. </p>
<p>Exemple de regles de filtrage en sortie :<br />
<code># A mettre en début de script pour n'accepter explicitement QUE ce qui est autorisé.<br />
iptables -P OUTPUT DROP</p>
<p># Règles output fonctionnement de base<br />
iptables -A OUTPUT -p tcp -o eth0 --dport domain -j ACCEPT<br />
iptables -A OUTPUT -p udp -o eth0 --dport domain -j ACCEPT<br />
iptables -A OUTPUT -p tcp -o eth0 --dport ntp -j ACCEPT<br />
iptables -A OUTPUT -p udp -o eth0 --dport ntp -j ACCEPT<br />
iptables -A OUTPUT -p tcp -o eth0 --dport rsync -j ACCEPT<br />
iptables -A OUTPUT -p udp -o eth0 --dport rsync -j ACCEPT<br />
iptables -A OUTPUT -p tcp -o eth0 --dport http -j ACCEPT<br />
iptables -A OUTPUT -p tcp -o eth0 --dport smtp -j ACCEPT<br />
iptables -A OUTPUT -p tcp -o eth0 --dport ssh -j ACCEPT<br />
iptables -A OUTPUT -p tcp -o eth0 --dport ftp -j ACCEPT</code></p>
<h3> Explication fonctionnement du NAT </h3>
<p>Imaginons que vous ayez un serveur FTP sur la machine A.<br />
Imaginons que vous ayez un serveur Web sur la machine B.<br />
Afin qu&#8217;un client puisse s&#8217;y connecter en venant de l&#8217;internet vous ne pouvez pas lui donner comme adresse afin de s&#8217;y connecter une des ip de votre LAN, mais l&#8217;ip que vous a attribué le FAI lors de votre connexion à celui-ci.<br />
Le NAT est le fait que la eeegw sache vers quelle machine transmettre le traffic de tel ou tel service.<br />
Ainsi le client établi une connexion FTP vers votre IP publique, la connexion FTP arrive sur votre eeegw qui va savoir qu&#8217;il faut qu&#8217;elle transmette ce traffic vers la machine A.</p>
<p>Pour plus d&#8217;explication sur comment faire ça, allez voir la partie firewall de la documentation.<br />
Pour plus d&#8217;explication n&#8217;hésitez pas à aller lire la <a href="http://fr.wikipedia.org/wiki/Network_address_translation">documentation Wikipédia sur le sujet</a>.</p>
<h3>Régles de NAT</h3>
<p>Vous avez besoin d&#8217;ouvrir un port sur votre eeegw qui redirige sur une des machines de votre lan ?<br />
Rien de plus simple. Procédez comme suit si vous avez par exemple un serveur web derrière 10.0.69.1 :</p>
<p><code># iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to 10.0.69.1:80</code></p>
<p>Ensuite on save la nouvelle régle dans les régles devant se lancer au boot :<br />
<code># iptables-save > /etc/network/firewall</code></p>
<p>Votre nouvelle règle de NAT/Firewall est donc automatiquement activée sans avoir à faire quoi que ce soit de plus sur votre eeegw.</p>
<p><!--nextpage--><!--pagetitle:Exécution des scripts au boot--></p>
<h3> Automatiser le lancement des scripts eeegw_script au boot</h3>
<p><code>/etc/network/interfaces</code><br />
<code>auto lo<br />
iface lo inet loopback</p>
<p># The primary network interface<br />
allow-hotplug eth0<br />
iface eth0 inet static<br />
        address 10.0.69.250<br />
        netmask 255.255.255.0<br />
        network 10.0.69.0<br />
        broadcast 10.0.69.255<br />
        pre-up iptables-restore -c /etc/network/firewall</p>
<p>auto ath0<br />
iface ath0 inet dhcp<br />
wireless_mode Managed</p>
<p>pre-up /etc/eeegw/wifi.sh<br />
pre-up /etc/eeegw/nerim.sh<br />
pre-up /etc/eeegw/route_static.sh<br />
pre-up /etc/eeegw/ethylix.sh<br />
pre-up /etc/eeegw/QOS/qos.sh</code></p>
<p><!--nextpage--><!--pagetitle:Monitoring--></p>
<h3>Et si on monitorait /graphait tout ça ?</h3>
<p>Exemple de graph que l&#8217;on va pouvoir obtenir grace à ce super howto  (vu mensuel de ma connexion internet) :<br />
<a href="http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/if_eth0-month-2/" rel="attachment wp-att-1862"><img style=' display: block; margin-right: auto; margin-left: auto;' align="center"   src="http://geekfault.org/wp-content/uploads/2009/12/if_eth0-month-300x169.png" alt="" title="if_eth0-month" width="300" height="169" class="aligncenter size-medium wp-image-1862" /></a></p>
<p>Second Exemple: vue journalière de l&#8217;utilisation d&#8217;une connexion par un vpn.<br />
<a href="http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/if_ethylix0-day-2/" rel="attachment wp-att-1863"><img style=' display: block; margin-right: auto; margin-left: auto;' align="center"   src="http://geekfault.org/wp-content/uploads/2009/12/if_ethylix0-day-300x169.png" alt="" title="if_ethylix0-day" width="300" height="169" class="aligncenter size-medium wp-image-1863" /></a></p>
<h3>Installation</h3>
<p><code># apt-get install munin apache2 munin-node<br />
# cd /usr/share/munin/plugins/<br />
# ls</code></p>
<p>Repérez ici les choses qu&#8217;il serait intéressant de grapher sur votre munin puis :<br />
<code># cd /etc/munin/plugins<br />
# ln -s /usr/share/munin/plugins/acpi<br />
# ln -s /usr/share/munin/plugins/apache_processes<br />
# ln -s /usr/share/munin/plugins/cpu<br />
# ln -s /usr/share/munin/plugins/df<br />
# ln -s /usr/share/munin/plugins/swap<br />
[....]</code></p>
<p><code>/etc/munin/munin.conf</code><br />
<code>[localhost.localdomain]<br />
    address 127.0.0.1<br />
    use_node_name yes</code></p>
<p>Relancez munin-node<br />
<code># /etc/init.d/munin-node restart</code></p>
<p>Ça devrait grapher tout simplement comme ça sous debian (l&#8217;installation sous gentoo demande un peu plus de délicatesses). Pour plus de détails : <a href="http://eeegw-ip-adresse/munin">http://eeegw-ip-adresse/munin</a>.</p>
<p><!--nextpage--><!--pagetitle:Annexe et exemples--></p>
<h3>Sortie de ifconfig</h3>
<p><code>ath0      Link encap:Ethernet  HWaddr 06:15:af:8d:37:37<br />
          inet adr:192.168.0.12  Bcast:192.168.0.255  Masque:255.255.255.0<br />
          adr inet6: fe80::415:afff:fe8d:3737/64 Scope:Lien<br />
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1<br />
          RX packets:13848732 errors:0 dropped:0 overruns:0 frame:0<br />
          TX packets:4385032 errors:0 dropped:0 overruns:0 carrier:0<br />
          collisions:0 lg file transmission:0<br />
          RX bytes:1482140328 (1.3 GiB)  TX bytes:307281227 (293.0 MiB)</p>
<p>eth0      Link encap:Ethernet  HWaddr 00:1f:c6:28:71:9e<br />
          inet adr:10.0.69.250  Bcast:10.0.69.255  Masque:255.255.255.0<br />
          adr inet6: fe80::21f:c6ff:fe28:719e/64 Scope:Lien<br />
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1<br />
          RX packets:256988818 errors:0 dropped:0 overruns:0 frame:4160<br />
          TX packets:258912344 errors:0 dropped:0 overruns:0 carrier:6<br />
          collisions:0 lg file transmission:1000<br />
          RX bytes:3516383801 (3.2 GiB)  TX bytes:0 (0.0 B)<br />
          MÃ©moire:fbfc0000-fc000000 </p>
<p>ethylix0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00<br />
          inet adr:194.110.69.23  P-t-P:194.110.69.17  Masque:255.255.255.255<br />
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1<br />
          RX packets:4099 errors:0 dropped:0 overruns:0 frame:0<br />
          TX packets:3932 errors:0 dropped:0 overruns:0 carrier:0<br />
          collisions:0 lg file transmission:500<br />
          RX bytes:286787 (280.0 KiB)  TX bytes:399957 (390.5 KiB)</p>
<p>lo        Link encap:Boucle locale<br />
          inet adr:127.0.0.1  Masque:255.0.0.0<br />
          adr inet6: ::1/128 Scope:HÃ´te<br />
          UP LOOPBACK RUNNING  MTU:16436  Metric:1<br />
          RX packets:4493171 errors:0 dropped:0 overruns:0 frame:0<br />
          TX packets:4493171 errors:0 dropped:0 overruns:0 carrier:0<br />
          collisions:0 lg file transmission:0<br />
          RX bytes:532519851 (507.8 MiB)  TX bytes:532519851 (507.8 MiB)</p>
<p>ppp0      Link encap:Protocole Point-Ã -Point<br />
          inet adr:213.41.185.56  P-t-P:62.4.16.251  Masque:255.255.255.255<br />
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1<br />
          RX packets:6108340 errors:0 dropped:0 overruns:0 frame:0<br />
          TX packets:4219070 errors:0 dropped:0 overruns:0 carrier:0<br />
          collisions:0 lg file transmission:3<br />
          RX bytes:2251583910 (2.0 GiB)  TX bytes:836111670 (797.3 MiB)</p>
<p>tap0      Link encap:Ethernet  HWaddr 00:ff:b7:de:c8:b4<br />
          inet adr:10.0.1.2  Bcast:10.0.1.255  Masque:255.255.255.0<br />
          adr inet6: 2001:758:f00:8:2ff:b7ff:fede:c8b4/64 Scope:Global<br />
          adr inet6: fe80::2ff:b7ff:fede:c8b4/64 Scope:Lien<br />
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1<br />
          RX packets:4716451 errors:0 dropped:0 overruns:0 frame:0<br />
          TX packets:2796718 errors:0 dropped:0 overruns:0 carrier:0<br />
          collisions:0 lg file transmission:100<br />
          RX bytes:4275489693 (3.9 GiB)  TX bytes:358571500 (341.9 MiB)</p>
<p>tap1      Link encap:Ethernet  HWaddr 00:ff:63:b8:57:ea<br />
          inet adr:81.93.X.X  Bcast:81.93.X.X  Masque:255.255.255.128<br />
          adr inet6: 2001:758:f00:cafe:2ff:63ff:feb8:57ea/64 Scope:Global<br />
          adr inet6: fe80::2ff:63ff:feb8:57ea/64 Scope:Lien<br />
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1<br />
          RX packets:43229918 errors:0 dropped:0 overruns:0 frame:0<br />
          TX packets:26631144 errors:0 dropped:1826 overruns:0 carrier:0<br />
          collisions:0 lg file transmission:100<br />
          RX bytes:3891532561 (3.6 GiB)  TX bytes:4009241435 (3.7 GiB)</p>
<p>wifi0     Link encap:UNSPEC  HWaddr 00-15-AF-8D-37-37-65-74-00-00-00-00-00-00-00-00<br />
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1<br />
          RX packets:226972539 errors:0 dropped:0 overruns:0 frame:6623910<br />
          TX packets:5796868 errors:44600 dropped:0 overruns:0 carrier:0<br />
          collisions:0 lg file transmission:280<br />
          RX bytes:2128136633 (1.9 GiB)  TX bytes:515534254 (491.6 MiB)<br />
          Interruption:18 </code></p>
<h3>Sortie de iproute</h3>
<p><code>194.110.69.17 dev ethylix0  proto kernel  scope link  src 194.110.69.23<br />
216.165.129.135 via 192.168.0.254 dev ath0<br />
140.211.166.134 via 192.168.0.254 dev ath0<br />
213.186.33.19 via 192.168.0.254 dev ath0<br />
149.20.20.135 via 192.168.0.254 dev ath0<br />
130.239.17.6 via 192.168.0.254 dev ath0<br />
94.23.219.37 via 192.168.0.254 dev ath0<br />
217.23.9.148 via 192.168.0.254 dev ath0<br />
204.152.191.39 via 192.168.0.254 dev ath0<br />
78.41.233.57 via 192.168.0.254 dev ath0<br />
213.251.172.23 via 192.168.0.254 dev ath0<br />
156.56.247.195 via 192.168.0.254 dev ath0<br />
62.4.16.251 dev ppp0  proto kernel  scope link  src 213.41.185.56<br />
81.93.247.0/25 dev tap1  proto kernel  scope link  src 81.93.247.10<br />
193.200.171.0/24 via 81.93.247.1 dev tap1<br />
10.0.69.0/24 dev eth0  proto kernel  scope link  src 10.0.69.250<br />
91.199.232.0/24 via 81.93.247.1 dev tap1<br />
10.0.1.0/24 dev tap0  proto kernel  scope link  src 10.0.1.2<br />
195.190.3.0/24 via 81.93.247.1 dev tap1<br />
192.168.0.0/24 dev ath0  proto kernel  scope link  src 192.168.0.12<br />
193.200.226.0/24 via 81.93.247.1 dev tap1<br />
91.198.105.0/24 via 81.93.247.1 dev tap1<br />
91.209.245.0/24 via 81.93.247.1 dev tap1<br />
193.200.181.0/24 via 81.93.247.1 dev tap1<br />
78.41.232.0/21 via 81.93.247.1 dev tap1<br />
91.191.144.0/20 via 81.93.247.1 dev tap1<br />
81.93.240.0/20 via 81.93.247.1 dev tap1<br />
169.254.0.0/16 dev eth0  scope link  metric 1000<br />
10.0.0.0/8 via 10.0.1.1 dev tap0<br />
default dev ppp0  scope link</code></p>
<h3>Ma eeegw en production <img src='http://geekfault.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </h3>
<p><a href="http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/img00260-2/" rel="attachment wp-att-1869"><img style=' display: block; margin-right: auto; margin-left: auto;' align="center"   src="http://geekfault.org/wp-content/uploads/2009/12/IMG00260-580x435.jpg" alt="" title="IMG00260" width="580" height="435" class="aligncenter size-large wp-image-1869" /></a></p>
<p><!--nextpage--><!--pagetitle:Bibliographie--></p>
<h3>Les liens interessants </h3>
<p><a href="http://upload.wikimedia.org/wikipedia/fr/3/3e/Netfilter_schema.png">http://upload.wikimedia.org/wikipedia/fr/3/3e/Netfilter_schema.png</a><br />
<a href="http://wiki.gcu.info/doku.php?id=linux:openvpn_multi-listeners_debian">http://wiki.gcu.info/doku.php?id=linux:openvpn_multi-listeners_debian</a><br />
<a href="http://forums.whirlpool.net.au/forum-replies-archive.cfm/983045.html">Dual wan Cisco</a><br />
<a href="http://www.dslreports.com/forum/remark,16388383?hilite=ip+sla">http://www.dslreports.com/forum/remark,16388383?hilite=ip+sla</a><br />
<a href="http://pauldotcom.com/2009/05/modding-the-asus-eee-4g-surf-f.html">Antenne wifi externe sur sa eeegw</a><br />
<a href="http://chris.olstrom.com/blog/howto/setup-dual-wan/">http://chris.olstrom.com/blog/howto/setup-dual-wan/</a><br />
<a href="http://tldp.org/HOWTO/Traffic-Control-HOWTO/">http://tldp.org/HOWTO/Traffic-Control-HOWTO/</a><br />
<a href="http://markmail.org/message/aronyjanpuxenvug">http://markmail.org/message/aronyjanpuxenvug</a><br />
<a href="http://lartc.org/howto/lartc.rpdb.multiple-links.html">http://lartc.org/howto/lartc.rpdb.multiple-links.html</a></p>
<p><h3>Si vous avez aimé ce post...</h3><ol>
<li><a href='http://geekfault.org/2010/02/20/eeegw-ze-retour-du-detour-proxycache/' rel='bookmark' title='EeeGW &#8211; ZE retour du détour ! &#8211; Proxycache.'>EeeGW &#8211; ZE retour du détour ! &#8211; Proxycache.</a></li>
<li><a href='http://geekfault.org/2010/05/24/eeegw-part-iii-quality-of-service-aka-qos/' rel='bookmark' title='Eeegw &#8211; part III &#8211; Quality Of Service aka QOS'>Eeegw &#8211; part III &#8211; Quality Of Service aka QOS</a></li>
<li><a href='http://geekfault.org/2009/05/20/firmware-linksys-wag200g/' rel='bookmark' title='Firmware modifié pour Linksys WAG200G'>Firmware modifié pour Linksys WAG200G</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Partager la connexion de son laptop</title>
		<link>http://geekfault.org/2009/07/12/transformer-laptop-en-routeur-wifi/</link>
		<comments>http://geekfault.org/2009/07/12/transformer-laptop-en-routeur-wifi/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 23:27:27 +0000</pubDate>
		<dc:creator>Tito</dc:creator>
				<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[nat]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[routeur]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=934</guid>
		<description><![CDATA[C&#8217;est la première fois depuis le début de mes vacances que je me retrouve sans mon routeur WiFi&#8230; Et c&#8217;est la première fois que j&#8217;en ai besoin! Il n&#8217;y a qu&#8217;une seule fiche ethernet dans ma chambre d&#8217;hôtel que je partage avec mes deux frères. J&#8217;ai donc resorti mes vieux scripts pour transformer mon laptop [...]
<h3>Si vous avez aimé ce post...</h3><ol>
<li><a href='http://geekfault.org/2009/05/27/internet-via-iphone/' rel='bookmark' title='Internet sur votre laptop via un iPhone'>Internet sur votre laptop via un iPhone</a></li>
<li><a href='http://geekfault.org/2010/05/13/linux-laptop-ultimate-powersaving/' rel='bookmark' title='Linux &#8211; Laptop &#8211; Ultimate Powersaving !'>Linux &#8211; Laptop &#8211; Ultimate Powersaving !</a></li>
<li><a href='http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/' rel='bookmark' title='EeeGW : Créer soi-même une passerelle réseau'>EeeGW : Créer soi-même une passerelle réseau</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><!--pagetitle:Un NAT simple--><a href="http://geekfault.org/wp-content/uploads/2009/07/laptop-ega-routeur.jpg" title="Laptop égal routeur" rel="lightbox.934"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;' align="left"   src="http://geekfault.org/wp-content/uploads/2009/07/laptop-ega-routeur-300x150.jpg" alt="Laptop égal routeur" title="Laptop égal routeur" width="300" height="150" class="alignleft size-medium wp-image-938" /></a>C&#8217;est la première fois depuis le début de mes vacances que je me retrouve sans mon routeur WiFi&#8230; Et c&#8217;est la première fois que j&#8217;en ai besoin! Il n&#8217;y a qu&#8217;une seule fiche ethernet dans ma chambre d&#8217;hôtel que je partage avec mes deux frères.</p>
<p>J&#8217;ai donc resorti mes vieux scripts pour transformer mon laptop en routeur WiFi et ainsi <strong>partager ma connexion ethernet via le WiFi intégré</strong>.<br />
<!--more--></p>
<h3>Prérequis</h3>
<p>Il vous faut bien entendu un ordinateur avec <strong>deux interfaces réseau</strong>. Je verrai ici comment configurer le partage en WiFi d&#8217;une connexion filiaire, mais toutes les combinaisons sont possibles.</p>
<p>Votre kernel doit être compilé avec les redirections IPv4:<br />
<code>Networking  ---><br />
    Networking options  ---><br />
        [ M ] Network packet filtering (replaces ipchains)  ---><br />
            Core Netfilter Configuration  ---><br />
                < M > Netfilter Xtables support<br />
            IP: Netfilter Configuration  ---><br />
                < M > IP tables support (required for filtering/masq/NAT)<br />
                < M > Packet filtering</code></p>
<h3>Activer les redirections NAT</h3>
<p>Le laptop va jouer le rôle de routeur, ou plus exactement de NAT. Il accepte toutes les requêtes sur l&#8217;interface WiFi (wlan0) et les répète sur l&#8217;interface filiaire (eth0). L&#8217;hôtel aura l&#8217;impression qu&#8217;une seule machine génère toutes les requêtes, sur une seule IP.<br />
<code># iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE<br />
# sysctl -w net.ipv4.ip_forward=1</code></p>
<h3>Interconnexion des différents ordinateurs</h3>
<p>La solution la plus simple est la création d&#8217;un réseau WiFi <strong>Ad-Hoc</strong>. Créez-le sur le laptop qui joue le rôle de NAT en lui attribuant la première IP, 10.42.42.1 par exemple.</p>
<p>Connectez ensuite les autres ordinateurs sur ce réseau en faisant bien attention à spécifier l&#8217;IP du NAT comme adresse du <strong>routeur</strong>.</p>
<p>Et voilà, vous êtes prêt à surfer!</p>
<h3>Faire de votre laptop un vrai routeur</h3>
<p>Si vous n&#8217;aimez pas les réseaux Ad-Hoc et/ou préférez utiliser un vrai réseau WiFi managed, avec attribution d&#8217;IP par DHCP et tout le tralala, continuez la lecture à la page suivante.</p>
<p>Attention toutefois, la solution décrite sur cette première page fonctionne avec tous les ordinateurs qui supportent les réseaux Ad-Hoc, alors que transformer votre ordinateur en routeur nécessite une carte et un driver supportant le <strong>mode master</strong>.</p>
<p><!--nextpage--><!--pagetitle:Un vrai routeur WiFi--></p>
<h3>Mode Master</h3>
<p>Peu de combinaisons carte WiFi/driver permettent de passer en mode master. Le plus simple est d&#8217;essayer:<br />
<code># iwconfig wlan0 mode master</code><br />
Si la commande passe sans rien dire, c&#8217;est bon! Sinon, vous verrez une belle erreur du type<br />
<code>Error for wireless request "Set Mode" (8B06) :<br />
    SET failed on device wlan0 ; Invalid argument.</code></p>
<p>Avec les drivers MadWiFi, pour passer en mode master, il faut d&#8217;abord détruire l&#8217;interface:<br />
<code># wlanconfig ath0 destroy<br />
#wlanconfig ath0 create wlandev wifi0 wlanmode master</code></p>
<p>Sur mon laptop, la carte Intel interne n&#8217;accepte pas ce mode master. Je n&#8217;ai par contre aucun problème à l&#8217;utiliser avec une carte Atheros sur port PCMCIA, avec le driver madwifi.</p>
<h3>Configuration WiFi</h3>
<p>Après avoir passé votre carte en mode master, il faut faire une configuration standard du WiFi en ligne de commande. Choisissez un ESSID, un channel et même un cryptage si vous le souhaitez. Un cryptage WPA est envisageable, mais je me limiterai au simple exemple du WEP:<br />
<code># iwconfig wlan0 essid Alpha channel 1 key s:MotDePasseWEP<br />
# ifconfig wlan0 10.42.42.1 netmask 255.255.255.0 broadcast 10.42.42.255</code></p>
<h3>Serveur DHCP</h3>
<p>Il ne manque plus qu&#8217;à installer un serveur DHCP pour fournir une adresse IP à tous ceux qui essayent de se connecter sur votre &#8220;routeur&#8221;.</p>
<p>Installez <strong>dhcpcd</strong> et éditez sa configuration:<br />
<code># nano /etc/dhcp/dhcpd.conf</code><br />
<code>default-lease-time 3600;<br />
max-lease-time 7200;<br />
option subnet-mask 255.255.255.0;<br />
option broadcast-address 10.42.42.255;<br />
option routers 10.42.42.1;<br />
option domain-name-servers 208.67.222.222, 208.67.220.220;<br />
ddns-update-style none;</p>
<p>subnet 10.42.42.0 netmask 255.255.255.0 {<br />
 range 10.42.42.10 10.42.42.100;<br />
}</code></p>
<p>Et lancez le serveur DHCPD:<br />
<code># /etc/init.d/dhcpd start</code></p>
<p>Attention, ce démon ne marchera que si vous avez déjà configuré votre carte WiFi sur l&#8217;IP <strong>10.42.42.1</strong>. N&#8217;oubliez pas de lancer les commandes de NAT (voir page précédente).</p>
<h3>Et voilà!</h3>
<p>Tout ordinateur captant votre laptop sera maintenant capable de voir le réseau WiFi que vous avez créé et de s&#8217;y connecter exactement comme si c&#8217;était un simple routeur. Il aura alors accès à internet en toute transparence.</p>
<p>Si vous devez lancer ce routeur souvent, n&#8217;hésitez pas à créer un fichier bash <img src='http://geekfault.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><h3>Si vous avez aimé ce post...</h3><ol>
<li><a href='http://geekfault.org/2009/05/27/internet-via-iphone/' rel='bookmark' title='Internet sur votre laptop via un iPhone'>Internet sur votre laptop via un iPhone</a></li>
<li><a href='http://geekfault.org/2010/05/13/linux-laptop-ultimate-powersaving/' rel='bookmark' title='Linux &#8211; Laptop &#8211; Ultimate Powersaving !'>Linux &#8211; Laptop &#8211; Ultimate Powersaving !</a></li>
<li><a href='http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/' rel='bookmark' title='EeeGW : Créer soi-même une passerelle réseau'>EeeGW : Créer soi-même une passerelle réseau</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2009/07/12/transformer-laptop-en-routeur-wifi/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Firmware modifié pour Linksys WAG200G</title>
		<link>http://geekfault.org/2009/05/20/firmware-linksys-wag200g/</link>
		<comments>http://geekfault.org/2009/05/20/firmware-linksys-wag200g/#comments</comments>
		<pubDate>Wed, 20 May 2009 02:18:24 +0000</pubDate>
		<dc:creator>Tito</dc:creator>
				<category><![CDATA[Matériel]]></category>
		<category><![CDATA[Review]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[linksys]]></category>
		<category><![CDATA[routeur]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=644</guid>
		<description><![CDATA[Longtemps j&#8217;ai cru que les firmwares modifiés pour routeur étaient réservés au Linksys WRT54G, avec entre autres le fameux OpenWRT. Connexion SSH, modifications iptables et autres fonctionalités plus avancées me semblaient hors de portée sur mon routeur d&#8217;entrée de gamme. Pourtant le Linksys WAG200G est un routeur ADSL2+ très répandu, et si je me limite [...]
<h3>Si vous avez aimé ce post...</h3><ol>
<li><a href='http://geekfault.org/2009/03/28/ubuntu-jaunty-jackalope-9-04/' rel='bookmark' title='On a testé pour vous : Ubuntu Jaunty Jackalope 9.04'>On a testé pour vous : Ubuntu Jaunty Jackalope 9.04</a></li>
<li><a href='http://geekfault.org/2010/02/17/ipv6-pour-les-nulswgeeks/' rel='bookmark' title='IPv6 pour les nuls^Wgeeks'>IPv6 pour les nuls^Wgeeks</a></li>
<li><a href='http://geekfault.org/2009/03/21/introduction-a-liphone/' rel='bookmark' title='Introduction à l&#8217;iPhone'>Introduction à l&#8217;iPhone</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://geekfault.org/wp-content/uploads/2009/05/linksys-wag200g.jpg" title="linksys-wag200g" rel="lightbox.644"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;' align="left"   src="http://geekfault.org/wp-content/uploads/2009/05/linksys-wag200g-150x150.jpg" alt="linksys-wag200g" title="linksys-wag200g" width="150" height="150" class="alignleft size-thumbnail wp-image-645" /></a>Longtemps j&#8217;ai cru que les <strong>firmwares modifiés</strong> pour routeur étaient réservés au Linksys WRT54G, avec entre autres le fameux <a href="http://openwrt.org/"><strong>OpenWRT</strong></a>. Connexion SSH, modifications iptables et autres fonctionalités plus avancées me semblaient hors de portée sur mon routeur d&#8217;entrée de gamme.</p>
<p>Pourtant le <strong>Linksys WAG200G</strong> est un routeur ADSL2+ très répandu, et si je me limite aux maigres statistiques des 5 rédacteurs de Geekfault, nous sommes 60% à en avoir un! <img src='http://geekfault.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Son firmware est par ailleurs distribué en GPL par Linksys&#8230;</p>
<p>Mais au cours de mes divagations sur internet je l&#8217;ai trouvé! Présentation.<br />
<!--more--></p>
<h3>Woytekm</h3>
<p>C&#8217;est sur la <a href="http://woytekm.googlepages.com/linksyswag200g-eu">Google Page de Woytekm</a> que j&#8217;ai trouvé mon bonheur.</p>
<p>La dernière version en date est estampillée 0.9 et est basée sur la release 1.01.06 du firmware officiel Linksys. Une version 0.10 basée sur 1.01.09 est prévue avant la fin du mois.</p>
<h3>Fonctionalités  supplémentaires</h3>
<p><a href="http://geekfault.org/wp-content/uploads/2009/05/linksys-screenshot.png" title="linksys-screenshot" rel="lightbox.644"><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;' align="right"   src="http://geekfault.org/wp-content/uploads/2009/05/linksys-screenshot-150x150.png" alt="linksys-screenshot" title="linksys-screenshot" width="150" height="150" class="alignright size-thumbnail wp-image-648" /></a>
<ul>
<li>Activation du <strong>serveur SSH</strong> et telnet</li>
<li>Assignation d&#8217;IP <strong>DHCP selon l&#8217;adresse mac</strong> du client</li>
<li>DynamicDNS avec <strong>No-IP</strong>.org</li>
<li><strong>Watchdog</strong> : reboot automatique lorsqu&#8217;un ping ne répond plus</li>
<li>Relais de <strong>WakeOnLan</strong> depuis internet</li>
<li><strong>Analyse du traffic</strong> et graphes de l&#8217;utilisation de la bande passante</li>
</ul>
<p>L&#8217;accès SSH permet évidemment des modifications plus fines, comme par exemple la modification manuelle des <strong>iptables</strong> !</p>
<h3>Installation</h3>
<p>L&#8217;installation se fait <strong>comme toute mise à jour</strong> officielle de Linksys. Pas de soudure ni de câble série à modifier donc. <img src='http://geekfault.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Assurez-vous de travailler depuis une machine branchée en ethernet. Bien que Woytekm permette de faire une simple upgrade sans perte de paramètres, je vous conseille de restaurer votre WAG200G aux paramètres d&#8217;usine.</p>
<p>Téléchargez ensuite le fichier <strong>IMG</strong> (version A) sur <a href="http://sourceforge.net/project/showfiles.php?group_id=233166&#038;package_id=282896">la page SourceForce du projet</a> et installez-la comme toute mise à jour.</p>
<h3>Et voilà!</h3>
<p>Vous avez maintenant un nouvel onglet <strong>MySetup</strong> dans l&#8217;interface de gestion. Vous pouvez aussi vous connecter en <strong>root</strong> sur SSH, le mot de passe étant le même que celui permettant de se connecter à l&#8217;interface de gestion.</p>
<p>Après une remise aux paramètres d&#8217;usine, je n&#8217;ai remarqué <strong>aucun problème</strong> avec ce firmware modifié, j&#8217;ai même trouvé une plus grande <strong>stabilité</strong> de mon routeur! Sans doute parce que mon firmware n&#8217;était pas à jour, mais bon c&#8217;est quand même Woytekm qui m&#8217;a fait mettre à jour <img src='http://geekfault.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  </p>
<h3>Screenshots</h3>
<p><a href="http://geekfault.org/wp-content/uploads/2009/05/my-setup1.png" title="my-setup1" rel="lightbox.644"><img src="http://geekfault.org/wp-content/uploads/2009/05/my-setup1-150x150.png" alt="my-setup1" title="my-setup1" width="150" height="150" class="alignnone size-thumbnail wp-image-651" /></a> <a href="http://geekfault.org/wp-content/uploads/2009/05/my-setup2.png" title="my-setup2" rel="lightbox.644"><img src="http://geekfault.org/wp-content/uploads/2009/05/my-setup2-150x150.png" alt="my-setup2" title="my-setup2" width="150" height="150" class="alignnone size-thumbnail wp-image-652" /></a> <a href="http://geekfault.org/wp-content/uploads/2009/05/my-setup3.png" title="my-setup3" rel="lightbox.644"><img src="http://geekfault.org/wp-content/uploads/2009/05/my-setup3-150x150.png" alt="my-setup3" title="my-setup3" width="150" height="150" class="alignnone size-thumbnail wp-image-653" /></a> <a href="http://geekfault.org/wp-content/uploads/2009/05/my-setup4.png" title="my-setup4" rel="lightbox.644"><img src="http://geekfault.org/wp-content/uploads/2009/05/my-setup4-150x150.png" alt="my-setup4" title="my-setup4" width="150" height="150" class="alignnone size-thumbnail wp-image-654" /></a> <a href="http://geekfault.org/wp-content/uploads/2009/05/my-setup5.png" title="my-setup5" rel="lightbox.644"><img src="http://geekfault.org/wp-content/uploads/2009/05/my-setup5-150x150.png" alt="my-setup5" title="my-setup5" width="150" height="150" class="alignnone size-thumbnail wp-image-655" /></a> <a href="http://geekfault.org/wp-content/uploads/2009/05/my-setup6.png" title="my-setup6" rel="lightbox.644"><img src="http://geekfault.org/wp-content/uploads/2009/05/my-setup6-150x150.png" alt="my-setup6" title="my-setup6" width="150" height="150" class="alignnone size-thumbnail wp-image-656" /></a></p>
<h3>Liens</h3>
<ul>
<li><a href="http://woytekm.googlepages.com/linksyswag200g-eu">Site du projet</a></li>
<li><a href="http://woytekm.googlepages.com/modifiedsoftwareforwag200g-eu">Une tonne d&#8217;informations pas claires</a></li>
<li><a href="http://sourceforge.net/project/showfiles.php?group_id=233166&#038;package_id=282896">Téléchargement SourceForge</a></li>
</ul>
<p><h3>Si vous avez aimé ce post...</h3><ol>
<li><a href='http://geekfault.org/2009/03/28/ubuntu-jaunty-jackalope-9-04/' rel='bookmark' title='On a testé pour vous : Ubuntu Jaunty Jackalope 9.04'>On a testé pour vous : Ubuntu Jaunty Jackalope 9.04</a></li>
<li><a href='http://geekfault.org/2010/02/17/ipv6-pour-les-nulswgeeks/' rel='bookmark' title='IPv6 pour les nuls^Wgeeks'>IPv6 pour les nuls^Wgeeks</a></li>
<li><a href='http://geekfault.org/2009/03/21/introduction-a-liphone/' rel='bookmark' title='Introduction à l&#8217;iPhone'>Introduction à l&#8217;iPhone</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2009/05/20/firmware-linksys-wag200g/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

