Forum Freedom-IP

Forum d'entraide de la communauté Freedom-IP

Vous n'êtes pas identifié(e).

#1 2013-11-06 14:14:10

ljere
Membres de confiance
Inscription : 2012-04-22
Messages : 460

Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

Bonjour,
pour commencer ce tutoriel va se dérouler en 4 parties distinctes seule la première est obligatoire,
chaque partie a été réduite au minimum vous trouverez plus de détails dans les discussions que j'ai fait sur le forum ou sur mon blog.

1 l'installation
je vais commencer par récapituler vite fait l'installation comme on est sur linux on va principalement utiliser la ligne de commande ce sera plus rapide
je télécharge sur le site les configurations du serveur j'ai donc dans mon dossier téléchargement freedomip.zip
j'ouvre mon terminal et j'installe openvpn avec cette commande

sudo apt-get install openvpn network-manager-openvpn-gnome

je crée un dossier freedomip dans mon dossier utilisateur

mkdir ~/freedomip

puis je vais dans mon dossier téléchargement à adapter suivant l'endroit où se trouve votre fichier

cd ~/téléchargement

et je décompresse l'archive

unzip freedomip.zip -d ~/freedomip/

il ne reste plus qu'à aller dans network manager choisir configurer le vpn → ajouter → importer une configuration VPN enregistrée
on prend le serveur ovpn et on remplit avec son identifiant fip***** et votre mot de passe on enregistre et c'est fini plus qu'à choisir le serveur pour se connecter

2 bloquer le trafic si on est pas connecté au vpn
le souci étant que si la connexion décroche on se retrouve avec notre adresse ip publique
je vais donc vous fournir un script qui va gérer votre parefeu de façon stricte (pour une version plus souple et explicative vous pouvez aller sur mon blog)
pour remplir les quatre variables au début du script en dessous de ### END INIT INFO il suffit de faire

sudo ifconfig -a

puis on crée notre fichier

sudo gedit /etc/init.d/parefeu
#!/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.10"
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

une fois enregistré on le rend exécutable

sudo chmod +x /etc/init.d/parefeu

on démarre notre parefeu

sudo service parefeu start

en cas de souci on peut arrêter le parefeu avec

sudo service parefeu stop

voila là on est protégé si on est plus connecté au vpn notre connexion internet sera bloqué

3 la reconnexion automatique
ensuite il suffit de se reconnecter automatiquement avec ce script
pour cela on a trois variable à remplir
serveur="NL2-(Pays-Bas)" → vous mettez le nom du serveur auquel vous voulez vous reconnecter
eth="Connexion filaire 1" → ici on indique la connexion qui va être protégé par le vpn autre exemple eth="*****_wifi"
ipnonprotege="00.000.000.00" → ici vous devez mettre votre adresse ip publique soit vous allez sur un site pour la connaître soit vous lancez cette commande

dig +short myip.opendns.com @resolver1.opendns.com
gedit ~/freedomip/demon-vpn
#! /bin/bash
# par: ljere
# Script permettant la reconnexion du vpn automatiquement si l'IP de connexion a changé ou si le vpn tombe

while true
do
    sleep 5
    serveur="NL2-(Pays-Bas)"
    eth="ljere_wifi"
    ipnonprotege="88.176.186.21"
    log=/tmp/demon-log
    monip=`dig +short myip.opendns.com @resolver1.opendns.com`
    maderniereip=`cat /tmp/monip`
    PING=$(ping -c 2 freedom-ip.com | grep % | cut -d ' ' -f4)

    if [[ "$monip" != "$maderniereip" || "$ipnonprotege" = "$maderniereip" || -z $PING ]];
    then
    (
	echo Pas de connexion Internet fonctionnelle		
	notify-send 'Freedom-IP:' 'Pas de connexion Internet fonctionnelle' -i dialog-error
        # L'adresse IP a changé, on lance une reconnexion du vpn
        VPN_STAT=$(nmcli con status | grep freedomip | cut -d\  -f 1)
        nmcli con down id "${VPN_STAT}"
    sleep 20
        nmcli con down id $eth
    sleep 20
        nmcli con up id $eth
    sleep 30
        nmcli con up id $serveur
        NEW_IP=`dig +short myip.opendns.com @resolver1.opendns.com`
        echo $NEW_IP > /tmp/monip
        notify-send 'Freedom-IP:' 'Connexion sur le serveur '$serveur' réussie' -i dialog-ok
    ) 2>&1 | tee -a $log
    fi
