Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Sauvegarde des logs

    Scheduled Pinned Locked Moved Français
    11 Posts 5 Posters 4.0k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • I
      Info85620
      last edited by

      Bonjour à tous,

      J'utilise un pFsense depuis peu (machine virtuel VmWare)  :D
      J'ai configuré le dual Wan en load balancing, mes Vlans , mes règles etc..
      Le pFsense fait aussi office de routeur car pas de switch niv 3 dans cette infra (je sais , c'est pas forcément le top ^^ mais ça tourne plutôt pas mal depuis plusieurs mois)

      J'ai installé squid et squidgard, je fonctionne en proxy transparent.
      D'après ce que j'ai compris tous mes logs sont sauvegardés dans /var/squid/log/acces.log ?
      Le paquet LightSquid me permet "d'analyser" ces logs. Je peux donc voir qu'elle adresse IP a accéder à quel site et quand. ( Ce qui d'après ce que j'ai compris est suffisant d'un point de vue légal même si retrouver quelle personne était derrière quelle adresse ip me semble compliqué…)

      Comment sauvegarder ces logs pendant  1 an sans saturer mon pFsense ?
      J'ai activé la rotation à 365 jours dans "services -> SquidProxy Server" mais je risque d'arriver à saturation assez vite.

      Peut être copier ce fichier acces.log tous les mois sur un nas par exemple ? et le réinitialiser dans le pFsense ?

      PS : je précise bien que je veux stocker les logs du proxy (qui à été où et quand) pas les logs "système" du pFsense

      Merci pour vos retours
      Yoan

      365.png
      365.png_thumb

      1 Reply Last reply Reply Quote 0
      • C
        chris4916
        last edited by

        Tu peux tout à fait utiliser rsyslog en disant à Squid d'envoyer le log dans syslog
        http://www.squid-cache.org/Doc/config/access_log/

        pas pour le cache log cependant mais ça ne présente pas d'intérêt.

        Comme tu l'as bien compris, la solution que tu as mis en place (transparent proxy) ne te permet pas de savoir qui consulte quel site. C'est complètement impossible car il n'y a pas d'authentification.
        Mais est-ce vraiment obligatoire de fournir cette information nominative ?

        Proxy transparent = pas de filtrage / log pour HTTPS  ;)

        Jah Olela Wembo: Les mots se muent en maux quand ils indisposent, agressent ou blessent.

        1 Reply Last reply Reply Quote 0
        • J
          jdh
          last edited by

          1er point : syslog :

          pfSense utilise (forcément) syslog pour stocker les logs (démarrage, ouverture, arrêt, …) applicatifs ou logs de firewall.
          Par voie de conséquence, il est prévu de rediriger ces logs vers un serveur syslog.

          Cependant, il faut comprendre l'utilisation de syslog : c'est basé sur udp/514 et non sur tcp : c'est un protocole léger, destiné à des petits messages, de fréquence faible.

          Squid sait rediriger access.log vers syslog mais ce n'est pas du tout subtil : les lignes dans access.log, pour une entreprise, deviennent énauormes et cela très vite !

          Le bon conseil n'est donc pas syslog mais de réfléchir à la rotation des logs (squid -k) : au moment de la rotation des logs on peut transférer un fichier, dans sa totalité !

          2ième point : Squid sur proxy :

          Abondamment écrit sur le site : ce n'est vraiment pas à conseiller dès que le volume l'exige !
          La transparence est incompatible avec l'authentification (en mode web, pas dans le log, contrairement à ce qui est écrit !)
          De plus, la transparence ne fonctionne pas avec https (sauf à mettre en oeuvre un procédé déloyal).

          Puisque vous utilisez la virtualisation, pourquoi ne pas créer votre propre proxy, avec l'espace nécessaire au logs, à la rotation, ... !
          N'hésitez pas à récupérer la config du Squid installé ...
          En sus, avec ce proxy explicite, vous pouvez filtrez, en toute loyauté, tant http qu'https.
          (Il vous faudra mettre en place WPAD pour automatiser la découverte du proxy).
          Bref une bonne solution ...

          Bref 2 mauvais conseils (ou plutôt très incomplets) ne vous informant pas exactement de la réalité ...

          Albert EINSTEIN : Si vous ne pouvez pas l'exprimer simplement, c'est que vous ne le comprenez pas assez bien. (If you can’t explain it simply, you don’t understand it well enough.)

          1 Reply Last reply Reply Quote 0
          • I
            Info85620
            last edited by

            Bonjour,

            Tout d'abord merci pour vos réponses.

            En effet j'ai bien conscience qu'il serait préférable de séparer les fonctions proxy/firewall/filtrage. Je l'ai également lu à maintes reprises sur ce forum ;)
            N'étant présent qu'a 1/3 temps dans cet établissement j'essaie de faire de façon simple, efficace et bien sur à moindre coût :)
            J'aimerais bientôt passé en proxy déclaré pour bien filtré le https etc.. mais bon je manque un peu de temps pour le moment !!

            Donc je note deux idées :

            1- Utiliser syslog pour envoyer les logs reçu dans access.log
            2-Effectuer une rotation par exemple 180jours puis  transférer le fichier au moment de la rotation sur un NAS par exemple

            La deuxième solution me semble intéressante , simplement comment effectuer ce transfert de fichier automatiquement au moment de la rotation ?

            Merci
            Yoan

            1 Reply Last reply Reply Quote 0
            • J
              jdh
              last edited by

              Tout sera bien plus facile à faire sur un proxy dédié !

              Passer par syslog est une erreur pratique, compte tenu du nombre important de lignes générées.
              De plus, comment un outil de visu, tel LightSquid, pourrait-il retrouver les lignes dans syslog (alors qu'il les attend dans access.log) ?
              Comme je l'ai écrit (plusieurs fois), syslog n'est pas conçu pour cet usage !
              D'ailleurs vous avez bien conscience que les logs ne doivent pas rester dans pfSense …

              Ce n'est pas parce qu'il existe un package Squid dans pfSense, qu'il est toujours judicieux de l'utiliser !
              Pour mettre une vis, un tournevis est plus adapté qu'un marteau, même si le marteau réussit bien à enfoncer la vis !

              Albert EINSTEIN : Si vous ne pouvez pas l'exprimer simplement, c'est que vous ne le comprenez pas assez bien. (If you can’t explain it simply, you don’t understand it well enough.)

              1 Reply Last reply Reply Quote 0
              • C
                chris4916
                last edited by

                @jdh:

                Bref 2 mauvais conseils (ou plutôt très incomplets) ne vous informant pas exactement de la réalité …

                ;D ;D ;D

                Bon, en même temps ce n'est pas trop grave puisque de toute manière tu es là pour corriger et rétablir LA vérité  ;D

                @jdh:

                Cependant, il faut comprendre l'utilisation de syslog : c'est basé sur udp/514 et non sur tcp : c'est un protocole léger (OUI !) , destiné à des petits messages, de fréquence faible.

                :o N'hésite pas à commenter ce point plus en détail et de manière étayée  :-X
                ça nous informera de ce qu'est exactement la réalité !  ;)

                Si tu avais expliqué que rsyslog est basé sur UDP, lequel est "sans connexion" et que donc il n'y a pas de garantie que le message arrive, ou que le transport n'est pas sécurisé, ça aurait été crédible. Mais cette considération sur la faible fréquence des messages et de leur taille et donc du volume de données me laisse pour le moins perplexe.

                Ou alors c'est parce que tu n'utilises pas cette fonctionnalité de rsyslog, persuadé qu'elle présente vraiment les défauts que tu lui attribues.

                Plus sérieusement, rsyslog est vraiment conçu pour traiter des quantités très (je veux dire TRES) importantes de données. C'est d'ailleurs pour cela que c'est de l'UDP, afin de ne pas encombrer encore plus le réseau avec TCP et gagner en performance  8)

                Comme tu le dis: bref…

                Le point valide de ton commentaire, c'est le traitement des données si le but est de faire de l'affichage via des trucs genre lightsquid. Mais je ne coris pas que ce soit l'objectif.

                A noter que rsyslog peut également, coté serveur, écrire dans une base de données, et qu'il existe une flopée d'outil et d’interfaces pour ensuite faire des requêtes dans celles-ci.

                Pour compléter le tableau, puisque ma réponse précédente n'était pas complète: il est également possible, mais c'est alors un usage qui à mon avis sort du cadre de ce que j'ai compris du besoin, de connecter les logs Squid à des outils de type Elasticsearch via Logstash. La aussi c'est de la redirection de log dans la conf de Squid. Et la aussi prévu pour une quantité très très conséquente de données.

                Jah Olela Wembo: Les mots se muent en maux quand ils indisposent, agressent ou blessent.

                1 Reply Last reply Reply Quote 0
                • I
                  Info85620
                  last edited by

                  Bonjour à tous,

                  Encore une fois merci pour vos retours.
                  En effet j'avais bien lu sur ce forum et d'autre que syslog n'étaient pas fait pour ça.

                  J'ai bien conscience également qu'il faut mieux utiliser un proxy déclaré etc…(mais comme dit précedemment je n'ai pour le moment pas le temps d'appliquer cette solution).

                  Je venais m'informer d'une autre solution qui m'aurais permis de "sauvegarder" (sur un nas ou autre?) le fichier access.log ?
                  Il est apparemment possible de copier ce fichier pendant la rotation :

                  Le bon conseil n'est donc pas syslog mais de réfléchir à la rotation des logs (squid -k) : au moment de la rotation des logs on peut transférer un fichier, dans sa totalité !

                  Comment effectuer ce transfert ?

                  merci
                  Yoan

                  1 Reply Last reply Reply Quote 0
                  • J
                    jdh
                    last edited by

                    Je parle de logrotate, qui est capable de faire cela.
                    Mais c'est sur la base d'une Debian + Squid + SquidGuard + LightSquid + un certain nombre de scripts/réglages : wpad + blacklist de Toulouse + whitelist + …

                    Je concède qu'il faut un peu de temps pour avoir un proxy bien au point ...
                    Mais c'est utile.

                    Albert EINSTEIN : Si vous ne pouvez pas l'exprimer simplement, c'est que vous ne le comprenez pas assez bien. (If you can’t explain it simply, you don’t understand it well enough.)

                    1 Reply Last reply Reply Quote 0
                    • I
                      Info85620
                      last edited by

                      Salut,

                      Merci pour vos réponses !
                      Je vais activer la rotation des logs pour 365 jours pour commencer.
                      Avec une sauvegarde de la VM au cas ou….

                      Ça devrait suffire pour le moment

                      Merci
                      A+

                      1 Reply Last reply Reply Quote 0
                      • V
                        vali52
                        last edited by

                        Bonjour,

                        Pour la sauvegarde du fichier access.log et des autres fichiers log, j'ai crée un tache cron avec ce script et installé FileZilla sur un serveur ou machine:

                        #!/bin/sh

                        Constantes

                        HOST=x.x.x.x
                        LOGIN=
                        PASSWORD=
                        PORT=21

                        Connexion

                        ftp -i -n $HOST $PORT << END_SCRIPT
                        quote USER $LOGIN
                        quote PASS $PASSWORD

                        Transfert

                        cd ./dossier
                        cd ./$(date +'%Y')
                        cd ./$(date +'%m')
                        mkdir ./$(date +'%Y%m%d')
                        cd ./$(date +'%Y%m%d')
                        put /var/log/portalauth.log portalauth_SITE_$(date +'%Y%m%d').log
                        put /var/squid/logs/access.log access_Site_$(date +'%Y%m%d').log
                        put /var/squid/logs/cache.log cache_SITE_$(date +'%Y%m%d').log
                        bye
                        #/usr/bin/killall syslogd
                        cat /dev/null > /var/squid/logs/access.log
                        cat /dev/null > /var/squid/logs/cache.log
                        cat /dev/null > /var/log/portalauth.log
                        #/etc/rc.d/syslogd restart
                        END_SCRIPT

                        Cela crée une connexion ftp sur mon serveur windows et copie les fichiers dans les dossiers crées précedement.

                        En rouge, je ne l'ai pas mis car je n'arrivais pas à le faire fonctionner. Ce sont des commandes pour vider les fichiers.

                        1 Reply Last reply Reply Quote 0
                        • C
                          ccnet
                          last edited by

                          Cette méthode est bien sûr à proscrire absolument pour deux raisons.
                          FTP est un protocole absolument non sûr qui doit être abandonné.
                          La présence d'éléments d'authentification en clair dans un script est une très mauvaise pratique. Dans toutes les entreprises un peu soucieuse de sécurité on fait la chasse aux développeurs qui écrivent de tels scripts et les politiques de sécurité interdisent le plus souvent explicitement cette pratique.

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post
                          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.