Vpn iptables

bonssir a tous, ca va?
j'ai un gros souci, je m'explique:
voici mon reseaux qui est un serveur squid proxy transparent avec iptables dessus
problematique? comment faire passer mon vpn a travers mon interface b et a, vice versa..

|
| A 192.168.1.1

| |
88.8.8.8 B | proxysquid/iptables
| C 192.168.10.3
sdsl | | adsl
| |
| |
Moden Modem

je veut faire passer mon vpn pptp gre atravers ma ligne sdsl puis passant par l'interface a et b et vice versa
j'ai configurer ceci dans iptables pour transiter les paquets de mon interface b à a et j'aimerai savoir si c'est correct et comment transiter a travers a puis b

### Redirection du port 1723/tcp vers serveur PPTP
$IPT -A FORWARD -i eth2 -o eth0 -d $IP_PPTP -p tcp --sport 1024:65535 \
--dport 1723 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -i eth0 -o eth2 -s $IP_PPTP -p tcp --sport 1723 \
--dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT

### Redirection du protocole GRE vers serveur PPTP
$IPT -A FORWARD -i eth2 -o eth0 -d $IP_PPTP -p gre \
-m state --state NEW,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -i eth0 -o eth2 -s $IP_PPTP -p gre \
-m state --state ESTABLISHED -j ACCEP

su quelqu'un peut m'aider? voire meme sur msn, merci..

