Vous êtes ici : Accueil Zaclys Astuces / Les rubriques / Informatique / Système d'exploitation / Linux / Réseau

Voir un article

illustration

© Tito

Transformer votre linux en routeur pour partager votre connexion internet en toute sécurité

Transformer facilement un linux en routeur : avec 2 cartes réseaux (ou wifi ou autre), une reliée à votre Box et une autre à un petit hub sur lequel seront connectés vos PC

Soit un machine linux avec 2 cartes réseaux ethernet classiques (eth1 reliée à votre box et configurée en DHCP et eth0 configurée en ip statique 192.168.1.1, reliée à un hub local sur lequel seront branchés des PC clients sous windoz ou linux, configurés en 192.168.1.X et qui utiliseront comme passerelle 192.168.1.1 ). 
Pour des connexions Wifi il suffit de remplacer ethX par le device correspondant.


1/ Activer l'ip forward (routage de paquet) sur linux :


- modifiez /etc/sysctl.conf :
net.ipv4.ip_forward = 1

- prendre en compte : 
sysctl -p

- vérifiez que l'option est bien prise en compte au niveau du noyau :
# cat /proc/sys/net/ipv4/ip_forward
1



2/ Sécuriser la connexion et autoriser le routage avec les iptables :


Le firewall est géré par le service iptables sur les noyaux récents, si vous avez fait une installation standard votre firewall est déjà configuré (au minimum), en général sur une redhat voici le fichier de config du firewall ainsi créé /etc/sysconfig/iptables (les règles suivantes concernent uniquement la table "filter" qui est dédiée au filtrage mais pas au routage) :

*filter
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT


Nous allons donc ajouter des règles pour autoriser certains postes à "sortir" sur internet via notre routeur, en configurant la table NAT qui gère le routage de paquets :


*nat
:PREROUTING DROP [0:0]
#######################################
# autoriser les PC locaux 192.168.1.120 et 133 à sortir par ce PC
# directement et sans resctriction :
-A PREROUTING -i eth0 -s 192.168.1.133/32 -j ACCEPT
-A PREROUTING -i eth0 -s 192.168.1.120/32 -j ACCEPT
#
# ou bien autoriser tous les PC locaux 192.168.1.X à sortir par ce PC
# directement et sans resctriction :
-A PREROUTING -i eth0 -s 192.168.1.0/24 -j ACCEPT
#
# ou bien autoriser tous les PC locaux 192.168.1.X à sortir par ce PC
# directement uniquement pour des requetes DNS (port 53)  :
-A PREROUTING -i eth0 -s 192.168.1.0/24 --dport 53 -j ACCEPT
#
# et autoriser tous les PC locaux en 192.168.1.X à utiliser le proxy
# squid de local de ce serveur (port 3128 par défaut pour squid) :
-A PREROUTING -i eth0 -s 192.168.1.0/24 -d 192.168.1.1/32 --dport 3128 -j ACCEPT

:OUTPUT ACCEPT [0:0]
#######################################

:POSTROUTING ACCEPT [0:0]
########################################
# activer le masquerade : cad cacher les adresses ip locales
# pour tout ce qui est routé et qui sort du routeur :
-A POSTROUTING -o eth1 -s 192.168.1.0/24 -d 0/0 -j MASQUERADE

COMMIT


Remarque et explication :
par défaut nous avons mis la chaine "PREROUTING" à "DROP" ce qui bloque tous les paquets non explicitement autorisés arrivant sur le routeur. Les règles suivantes précisent quels paquets sont autorisés et s'applique uniquement à la carte réseau locale (-i eth0) donc pas aux paquets qui pourraient venir de l'extérieur sur l'autre carte (eth1). Si un paquet "match" une règle (cad qu'il répond aux exigences de la règle) alors la cible de la règle est appliquée à ce paquet : -j ACCEPT est une cible simple qui signifie "ok, j'accepte ce paquet".
La table "NAT" utilise 3 chaines consécutives : "PREROUTING" "OUTPUT" "POSTROUTING", la première chaine (PREROUTING) est la plus importante, c'est la porte d'entrée du routeur, c'est pour quoi il faut lui apporter une attention particulère. La chaine "POSTROUTING" est la dernière, elle s'applique lorsque les paquets sortent du routeur ...


3/ Pour prendre en compte cette nouvelle config :

service iptables restart

Maintenant il suffit de configurer vos PC locaux sous ouindoz ou autre OS en 192.168.1.X , précisez en passerelle 192.168.1.1 et le DNS habituel de votre FAI et c'est parti, vos PC locaux utilisent ce routeur linux ... bien sur on peut aussi installer un serveur DHCP et configurer les PC locaux en DHCP , c'est un autre sujet que je n'ai pas encore traité. 



NOTE : L'idéal est bien sur d'utiliser en parallèle un proxy Squid sur ce serveur,
qui vous permettra de faire du cache (c'est le premier boulot d'un proxy hein) mais aussi d'apporter des restrictions supplémentaires (demande d'un mot de passe pour aller sur internet par ex) et pourquoi pas de limiter la bande passante pour certains usages ... pour ça je vous invite à regarder un autre article : Squid tunning »


Pour aller plus loin :



7 681 clics - Créé le 23/02/2009 par Tito - Modifié le 18/04/2012



Réagissez, commentez, discutez ...



Partager ?

diaspora  G+  facebook  twitter  Digg  Yahoo  Delicious  Technorati  myspace


Voir d'autres articles en rapport avec celui-ci ?



Stats des clics sur cet article : cliquez ici »



Vous voulez contribuer et publier un article dans cette rubrique ?

InfoMerci de vous identifier ou de vous créer un compte si ce n'est pas déjà fait.


ATTENTION
Vous êtes ici sur l'ancien site de l'association Zaclys.
Depuis 2019 notre site est ici : nouveau site Zaclys

icone user Me connecter :

InfoMerci de saisir vos identifiants.




Me reconnecter automatiquement à chaque visite sur ce navigateur :
               





retour






Plan du site | Aide | Mentions légales et CGU | RGPD | Travaux et incidents | Budget | Faire un don | Chouchen | Z pub | Logo et prospectus

© Association la mère Zaclys 1998-2024  - Zaclys v2.5

Suivez nous sur Diaspora, Mastodon, Google+, FaceBook ou Twitter