done

on le rend exécutable

chmod +x ~/freedomip/demon-vpn

plus qu'à le mettre dans application au démarrage pour qu'il se lance à chaque démarrage

nom → VPN
commande → sh -c "~/.freedomip/demon-vpn"
commentaire → le démon vpn pour se connecter automatiquement

alors le vpn c'est good, iptables c'est good, la reconnexion auto c'est good, c'est bien beau tout ça mais il reste le souci des dns

4 modifier les DNS
On modifie les dns pour ne plus être fliqué ni bridé par votre fai moi j'ai décidé de faire confiance à opennicproject
la ça va aller vite in édite le fichier resolv.conf

sudo nano /etc/resolv.conf

on efface tout ce qu'il contient et on met les dns qu'on a récupéré (je l'ai fait pour vous)

nameserver 185.19.104.45
nameserver 185.19.105.6

puis on empêche la modification par network manager

sudo chattr +i /etc/resolv.conf

si on reçoit un message de ce type
chattr: Opération non supportée lors de la lecture des drapeaux sur /etc/resolv.conf
il faut d'abord supprimer resolvconf

sudo apt-get purge resolvconf

puis on relance

sudo chattr +i /etc/resolv.conf

un petit tour sur ce site https://www.dnsleaktest.com/ nous confirmera la réussite de notre changement de dns

info: les dns d'opennicproject ne seront utilisé que lorsque vous n'utilisez pas le vpn
lorsque vous utilisez le vpn ce sont les dns du vpn qui sont utilisés


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

#2 2013-11-06 15:29:26

mimi42
Membre
Inscription : 2013-09-09
Messages : 159

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

Félicitations pour le tuto.   smile


@++ mimi42  smile

Hors ligne

#3 2013-11-07 14:54:33

Antonin
Membres de confiance
Inscription : 2011-11-28
Messages : 3 729

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

Bonjour,

Merci beaucoup pour le tuto.

Bien cordialement,
Antonin.

Hors ligne

#4 2014-11-27 11:47:46

Sip
Membre
Inscription : 2014-11-16
Messages : 6

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

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

#5 2014-11-27 19:13:32

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

Bonjour Sip,
Pourrais-tu me montrer ton script modifié ?

Merci,
Didier.

Hors ligne

#6 2014-11-27 19:35:57

Sip
Membre
Inscription : 2014-11-16
Messages : 6

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

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

#7 2014-11-28 07:05:39

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

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

#8 2014-11-28 08:20:50

Sip
Membre
Inscription : 2014-11-16
Messages : 6

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

peut etre faudrait-il regarder au niveau de ta box si les ports 80, 443, et 8080 sont ouvert en TCP pour ton ordinateur.

Je ne l'ai pas fait : sans le pare feu tout marche.

Hors ligne

#9 2014-11-28 08:37:21

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

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

#10 2014-11-28 17:44:12

chico
l'Axe du bien
Inscription : 2014-05-03
Messages : 695

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

Didier-T a écrit :

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.

Bonjour,

Si ton PC est dans la DMZ il est inutile de rediriger quelque port que ce soit étant donné qu'ils sont tous ouverts.

Je ne suis pas un expert mais le bash pour iptables me semble assez louche, pourquoi se casser la tête avec la Policy Output que l'on peut régler sur Accept étant donné qu'elle ne joue pas un grand rôle dans la sécurité mais qui peut être utile pour les paranos.

Ce que je vois c'est que seul le protocole Icmp est autorisé dans la Policy Input ainsi que les IP locales (192.168.0.0/24) et 127.0.0.1, ça me parait donc normal qu'il soit impossible d'accéder à internet.

J'aurais commencé la règle Input par un:

iptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

et ensuite tu ajoutes tes ports ou tes IP selon tes besoins, par exemple pour ssh :

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

De plus ce script est réservé à ceux qui n'ont aucune règles iptables de paramétrées sous peine de les voir disparaître avec la commande flush.

Personnellement je met les Policy Input et Forward sur drop et j'ajoute les règles au fur et à mesure selon mes besoins, il ne faut pas négliger iptables car c'est la grande force de Linux et le meilleur pare-feu au monde.

Dernière modification par chico (2014-11-28 17:45:03)


U Play...U Pay

Hors ligne

#11 2014-11-28 17:54:47

David
Bof !!!
Inscription : 2012-01-30
Messages : 6 121

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

Bonsoir ...

Je trouve cette ligne relativement dangeureuse, surtout si la machine est en DMZ :

iptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPT

... car toute demande de connexion (NEW), d'où elle vienne, est autorisée. Il faut, pour un minimum de sécurité,  ajouter une source (réseau local).

iptables -A INPUT -m state --state NEW,ESTABLISHED -s 192.168.0.0/24 -j ACCEPT

Personnellement, je préfère laisser mes postes hors de la DMZ et rediriger au niveau de la box chaque service à la machine correspondante.

Cordialement, David.


C.G.U.                Règles

Hors ligne

#12 2014-11-28 19:07:14

chico
l'Axe du bien
Inscription : 2014-05-03
Messages : 695

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

@David, oui mais avec cette règle t'as au moins accès au net smile 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.


U Play...U Pay

Hors ligne

#13 2014-11-28 22:04:14

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

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

#14 2014-11-28 23:16:58

Sip
Membre
Inscription : 2014-11-16
Messages : 6

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

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

#15 2014-11-28 23:26:59

David
Bof !!!
Inscription : 2012-01-30
Messages : 6 121

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

Bonsoir ...

Si vous pouviez nous mettre les traces des logs de votre connexion VPN ainsi que le résultat des commandes " route -n " puis " traceroute -n freedom-ip.com " pour voir ce qu'il se passe réellement, nous aurons de la matière pour commencer à voir ce qui bloque.

Cordialement, David.


C.G.U.                Règles

Hors ligne

#16 2014-11-29 02:34:21

chico
l'Axe du bien
Inscription : 2014-05-03
Messages : 695

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

Bonsoir Didier-T,

Bon j'ai peut-être était un peu vite dans la compréhension du script, effectivement la police de sortie est primordiale dans ce cas le seul petit problème est peut-être qu'il faille autoriser les DNS car les fichiers de conf de Freedom-IP sont configurer avec des noms de domaines et non des adresses IP.

Il faudrait donc rajouter

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

-------------------------------------------------------------------------------
Edité par jejedu67

J'ai fais un petit script pour me rattraper  wink

#!/bin/sh

iptables -F

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT DROP

iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT

iptables -A INPUT -s 127.0.0.1 -j ACCEPT

iptables -A INPUT -i tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT

iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 

iptables -A OUTPUT -d 127.0.0.1 -j ACCEPT

iptables -A OUTPUT -o tun0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

#FIP BE1
iptables -A INPUT -s be1.freedom-ip.com -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -d be1.freedom-ip.com -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

Avec ce script tu peux communiquer sur internet uniquement via l'interface tun0, bien sûr ton interface wifi ou ethernet continue d'accéder au net mais uniquement sur les serveurs FIP, si le VPN se déconnecte tu ne peux normalement plus accéder à internet, si tu veux surfer avec ton IP publique tu devras désactiver iptables, le plus simple est de le placer dans /etc/init.d et de faire comme a expliqué ljere dans le premier message de ce thread, en ce qui concerne la reconnexion auto au vpn il me semble qu'il existe une appli sous ubuntu qui s'appel VPNAUTOCONNECT

Il faut aussi ajouter les localisations, je ne l'ai fait qu'avec le serveur Belge.

Désolé pour les 2 messages un derrière l'autre, j'ai encore oublier d'utiliser la fonction "Modifier", ça ne se reproduira plus cry

Finalement je confirme bien que les règles iptables du script de ljere ne sont pas fonctionnelles et n'offre aucun accès au net ni aux serveurs Freedom-IP.

Après l'avoir testé et modifié j'ai réussi à me connecter à rien puis aux serveurs FIP mais pas au net, au net et aux serveurs FIP mais avec mon IP publique visible en cas de déconnexion.

Dernière modification par chico (2014-11-29 15:44:42)


U Play...U Pay

Hors ligne

#17 2014-11-29 19:54:27

Sip
Membre
Inscription : 2014-11-16
Messages : 6

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

glasses

Bonjour Chico... Ca marche ! Bravo!
L'ouverture tcp et udp 53 est probablement la solution.
VPNAUTOCONNECT n'est pas fonctionnel chez moi alors que le demon-vpn de Ljere marche bien.
Par ailleurs, tes regles pourraient servir au script de Didier-T

Merci et encore merci. J'y ai passé quelques heures de tripatouillage sans me lancer réellement dans la machininerie d'iptable. Mais même si je l'avais fait j'aurais toujours bloqué sur le port 53. Bref plusieurs jours de galere.

Dernière modification par Sip (2014-11-29 20:17:42)

Hors ligne

#18 2014-11-29 20:36:43

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

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

#19 2014-11-29 21:31:37

Sip
Membre
Inscription : 2014-11-16
Messages : 6

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

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

#20 2014-11-29 21:32:04

chico
l'Axe du bien
Inscription : 2014-05-03
Messages : 695

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

Super les gars si ça peut servir à la communauté, pour VPNAUTOCONNECT j'peux rien te dire, je l'ai jamais utilisé.

Malheureusement pour le script de ljere ajouter les règles pour les DNS n'est pas suffisant.


U Play...U Pay

Hors ligne

#21 2014-11-29 23:03:13

metalux
Membre
Inscription : 2014-10-30
Messages : 72

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

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

#22 2014-11-29 23:39:09

chico
l'Axe du bien
Inscription : 2014-05-03
Messages : 695

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

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)


