IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Discussion :

Configuration iptables OpenVpn


Sujet :

Sécurité

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 20
    Points : 7
    Points
    7
    Par défaut Configuration iptables OpenVpn
    Bonjour à tous,

    J'ai chez moi un raspberry pi sur lequel j'ai configuré OpenVPN.
    j'ai voulu configuré iptables afin d'autoriser toutes les connexions depuis le réseau local, ainsi que les redirections nécessaires pour OpenVPN.
    J'ai fait le script suivant cependant il ne semble pas se comporter comme je le souhaiterai. Aucune connexion possible sur le port SSH depuis mon réseau local, et plus de connexion internet via OpenVPN...
    Je n'arrive pas à voir ce qui ne va pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    #!/bin/bash
     
    iptables -F
     
    #Allow all coms from private network
    iptables -A INPUT -s 192.168.0.0/255.255.255.0 -j ACCEPT
     
    #Allow coms for openVPN
    iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
    iptables -t nat -A POSTROUTING -s 10.8.0.0 -o eth0 -j MASQUERADE
    iptables -A INPUT -p udp --dport 1194 -j ACCEPT
     
    #Accept packets belonging to established and related connections
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
     
    #Accept coms for localhost
    iptables -A INPUT -i lo -j ACCEPT
     
    #Deny all other coms
    iptables -P FORWARD DROP
    iptables -P INPUT DROP
     
    #Accept all coms out
    iptables -P OUTPUT ACCEPT
    Si quelqu'un a une idée ...

    Je vous remercie pour votre aide!

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 38
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par frodomo Voir le message
    #Deny all other coms
    iptables -P FORWARD DROP
    iptables -P INPUT DROP

    #Accept all coms out
    iptables -P OUTPUT ACCEPT

    [/CODE]

    Si quelqu'un a une idée ...

    Je vous remercie pour votre aide!
    bonjour, attention à l'ordre des règles..

    par ailleurs il manque celle-ci: (FORWARD EST en DROP, ne pas oublier ses connections dites déjà établies)

    iptables -A FORWARD -i eth0 -o tun0 -m state --state ESTABLISHED,RELATED -j ACCEPT


    (désolé pour la présentation du code, java-script est désactivé sur mon navigateur)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    Salut,

    merci pour ta réponse.

    Justement je n'arrive pas à voir où l'ordre pourrait pêcher ...
    L'autorisation des connexions venant du réseau local sont autorisées dès le début.
    Ainsi que le forward.

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 38
    Points : 50
    Points
    50
    Par défaut
    les autorisations doivent être après les DROP par défaut

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    J'ai modifié le script comme ceci sur tes conseils :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    #!/bin/bash
     
    iptables -F
     
    #Deny all other coms
    iptables -P FORWARD DROP
    iptables -P INPUT DROP
     
    #Accept all coms out
    iptables -P OUTPUT ACCEPT
     
    #Allow all coms from private network
    iptables -A INPUT -s 192.168.0.0/255.255.255.0 -j ACCEPT
     
    #Allow coms for openVPN
    iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
    iptables -t nat -A POSTROUTING -s 10.8.0.0 -o eth0 -j MASQUERADE
    iptables -A INPUT -p udp --dport 1194 -j ACCEPT
     
    #Accept packets belonging to established and related connections
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -i eth0 -o tun0 -m state --state ESTABLISHED,RELATED -j ACCEPT
     
    #Accept coms for localhost
    iptables -A INPUT -i lo -j ACCEPT
    mais sans aucun succès. Je n'arrive pas à me connecter en SSH

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 38
    Points : 50
    Points
    50
    Par défaut
    le serveur ssh est sur le pi ou la machine client du vpn ?

    donner les retours de :

    # lsof -i | grep ssh
    # iptables-save

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    Mon raspberry, sur lequel est installé openvpn, est sur mon réseau local. Je me connecte en SSH au raspberry depuis mon PC qui est aussi sur le réseau local.
    Tout marche bien mais dès que j'applique les configs pour iptables, sauvegarde et redémarre, plus moyen de me connecter. De même pour OpenVPN qui ne me redirige plus vers internet
    Le PC avec lequel je me connecte au raspberry n'est pas configuré comme client de OpenVPN, mais vu que je suis sur le réseau ça devrait être bon.

    Voici le résultat des commandes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    lsof -i | grep ssh
     
    sshd      566   root    3u  IPv4   8618      0t0  TCP *:ssh (LISTEN)
    sshd      566   root    4u  IPv6   8620      0t0  TCP *:ssh (LISTEN)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    iptables-save
     
    # Generated by iptables-save v1.4.21 on Wed Oct  5 17:22:05 2016
    *filter
    :INPUT DROP [11:696]
    :FORWARD DROP [0:0]
    :OUTPUT ACCEPT [188:11218]
    -A INPUT -s 192.168.0.0/24 -j ACCEPT
    -A INPUT -p udp -m udp --dport 1194 -j ACCEPT
    -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A FORWARD -s 10.8.0.0/24 -j ACCEPT
    -A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
    COMMIT
    # Completed on Wed Oct  5 17:22:05 2016
    # Generated by iptables-save v1.4.21 on Wed Oct  5 17:22:05 2016
    *nat
    :PREROUTING ACCEPT [11:696]
    :INPUT ACCEPT [0:0]
    :OUTPUT ACCEPT [7:510]
    :POSTROUTING ACCEPT [7:510]
    -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
    -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
    -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
    -A POSTROUTING -s 10.8.0.0/32 -o eth0 -j MASQUERADE
    -A POSTROUTING -s 10.8.0.0/32 -o eth0 -j MASQUERADE
    -A POSTROUTING -s 10.8.0.0/32 -o eth0 -j MASQUERADE
    -A POSTROUTING -s 10.8.0.0/32 -o eth0 -j MASQUERADE
    -A POSTROUTING -s 10.8.0.0/32 -o eth0 -j MASQUERADE
    -A POSTROUTING -s 10.8.0.0/32 -o eth0 -j MASQUERADE
    -A POSTROUTING -s 10.8.0.0/32 -o eth0 -j MASQUERADE
    -A POSTROUTING -s 10.8.0.0/32 -o eth0 -j MASQUERADE
    -A POSTROUTING -s 10.8.0.0/32 -o eth0 -j MASQUERADE
    -A POSTROUTING -s 10.8.0.0/32 -o eth0 -j MASQUERADE
    -A POSTROUTING -s 10.8.0.0/32 -o eth0 -j MASQUERADE
    -A POSTROUTING -s 10.8.0.0/32 -o eth0 -j MASQUERADE
    -A POSTROUTING -s 10.8.0.0/32 -o eth0 -j MASQUERADE
    -A POSTROUTING -s 10.8.0.0/32 -o eth0 -j MASQUERADE
    -A POSTROUTING -s 10.8.0.0/32 -o eth0 -j MASQUERADE
    -A POSTROUTING -s 10.8.0.0/32 -o eth0 -j MASQUERADE
    -A POSTROUTING -s 10.8.0.0/32 -o eth0 -j MASQUERADE
    -A POSTROUTING -s 10.8.0.0/32 -o eth0 -j MASQUERADE
    COMMIT
    # Completed on Wed Oct  5 17:22:05 2016
    Merci pour ton aide.

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 38
    Points : 50
    Points
    50
    Par défaut
    il faudrait aussi vider la chaine nat avant de relancer iptables, (redondance), mais sinon les règles me semblent corrects.

    les machines clients sont elles dans le même réseaux 192.168.0.0 ?

    est ce que le lancement d'Openvpn sur le pi ne change pas la route par défaut du serveur ??

    sur le raspberry pi (et aussi la machine client) :

    # route -n

    et si tu rajoutes cette règle sur le pi, est ce que tu retrouves ta connexion ssh ?
    iptables -t filter -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    oui elles sont bien sur le même sous réseau et tout fonctionne avant la mise en place des règles.

    En rajoutant la règle que tu m'as donné ça fonctionne. Par contre plus d'accès au web.

    voici le résultat de route -n :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         192.168.1.254   0.0.0.0         UG    202    0        0 eth0
    10.8.0.0        10.8.0.2        255.255.255.0   UG    0      0        0 tun0
    10.8.0.2        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
    192.168.1.0     0.0.0.0         255.255.255.0   U     202    0        0 eth0

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 38
    Points : 50
    Points
    50
    Par défaut
    le routage est ok sur le serveur.

    rajoutes ces 2 règles:
    iptables -t filter -A INPUT -i tun0 -j ACCEPT
    iptables -t filter -A OUTPUT -o tun0 -j ACCEPT

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    L'ajout de ces règles n'a aucun impact

  12. #12
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 38
    Points : 50
    Points
    50
    Par défaut
    SI, j'ai vu une erreur:

    remplacer
    iptables -t nat -A POSTROUTING -s 10.8.0.0 -o eth0 -j MASQUERADE


    par

    iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE


    mais avant, vider la chaine nat, iptables --table nat --flush

    pas besoin de répéter 20 fois cette règle.

    sinon les instructions des règles précédentes restent valables.

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    Super merci ! ça résous bien le problème du web!

    Par contre du coup il n'est pas possible de configurer l'accès au port 22 que depuis le réseau local?

  14. #14
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 38
    Points : 50
    Points
    50
    Par défaut
    idem pour le réseau local, il faut indiquer le masque..

    edit:

    -A INPUT -s 192.168.0.0/24 -j ACCEPT

    heu si, le masque de sous réseau est ok, en l'état actuel en me basant sur ton iptables-save, une machine du réseau 192.168.0.0/24 devrait pouvoir se connecter en ssh, alors je ne vois pas le blem. (j'ai testé avec les même règles iptables dans le même ordre et je peux me connecter en ssh depuis le réseau local, ce qui est normal)

    es tu certain que le problème n'est pas ailleurs, peut être le routage modifié sur la machine client ? (à cause du client openvpn)

    que répond un ping vers le pi ?

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    je l'ai déjà indiqué

  16. #16
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    Salut frodomo,

    Pour faire simple, tu dois autoriser le sens VPN -> internet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    iptables -I FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -m conntrack --ctstate NEW -j ACCEPT

    et le sens retour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED  -j ACCEPT

  17. #17
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 38
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par frodomo Voir le message
    je l'ai déjà indiqué
    ou ça ?

    tu peux aussi être pragmatique tout en respectant la sécurité:

    tu laisse cette règle qui fonctionne
    iptables -t filter -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT


    et dans la configuration ssh (etc/ssh/sshd_config)
    tu définis l'adresse IP (ou la plage IP) autorisé à se connecter.

  18. #18
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    à la ligne suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iptables -A INPUT -s 192.168.0.0/255.255.255.0 -j ACCEPT
    ok limite je ferai comme ça, merci !

  19. #19
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 38
    Points : 50
    Points
    50
    Par défaut
    de toute façon mon explication est la suivante:

    iptables -t filter -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
    ssh fonctionne



    iptables -A INPUT -s 192.168.0.0/255.255.255.0 -j ACCEPT
    ssh ne fonctionne pas

    ---> la machine client n'est pas dans le réseau 192.168.0.0/24
    un ifconfig le démontrerait.
    changer le masque de sous-réseau:
    iptables -A INPUT -s 192.168.0.0/255.255.0.0 -j ACCEPT et ça devrait rouler.

  20. #20
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    elles sont toute les 2 dans le même réseau.
    via ipconfig
    IP du raspberry : 192.168.1.99
    ip de la machine cliente: 192.168.1.92

Discussions similaires

  1. Configuration d'OpenVPN sur ubuntu
    Par Issamoo dans le forum Sécurité
    Réponses: 4
    Dernier message: 12/02/2011, 20h32
  2. Configuration iptables ubuntu
    Par neuneu1 dans le forum Ubuntu
    Réponses: 4
    Dernier message: 19/08/2009, 20h32
  3. configuration iptables debutant
    Par ppfromero dans le forum Debian
    Réponses: 12
    Dernier message: 24/03/2008, 14h17
  4. permettre à un simple user de configurer Iptables
    Par A7med dans le forum Sécurité
    Réponses: 0
    Dernier message: 29/11/2007, 22h32
  5. Questions à se poser avant de configurer Iptables
    Par Olivier Regnier dans le forum Sécurité
    Réponses: 1
    Dernier message: 21/08/2006, 16h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo