Annonce

Réduire
Aucune annonce.

[Partage] Iptables-web-ui

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • [Partage] Iptables-web-ui

    Bonjour,

    Pour mon premier partage, je vais vous faire découvrir un petit code que j'ai fait. Iptables-web-ui est une interface graphique sur web pour le parefeu du noyau Linux : iptables.

    Il vous permettra de faire une multitude de choses comme :
    • Bloquer une adresse IP
    • Autoriser une adresse IP
    • Autoriser le ping
    • Bloquer le ping
    • Bloquer un port
    • Autoriser un port
    • Autoriser l'UDP
    • Bloquer l'UDP
    • Vider les règles
    • Bloquer le trafic exterieur


    Je vous préviens, le code n'est pas très propre je l'ait développé il y a un petit bout de temps.

    Sans plus attendre, le lien du code :

    https://github.com/Holox76/iptables-web-ui


    /!\ Le code présente une faille CSRF, qui peut se règler avec une classe PHP, j'ai pas trop le temps en ce moment de m'en occuper mais j'updaterais le repo bientôt.
    Pour plus de sécurité, je vous recommande vivement de mettre le panel sur un serveur web avec un port différent de 80. /!\

    En espèrant que cela vous plaise,

    Au revoir.
    If you substitute marijuana for tobacco and alcohol, you'll add eight to 24 years to your life.

    Jack Herer

  • #2
    Très bon boulot !

    J'aimerai juste savoir où tu trouve tes icones (gratuits)
    Mess with the best, Die like the rest

    Commentaire


    • #3
      Quelle bonne initiative

      Je n'ai pas regarder comment fonctionnait ton code encore, mais s'il y a une interface sympa pour voir toutes les règles et pourvoir les filtrer, c'est sympa.

      Si j'ai le temps, peut-être que je reprendrais (si tu le veux bien) ton code pour implémenter des fonctionnalités d'iptables que tu n'as pas décrit, comme la journalisation des paquets ou leur routage.
      Dernière modification par xertux, 25 janvier 2014, 17h54.
      “ Deux choses sont infinies. L'univers et la stupidité humaine ... et je ne suis pas sûr pour l'univers.”
      -Albert Einstein

      Commentaire


      • #4
        Merci beaucoup pour le partage.

        Ca fait plaisir de voir des développeurs qui publient le travail. Par contre, il me semble que tu n'as pas inclus de fichier de license (GPL). Méfite toi ! Qu'on ne pompe pas ton travail a des fins proprio.


        Juste une petite remarque, j'ai juste fait un tour satellitaire du code source mais j'ai vu plusieurs fois des lignes de ce style:

        Code:
                ssh2_exec($connection, 'iptables -A INPUT -s '.$_POST['ip'].' -j ACCEPT');
        A priori, si tu injectes du code dans la variable POST[ip], tu peux faire exécuter n'importe quoi au serveur.

        Peut-être que quelques vérifications simples des entrées utilisateurs seraient les bienvenues dans un futur correctif ?

        Tortue 974.
        OxyGen Software
        Sécurité, développement, formations, informatique biomédicale
        [email protected]

        Commentaire


        • #5
          Merci pour vos encoragements, il est vrai que je vais inclure une licence GPL ça me soulerait que des gens se fassent de l'argent sur un code libre !

          Oui je sais, c'est pas très bien coder, dès que j'aurais un peu de temps je le simplifierais, il y a pleins de trucs a améliorer !

          @xertus : Bien sûr ! Justement c'est en apportant des modifs que le code sera plus performant !
          If you substitute marijuana for tobacco and alcohol, you'll add eight to 24 years to your life.

          Jack Herer

          Commentaire


          • #6
            J'ai regardé de plus près ton code et j'ai quelques remarques si tu veux le faire évoluer, outre les éventuelles failles de sécurité :
            • Au moins un bouton pour retourner à l'index x)
            • Pouvoir voir les règles paramétrées. Je mets un code source en dessous pour les voir.
            • Dans les exec, parfois tu places la commande sudo, mais si l'option n'est pas paramétrée, ça ne marchera pas.
            • Dans le même style que le deuxième point, récupérer les éventuels code d'erreur retournés par les commandes pour savoir si elles se sont bien déroulées.
            • Pour simplifier l'évolution, je pense que coder en POO serait une bonne idée et permettrait de mieux gérer les données envoyées aux commandes.
            • Un des problèmes d'iptables, c'est que les règles ne sont pas persistantes, elles s'effacent après un redémarrage de l'OS. La bonne pratique est de créer un script qui est exécuté au démarrage. Ton application web, n'aura qu'à modifier ce script et non plus exécuter la commande iptables (problèmes d'autorisation)
            • Pour terminer, l'utilisation de la commande ssh2_exec au lieu d'exec n'est pas une mauvaise idée, car elle permettrait de faire une gestion multi-serveurs.


            Dans tous les cas, je pourrais t'aider si t'as besoin d'aide dans le développement

            Voici le code pour l'affichage des règles :
            Code:
            <?php
            require('config.php');
            
            session_start();
            
            if(!isset($_SESSION['connected'])) {
                    header('Location: login.php');
                    exit();
            }
            
            ?>
            <!DOCTYPE html>
            <html lang="fr">
            <head>
            <link rel="stylesheet" type="text/css" href="css/bootstrap.css" />
            <title>Iptables Web UI | Accueil</title>
            </head>
            <body style="margin-top: 100px; margin-left: 270px; margin-right: 270px;">
                    <div class="well" align="center">
                    <h4>Voir les règles</h4>
                    <br>
                    <div>
                    <?php
                            $stream = ssh2_exec($connection, 'iptables -L');
                            stream_set_blocking($stream, true);
                            $content = stream_get_contents($stream);
                            echo str_replace("\n", "<br />\n", $content);
                    ?>
                    </div>
            <?php include('includes/footer.php'); ?>
            Dernière modification par xertux, 26 janvier 2014, 15h07.
            “ Deux choses sont infinies. L'univers et la stupidité humaine ... et je ne suis pas sûr pour l'univers.”
            -Albert Einstein

            Commentaire


            • #7
              Salut,

              Merci beaucoup de la remarque je pense bosser dessus cet après midi ou ce soir, je vais déjà intégrer ton code, faire pour le démarrage automatique des règles et dans la semaine intégrer la POO, règler les failles CSRF
              J'vais améliorer tout ça !

              Il est vrai que j'aurais surement besoin d'un peu d'aide pour le développement du panel, envois moi en MP ton Skype, qu'on en parle tranquillement

              @FRKorisS : Elles viennent de Bootstrap
              Dernière modification par Holox, 26 janvier 2014, 17h56.
              If you substitute marijuana for tobacco and alcohol, you'll add eight to 24 years to your life.

              Jack Herer

              Commentaire


              • #8
                Voilà du bon boulot

                Par contre il faudrait peut-être un ou deux expert en PHP pour sécuriser ce code car sinon cela n'a pas vraiment d'intérêt pour iptable...
                Il faut toujours viser la lune car même en cas d'échec on atterit toujours au milieu des étoiles...

                Commentaire


                • #9
                  Salut tout le monde,

                  J'ai pas trop eu le temps de développer, mais je vous promet que la prochaine version sera bien plus élaborée que la version actuelle qui est, il faut se l'admettre ; bien moisie !


                  Je bosse sur un nouveau design, une nouvelle mise en page pour une navigation plus ergonomique, de nouvelles fonctions et un projet en rapport avec ce code qui devrait faire plaisir a beaucoup !
                  Je ne vous en dit pas plus, je vous le dévoilerais au moment voulu
                  If you substitute marijuana for tobacco and alcohol, you'll add eight to 24 years to your life.

                  Jack Herer

                  Commentaire


                  • #10
                    J'attends cela avec impatience
                    “ Deux choses sont infinies. L'univers et la stupidité humaine ... et je ne suis pas sûr pour l'univers.”
                    -Albert Einstein

                    Commentaire

                    Chargement...
                    X