Partage
  • Partager sur Facebook
  • Partager sur Twitter

Autoriser le localhost avec Iptables

Sujet résolu
    20 juillet 2017 à 16:40:34

    Salut,

    J'ai un raspberry sur lequel apache et php sont installés. Sur le raspberry j'ai une page web que je souhaite afficher sur l'écran du raspberry. Pour cela j'utilise chromium et dans la barre d'adresse je rentre "localhost". La page s'affiche sans souci. Cependant, dès que je lance mon script pour mettre mes règles iptables la page refuse de s'afficher (le navigateur mouline sans rien afficher).

    Voici le script en question :

    #!/bin/sh
    
    ### BEGIN INIT INFO
    # Provides:          firewall
    # Required-Start:    $remote_fs $syslog
    # Required-Stop:     $remote_fs $syslog
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: Démarre les règles iptables
    # Description:       Charge la configuration du pare-feu iptables
    ### END INIT INFO
    
    
    FW_start() {
    echo "[Démarrage du pare-feu]"
    
    ### EFFACE TOUT LES PARAMETRES
    iptables -F
    iptables -t filter -F
    iptables -t nat -F
    iptables -t mangle -F
    echo "Vidages [OK]"
    
    ### REGLES DE FILTRAGE
    # Autoriser le Loopback
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT
    
    # Ne pas casser les connexions déjà établies
    iptables -t filter -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -t filter -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    
    # PING (ICMP)
    iptables -t filter -A INPUT -p icmp -j ACCEPT
    iptables -t filter -A OUTPUT -p icmp -j ACCEPT
    
    # SSH
    iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT
    
    # Serveur web (HTTP)
    iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
    
    # Serveur web (HTTPS)
    iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT
    
    # Serveur FTP 
    iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT
    iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp --dport 20:21 -j ACCEPT
    
    
    # Serveur MAIL SMTP:25
    iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT
    iptables -A OUTPUT -p tcp --dport 587 -j ACCEPT
    
    # Serveur MAIL POP3:110
    iptables -t filter -A INPUT -p tcp --dport 110 -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp --dport 110 -j ACCEPT
    
    # Serveur MAIL IMAP:143
    iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT
    
    # Serveur MAIL POP3S:995
    iptables -t filter -A INPUT -p tcp --dport 995 -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp --dport 995 -j ACCEPT
    
    
    # DNS In/Out
    iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
    iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
    iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
    
    # NTP
    iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT
    iptables -t filter -A INPUT -p udp --dport 123 -j ACCEPT
    
    #Samba
    iptables -A INPUT -p tcp --dport 135 -j ACCEPT
    iptables -A OUTPUT -p tcp --dport 135 -j ACCEPT
    iptables -A INPUT -p udp --dport 135 -j ACCEPT
    iptables -A OUTPUT -p udp --dport 135 -j ACCEPT
    iptables -A INPUT -p tcp --dport 137 -j ACCEPT
    iptables -A OUTPUT -p tcp --dport 137 -j ACCEPT
    iptables -A INPUT -p udp --dport 137 -j ACCEPT
    iptables -A OUTPUT -p udp --dport 137 -j ACCEPT
    iptables -A INPUT -p udp --dport 138 -j ACCEPT
    iptables -A OUTPUT -p udp --dport 138 -j ACCEPT
    iptables -A INPUT -p tcp --dport 139 -j ACCEPT
    iptables -A OUTPUT -p tcp --dport 139 -j ACCEPT
    iptables -A INPUT -p tcp --dport 445 -j ACCEPT
    iptables -A OUTPUT -p tcp --dport 445 -j ACCEPT
    iptables -A INPUT -p udp --dport 445 -j ACCEPT
    iptables -A OUTPUT -p udp --dport 445 -j ACCEPT
    
    #Whois
    iptables -A INPUT -p tcp --dport 43 -j ACCEPT
    iptables -A OUTPUT -p tcp --dport 43 -j ACCEPT
    
    #DDOS interdit
    iptables -A FORWARD -p tcp --syn -m limit --limit 1/second -j ACCEPT
    
    #NoIp
    iptables -A INPUT -p tcp --dport 8245 -j ACCEPT
    iptables -A INPUT -p udp --dport 8245 -j ACCEPT
    iptables -A OUTPUT -p tcp --dport 8245 -j ACCEPT
    iptables -A OUTPUT -p udp --dport 8245 -j ACCEPT
    
    #Transmission
    iptables -A OUTPUT -p tcp --dport 9091 -j ACCEPT
    iptables -A INPUT -p tcp --dport 9091 -j ACCEPT
    iptables -A INPUT -p tcp --dport 51413 -j ACCEPT
    iptables -A OUTPUT -p tcp --dport 51413 -j ACCEPT
    
    #Monit
    iptables -A INPUT -p tcp --dport 2812 -j ACCEPT
    iptables -A INPUT -p udp --dport 2812 -j ACCEPT
    iptables -A OUTPUT -p tcp --dport 2812 -j ACCEPT
    iptables -A OUTPUT -p udp --dport 2812 -j ACCEPT
    
    #Squid
    iptables -A INPUT -p tcp --dport 3128 -j ACCEPT
    iptables -A INPUT -p udp --dport 3128 -j ACCEPT
    iptables -A OUTPUT -p tcp --dport 3128 -j ACCEPT
    iptables -A OUTPUT -p udp --dport 3128 -j ACCEPT
    
    #DHCP
    iptables -A INPUT -p tcp --dport 10000 -j ACCEPT
    iptables -A OUTPUT -p tcp --dport 10000 -j ACCEPT
    
    #OpenVPN
    iptables -A INPUT -p tcp --dport 1194 -j ACCEPT	
    iptables -A INPUT -p udp --dport 1194 -j ACCEPT	
    iptables -A OUTPUT -p tcp --dport 1194 -j ACCEPT	
    iptables -A OUTPUT -p udp --dport 1194 -j ACCEPT	
    
    # Rejeter tout le reste
    iptables -A INPUT -j DROP
    echo "Filtrages [OK]"
    
    
    ### POLITIQUES
    # Trafic entrants bloqués
    iptables -P INPUT DROP
    
    # Trafic forwardés bloqués
    iptables -P FORWARD DROP
    
    # Trafic sortants bloqués
    iptables -P OUTPUT DROP
    
    echo "Politiques [OK]"
    r
    }
    
    
    FW_stop() {
    echo "[Arret du pare-feu]"
    
    # Supprime tous les filtres
    iptables -F
    iptables -t filter -F
    iptables -t nat -F
    iptables -t mangle -F
    
    # Attribut une politiques "ACCEPT" aux tables
    iptables -P INPUT ACCEPT
    iptables -P FORWARD ACCEPT
    iptables -P OUTPUT ACCEPT
    
    iptables -t filter -P INPUT ACCEPT
    iptables -t filter -P FORWARD ACCEPT
    iptables -t filter -P OUTPUT ACCEPT
    
    iptables -t nat -P PREROUTING ACCEPT
    iptables -t nat -P POSTROUTING ACCEPT
    iptables -t nat -P OUTPUT ACCEPT
    
    iptables -t mangle -P PREROUTING ACCEPT
    iptables -t mangle -P INPUT ACCEPT
    iptables -t mangle -P FORWARD ACCEPT
    iptables -t mangle -P OUTPUT ACCEPT
    iptables -t mangle -P POSTROUTING ACCEPT
    
    
    }
    
    
    FW_restart() {
    FW_stop;
    sleep 2;
    FW_start;
    }
    
    
    case "$1" in
    'start')
    FW_start
    ;;
    
    'stop')
    FW_stop
    ;;
    
    'restart')
    FW_restart
    ;;
    
    'status')
    iptables -L
    iptables -t nat -L
    iptables -t mangle -L
    ;;
    
    *)
    echo "Usage: firewall {start|stop|restart|status}"
    ;;
    esac

    Auriez-vous une idée svp ? :)

    • Partager sur Facebook
    • Partager sur Twitter
      20 juillet 2017 à 16:54:03

      Bonjour,

      Deux questions :

      Tout les autres règles fonctionnent, ou tu test seulement le web ?

      Le "r" ligne 158 est utiles ..?

      Cordialement.

      • Partager sur Facebook
      • Partager sur Twitter
      La pomme, le drapeau et le manchot ...
        21 juillet 2017 à 16:48:12

        Bonjour,

        Autant pour moi, entre-temps je me suis aperçu que ce n'est pas le localhost qui est bloqué mais un autre port utilisé par ma page web. Problème résolu !

        • Partager sur Facebook
        • Partager sur Twitter
          21 juillet 2017 à 16:50:05

          Et le "r" ligne 158 ? je suis curieux ;)
          • Partager sur Facebook
          • Partager sur Twitter
          La pomme, le drapeau et le manchot ...
            22 juillet 2017 à 14:30:35

            Dans mon script j'ai une commande qui m'envoie un mail pour savoir lorsque le firewall est démarré/stoppé, j'avais supprimé cette ligne pour enlever mon adresse mail mais à priori j'ai laissé une lettre :p
            • Partager sur Facebook
            • Partager sur Twitter

            Autoriser le localhost avec Iptables

            × 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