15 réponses

  1. Contributeur
    Si elle est dans le réseau alors cela est inutile :
    "et ensuite faire le contraire paquets issue du reseaux local

    $IPT -A FORWARD -i eth0 -o eth2 -d $IP_PPTP -p pptp --dport 1723 -m state --state NEW,ESTABLISHED -j ACCEPT
    $IPT -A FORWARD -i eth0-o eth2 -d $IP_PPTP -p gre -m state --state NEW,ESTABLISHED -j ACCEPT

    et les retours de tous les allers sont autorisés par la seule et unique ligne qu'est :
    $IPT -A FORWARD -i eth2 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT"

    Sinon, pourquoi tu spécifies une interface de sortie (-o ethx) si tu ne la connais pas ?
    1. Contributeur
      Salut !

      $IP_PPTP se trouve dans quel réseau ? Par quelle interface ?
      1. $ip_pptp c une machine dnas le réseaux..je sais pas par quel interface elle sort mais sont adrese ip est $ip_pptp
    2. salut ca va?
      si je fait dans iptables :

      autoriser chemin nde eh0 a eth 1
      autoriser chemin de eth0 a eth2
      refuser chemin ETH2 a ETH1

      ET ENSUITE accepter les paquets isue de internet par

      $IPT -A FORWARD -i eth2 -o eth0 -d $IP_PPTP -p pptp --dport 1723 -m state --state NEW,ESTABLISHED -j ACCEPT
      $IPT -A FORWARD -i eth2 -o eth0 -d $IP_PPTP -p gre -m state --state NEW,ESTABLISHED -j ACCEPT

      et les retours de tous les allers sont autorisés par la seule et unique ligne qu'est :
      $IPT -A FORWARD -i eth0 -o eth2 -m state --state RELATED,ESTABLISHED -j ACCEPT

      et ensuite faire le contraire paquets issue du reseaux local

      $IPT -A FORWARD -i eth0 -o eth2 -d $IP_PPTP -p pptp --dport 1723 -m state --state NEW,ESTABLISHED -j ACCEPT
      $IPT -A FORWARD -i eth0-o eth2 -d $IP_PPTP -p gre -m state --state NEW,ESTABLISHED -j ACCEPT

      et les retours de tous les allers sont autorisés par la seule et unique ligne qu'est :
      $IPT -A FORWARD -i eth2 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
      1. lol ok merci je vias bosser dessus , et si tu veut bien j'enverra le final pour que tu jette un coup d'oeil, ok?
        1. Contributeur
          ok
      2. Contributeur
        Pour être plus précis, ESTABLISHED sert quand tu fais un reload du firewall après modification des règles.
        Au lieu de couper toutes les connexions en cours, il les garde (c'est genre, utile) ... :)
        1. Contributeur
          Oui ça sert et c'est même primordial !!

          NEW : nouvelle connexion
          RELATED : connexion en relation avec une autre (autorisée)
          ESTABLISHED : connexion établie

          Exemple (je suis un serveur FTP) :

          # J'autorise les connexions FTP sur le port 21
          $IPT -A INPUT -i eth0 -p tcp -m tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT

          # J'autorise les connexion FTP DATA (télécharger un fichier) sur le port 22 a
          # CONDITION d'avoir une connexion sur le port 21 ETABLIE !
          $IPT -A INPUT -i eth0 -p tcp -m tcp --dport 22 -m state --state RELATED,ESTABLISHED -j ACCEPT
          1. d(accord cat je n'avait pas comprit ta question du debut

            Tu n'utilises pas le state RELATED (plus important que ESTABLISHED) ?

            ca sert a ca alors, j'aie tout bon la??
            1. Contributeur
              Le sport (ou source port) n'est pas primordial le but étant de rediriger les ports pptp et gre donc des dports (destination port). Mais bon, c'est facultatif (chacun ses gouts).

              Sinon pour ma ligne, tu es d'accord qu'une connexion se fait via un aller et un retour ?
              Donc les lignes autorisant un aller sont :
              $IPT -A FORWARD -i eth2 -o eth0 -d $IP_PPTP -p pptp --dport 1723 -m state --state NEW,ESTABLISHED -j ACCEPT
              $IPT -A FORWARD -i eth2 -o eth0 -d $IP_PPTP -p gre -m state --state NEW,ESTABLISHED -j ACCEPT

              et les retours de tous les allers sont autorisés par la seule et unique ligne qu'est :
              $IPT -A FORWARD -i eth0 -o eth2 -m state --state RELATED,ESTABLISHED -j ACCEPT

              Du coup, tu concentres ton filtrage sur les allers et tu es sûre que le retour se fera bien (cela évite les oublis).
              1. je comprends pas pourquoi tu enléve ca :

                --sport 1024:65535 \

                et a quoi sert cette ligne?

                ### Toujours avoir le retour d'une connexion
                $IPT -A FORWARD -i eth0 -o eth2 -m state --state RELATED,ESTABLISHED -j ACCEPT
                1. Contributeur
                  Je partirai plus sur ce genre de chose (attention, il va peut être falloir que tu le modifies pour que cela corresponde avec ton réseau) :

                  ### Toujours avoir le retour d'une connexion
                  $IPT -A FORWARD -i eth0 -o eth2 -m state --state RELATED,ESTABLISHED -j ACCEPT

                  ### Redirection du port 1723/tcp vers serveur PPTP
                  $IPT -A FORWARD -i eth2 -o eth0 -d $IP_PPTP -p pptp --dport 1723 -m state --state NEW,ESTABLISHED -j ACCEPT

                  ### Redirection du protocole GRE vers serveur PPTP
                  $IPT -A FORWARD -i eth2 -o eth0 -d $IP_PPTP -p gre -m state --state NEW,ESTABLISHED -j ACCEPT
                  1. oie c claire! merci en tous cas, mais je que j'ai ecrit te parait crorrect deja?
                    Avvec ces regles , le vpn transitera a travers les deux interfaces que j'aie choisie?
                    1. Contributeur
                      En fait, les modules conntrack permettent à iptables de reconnaitre et suivre les protocoles. Les modules nat sont là pour aider à la translation d'adresse sur les protocoles un peu plus complexes.

                      Sinon, je touche pas mal iptables mais je dois dire que je suis pas encore un expert sur les tables mangle. Donc je me réserve pour ne pas dire de connerie.

                      J'espère que quelqu'un qui maitrise, pourra t'aider.
                      1. j'aie lue ca merci !!
                        j'ai active ip_forwarding
                        jen'ai pas activée conntrack_pptp et ip_nat_pptp conntrack_gre et ip_nat_gre
                        ou as tu vue qu'il fallait les activée?

                        et j'aimerais , si tuveut me montrer, comment les marquer ces deux protocoles avec mangle et mark

                        merci
                        1. Contributeur
                          Salut !

                          Mmm ...
                          Tu n'utilises pas le state RELATED (plus important que ESTABLISHED) ?
                          As-tu activé le module ip_forwarding ?
                          Idem pour conntrack_pptp ? ip_nat_pptp ?
                          Idem pour conntrack_gre ? ip_nat_gre ?

                          (A quelques erreurs de syntaxe près ...)

                          Ou alors : https://inetdoc.net/guides/iptables-tutorial/