Règles firewall par utilisateur
-
Bonjour,
Je vais essayer de résumer au mieux les besoins. Nous avons actuellement une 30aine de serveurs (physiques et virtuels) hébergeant du web, du mariadb, du mail, de la supervision et quelques machines windows.
La société compte 4 employés fixes et 2 prestataires.
deux des employés doivent pouvoir se connecter à mysql sur les serveurs de production mais pas sur celui de supervision
un autre doit pouvoir se connecter à tous les mysql mais aussi en ssh aux serveurs supervision et déploiement.
le gérant veut pouvoir se connecter à tous les serveurs de quelques manières que ce soit.
Les 2 prestas infogérance doivent pouvoir se connecter à tous les serveurs, de la même manière que le gérant.Je comprends bien que le firewall en lui-même n'est pas forcément l'outil approprié mais la combinaison du firewall + vpn pourrait laissé à penser que c'est gérable. Dans le sens où Pfsense attribue de lui-même l'ip a un user, nous osions espérer qu'il serait capable d'insérer des règles à l'établissement d'une connexion VPN.
En écrivant celà, je me demandais si via les options avancées de l'onglet "client specific overrides" il ne serait pas possible d'implémenter ces règles ?
-
Donc 3 typologies d'utilisateurs. Pourquoi pas 3 serveurs Vpn ? Chacun en écoute sur un port distinct. Filtrage sur chacune des interfaces. Vous lier un utilisateur à un certificat et à un serveur Vpn (chacun sa ca et son certificat serveur.
En écrivant celà, je me demandais si via les options avancées de l'onglet "client specific overrides" il ne serait pas possible d'implémenter ces règles ?
Les règles non, mais le lien entre un utilisateur, son certificat et une ip fixe pour son tunnel vpn oui. Je l'ai utilisé dans la passé plusieurs fois.
Je ne sais pas comment vous administrez Pfsense, mais je recommander l'usage d'une interface dédié à l’administration. La séparation des flux applicatifs/métiers de ceux d'administration reste une bonne pratique.
-
Donc 3 typologies d'utilisateurs. Pourquoi pas 3 serveurs Vpn ? Chacun en écoute sur un port distinct. Filtrage sur chacune des interfaces. Vous lier un utilisateur à un certificat et à un serveur Vpn (chacun sa ca et son certificat serveur.
Je ne vois pas comment 'différencier' les différents serveurs VPN pour le filtrage. Dans la partie Firewall, je ne vois qu'une interface OpenVPN qui englobe (sauf erreur) tous les serveurs VPN.
Après longue discussion avec mon client (depuis 11h ce matin), on s'oriente vers la solution d'attribuer une IP par utilisateur. Cela lui semble le plus compréhensible et le plus gérable.
Les règles non, mais le lien entre un utilisateur, son certificat et une ip fixe pour son tunnel vpn oui. Je l'ai utilisé dans la passé plusieurs fois.
Auriez-vous des pointeurs sur cela ? C'est un point qui pourrait m'intéresser à titre personnel et pour ma culture sur pfsense (en attendant de faire le tour de la documentation)
Actuellement, nous n'avons pas d'interface dédiée à l'administration mais c'est une voie à approfondir :)
merci
Jérôme -
Je ne vois pas comment 'différencier' les différents serveurs VPN pour le filtrage
Numéro de réseau différent.
-
Jehster, selon les besoins que tu as exprimé :
La société compte 4 employés fixes et 2 prestataires.
deux des employés doivent pouvoir se connecter à mysql sur les serveurs de production mais pas sur celui de supervision
un autre doit pouvoir se connecter à tous les mysql mais aussi en ssh aux serveurs supervision et déploiement.
le gérant veut pouvoir se connecter à tous les serveurs de quelques manières que ce soit.
Les 2 prestas infogérance doivent pouvoir se connecter à tous les serveurs, de la même manière que le gérant.Ne serait ce pas plus facile d'attribuer des identifiants différents à chaque utilisateur sur les systèmes en question?
De toute façon le partage d'un compte administrateur entre plusieurs personnes dilue rapidement la responsabilité ainsi que la traçabilité des actions et ne fait pas parti des "bonnes pratiques".
La tâche principale du pare-feu c'est isolation des serveurs de l'Internet mais une fois le VPN ouvert il y a déjà un certain niveau de confiance sous entendu puisque la personne à pu ouvrir le VPN.
Par la suite les utilisateurs utilisent leurs dits identifiants pour accéder aux machines.
On gagne la responsabilité et la traçabilité des actions entrepris auprès des serveurs par les intervenants. -
Ne serait ce pas plus facile d'attribuer des identifiants différents à chaque utilisateur sur les systèmes en question?
+1
c'est le sens de mon message précédent. Vouloir faire du contrôle d'accès aux ressources uniquement en s'appuyant sur le FW est assez bizarre comme approche.
Et ça fait effectivement penser qu'il n'y a pas de gestion des identités au niveau des systèmes. -
Je suis parti du principe que c'était le cas et qu'il s'agissait un second niveau de contrôle.
Qu'est ce que j’apprends on partagerai des comptes root et administrateur ! On m'aurait menti ?Sérieusement il est indispensable que les comptes soient individualisés. C'est un fondamental pour les raisons données plus haut.
-
Ne serait ce pas plus facile d'attribuer des identifiants différents à chaque utilisateur sur les systèmes en question?
+1
c'est le sens de mon message précédent. Vouloir faire du contrôle d'accès aux ressources uniquement en s'appuyant sur le FW est assez bizarre comme approche.
Et ça fait effectivement penser qu'il n'y a pas de gestion des identités au niveau des systèmes.Bonjour,
Aucune intention de donner le compte root à tout le monde. Chacun a déjà son compte ssh et/ou un compte mysql et un compte VPN dédié. L'idée est de pouvoir vraiment cloisonner un utilisateur. Nous aurions aimé ne pas devoir affecter une IP à un utilisateur et pouvoir filtrer les accès via le user VPN utiliser (exemple user1 a le droit de faire du ssh sur server1 et server2 et user2 ssh/mysql sur server2 uniquement)
Et donc pour chris4916 et ccnet, chaque utilisateur aura bel et bien un compte propre.
Je n'ai jamais dit que tout le monde utiliserait le même compte .. mais je n'ai pas dit le contraire non plus.
Je ne sais pas si nos besoins sont explicités plus clairement maintenant. En tout cas merci pour vos réponses, vos suggestions.
@ccnet : je n'arrive pas à voir/trouver cette notion de numéro de réseau à laquelle vous faites référence.
-
Nous aurions aimé ne pas devoir affecter une IP à un utilisateur et pouvoir filtrer les accès via le user VPN utiliser (exemple user1 a le droit de faire du ssh sur server1 et server2 et user2 ssh/mysql sur server2 uniquement)
Certes mais c'est précisément cette formulation qui n'a pas de sens du point de vue du firewall…
tout ce que le firewall sait dire, c'est:
"ce qui vient de telle adresse ou de tel réseau à le droit d'accéder à telle adresse ou telle réseau sur tel port"
Pas de notion d'utilisateur ici.La notion d'utilisateur, c'est au niveau de l'operating system ou des services que le serveur expose.
Si l'utilisateur n'a pas de compte sur le server1, il peut bien accéder au réseau correspondant, il ne pourras pas ouvrir de de session.
Ce ne sont pas les même couches et vouloir forcer cette logique en essayant de trouver un "truc" pour que le firewall connaisse le compte utilisateur, c'est se donner beaucoup de travail pour, à mon avis, un résultat moyen et des risques de dysfonctionnement importants.AMHA bien sûr 8)
-
La notion d'utilisateur, c'est au niveau de l'operating system ou des services que le serveur expose.
C'est justement là dessus que nous avions eu des espoirs. Nous avons une machine pfsense qui à la fois regroupe un serveur vpn, une base d'utilisateurs (locale ou radius ou ldap) et un firewall. On a, probablement à tort, supposé qu'il serait possible de faire des groupes d'utilisateurs qu'on pourrait utiliser pour des règles du firewall, notamment via les Aliases.
Je dois refaire le point avec mon client mardi prochain :)
Merci pour vos interventions, vos réponses et votre aide
Jérôme
-
Cette base d'utilisateurs, dans le cas de LDAP, peut en revanche être efficacement utilisée pour contrôler l'accès aux serveurs Linux par exemple, via SSSD ou via PAM qui peut implémenter un contrôle d'accès au serveur sur la base de l'appartenance à un groupe LDAP (ou la valeur d'un attribut).
Mais c'est indépendant du FW, ce qui signifie que ça fonctionne également pour un client qui serait sur le même subnet que le serveur.
Prenons un exemple dans la solution que tu essaies de mettre en place:
- tous les serveurs sont sur le même LAN
- un utilisateur distant est autorisé uniquement, via ta règle de FW, sur le serveur 1
- il y accède… so far so good :-)
- et de ce serveur, il ouvre une session sur le serveur 2, depuis le LAN, donc sans passer par le FW, donc pas de "règle de contrôle d'accès"...
bref, ce n'est pas le bon endroit pour faire ça, même en imaginant faire un VLAN par serveur ;)
-
Dès le 2ième post, j'écrivais 'un firewall ne voit passer que des paquets ip' : il aura fallu du temps pour comprendre que la notion d'utilisateur n'est pas dans ip.
Puis on comprend que vous avez des utilisateurs qui partagent le même profil, ce qui est très grave et significatif d'un problème de compréhension : chaque utilisateur DOIT avoir son profil personnel.
C'est le seul moyen de tracer l'action de chaque utilisateur.De facto, un vpn devra être basé sur certificats, un par utilisateur, et avec une ip fixé par le certificat, donc par l'utilisateur.
Tout cela est une réflexion simple …
-
@jdh:
Dès le 2ième post, j'écrivais 'un firewall ne voit passer que des paquets ip' : il aura fallu du temps pour comprendre que la notion d'utilisateur n'est pas dans ip.
Je n'ai jamais dis que je n'avais pas compris mais du fait que PfSense n'est pas qu'un simple firewall, on peut imaginer qu'ils ont implémenter des fonctionnalités avancées.
Le Netasq le fait bien, pourquoi PfSense ne pourrait pas ?@jdh:
Puis on comprend que vous avez des utilisateurs qui partagent le même profil, ce qui est très grave et significatif d'un problème de compréhension : chaque utilisateur DOIT avoir son profil personnel.
C'est le seul moyen de tracer l'action de chaque utilisateur.Où ai-je dis ça ?? Je dis même l'exact contraire ! Pour le coup, le problème de compréhension n'est pas de mon coté … un soucis de lecture je pense ...
@jehster:Aucune intention de donner le compte root à tout le monde. Chacun a déjà son compte ssh et/ou un compte mysql et un compte VPN dédié.
-
Je ne vois pas comment 'différencier' les différents serveurs VPN pour le filtrage. Dans la partie Firewall, je ne vois qu'une interface OpenVPN qui englobe (sauf erreur) tous les serveurs VPN.
VPNOpenVPNServers puis dans la définition du serveur VPN : IPv4 Tunnel Network pour le réseau de chaque vpn.
Dans l'unique onglet (en effet) openvpn pour les règles, vous avez la possibilité d'utiliser l'ip source du client.Nous aurions aimé ne pas devoir affecter une IP à un utilisateur et pouvoir filtrer les accès via le user VPN
Je ne vois pas quelle est la difficulté en ce qui concerne le vpn.
Cela ne s'entend que si chaque utilisateur possède son propre certificat évidement. Encore une fois, ni ip ni tcp ne "comprennent" la notion d'utilisateur. Il est possible que le cloisonnement de votre réseau soit inadapté en fonction de besoin de sécurité. Je ne sais le dire puisque je ne connais pas votre besoin de sécurité d'un point de vue métier, fonctionnel. Vous raisonnez en solutions technique d'abord. c'est la principale raison des difficultés projet que vous rencontrez. C'est très courant dans ce domaine.
-
C'est awebster dans son post https://forum.pfsense.org/index.php?topic=133431.msg733320#msg733320 qui imagine que les profils sont partagés, et d'autres aussi ont compris la même chose.
Si vous avez bien compris la nécessité de disposer d'un profil personnel par intervenant, l'idée d'avoir un certificat personnel pour le vpn et de fixer l'ip à partir de la connexion vpn est 'normale' et logique.
Comme on peut lire que l'idée de fixer les ip ne vous parait pas évidente, …