Portail captif, filtre url, analyse des logs, rapport par mail,….



  • Bonsoir les passionnés!

    Suite à un message qui est partis dans des débats stratosphérique (que j'ai pas tout compris ;) ) je me permet de relancer un nouveau poste pour reprendre mon problèmes sous un autre angle.

    Je dois mettre en oeuvre une serveur pour sécuriser une connection pro, avec:

    • Portail captif avec restriction du nombre de connection par identifiant, limitation de bande passante par id, gestion classique des expirations des comptes,…

    • J'ai besoin de pouvoir bloquer le surf illégal, et indésirable (p2p, porno,...).

    • J'ai besoin de pouvoir analyser les logs pour tracer d'eventuels abus afin d'affiner les sécurités.

    • j'aimerais un rapport quotidient par mail des volumes, utilisation cpu,...

    Point cruciale, je ne peu pas intervenir sur les pc qui vont utiliser la connexion.

    J'ai essayer sur plusieurs configurations matériels différentes de mettre en oeuvre pfsense + Squid + squidguard. Mais a chaque fois au bout de quelques heures, le tout commence a planter et a fournir une solutions instable.

    Je ne suis pas un bleu en informatique mais ici, je ne suis pas dans des domaines ou je maîtrise donc n’hésitez pas a parler avec des mots simples ;-)

    Que dois-je utiliser, dans quel ordres, avec quel paramètres?

    Merci d'avance.

    Edit:

    Il n'y a rien d'autre comme serveur sur le resau, c'est au fait de la location de studio avec connexion internet. le system dois se raprocher d'un system pour les hotels.



  • Cette formulation du problème me parait beaucoup plus adaptée.
    Je vais faire de mon mieux pour ne pas créer de débat "stérile"  ;) :-[

    Pour compléter ta description du paysage informatique, tu devrais peut-être ajouter quelques informations relatives à l'existant car ça peut avoir un impact significatif, au niveau de détail auquel tu sembles t'attendre, sur le design cible. Cela aura aussi un impact en terme de déploiement, selon que tu construis "from scratch" ou qu'il faut migrer au dessus d'une infra existante, avec des contraintes en terme de niveau de service.
    De même, il faudrait insister un peu sur les protocoles et/ou services qui seront ouverts vers internet.

    En faisant abstraction de ce qui existe éventuellement, et si j'avais à remplir ta mission:

    • je n'essaierai pas de tout construire d'un seul coup mais plutôt d'identifier les domaines qu'il faut adresser.
      => Dans ton expression des besoins, tu parles d'authentification, et donc d'utilisateurs et de comptes
      => la fonction "portail" est clairement identifiée.
      => les aspects logs, reporting etc… me semblent devoir faire partie d'un lot dissocié. Il faut garder à l'esprit que c'est nécessaire et donc mettre en œuvre une plate-forme qui l'autorise mais c'est une deuxième étape.
      => comme tu es sur un forum pfSense, la solution va s'articuler autour de pfSense  ;D

    Vu de très haut, je viserais quelques chose du genre
    [font=courier]
              @                                                   
              +                                                   
              |                                                   
    +–------+-+----------------+                  DMZ         
    |  pfSense +                |                               
    |  captive portal          +------+----------------+--------+
    |  DHCP, DNS                |      |                |       
    +--------+------------------+  +--+--+    +--------+-------+
              |                      | MTA |    | HTTP          |
              |                      |    |    | proxy (Squid + |
              |  LAN                +-----+    | Squidguard)    |
    +-----------------------                    |                |
              |                                +----------------+
    +-----------------------+                                   
    | Radius                |                                   
    | Account (LDAP, AD...) |                                   
    | WPAD                  |                                  
    | DNS, DHCP            |                                   
    +-----------------------+

    Que je décrirais comme:

    En interne

    • il y a (ou on déploie, sur un réseau isolé ou pas, c'est un débat annexe) un environnement de gestion des utilisateurs et des comptes
    • pour les besoins internes, un serveur DNS et DHCP couvrent ce périmètre.
    • il y a (ou on déploie) un serveur Radius (ou Kerberos, ou LDAP) pour supporter l'authentification
    • on met en place un serveur web pour fournir les informations de WPAD

    en DMZ

    • on installe un proxy Squid + SquidGuard avec les add-on type anti-virus
    • c'est également la place d'un MTA si celui-ci n'existe pas déjà et qu'il y a des besoins de mail

    Entre le LAN, la DMZ et internet

    • un pare-feu (au hasard pfSense  ;D) qui fourni, en plus des règles de filtrage packet, un relais DNS, du DHCP et un portail captif.

    Il manque à ce schéma qui reste au niveau "blocks fonctionnels" des truc du genre RSYSLOG ou un truc pour centraliser les logs des différents serveurs, le ou les outils d'analyse de ces logs, avec les procédures d'archivage légal éventuelles.

    Avec ces composants, on ne couvre que du mail et du HTTP/HTTPS.
    Il est facile de bloquer tout le reste au niveau du FW (à la limite près de ce qui va être encapsulé dans du HTTP mais le proxy va nous aider un peu sur cette partie).
    ça va se compliquer un peu si il faut ouvrir le FW à des protocoles autres tout en gardant un contrôle fin mais dans ce cas, je pense qu'il faut procéder "par protocole"

    Le principe de fonctionnement:

    • le serveur DHCP interne déclare pfSense comme la passerelle par défaut
        => le portail captif est le point de passage "naturel" ;-)  Celui-ci va autoriser l'accès au proxy HTTP.
        => le serveur DHCP interne pousse l'URL du serveur WPAD lequel décrit le proxy en DMZ comme "proxy" dans la configuration automatique des navigateurs
        => le DNS interne pousse également l'info de WPAD ;-)
        => le portail captif s'appuie sur le mécanisme d'authentification interne (en Radius, Kerberos ou LDAP, à débattre) et pour l’identification des utilisateurs au proxy à des fins de profiling et login
        => le serveur DNS sur pfSense sert de relais aux serveurs DNS internes. Il décrit également les services internes qui doivent être utilisés par services en DMZ
        => le serveur DHCP sur pfSense fourni des adresses (et paramètres associés) aux machines en DMZ

    Il y a bien sûr d'autres solutions, mais celle-ci, sur la base des suppositions que je retiens, fonctionne.
    Avant de passer à l'étape "déploiement et paramétrage" il faut valider ces choix, options et limitations  8)



  • Plusieurs questions me viennent a l'esprit:

    1. Ne peut-on as utiliser la DB du portail captif? pour éviter un ad ou un radius,…?

    2. Il y a deux éléments que je ne connais/comprend pas, le WPAD et le MTA?

    3. Peut-on mettre la dmz - le squid, dans le pfsense?



  • @crashoux:

    Plusieurs questions me viennent a l'esprit:

    1. Ne peut-on as utiliser la DB du portail captif? pour éviter un ad ou un radius,…?

    peut-être, je ne connais pas assez pfSense pour avoir un avis sur la faisabilité technique  :-[
    Dans le principe, ce n'est pas vraiment la meilleur place pour gérer des comptes utilisateurs, d'autant que, dans ce que je comprends de pfSense, il n'y a pas de modèle de délégation qui permettrait un un administrateur de gérer des comptes utilisateurs sans pouvoir également gérer des servies ou des règles du FW.  Mais peut-être me trompe-je ?

    Ceci dit, je pense comprendre maintenant un peu mieux ce que tu vises, je ne suis pas certain qu'une vraie gestion de comptes soit ce que tu demandes, du moins au départ, mais si ta population devient un peu importante, gérer des comptes directement dans pfSense me semble vraiment limite.

    [quote]2) Il y a deux éléments que je ne connais/comprend pas, le WPAD et le MTA?

    WPAD: c'est LE mécanisme qui permet de définir le proxy à utiliser par les clients sans avoir à modifier la configuration du navigateur sur chaque client.
    Sa mise en œuvre nécessite des paramétrages spécifiques sur le DNS et DHCP et une page web.

    MTA: c'est le mail transfert agent, composant qui sert à filtrer le mail entrant si tu as un serveur de mail interne mais il semble que ce ne soit pas le cas.

    ) Peut-on mettre la dmz - le squid, dans le pfsense?|/quote]

    la DMZ à proprement parler, non mais si il n'y a rien sur la DMZ, tu n'en as pas besoin.
    le proxy… bof, dans l'absolu non mais techniquement oui cependant:

    • est-ce une bonne idée d'utiliser le package de pfSense pour ça ?
    • qu'est-ce que ça apporte par rapport un un serveur dédié (sous-entendu "qui ne serait pas sur pfSense) ou plutôt, question plus importante, qu'est-ce que ça apporte d'avoir Squid sur le serveur pfSense, à part l'unicité d'interface d'administration

    Ce que je ne sais pas, c'est comment interfacer un Squid externe avec la gestion de comptes interne de pfSense



  • crashoux,

    • comment sont / seront gérés ces comptes utilisateurs et combien y en a t-il ?
    • est-ce que ce sont des utilisateurs "temporaires" qui sont créés à la volée car ile ne sont là que quelques heures, jour etc…
    • as-tu des contraintes de tracking (quel utilisateur avait un compte à quel moment puis qui a fait quoi sur le web ?)
    • comment vas-tu communiquer à l'utilisateur son login/pwd ?

    Pour faire court, est-ce que ces utilisateurs sont les employés d'une entreprise ou des "visiteurs" ?



  • Ce sont des comptes qui resterons quelques mois c'est de la location de kot étudiant.

    Les log-in, mot de passe seront gérer par les employés de la société d'immobilier et seront avec une date d'expiration alignée sur les loyers. (Pas de loyer, pas d'internet) (pas de bras, pas de chocolat :D )

    Pour le tracking c'est surtout pour blacklister des sites de streaming,.. qui ne seraient pas dans les liste automatique. je vérifierais par rapport au volume dl par les users. Surtout pour éviter les abus.



  • Et il y en a beaucoup des utilisateurs ?
    Parce que ça veut, à la date de réception du loyer, réactivation du compte et configuration de la prochaine date d'expiration  :o

    Si le but est uniquement d'éviter des abus en terme d'utilisation de la bande passante, une option pourrait être (même si je n'aime pas vraiment ça si on compare à de la vraie QoS, de limiter la bande passante par utilisateur et de ne pas s'occuper du filtrage.
    L'option de traffic shaping peut ici répondre à une partie des tes besoins. Encore une fois, je ne connais pas assez pfSense avec ses potentielles particularités d'implémentation mais dans le principe, le shapping est exactement fait pour donner la priorité à certains protocoles par rapport à d'autres, ou a certains réseaux par rapport à d'autres.



  • @chris4916:

    Et il y en a beaucoup des utilisateurs ?
    Parce que ça veut, à la date de réception du loyer, réactivation du compte et configuration de la prochaine date d'expiration  :o

    La gestion des users interne est tres bien faite car tu sais vraiment définir les droit de chacun et donc je creer un user pour la société qui n'a que le droit de gerer les compte des user du ortail captif.

    Si le but est uniquement d'éviter des abus en terme d'utilisation de la bande passante, une option pourrait être (même si je n'aime pas vraiment ça si on compare à de la vraie QoS, de limiter la bande passante par utilisateur et de ne pas s'occuper du filtrage.
    L'option de traffic shaping peut ici répondre à une partie des tes besoins. Encore une fois, je ne connais pas assez pfSense avec ses potentielles particularités d'implémentation mais dans le principe, le shapping est exactement fait pour donner la priorité à certains protocoles par rapport à d'autres, ou a certains réseaux par rapport à d'autres.

    Je reviens a une question précédement posée… ils font comment dans les hotels? Il y a bien du portail captif et du filtre url?

    Ce que je ne comprend pas c'est pourquoi quand j'install squid et squidguard le config commence a déconner plein pot en quelques heures? Pq les dev de pfsense intègrerais les packages si ca rend toute la config instable??? ca ne peu être que moi qui commet une erreur...



  • @crashoux:

    La gestion des users interne est tres bien faite car tu sais vraiment définir les droit de chacun et donc je creer un user pour la société qui n'a que le droit de gerer les compte des user du ortail captif.

    Je suis très intéressé à savoir comment tu mets un œuvre un modèle de délégation dans pfSense. Je n'ai pas regardé en détail car ce n'est pas ma priorité mais je n'ai rien vu qui y ressemble.

    Je reviens a une question précédement posée… ils font comment dans les hotels? Il y a bien du portail captif et du filtre url?

    pas nécessairement mais pourquoi pas. Ceux qui mettent en place du filtrage le font très certainement avec un proxy, ou peut-être avec du OpenDNS. Je ne vois pas en quoi c'est incompatible avec ce dont on discute ?

    Ce que je ne comprend pas c'est pourquoi quand j'install squid et squidguard le config commence a déconner plein pot en quelques heures? Pq les dev de pfsense intègrerais les packages si ca rend toute la config instable??? ca ne peu être que moi qui commet une erreur…

    Il y a 2 aspects complètement différents dans ta question:

    1 - pourquoi ton implémentation de Squid + squidgard ne marche pas => je ne comprends pas le "au bout de quelques heures". Pour moi, ça marche ou pas, au effets de cache ou d'espace disque près. Je relirai ton post initial qui explique un peu je crois le dysfonctionnement mais pour moi, surtout en mode proxy transparent, il y a plein de pièges potentiels qui font que ça peut ne pas fonctionner. De plus si tu persiste dans cette voie, je te suggère de ne pas essayer d'assembler toute la pile d'u seul coup surtout si tu ne comprends pas tous les détails mais de le faire progressivement: installe le proxy sans filtrage, assure toi que ça fonctionne et ajoute ensuite les morceaux

    2 - pourquoi les packages sont potentiellement instables: à mon avis parce que ce ne sont pas nécessairement les mêmes développeurs et que le cycle de validation du package par rapport à celui de la version de pfSense n'est pas le même. Il n'y a donc pas de garantie que le package qui évolue à sa vitesse soit tout le temps opérationnel avec la version de pfSense qui évolue de son coté.



  • Pour les users c'est très simple quand tu vas dans System –> user management tu crée un groupe et ensuite tu vas l’éditer tu vas voir apparaître toutes les options auquel tu peux ou pas leur donner acces.

    Bref ;)

    Quand je dis au bout de quelques heures c'est même moins que ca. il me suffit de rebooter le serveur pour que les problèmes apparaissent. Et ils sont simple squid met beaucoup de temps a se lancer il réessaye plusieurs fois et puis squidguard ne démarre plus. Ca me bloque l'acces a tout les sites saut facebook (va t'en comprendre). Je suis obliger de désactiver squidguard pour que le réseau reviennent a la normal.

    Pour info j'ai suivis ce tuto: https://www.youtube.com/watch?v=czU56xmJAmE

    Quand j'ai fini de configurer squidguard je n'arriver plus a l'activer il reste "off" et squid le suit aussi. Dès que je désactive squidguard dans la config squid se relance aussitôt.



  • @crashoux:

    Pour les users c'est très simple quand tu vas dans System –> user management .../...

    Cool, il y doc un modèle de délégation.  Merci, ça me fait gagner un peu de temps si un jour j'en ai besoin.

    Quand je dis au bout de quelques heures c'est même moins que ca. il me suffit de rebooter le serveur pour que les problèmes apparaissent. Et ils sont simple squid met beaucoup de temps a se lancer il réessaye plusieurs fois et puis squidguard ne démarre plus. Ca me bloque l'acces a tout les sites saut facebook (va t'en comprendre). Je suis obliger de désactiver squidguard pour que le réseau reviennent a la normal…/...

    ça ressemble quand même un peu à un conflit d'allocation de port ce truc.

    Sais-tu faire un schéma qui décrit comment Squid et squidguard se parlent en terme de ports. Je ne suis pas certain que la conf de Squidgard telle que implémentée dans pfSense permette de changer cet apsect du paramétrage mais ça vaut quand même le coup de regarder ce qu'il en est.

    Il n'y a rien dans les logs qui puissent t'aider ?

    Pour info j'ai suivis ce tuto: https://www.youtube.com/watch?v=czU56xmJAmE

    Oops… ça ne m'avance pas beaucoup mais, je l'assume, c'est entièrement de ma faute. Je fais un blocage systématique et définitif avec les tuto sous forme de vidéo. ça fait vraiment "monkey see, monkey do" sans aspect didacticiel, et donc, pour moi du moins, ce n'est pas un tutoriel  >:(



  • Quand je redemarre le serveur j'ai cette erreur:

    Mar 17 15:59:21 php-fpm[245]: /rc.start_packages: Starting Squid
    Mar 17 15:59:21 squid[76600]: Squid Parent: child process 77300 started
    Mar 17 15:59:21 php-fpm[245]: /rc.start_packages: Reloading Squid for configuration sync
    Mar 17 15:59:21 php-fpm[245]: /rc.start_packages: The command '/usr/pbi/squid-amd64/sbin/squid -k reconfigure' returned exit code '1', the output was '2015/03/17 15:59:21| WARNING: Very large maximum_object_size_in_memory settings can have negative impact on performance squid: ERROR: No running copy'
    Mar 17 15:59:21 check_reload_status: Reloading filter
    Mar 17 15:59:21 php-fpm[245]: /rc.start_packages: Reloading Squid for configuration sync
    Mar 17 15:59:21 php-fpm[245]: /rc.start_packages: Reloading Squid for configuration sync
    Mar 17 15:59:22 php-fpm[245]: /rc.start_packages: Reloading Squid for configuration sync
    Mar 17 15:59:22 php-fpm[245]: /rc.start_packages: Reloading Squid for configuration sync
    Mar 17 15:59:22 php-fpm[245]: /rc.start_packages: Reloading Squid for configuration sync

    Ce ne sont que des alertes pour dire que mon paramètrage est 'large' en memoire mais il ne dépasse pas les normes vu que j'ai 12Gb RAM et j'en attribue 8 a squid.

    Et voila ce qu'il me dis quand j'active squidguard…:

    Mar 17 16:04:32 check_reload_status: Syncing firewall
    Mar 17 16:04:32 check_reload_status: Syncing firewall
    Mar 17 16:04:33 php-fpm[15292]: /pkg_edit.php: Reloading Squid for configuration sync
    Mar 17 16:04:33 check_reload_status: Reloading filter
    Mar 17 16:04:33 squid[77300]: The url_rewriter helpers are crashing too rapidly, need help!
    Mar 17 16:04:33 kernel: pid 77300 (squid), uid 62: exited on signal 6
    Mar 17 16:04:33 squid[76600]: Squid Parent: child process 77300 exited due to signal 6
    Mar 17 16:04:35 check_reload_status: Syncing firewall
    Mar 17 16:04:35 php-fpm[94138]: /pkg_edit.php: Reloading Squid for configuration sync
    Mar 17 16:04:35 php-fpm[94138]: /pkg_edit.php: The command '/usr/pbi/squid-amd64/sbin/squid -k reconfigure' returned exit code '1', the output was '2015/03/17 16:04:35| WARNING: Very large maximum_object_size_in_memory settings can have negative impact on performance squid: ERROR: Could not send signal 1 to process 77300: (3) No such process'
    Mar 17 16:04:35 check_reload_status: Reloading filter
    Mar 17 16:04:35 check_reload_status: Syncing firewall
    Mar 17 16:04:36 squid[76600]: Squid Parent: child process 29152 started
    Mar 17 16:04:36 squid[29152]: The url_rewriter helpers are crashing too rapidly, need help!
    Mar 17 16:04:36 kernel: pid 29152 (squid), uid 62: exited on signal 6
    Mar 17 16:04:36 squid[76600]: Squid Parent: child process 29152 exited due to signal 6
    Mar 17 16:04:39 squid[76600]: Squid Parent: child process 47128 started
    Mar 17 16:04:39 squid[47128]: The url_rewriter helpers are crashing too rapidly, need help!
    Mar 17 16:04:39 kernel: pid 47128 (squid), uid 62: exited on signal 6
    Mar 17 16:04:39 squid[76600]: Squid Parent: child process 47128 exited due to signal 6

    Là je vois qu'il chie sur l'url rewiter (je sais pas pq) et qu'il plante squid et le relance d'ou le retour de l'erreur des fichier trop grand en memoire.

    Pour le reste je ne comprernd pas telment ce que signifie toutes ces infos.


Log in to reply