Partage
  • Partager sur Facebook
  • Partager sur Twitter

iptables et VNC

Sujet résolu
    29 juillet 2015 à 19:26:21

    Bonjour a tous,

    Je suis en train de faire les iptables de mon Raspberry Pi et je n'arrive pas a me connecter en VNC malgré l'ouverture de mon port dans les iptables .... J'utilise tightvncserver et je choisis bien le port 5900, comme dans les iptables, quelqu'un a t'il une solution ?*

    Voici mes iptables:

    # Réinitialise les règles
    sudo iptables -t filter -F 
    sudo iptables -t filter -X 
     
    # Bloque tout le trafic
    sudo iptables -t filter -P INPUT DROP 
    sudo iptables -t filter -P FORWARD DROP 
    sudo iptables -t filter -P OUTPUT DROP 
     
    # Autorise les connexions déjà établies et localhost
    sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
    sudo iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
    sudo iptables -t filter -A INPUT -i lo -j ACCEPT 
    sudo iptables -t filter -A OUTPUT -o lo -j ACCEPT 
     
    # ICMP (Ping)
    sudo iptables -t filter -A INPUT -p icmp -j ACCEPT 
    sudo iptables -t filter -A OUTPUT -p icmp -j ACCEPT 
     
    # SSH
    sudo iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT 
    sudo iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT 
    
    # VNC 
    sudo iptables -t filter -A INPUT -p tcp --dport 5900 -j ACCEPT 
    sudo iptables -t filter -A OUTPUT -p tcp --dport 5900 -j ACCEPT
    
    # Git
    sudo iptables -A INPUT -p tcp --sport 9418 -m state --state ESTABLISHED -j ACCEPT
    sudo iptables -A OUTPUT -p tcp --dport 9418 -m state --state NEW,ESTABLISHED -j ACCEPT
    
    # DNS
    sudo iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT 
    sudo iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT 
    sudo iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT 
    sudo iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT 
     
    # HTTP
    sudo iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT 
    sudo iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT 
    
    sudo iptables -t filter -A OUTPUT -p tcp --dport 81 -j ACCEPT
    sudo iptables -t filter -A INPUT -p tcp --dport 81 -j ACCEPT
    
    # HTTPS
    sudo iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
    sudo iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT
    
    # MYSQL
    sudo iptables -t filter -A INPUT -p tcp --dport 3306 -j ACCEPT
    sudo iptables -t filter -A OUTPUT -p tcp --dport 3306 -j ACCEPT 
    
    # NTP (horloge du serveur) 
    sudo iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT
    
    # netbios-ssn (Samba)
    sudo iptables -t filter -A OUTPUT -p tcp --dport 139 -j ACCEPT
    sudo iptables -t filter -A INPUT -p tcp --dport 139 -j ACCEPT
    
    # microsoft-ds (Samba)
    sudo iptables -t filter -A OUTPUT -p tcp --dport 445 -j ACCEPT
    sudo iptables -t filter -A INPUT -p tcp --dport 445 -j ACCEPT
    
    # rcf 
    sudo iptables -t filter -A OUTPUT -p tcp --dport 5002 -j ACCEPT
    sudo iptables -t filter -A INPUT -p tcp --dport 5002 -j ACCEPT
    
    # Flood (Deni de service)
    sudo iptables -A FORWARD -p tcp --syn -m limit --limit 1/second -j ACCEPT
    sudo iptables -A FORWARD -p udp -m limit --limit 1/second -j ACCEPT
    sudo iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/second -j ACCEPT
    
    # Scan de ports 
    sudo iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
    

    Merci ;)

    -
    Edité par Balthaz 29 juillet 2015 à 19:30:30

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      30 juillet 2015 à 12:19:06

      Salut ;)

      Remplace ces règle :

      # VNC
      sudo iptables -t filter -A INPUT -p tcp --dport 5900 -j ACCEPT
      sudo iptables -t filter -A OUTPUT -p tcp --dport 5900 -j ACCEPT

      Par

      # VNC
      sudo iptables -t filter -A INPUT -p tcp --dport 5900 -j ACCEPT
      sudo iptables -t filter -A OUTPUT -p tcp --sport 5900 -j ACCEPT





      -
      Edité par Anonyme 30 juillet 2015 à 12:33:56

      • Partager sur Facebook
      • Partager sur Twitter
        4 août 2015 à 19:20:56

        Merci beaucoup architux, ca marche ! ;)

        J'ai remarqué que le VNC ne fonctionne qui si je le démarre sur le port 1, mais que ce dernier travaille avec le 5901.... j'ai donc ouvert le port 5901 et tout va bien !

        Et dernière chose, quelle est la différence entre --dport et --sport ?

        Merci ;)

        -
        Edité par Balthaz 4 août 2015 à 19:39:23

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          4 août 2015 à 21:09:24

          Je vais t'expliquer ça car c'est important à savoir.

          Sur internet, l'objectif c'est de faire communiquer des applications entre elles. L'adresse d'une application, c'est son port, de 1 à 65535. On distingue les applications serveurs et les applications clientes. Les applications serveurs se mettent en écoute derrière un port dans le but de fournir un service aux applications clientes qui viendront se connecter dessus. Un exemple d'application serveur : un serveur web (apache), et un exemple d'application cliente : un navigateur web (firefox).

          Je t'ai dit que le port était l'adresse d'une application. Les applications serveurs ont un port fixe, et elles restent en écoute derrière, par exemple, par convention, ton serveur web se voit fixé comme port le port 80. Les applications clientes elles n'ont pas de port fixe, le système d'exploitation en attribut un aléatoirement au dessus de 1024.

          Ton pare-feu, il est là pour contrôler le traffic sur ces différents ports.

          Tes règles ne fonctionneront pas, et je vais t'expliquer pourquoi,en traitant les deux cas => Les clients et les serveurs

          1) Tu veux pouvoir te connecter au web (on va traiter le http), donc autoriser ton navigateur web (le client) à communiquer avec un serveur web (le serveur). Ce que tu sais d'avance, c'est qu'un serveur web accessible en http tourne derrière le port 80. Donc dans un premier temps, tu vas écrire cette règle :

          iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT

          Donc en français :J'autorise tout le traffic sortant de ma machine qui est à destination du port 80 d'une autre machine distante.

          Maintenant, il va falloir permettre au serveur web de te répondre, sinon la communication ne va se faire que dans un sens. Toi tu as écris ça :

          iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT 

          Mais cela se traduit par : J'autorise tout le traffic entrant sur ma machine qui est à destination de mon port 80.

          Et voilà l'erreur, ton navigateur web, il ne tourne pas derrière le port 80, mais derrière un port aléatoire fixé par ton système d'exploitation. Alors comment on fait si on ne sait pas sur quel port le serveur web va nous répondre ?

          iptables -t filter -A INPUT -p tcp --sport 80 -j ACCEPT 

          Ce qui se traduit par : J'autorise tout le traffic entrant sur ma machine, qui provient du port 80 d'une machine distante.

          Et le problème est réglé.

          2) Tu veux que des clients, puisse se connecter sur le serveur web qui tourne sur ta machine. Et tu sais que ton serveur web tourne derrière le port 80.

          On commence par :

          iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT

          Qui veut dire : J'autorise tout le traffic entrant sur ma machine qui est à destination de mon port 80

          Super, on peut communiquer avec ton serveur, mais maintenant il faut qu'il puisse répondre. Mais sur quel port doit il répondre ? Eh bien effet inverse :

          iptables -t filter -A OUTPUT -p tcp --sport 80 -j ACCEPT

          Qu'on traduit par : J'autorise tout le traffic sortant de ma machine qui part de mon port 80

          Je te laisse bien lire tout ça et prendre le temps de refaire tes règles ;)





          -
          Edité par Anonyme 4 août 2015 à 21:12:19

          • Partager sur Facebook
          • Partager sur Twitter
            5 août 2015 à 16:21:15

            Merci, j'ai tout compris ;)

            Je ferme le sujet alors !

            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              5 août 2015 à 17:08:17

              Alors parfait ;)

              Bonne chance pour la suite

              • Partager sur Facebook
              • Partager sur Twitter
                9 août 2015 à 15:12:10

                Merci pour ces explications les gars. ;)
                • Partager sur Facebook
                • Partager sur Twitter
                Arterius

                iptables et VNC

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown