Les Forums

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]