Menu
  • Accueil
  • Forum
  • WiFaq
  • Contribuer
  • Recherche
  • Polos WlanFr
  • Wlanfr
        ø Charte
        ø Mentions légales
  • Liens
        ø Backend WlanFr
        ø Wireless
        ø Constructeurs
  • Syndication RSS
  • Essais Matos
  • Nos tests...
    Cartes PCMCIA
  • Les tests PCMCIA
  • Netgear MA401
  • NoName PCMCIA
  • SEAT810
  • SEAT830
  • SEAT910
  • USR 805410
    Cartes PCI
  • D-Link DWL520+
  • Netgear MA311
  • SEAT710
  • USR 805416
    Cartes USB
  • Les tests USB
  • Netgear MA111
  • SEAT 510
    Access Point
  • Les Tests AP
  • Aironet 1100
  • BeWan 6104W
  • D-Link
        ø DSL-604+
        ø 900AP+
  • Draytek
        ø Vigor 2200VG
        ø Vigor 2600We
  • HostNet NoName
  • LinkSys WAP11
  • Matériel Linksys
  • LXB5410
  • NetGear
        ø DG824M
        ø PCI MA311
  • Seat 1010
  • Seat 2030 (M ou P)
  • TRENDnet
        ø TEW-310APB
        ø TEW-311BRP
  • USR 805450
    Antennes
  • HomeMade
        ø La Caro
        ø Une omni simple
  • SEAT205
  • SEAT318
    Modems ADSL
  • Seat 100
    Tests globaux
  • Sécuriser son AP avec Linux

    Sécuriser puissament son Access Point avec Linux

    Documentation proposée et créée par vbunkerz_at_chez.com

    Le but de cet article est de vous montrer comment sécuriser un Access Point Wireless. Le filtrage d'adresse MAC et le WEP étant inefficaces, il faut utiliser un VPN. Notre choix se porte sur Super-Freeswan qui est une version déjà patchée de Freeswan.

    L'Access Point est une Redhat 8 sur un pentium 200 MMX avec une carte PCI Netgear MA311, le driver hostap et les wireless-tools. Ce n'est pas un vrai Access Point mais plutôt une carte client transformée en AP. Un article chez Wlanfr.net explique comment faire cette transformation. L'Access Point est connecté à Internet en DHCP et s'occupe de partager la connexion (masquerading) avec tous les clients wireless authentifiés. Si les bruits du ventilo de l'alimentation et du processeur vous gênent, vous pouvez essayer de les brancher sur les câbles 3.3 volts de votre carte mère. Ne le faites pas avec un PC rapide; la carte mère risquerait de fondre ou l'alimentation de prendre feu.

    Si vous avez un Access Point standard, ce n'est pas un problème mais il vous faudra quand même une machine reliée à l'AP pour faire tourner le serveur Freeswan.

    Si vous faites votre propre Access Point avec la MA311 assurez-vous que tout fonctionne correctement avant de commencer l'installation de Freeswan.

    Vue d'ensemble

    Admettons que l'on ait un serveur Linux qui partage une connexion Internet. Son interface eth0 est relié à Internet tandis que wlan0 est connecté au réseau interne. Sans VPN, les paquets à destination d'Internet arrivent sur wlan0 et ressortent par eth0. Avec FreeSwan, une interface virtuelle ipsec0 est créée. Tous les paquets à destination d'Internet sont envoyés au serveur sur wlan0, ils sont encryptés et authentifiés. Freeswan les "attrape", les décrypte et les contrôle. S'il n'y a pas de problème il les fait ressortir du manière décryptée (comme du trafic normal) par ipsec0. Depuis ipsec0, ils passent par eth0 pour rejoindre Internet. Pour ne laisser employer notre AP que par des personnes authorisées, on va laisser passer seulement les paquets qui arrivent par ipsec0. Le trafic qui veut atteindre Internet en passant de wlan0 à eth0 (donc le trafic qui n'utilise pas le VPN) sera bloqué (2 lignes d'iptables). Avec cette stratégie, seul les utilisateurs authorisés du VPN pourront surfer de manière totalement sécurisée.

    Il faut procéder en quatre étapes :

  • Installer Freeswan
  • Créer des clés d'encryption pour les utilisateurs authorisés
  • Configurer Freeswan
  • Configurer iptables sur le serveur pour bloquer le trafic indésirable

    Prérequis

    Le serveur VPN choisit est Super-FreeSwan 1.99 qui est une version patchée de FreeSwan supportant entre autre les certificats x509 et différents algorithmes d'encryption/authentification.

    L'installation est réalisée sur une Redhat 8. Je suppose que vous savez configurer et installer un nouveau noyau, que vous comprenez les bases d'Iptables/Netfilter et que vous savez installer des programmes depuis leur source. Sinon inutile d'aller plus loin. Pensez également à installer la dernière version d'OpenSSL avant de commencer.

    Installation du VPN sur le serveur et sur les clients Linux

    Récupérez le tarball de Super-FreesSwan depuis www.freeswan.ca

    	cd /usr/tmp
    	wget http://download.freeswan.ca/super-freeswan/super-freeswan-1.99.7.tar.gz
    	tar xzpf  super-freeswan-1.99.7.tar.gz
    

    Récupérez le tarball du dernier kernel disponible sur un mirror proche de chez vous

    	cd /usr/src
    	wget ftp://sunsite.cnlab-switch.ch/mirror/kernel/linux/kernel/v2.4/linux-2.4.20.tar.bz2
    	tar xjpf linux-2.4.20.tar.bz2
    	ln -sf linux-2.4.20/ linux
    

    Configurez le noyau et sauvez en quittant

    	cd linux
    	make mrproper
    	make menuconfig
    

    Configurez, compilez et installez Super-FreeSwan

    	cd /usr/tmp/super-freeswan-1.99.7
    	make insert; make programs; make install
    
    

    Terminez la configuration, la compilation et l'installation du noyau

    	cd /usr/src/linux
    	make menuconfig
    
    sous Networking options  --->
    En plus des éléments IPSEC déjà sélectionnés, rajoutez ces éléments :
    
    
    		*         AES encryption algorithm	(ne pas compiler en module)
    		M         BLOWFISH encryption algorithm (NEW)
    		*         TWOFISH encryption algorithm	(ne pas compiler en module)
    		*         SERPENT encryption algorithm	(ne pas compiler en module)
    
    
    Pensez aussi à installez tous les modules nécessaires pour Netfilter :
    
    		[*] Network packet filtering (replaces ipchains)
    		IP: Netfilter Configuration  --->  et sélectionner tout
    
    Quitter en sauvant. Puis
    
    	make dep; make clean, make bzImage; make modules; make modules_install
    

    Copier le nouveau noyau et configurer votre chargeur de démarrage

    	cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.20
    	cp System.map /boot/System.map-2.4.20
    
    Faites les modifications nécessaires à grub ou lilo puis rebootez.
    Après avoir redémarré, stoppez Freeswan :
    
    	service ipsec stop
    		ou
    	/etc/init.d/freeswan stop
    
    
    

    Création des clés et du certifcat d'authorité avec OpenSSL

    Créer un répertoire pour vos clés et certificat. N'oubliez pas d'installer préalablement la dernière version d'OpenSSL

    	cd /usr/tmp
    	mkdir demoCA
    	mkdir demoCA/private
    	mkdir demoCA/certs
    	mkdir demoCA/crl
    	mkdir demoCA/newcerts
    	touch demoCA/index.txt
    	touch demoCA/serial
    	echo 00 > demoCA/serial
    

    Copier et Editer openssl.cnf

    	cp /usr/ssl/openssl.cnf .
    	vi openssl.cnf
    
    vous devez avoir ces lignes :
    
    		[ CA_default ]
    
    		dir             = ./demoCA              # Where everything is kept
    		certs           = $dir/certs            # Where the issued certs are kept
    		crl_dir         = $dir/crl              # Where the issued crl are kept
    		database        = $dir/index.txt        # database index file.
    		new_certs_dir   = $dir/newcerts         # default place for new certs.
    
    		certificate     = $dir/cacert.pem       # The CA certificate
    		serial          = $dir/serial           # The current serial number
    		crl             = $dir/crl.pem          # The current CRL
    		private_key     = $dir/private/cakey.pem# The private key
    		RANDFILE        = $dir/private/.rand    # private random number file
    

    Créer votre certificat d'authorité

    	openssl req -config openssl.cnf -new -x509 -nodes -newkey rsa:1024
    	-keyout demoCA/private/cakey.pem -out demoCA/cacert.pem -days 3650
    
    Vous devrez remplir les champs suivants (n'employez pas d'accent et ne laissez pas de champ vide) :
    
    	Country Name (2 letter code) [CH]: (mettez les initiales de votre pays)
    	State or Province Name (full name) [Valais]: (votre canton ou département)
    	A State Name [Sierre]: (une ville)
    	Organization Name (eg, company) [MA311]: (un nom d'organisation)
    	Organizational Unit Name (eg, section) []: (encore un autre nom)
    	Common Name (eg, your name or your server's hostname) []: (quelque chose comme MA311 ROOT CA)
    	Email Address []: (une adresse email)
    

    Créez une clé pour le serveur

    	openssl req -config openssl.cnf -newkey rsa:1024 -nodes -keyout demoCA/newreq.pem
    	-out demoCA/newreq.pem
    
    Répondez de nouveau aux questions avec des réponses sensées :
    
    		Common Name (eg, your name or your server's hostname) []:serveur.ma311.ch
    		Email Address []:serveur@ma311.ch
    
    n'entrez rien pour :
    
    		- A challenge password []:
    		- An optional company name []:
    

    Signez la clé du serveur avec votre certificat d'authorité

    	openssl ca -config openssl.cnf -policy policy_anything -out demoCA/signed-key.pem
    	-infiles demoCA/newreq.pem
    
    Si tout se passe bien vous aurez :
    
    		Sign the certificate? [y/n]:y
    		1 out of 1 certificate requests certified, commit? [y/n]y
    

    Préparez la clé du serveur

    Editez demoCA/newreq.pem (vi demoCA/newreq.pem) et effacez tout depuis
    
    		-----BEGIN CERTIFICATE REQUEST-----
    
    il doit vous rester uniquement
    
    		-----BEGIN RSA PRIVATE KEY-----
    					.....
    		-----END RSA PRIVATE KEY-----
    
    	mv demoCA/newreq.pem demoCA/serveur.key
    
    Editez demoCA/signed-key.pem et ne gardez que
    
    		-----BEGIN CERTIFICATE-----
    					.....
    		-----END CERTIFICATE-----
    
    	mv demoCA/signed-key.pem demoCA/serveur.pem
    

    Créez une clé pour un client

    	openssl req -config openssl.cnf -newkey rsa:1024 -nodes -keyout demoCA/newreq.pem
    	-out demoCA/newreq.pem
    
    répondez de nouveau aux questions avec des réponses sensées :
    
    		Common Name (eg, your name or your server's hostname) []:client1.ma311.ch
    		Email Address []:client1@ma311.ch
    
    n'entrez rien pour :
    
    		- A challenge password []:
    		- An optional company name []:
    

    Signez la clé du client avec votre certificat d'authorité

    	openssl ca -config openssl.cnf -policy policy_anything -out demoCA/signed-key.pem
    	-infiles demoCA/newreq.pem
    
    Si tout se passe bien vous aurez :
    
    		Sign the certificate? [y/n]:y
    		1 out of 1 certificate requests certified, commit? [y/n]y
    

    Préparez la clé du client

    Editez demoCA/newreq.pem (vi demoCA/newreq.pem) et effacez tout depuis
    
    		-----BEGIN CERTIFICATE REQUEST-----
    
    		il doit vous rester uniquement
    
    		-----BEGIN RSA PRIVATE KEY-----
    					.....
    		-----END RSA PRIVATE KEY-----
    
    	mv demoCA/newreq.pem demoCA/client1.key
    
    Editez demoCA/signed-key.pem et ne gardez que
    
    		-----BEGIN CERTIFICATE-----
    					.....
    		-----END CERTIFICATE-----
    
    	mv demoCA/signed-key.pem demoCA/client1.pem
    

    Pour ceux qui n'ont pas compris ce qu'on a fait, voilà un petit résumé. Avec le système RSA, il faut à chaque fois une clé publique et une clé privée pour encrypter et décrypter des données. Dans notre cas, serveur.pem est la clé publique du serveur et serveur.key la clé privée. Une propriété de math dit : Tout ce qui a été encrypté par une clé publique ne peut être décrypté qu'avec la clé privée correspondante. Quand un client veut envoyer des données encryptées au serveur, le client lui demande sa clé publique. Une fois reçue la clé publique du serveur, le client fait des opérations mathématiques avec et il obtient la forme encryptée des données qu'il voulait transmettre. Le client envoie les données et le serveur reçoit les données chiffrées et, avec sa clé privée (serveur.key) qu'il garde jalousement pour lui, le serveur et seulement lui peut déchiffrer les données chiffrées envoyée par le client.

    Le certificat d'authorité sert à signer les clés publiques. De nouveau une propriété de math dit : Tout ce qui a été signé par une clé privée peut être vérifié que par la clé publique correspondante. Dans notre cas, ça sert à deux choses; Eviter les attaques Man In The Middle (trop compliqué à expliquer) et contrôler l'accès au serveur VPN. En effet, pour qu'un client puisse employer notre VPN, il faut que sa clé publique soit signée par la clé privée de notre certificat d'authorité. Donc même si un client se génère un paire de clé publique/privée il ne pourra rien faire d'intéressant car il n'a pas la clé privée de notre certificat d'authorité pour la signer. Pour faire les choses correctement on devrait protéger la clé privée de notre certificat d'authorité avec un mot de passe et gérer une list de revocation des clés. Lisez la doc d'OpenSSL ou les howto sur The Linux Documentation Project

    Configurer Freeswan

    Partie serveur

    sur le serveur, éditer /etc/ipsec.conf, effacez tout et copier ces paramètres

    config setup
            interfaces="ipsec0=wlan0"
            klipsdebug=none
            plutodebug=none
            plutoload=%search
            plutostart=%search
            uniqueids=yes
    
    conn %default
            keyingtries=1
            disablearrivalcheck=no
            authby=rsasig
            keyexchange=ike
            ikelifetime=240m
            keylife=60m
            auth=esp
            esp=aes128!,aes192!,aes256!
            ike=aes128!,aes192!,aes256!
            compress=no
            rightrsasigkey=%cert
            leftrsasigkey=%cert
            left=192.168.0.1
            leftcert=serveur.pem
            auto=add
            pfs=yes
    
    conn roadwarrior
            type=tunnel
            right=%any
            leftsubnet=0.0.0.0/0
    
    conn dhcp
            type=tunnel
            rekey=no
            ikelifetime=60s
            keylife=20s
            rekeymargin=10s
            right=%any
            leftsubnet=0.0.0.0/0
            leftprotoport=udp/bootps
            rightprotoport=udp/bootpc
    

    Dans ipsec.conf, interfaces doit correspondre à l'interface qui reçoit les connexions du réseau interne wireless. Si c'est eth1, mettez interfaces="ipsec0=eth1" . left doit correspondre à l'adresse ip de l'interface du réseau interne.

    il faut copier la clé publique du serveur dans le répertoire /etc/ipsec.d/
    
    	cp demoCA/serveur.pem /etc/ipsec.d
    
    et sa clé privée dans private
    
    	cp demoCA/serveur.key /etc/ipsec.d/private
    	chmod 700 /etc/ipsec.d/private/serveur.key
    
    puis le certificat d'authorité
    
    	cp demoCA/cacert.pem /etc/ipsec.d/cacerts
    
    Editez /etc/ipsec.secret effacez tout et copiez ces paramètres :
    
    		: RSA serveur.key
    
    il faut supprimer rp_filter sur l'interface ipsec :
    
    	echo 0 > /proc/sys/net/ipv4/conf/wlan0/rp_filter
    
    Démarrez ipsec :
    
    	service ipsec start
    		ou
    	/etc/init.d/ipsec start
    
    faites un tail -n 30 /var/log/secure :
    
    		 Starting Pluto (FreeS/WAN Version super-freeswan-1.99.7)
    		 including X.509 patch with traffic selectors (Version 0.9.28)
    		 including NAT-Traversal patch (Version 0.5a) [disabled]
    		 ike_alg_register_enc(): Activating OAKLEY_AES_CBC: Ok (ret=0)
    		 ike_alg_register_enc(): Activating OAKLEY_BLOWFISH_CBC: Ok (ret=0)
    		 ike_alg_register_enc(): Activating OAKLEY_CAST_CBC: Ok (ret=0)
    		 ike_alg_register_enc(): Activating OAKLEY_SERPENT_CBC: Ok (ret=0)
    		 ike_alg_register_hash(): Activating OAKLEY_SHA2_256: Ok (ret=0)
    		 ike_alg_register_hash(): Activating OAKLEY_SHA2_512: Ok (ret=0)
    		 ike_alg_register_enc(): Activating OAKLEY_TWOFISH_CBC: Ok (ret=0)
    		 ike_alg_register_enc(): Activating OAKLEY_SSH_PRIVATE_65289: Ok (ret=0)
    		 Changing to directory '/etc/ipsec.d/cacerts'
    		  loaded cacert file 'cacert.pem' (1619 bytes)
    		 Changing to directory '/etc/ipsec.d/crls'
    		  Warning: empty directory
    		 OpenPGP certificate file '/etc/pgpcert.pgp' not found
    		  | from whack: got --esp=serpent-sha1!, twofish256-sha1!,aes128-sha1!;modp1024
    		  | from whack: got --ike=serpent-sha!, twofish256-sha!, aes128-sha!
    			loaded host cert file '/etc/ipsec.d/k2.pem' (1484 bytes)
    		  added connection description "dhcp"
    		  | from whack: got --esp=serpent-sha1!, twofish256-sha1!,aes128-sha1!;modp1024
    		  | from whack: got --ike=serpent-sha!, twofish256-sha!, aes128-sha!
    			loaded host cert file '/etc/ipsec.d/serveur.pem' (1484 bytes)
    		  added connection description "roadwarrior"
    		listening for IKE messages
    		adding interface ipsec0/wlan0 192.168.0.1
    		loading secrets from "/etc/ipsec.secrets"
    		loaded private key file '/etc/ipsec.d/private/serveur.key' (887 bytes)
    
    

    Si tout a fonctionné, voilà à peu près ce que vous devriez avoir vu. Contrôlez avec lsof que le daemon pluto fonctionne :

    	lsof -i -n | grep pluto
    
    Le résultat doit être :
    
    		pluto 26707 root 10u IPv4 46763 UDP 192.168.0.1:isakmp
    
    

    Partie client

    Sur le client, éditez /etc/ipsec.conf, effacez tout et copier ces paramètres

    config setup
    	interfaces="ipsec0=wlan0"
    	klipsdebug=none
    	plutodebug=none
    	plutoload=%search
    	plutostart=%search
    	uniqueids=yes
    
    
    conn %default
    	auth=esp
    	esp=aes128!,aes192!,aes256!
    	ike=aes128!,aes192!,aes256!
    	keyingtries=0
    	compress=no
    	disablearrivalcheck=no
    	authby=rsasig
    	leftrsasigkey=%cert
    	rightrsasigkey=%cert
    
    conn rw
    	left=192.168.0.1
    	leftcert=serveur.pem
    	leftsubnet=0.0.0.0/0
    	right=192.168.0.200
    	rightcert=client1.pem
    	auto=add
    	pfs=yes
    
    

    Dans ipsec.conf, interfaces doit correspondre à l'interface qui sert à se connecter au serveur. Si c'est eth1, mettez interfaces="ipsec0=eth1" . left doit correspondre à l'adresse ip du serveur VPN. right correspond à votre adresse ip (si vous êtes sur dhcp faudra la mettre à jour et relancer ipsec à chaque fois !).

    Il faut copier la clé publique du client dans le répertoire /etc/ipsec.d/ du poste client
    
    	cp demoCA/client1.pem /etc/ipsec.d
    
    et sa clé privée dans private
    
    	cp demoCA/client1.key /etc/ipsec.d/private
    	chmod 700 /etc/ipsec.d/private/client1.key
    
    Il faut également copier le clé publique du serveur dans le répertoire /etc/ipsec.d/
    
    	cp demoCA/serveur.pem /etc/ipsec.d
    
    puis le certificat d'authorité
    
    	cp demoCA/cacert.pem /etc/ipsec.d/cacerts
    
    Editez /etc/ipsec.secret effacez tout et copiez ces paramètres :
    
    		: RSA client1.key
    
    Il faut supprimer rp_filter sur l'interface ipsec :
    
    	echo 1 > /proc/sys/net/ipv4/conf/wlan0/rp_filter
    
    Démarrez ipsec :
    
    	service ipsec start
    		ou
    	/etc/init.d/ipsec start
    
    faites un tail -n 30 /var/log/secure :
    
    
    		Starting Pluto (FreeS/WAN Version super-freeswan-1.99.7)
    		  including X.509 patch with traffic selectors (Version 0.9.28)
    		  including NAT-Traversal patch (Version 0.5a) [disabled]
    		ike_alg_register_enc(): Activating OAKLEY_AES_CBC: Ok (ret=0)
    		ike_alg_register_enc(): Activating OAKLEY_BLOWFISH_CBC: Ok (ret=0)
    		ike_alg_register_enc(): Activating OAKLEY_CAST_CBC: Ok (ret=0)
    		ike_alg_register_enc(): Activating OAKLEY_SERPENT_CBC: Ok (ret=0)
    		ike_alg_register_hash(): Activating OAKLEY_SHA2_256: Ok (ret=0)
    		ike_alg_register_hash(): Activating OAKLEY_SHA2_512: Ok (ret=0)
    		ike_alg_register_enc(): Activating OAKLEY_TWOFISH_CBC: Ok (ret=0)
    		ike_alg_register_enc(): Activating OAKLEY_SSH_PRIVATE_65289: Ok (ret=0)
    		Changing to directory '/etc/ipsec.d/cacerts'
    		  loaded cacert file 'cacert.pem' (1619 bytes)
    		Changing to directory '/etc/ipsec.d/crls'
    		  Warning: empty directory
    		OpenPGP certificate file '/etc/pgpcert.pgp' not found
    		| from whack: got --esp=serpent-sha1!, aes256-sha1!, twofish256-sha1!
    		| from whack: got --ike=serpent-sha!, aes256-sha!, twofish255-sha!
    		  loaded host cert file '/etc/ipsec.d/serveur.pem' (1484 bytes)
    		  loaded host cert file '/etc/ipsec.d/client1.pem' (1484 bytes)
    		added connection description "rw"
    		listening for IKE messages
    		adding interface ipsec0/wlan0 192.168.0.200
    		loading secrets from "/etc/ipsec.secrets"
    		  loaded private key file '/etc/ipsec.d/private/client1.key' (887 bytes)
    
    

    Si tout a fonctionné, voilà à peu près ce que vous devez avoir vu. Contrôlez avec lsof que le daemon pluto fonctionne :

    	lsof -i -n | grep pluto
    
    Le résultat doit être :
    
    	pluto 22507 root 10u IPv4 46763 UDP 192.168.0.200:isakmp
    
    et contrôlez avec ifconfig vos interfaces :
    
    		ipsec0    Lien encap:Ethernet  HWaddr 00:09:5B:2F:BD:C6
              inet adr:192.168.0.200  Masque:255.255.254.0
              UP RUNNING NOARP  MTU:16260  Metric:1
              RX packets:1 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 lg file transmission:10
              RX bytes:328 (328.0 b)  TX bytes:0 (0.0 b)
    
    		lo        Lien encap:Boucle locale
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:15 errors:0 dropped:0 overruns:0 frame:0
              TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 lg file transmission:0
              RX bytes:4920 (4.8 Kb)  TX bytes:4920 (4.8 Kb)
    
    		wlan0     Lien encap:Ethernet  HWaddr 00:09:5B:2F:BD:C6
              inet adr:192.168.0.200  Bcast:192.168.1.255  Masque:255.255.254.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:424 errors:0 dropped:0 overruns:0 frame:0
              TX packets:604 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 lg file transmission:100
              RX bytes:59429 (58.0 Kb)  TX bytes:82602 (80.6 Kb)
              Interruption:5 Mémoire:d087d000-d087e000
    
    

    Configurer iptables sur le serveur

    Je vous donne juste une config minimale d'iptables. Elle bloque le trafic en transit qui ne passe pas par le vpn et laisse l'interface connectée à Internet et celle connectée au réseau interne complètement ouverte sur votre serveur. A vous d'apporter les modifications nécessaires pour garantir votre propre sécurité.

    Stoppez iptables sur le serveur :
    
    	service iptables stop
    		ou
    	/etc/init.d/iptables stop
    
    

    Copiez ce script dans un fichier, adaptez les variables à votre config, rendez-le exécutable et lancez-le


    #!/bin/bash IPTABLES="/sbin/iptables" EXTIF="eth0" INTIF="wlan0" IPSECIF="ipsec0" #---------------------------------------------# #-- on laisse pratiquement tout faire --# #---------------------------------------------# $IPTABLES -P INPUT ACCEPT $IPTABLES -F INPUT $IPTABLES -P OUTPUT ACCEPT $IPTABLES -F OUTPUT $IPTABLES -P FORWARD DROP $IPTABLES -F FORWARD #-----------------------------------------------------# #-- on bloque et log ce qui ne passe pas par le vpn --# #-----------------------------------------------------# $IPTABLES -A INPUT -i $IPSECIF -j ACCEPT $IPTABLES -A OUTPUT -o $IPSECIF -j ACCEPT $IPTABLES -A FORWARD -i $IPSECIF -o $INTIF -j ACCEPT $IPTABLES -A FORWARD -i $INTIF -o $IPSECIF -j ACCEPT $IPTABLES -A FORWARD -i $IPSECIF -o $EXTIF -j ACCEPT $IPTABLES -A FORWARD -i $EXTIF -o $IPSECIF -j ACCEPT $IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m limit \ --limit 4/minute --limit-burst 7 -j LOG --log-prefix \ "BAD FWD eth0 wlan0: " $IPTABLES -A FORWARD -i $EXTIF -o $INTIF -j REJECT $IPTABLES -A FORWARD -i $INTIF -o $EXTIF -m limit \ --limit 4/minute --limit-burst 7 -j LOG --log-prefix \ "BAD FWD wlan0 eth0: " $IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j REJECT $IPTABLES -t nat -I POSTROUTING -o $EXTIF -j MASQUERADE

    En fait, vous devez laisser passer les paquets udp qui arrivent sur le port 500 et tous les paquets dont le protocole est de type 50 (ESP) pour que le VPN fonctionne et cela aussi bien sur le serveur que le client. Sur le serveur, on laisse tout passer; ce n'est donc pas un problème. Sur le client, il faut au moins avoir ces lignes pour ceux qui emploient iptables :

    		iptables -i wlan0 -p udp --dport 500 -m state --state NEW,ESTABLISHED -j ACCEPT
    		iptables -i wlan0 -p 50 -j ACCEPT
    

    Démarrer le tunnel VPN

    Quand vous aurez configuré FreeSwan et Iptables correctement, il ne vous restera plus qu'à démarrer le tunnel VPN depuis le client. Tapez juste sur le client :

    	ipsec auto --up rw
    
    Si votre configuration fonctionne, voilà ce qui va s'afficher :
    
    		104 "rw" #3: STATE_MAIN_I1: initiate
    		106 "rw" #3: STATE_MAIN_I2: sent MI2, expecting MR2
    		108 "rw" #3: STATE_MAIN_I3: sent MI3, expecting MR3
    		004 "rw" #3: STATE_MAIN_I4: ISAKMP SA established
    		117 "rw" #4: STATE_QUICK_I1: initiate
    		004 "rw" #4: STATE_QUICK_I2: sent QI2, IPsec SA established
    
    

    Pour arrêter le tunnel, faites ipsec auto --down rw . "rw" correspond au nom de la connection que vous avez mis dans votre /etc/ipsec.conf Si vous avez des erreurs, regardez dans /vag/log/secure et /var/log/message les messages d'information.


    Liens utiles

    Ma311 et HostAP : http://www.wlanfr.net/contenus.php?id=16
    Super-Freeswan : www.freeswan.ca
    Freeswan : www.freeswan.org
    OpenSSL : www.openssl.org
    Kernel 2.4.20 : www.kernel.org
    Iptables/Netfilter : www.netfilter.org
    
    
    [retour au début]			version 1.1		dernière mise à jour : 05.06.2003
    
  • Menu utilisateur
    Vous êtes connecté en Invité
    Pseudo
    Mot de passe
    Ne pas m'oublier
  • Enregistrez-vous
  • Mot de passe oublié

    Ils sont là


    Il y a aussi 6 invité(s).


    Visites
    Stats du jour5067 Pages
  • Forum
  • Général
  •     ø Bla Bla
        ø ART
        ø Sécurité
        ø Logiciels
        ø Suggestions
        ø Jeux/Loterie
  • Matos sans fil
  •     ø Carte PCMCIA
        ø Carte PCI
        ø Access Point
        ø Câble Connecteur
        ø Antennes
        ø Tout en un
        ø Carte USB
        ø P'tit coup d'pouce
        ø PC portable/ PDA
        ø Autre matériel
        ø Carte C. Flash
  • Vente Groupée
  •     ø Netgear Wireless
        ø Vigor Wireless
        ø Général
  • Troc ou vente PAP
  •     ø Troc
        ø Vente
  • Forum dédié à
  •     ø Inventel
        ø Draytek Gamme VIGOR
  • VoIP & VoWi-Fi
  •     ø Les logiciels
        ø Matos VoIP & VoWi-FI
        ø Asterisk
  • Console de jeux wireless
  •     ø Nokia N-Gage
  • Jeux Vidéos
  • Dossier
  • Les DB, DBm, DBi
  • Wifi et sécurité
  • Sécuriser son AP avec Linux
  • Comment flasher les chipsets Intersil Prism
  • Comment récupérer un flash raté
  • Arduino et Radio
  • Arduino et Radio avec les NRF24L01+
  • Conf Linux
  • Netgear MA311
  • Debian et la MA311
  • D-Link DWL 650+
  • Chipset Atmel et Linux
  • Installation WPC54G
  • Netgear WG311v2 sous Debian
  • Netgear WG311v2 ACX100
  • Netgear WG511
  • Belkin USB Wireless G
  • BBPortalS V.1.5.11 (c) BBsProcesS Coded by Patrice