Forum d'entraide de la communauté Freedom-IP VPN
Vous n'êtes pas identifié(e).
sudo apt-get install openvpn network-manager-openvpn-gnome
AMD 3000+, nvidia FX5200 et 2 giga de ram sur Voyager 12.04 LTS en 32 bit
et TOSHIBA satellite_c670d-11l sur openbox/xubuntu 14.04 en 64 bit
Hors ligne
Félicitations pour le tuto.
@++ mimi42
Hors ligne
Bonjour,
Merci beaucoup pour le tuto.
Bien cordialement,
Antonin.
Hors ligne
Bonjour,
Le script Iptable ne marche pas chez moi. J'ai passé quelques jours à essayer de l'adapter, sans succès. Je suis derrière une freebox (192.168.0.254) qui fait le routeur. j'ai modifié localIP="192.168.0.10" en 192.168.0.11 (baux DHCP permanent, ca va de 192.168.0.10 à .50). Tout va bien en l'absence du parefeu. Quand il est activé la connection VPN ne peut s'établir et, si elle a été établi avant, les connections ne passent pas.
System:~$ ifconfig -a
eth0 Link encap:Ethernet HWaddr 50:46:5d:a3:30:36
inet adr:192.168.0.11 Bcast:192.168.0.255 Masque:255.255.255.0
adr inet6: fe80::5246:5dff:fea3:3036/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Packets reçus:240262 erreurs:0 :0 overruns:0 frame:0
TX packets:147711 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
Octets reçus:330980692 (330.9 MB) Octets transmis:15116833 (15.1 MB)
Interruption:20 Mémoire:f7c00000-f7c20000
lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:65536 Metric:1
Packets reçus:12578 erreurs:0 :0 overruns:0 frame:0
TX packets:12578 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
Octets reçus:1385647 (1.3 MB) Octets transmis:1385647 (1.3 MB)
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet adr:10.8.32.114 P-t-P:10.8.32.113 Masque:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
Packets reçus:778 erreurs:0 :0 overruns:0 frame:0
TX packets:886 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:100
Octets reçus:492039 (492.0 KB) Octets transmis:117536 (117.5 KB)
wlan0 Link encap:Ethernet HWaddr dc:85:de:06:d6:d4
UP BROADCAST MULTICAST MTU:1500 Metric:1
Packets reçus:0 erreurs:0 :0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
Octets reçus:0 (0.0 B) Octets transmis:0 (0.0 B)
Help ! je sèche.
Hors ligne
Bonjour Sip,
Pourrais-tu me montrer ton script modifié ?
Merci,
Didier.
Hors ligne
Bien sur. Au final j'ai remis l'initial en ne changeant que l'IP. Aucune de mes modif ne marchait.
#!/bin/sh
### BEGIN INIT INFO
# Provides: chillispot et freeradius dans le chroot
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $remote_fs
# Default-Start:
# Default-Stop:
# Short-Description: Wireless & LAN Access Point Controller
# Description: ChilliSpot is an open source captive portal
# or wireless LAN access point controller.
### END INIT INFO
interfaceWWW="eth0"
interfaceVPN="tun0"
localIP="192.168.0.11"
network="192.168.0.0/24"
start() {
# Dans cette partie, on met en place le firewall
#vidage des chaînes
iptables -F
#destruction des chaînes personnelles
#stratégies par défaut
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#on accepte tout le réseau local
iptables -A INPUT -s $network -j ACCEPT
iptables -A OUTPUT -d $network -j ACCEPT
iptables -A FORWARD -s $network -j ACCEPT
# On autorise le PC a faire des pings sur des IP externes et à répondre aux requêtes "ping"
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# On autorise les pings
iptables -A INPUT -p icmp -j ACCEPT
#on autorise les connexions sortantes sur interfaceWWW pour initialiser les connexion VPN
iptables -A OUTPUT -p TCP --dport 8080 -m state --state NEW -o $interfaceWWW -j ACCEPT
iptables -A OUTPUT -p TCP --dport 80 -m state --state NEW -o $interfaceWWW -j ACCEPT
iptables -A OUTPUT -p TCP --dport 443 -m state --state NEW -o $interfaceWWW -j ACCEPT
#on autorise les connexions sortantes sur le VPN
iptables -A OUTPUT -m state --state NEW -o $interfaceVPN -j ACCEPT
}
stop() {
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop && sleep 2 && start
;;
*)
echo "Usage $0 {start|stop|restart}"
exit 1
esac
exit 0
Dernière modification par Sip (2014-11-27 20:03:41)
Hors ligne
Bonjour Sip,
je ne vois pas de raison pour que ça ne fonctionne pas dans ton parefeu.
peut etre faudrait-il regarder au niveau de ta box si les ports 80, 443, et 8080 sont ouvert en TCP pour ton ordinateur.
pour le moment je ne peut pas tester cher moi ma ligne internet m'a lachée.
A+,
Didier.
Hors ligne
Hors ligne
Je l'avais bien compris, mais cher moi avec le parefeu sa fonctionne (enfin plus pour le moment, mais je n'ai plus d'accès au net), et je suis cher Free moi aussi.
Comme mon poste est en DMZ (sans protection de la box) il me semblait logique d'ouvrir ces trois ports qui me semble nécessaire a la connexion.
Maintenant il y a bien une autre possibilité qui me viens a l'esprit. C'est que tu cherche a te connecter au réseau Wi-Fi quand tu utilise le pare-feu et non au réseau Ethernet comme le laisse penser ton message plus haut (celui avec le retour ifconfig qui montre des échanges uniquement sur eth0).
Ne pouvant actuellement pas testé les différentes pistes qui pourraient t'aider je compte sur toi pour le faire.
A+,
Didier.
Hors ligne
iptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Dernière modification par chico (2014-11-28 17:45:03)
Hors ligne
iptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPT
Hors ligne
@David, oui mais avec cette règle t'as au moins accès au net et puis c'est sûr que la DMZ c'est une zone qui craint, perso j'utilise la RELATED,ESTABLISHED plus un paquet d'autres règles mais aucune dans la police de sortie, peut-être ai-je tort.
Hors ligne
Bonsoir chico,
tu as raison de dire que je n'ai pas besoins d'ouvrir ces ports car je suis en DMZ, et sa tombe bien, je ne les ai pas ouvert, par contre sa pourait peut etre aider Sip.
Je suis content que tu confirme que l'acces au Web est très limité avec les règles iptables fournis, car ces le but recherché, limité l'acces au maximum, sauf pour tun0 qui donne un plein acces au web.
A+,
Didier.
Hors ligne
L'ouverture des ports sur le FBX ne change effectivement rien. tun0 ne passe pas mieux et je ne peux pas établir une connection vpn à partir de la connection filaire (eth0). Les connections VPN sont configurées sur cette connection ethernet. (la fonction wifi de la box est désactivée)
Hors ligne
Hors ligne
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
Dernière modification par chico (2014-11-29 15:44:42)
Hors ligne
Dernière modification par Sip (2014-11-29 20:17:42)
Hors ligne
Bonsoir,
Comme le dit Sip, ton script pourrait bien me servir chico.
Je le testerai des que j'aurai récupérée ma connexion internet, je vous tiendrai au courant.
A+,
Didier.
Hors ligne
Bonsoir,
Le script de reconnection de ljere ne marchait pas avec ces regles. J'ai ajouté le ping et l'acces à curlmyip
...
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
# On autorise le PC a faire des pings sur des IP externes et à répondre aux requêtes "ping"
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# On autorise les pings
iptables -A INPUT -p icmp -j ACCEPT
# On autorise le script vpn à se connecter à curlmyip
iptables -A INPUT -s curlmyip.com -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -d curlmyip.com -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
...
Dernière modification par Sip (2014-11-29 21:32:22)
Hors ligne
Hors ligne
Bonsoir,
J'étais justement en train de plancher sur les règles Iptables pour modifier le parefeu inclus au script de Didier-T (celui de ljere en fait) car je me suis aperçu que mon Ip publique était visible dans certains cas ou la connexion ne se faisait pas au VPN au lieu de bloquer toute connexion.
J'ai finalement retenu les règles suivantes mais comme je ne suis pas du tout expert, je ne suis pas sûr de ce que j'ai fais. Ça semble fonctionner en bloquant tout sauf HTTPS en cas de déconnexion du VPN. Sans HTTPS, la connexion au VPN était impossible, par contre je n'ai pas autorisé les DNS comme indiqué et la connexion se fait bien.
Si vous pouviez m'éclairer sur les règles, voir si c'est correct. Et si oui, comment autoriser HTTPS que vers les serveurs freedom-Ip.
#!/bin/sh
interfaceWWW=`ip -o link show | awk 'BEGIN{} $9=="UP" {gsub(":",""); print $2} END{}'`
interfaceVPN="tun+"
localIP=`ip -o route | awk -v interfaceWWW=$interfaceWWW 'BEGIN{} $3==interfaceWWW && $4=="proto" {print $9} END{}'`
network=`ip -o route | awk -v interfaceWWW=$interfaceWWW 'BEGIN{} $3==interfaceWWW && $4=="proto" {print $1} END{}'`
start() {
#vidage des chaînes
iptables -F
#on ferme tout
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#on accepte tout le réseau local
iptables -A INPUT -s $network -j ACCEPT
iptables -A OUTPUT -d $network -j ACCEPT
iptables -A FORWARD -s $network -j ACCEPT
#on autorise toutes les connexion déjà établies
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# On autorise le PC a faire des pings sur des IP externes et à répondre aux requêtes "ping"
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# On autorise les pings
iptables -A INPUT -p icmp -j ACCEPT
#Autoriser HTTPS
iptables -A OUTPUT -p TCP --dport 443 -m state --state NEW -o $interfaceWWW -j ACCEPT
#on autorise les connexions sortantes sur le VPN
iptables -A OUTPUT -m state --state NEW -o $interfaceVPN -j ACCEPT
}
stop() {
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop && sleep 2 && start
;;
*)
echo "Usage $0 {start|stop|restart}"
exit 1
esac
exit 0
Bon, tout ceci plus pour mon information car apparemment chico a fait un script fonctionnel que je n'ai pas encore testé.
Dernière modification par metalux (2014-11-29 23:06:05)
Hors ligne
Bonsoir metalux,
Je trouve plus simple et plus sécurisé d'autoriser uniquement les noms de domaines FIP plutôt que d'autoriser HTTPS, de nombreux sites en SSL peuvent donc récupérer ton IP publique.
Avec mes règles tu es obligé soit d'autoriser DNS ou de modifier les noms de domaines FIP en adresses IP dans les fichiers de conf. (pas terrible car les IP FIP peuvent changer) sinon aucune connexion possible puisque tout est sur DROP il ne résoudra pas les noms de domaines.
Je viens de tester ton script et il fonctionne mais tu devrais changer
iptables -A OUTPUT -p TCP --dport 443 -m state --state NEW -o $interfaceWWW -j ACCEPT
par
iptables -A INPUT -s "nom de domaine du VPN" -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -d "nom de domaine du VPN" -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
Dans ce cas tu devras surement autoriser DNS.
Dernière modification par chico (2014-11-29 23:40:29)
Hors ligne
Merci chico, le souci dans le script de Didier-T, il y a besoin d'ouvrir HTTPS pour le profil de connexion Occupation entre autre. Je t'invite à l'essayer pour mieux comprendre. En Ping, ça fonctionne, normal vu qu'il y a les règles pour ça.
Mais ça doit être possible également d'autoriser la connexion https que vers l'API de freedom-ip comme en faisant vers les serveurs. Je crois que Didier-T trouvera le nécessaire avec tes indications.
Pour les DNS, je n'ai pas eu besoin d'ajouter les règles, ça fonctionne sans bien que ça me parait étrange vu tes explications.
Pour ton script post #16, il y a la possibilité d'ajouter cette boucle pour ouvrir vers l'ensemble des serveurs:
serveurs=( be1 ch1 cz1 de1 de2 dk1 es fi1 fr1 gr1 ie1 it1 lt1 lu1 mt1 nl1 nl2 nl3 nl4 pl1 pt1 uk )
for servfreedom in ${serveurs[@]};do
iptables -A INPUT -s $servfreedom.freedom-ip.com -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -d $servfreedom.freedom-ip.com -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
done
Par contre ça ne fonctionne qu'en bash, en sh ça renvoie une erreur.
Dernière modification par metalux (2014-11-30 01:44:01)
Hors ligne
serveurs=( be1 ch1 cz1 de1 de2 dk1 es fi1 fr1 gr1 ie1 it1 lt1 lu1 mt1 nl1 nl2 nl3 nl4 pl1 pt1 uk )
for servfreedom in ${serveurs[@]};do
iptables -A INPUT -s $servfreedom.freedom-ip.com -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -d $servfreedom.freedom-ip.com -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
done
Hors ligne
Dernière modification par metalux (2014-11-30 11:19:15)
Hors ligne