U Play...U Pay

Hors ligne

#23 2014-11-30 01:39:40

metalux
Membre
Inscription : 2014-10-30
Messages : 72

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

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

#24 2014-11-30 08:41:03

chico
l'Axe du bien
Inscription : 2014-05-03
Messages : 695

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

Bonjour,

metalux a écrit :

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.

Normal si le port 443 est autorisé.

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

Effectivement, plus propre et plus pratique avec les variables.

Par contre ça ne fonctionne qu'en bash, en sh ça renvoie une erreur.

Quel est ce message d'erreur?


U Play...U Pay

Hors ligne

#25 2014-11-30 10:14:21

metalux
Membre
Inscription : 2014-10-30
Messages : 72

Re : Solutions rapides pour sécuriser sa connexion (applis, etc.) [Linux]

Bonjour,
Pour les DNS, c'est en laissant le port 443 fermé, voilà pourquoi je trouve ça étrange. Je n'ai utilisé que la fonction ping du script de Didier-T pour tester.
Pour l'erreur: Syntax error: "(" unexpected (expecting "}")
En bash, la boucle fonctionne correctement.
Pour permettre l'accès à l'API de freedomip, j'ai ajouté ces règles:
iptables -A INPUT -s freedom-ip.com -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -d freedom-ip.com -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

Comme ça tout fonctionne, tout est bloqué y compris HTTPS sauf le site freedomip et tous les services associés ce qui permet au script de Didier-T de fonctionner même en sélectionnant "occupation" ou "bande passante".
Chico, je n'ai fais qu'un copier/coller de tes règles en modifiant les serveurs VPN par l'adresse freedom-ip.com, est-ce correct de procéder ainsi?

Dernière modification par metalux (2014-11-30 11:19:15)

Hors ligne

Pied de page des forums