Les Forums
Les forums sont fermés. Ils restent présent pour consultation et archivage.
Vous pouvez désormais poser vos questions directement dans les commentaires en bas de chaque page du site.
Alors n'hésitez pas à participer
Sécuriser la connexion au réseau local
Bonjour. Je sollicite votre aide pour sécuriser ma connexion à internet. Ma situation est particulière : j'habite un appartement dans un immeuble. Le propriétaire de l'immeuble partage sa connexion à internet avec tous les appartements. La connexion à internet est ainsi "offerte" à chaque locataire de l'immeuble ! 🙂 Le partage de la connexion internet se fait par l'intermédiaire d'une NeufBox, qui fait office de passerelle pour le réseau local. Il me semble que ce partage de connexion à internet pose 2 soucis de sécurité : 1 - Je n'ai pas accès à la configuration de la passerelle internet, je dépends donc des réglages choisis par le propriétaire. 2 - Mon ordinateur et ceux de mes voisins sont dans le même réseau local. Je crains que mes voisins aient un accès facile à mon ordinateur, et qu'ils puissent me nuire. D'autant que je me connecte à la passerelle par wifi. En parcourant différents tutoriels sur internet, j'ai assimilé quelques notions de sécurité, que j'ai regroupées dans un script de connexion au réseau local. Ce script est surement perfectible ! 🙂 Deux questions : 1 - Est-il possible de chiffrer la totalité de mon trafic avec la passerelle, en créant un tunnel, ou à l'aide d'une autre méthode (sachant que je ne peux rien configurer sur cette passerelle) ? 2 - Comment empêcher mes voisins de snifer le réseau (avec [url=http://okki666.free.fr/docmaster/articles/linux084.htm] par exemple) et de récupérer des informations sur moi ? Tous vos conseils sont chaleureusement attendus ! 😀 Ci-dessous, le script que j'utilise pour me connecter à la passerelle : ################## ################## ################## #!/bin/bash # # Script de connexion au réseau local. # Ce script contient différents paramètres # pour garantir la sécurité de la connexion. # Le réseau s'appelle 192.168.1.0 / 255.255.255.0 # La passerelle du réseau est 192.168.1.1 # # L'interface utilisée pour se connecter # est une carte wifi nommée ra0. # On lui attribue une adresse IP fixe : 192.168.1.19 # Le driver de cette carte wifi # est un module nommé rt2500. # On désactive d'abord l'interface réseau ra0. # On la réactivera à la fin de ce script, # lorsque les différents paramètres de sécurité # seront actifs. ifconfig ra0 down sleep 1 modprobe -r rt2500 sleep 1 # Paramétrage de Netfilter # On fait le ménage des règles existantes. iptables -t filter -F iptables -t filter -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X # Paramétrage de Netfilter # On choisit les règles par défaut. iptables -t filter -P INPUT DROP iptables -t filter -P OUTPUT DROP iptables -t filter -P FORWARD DROP iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t mangle -P PREROUTING ACCEPT iptables -t mangle -P INPUT ACCEPT iptables -t mangle -P FORWARD ACCEPT iptables -t mangle -P OUTPUT ACCEPT iptables -t mangle -P POSTROUTING ACCEPT # Paramétrage de Netfilter # On définit les règles # de la chaine INPUT de la table filter. iptables -A INPUT -m conntrack --ctstate INVALID -j DROP iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i ra0 -d 192.168.1.19 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # Paramétrage de Netfilter # On définit les règles # de la chaine OUTPUT de la table filter. iptables -A OUTPUT -m conntrack --ctstate INVALID -j DROP iptables -A OUTPUT -o lo -j ACCEPT iptables -A OUTPUT -o ! ra0 -j DROP iptables -A OUTPUT -s ! 192.168.1.19 -j DROP iptables -A OUTPUT -p ! tcp -j ACCEPT iptables -A OUTPUT -p tcp --syn -j ACCEPT iptables -A OUTPUT -p tcp -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # Remarque : Les 2 dernières règles visent # à ne pas utiliser l'état NEW du conntrack # avec le protocole tcp. Voir [url=http://www.linux-france.org/prj/inetdoc/guides/iptables-tutorial/newnotsyn.html]. # Fin du paramétrage de Netfilter. # On active maintenant diverses options de sécurité. # Je ne comprends pas vraiment # la signification de ces options, # c'est du copier-coller de différents tutoriels # trouvés sur internet. 🙂 # Supprimer le NAT dans le kernel echo 0 > /proc/sys/net/ipv4/ip_forward # Activer les options anti-spoofing du kernel for Filter in /proc/sys/net/ipv4/conf/*/rp_filter do echo 1 > $Filter done # Activer les options anti-ping du kernel echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses # Interdire le synflood if [ -e /proc/sys/net/ipv4/tcp_syncookies ] then echo 1 > /proc/sys/net/ipv4/tcp_syncookies fi # Maintenant que les diverses options de sécurité # sont actives, on réactive l'interface wifi ra0. # On charge d'abord le driver de la carte wifi : modprobe rt2500 sleep 1 # Pour éviter l'empoisonnement du cache ARP, # on rentre l'adresse MAC de la passerelle # de façon statique. arp -s -i ra0 192.168.1.1 00:11:22:33:44:55 # On renseigne les paramètres propres au wifi : iwconfig ra0 essid "mon_beau_réseau_wifi" iwpriv ra0 set AuthMode=WPAPSK iwpriv ra0 set EncrypType=TKIP iwpriv ra0 set WPAPSK="ma_clé_WPA" # Finalement, on attribue une adresse IP # à notre interface : ifconfig ra0 192.168.1.19 netmask 255.255.255.0 up route add default gw 192.168.1.1 # À ce stade, la connexion à la passerelle fonctionne. # Nous sommes connectés au réseau local. exit 0 ################## ################## ################## |
1 - Est-il possible de chiffrer la totalité de mon trafic avec la passerelle, en créant un tunnel, ou à l'aide d'une autre méthode (sachant que je ne peux rien configurer sur cette passerelle) ? Non, mais tu peux faire un tunnel avec une machine qui serait sur Internet. Cependant je n'en vois pas trop l'intérêt. Tu ne peux pas sur un réseau local. |
Merci Éric pour tes réponses. 🙂 Il ne me reste plus qu'à espérer que mes voisins ne soient pas des Scripts Kiddies ! |
Comment empêcher mes voisins de sniffer le réseau avec tcpdump par exemple) et de récupérer des informations sur moi ? On ne peut pas sniffer (a priori) le traffic sur un réseau switché car les flux ne sont pas envoyés à toutes les machines, par contre comme l'indique elalitte sur le wifi c'est différent ! (aucun lien matériel, donc en gros tout le monde a accès à la conversation) Personnellement, je n'utiliserai pas cette boite, car tous tes mots de passes peuvent être récupérés (sauf cryptage) ... Concernant iptables perso je bloquerai tout ce qui vient d'une autre IP que celle de la passerelle (que ce soit en IN ou OUT pour etre tranquille), tu seras au moins certain qu'ils ne pourront pas accéder à des infos sur ton pc ... |
Merci Analyser pour ton intervention. Effectivement, l'usage de la box du propriétaire et le partage de sa connexion (via un réseau local) posent des problèmes de sécurité, surtout en wifi. 👿 Cependant, en utilisant l'abonnement internet du propriétaire, j'évite de souscrire à une offre chez un FAI, ce qui m'économise une trentaine d'euros par mois. 😀 Enfin, mon appartement ne dispose pas de prises de téléphone (les prises en forme de T), il m'est donc impossible de brancher un modem, et de prendre un abonnement chez un FAI. Bref, je continue à utiliser la box du propriétaire. J'ai bien paramétré mon client de messagerie mail pour utiliser une connexion sécurisée SSL, mais cela ne sécurise [i:a04b666101]que le mail. 😕 J'ai suivi ton conseil, et modifié les règles de Netfilter. Je souhaitais bloquer le trafic depuis/vers les adresses comprises entre 192.168.1.2 et 192.168.1.254. Malheureusement, il semble impossible de spécifier une plage d'adresses avec iptables. Il a fallu procéder différemment. Voici les modifications que j'ai apporté à mon script de connexion : ############################## ############################## ############################## MON_IP=192.168.1.19 IP_PASSERELLE=192.168.1.1 ############################## ############################## ############################## # Voici les règles pour les paquets entrants (ces 5 règles sont précédées de l'expression [u:a04b666101]iptables -A INPUT [/u:a04b666101]) : -m conntrack --ctstate INVALID -j DROP -i lo -j ACCEPT -j -i ra0 -d $MON_IP -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # La chaine ) : -s $IP_PASSERELLE -j RETURN -s 192.168.1.0/24 -j DROP ############################## ############################## ############################## # Voici les règles pour les paquets sortants (ces 8 règles sont précédées de l'expression [u:a04b666101]iptables -A OUTPUT [/u:a04b666101]) : -m conntrack --ctstate INVALID -j DROP -o lo -j ACCEPT -j -s ! $MON_IP -j DROP -o ! ra0 -j DROP -p ! tcp -j ACCEPT -p tcp --syn -j ACCEPT -p tcp -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # La chaine ) : -d $IP_PASSERELLE -j RETURN -d 192.168.1.0/24 -j DROP ############################## ############################## ############################## 😛 |
Voici une incohérence de Netfilter : Dans la chaine INPUT, le module de suivi de connexion [i:8019ae19d8]conntrack considèrent que les paquets à destination de l'interface sont dans l'état NEW. C'est illogique de considérer cette connexion comme "nouvelle", puisque cette connexion a été initialisée par l'ordinateur lui-même. Conséquence : si vous bloquez les connexion entrantes avec la règle placée [u:8019ae19d8]avant[/u:8019ae19d8] la règle et bien les paquets à destination de l'interface lo seront supprimés. |
Les paquets réseaux IPv6 sont pris en charge par l'utilitaire . Il existe 3 tables : filter, mangle et raw. La commande fonctionne. Et elle permet de constater que toutes les cibles par défaut sont ACCEPT 😯 Donc :[code:1:22cd4c096f]#!/bin/bash ip6tables -t filter -F ip6tables -t filter -X ip6tables -t filter -P INPUT DROP ip6tables -t filter -P OUTPUT DROP ip6tables -t filter -P FORWARD DROP ip6tables -t mangle -F ip6tables -t mangle -X ip6tables -t mangle -P PREROUTING DROP ip6tables -t mangle -P INPUT DROP ip6tables -t mangle -P FORWARD DROP ip6tables -t mangle -P OUTPUT DROP ip6tables -t mangle -P POSTROUTING DROP ip6tables -t raw -F ip6tables -t raw -X ip6tables -t raw -P PREROUTING DROP ip6tables -t raw -P OUTPUT DROP[/code:1:22cd4c096f] |