Il semble que la vie serait simple d'exécuter le serveur de base de données sur la même machine que le serveur Web, mais prenons-nous un gros risque de sécurité en faisant cela?
L'environnement sera le serveur Windows 2008, Postgresql (dernière version, éventuellement 9.0 à sa sortie) et Apache 2.
Réponses:
Pas nécessairement.
En supposant que votre serveur Web soit compromis, l'attaquant obtiendra toujours les informations d'identification pour accéder aux mêmes bases de données, quel que soit le serveur sur lequel il s'exécute. Après tout, le serveur de base de données devra toujours être configuré pour autoriser une demande légitime du serveur Web.
(En supposant que des mesures de sécurité raisonnables, telles que mysqld, n'acceptent pas la connexion root sans mot de passe de localhost.)
Cela étant dit, vous souhaiterez peut-être toujours exécuter un serveur de base de données distinct. La raison en est liée aux performances, à l'évolutivité, etc.
la source
Je ne suis pas d'accord avec les affiches indiquant que ce n'est pas un problème de sécurité, et voici pourquoi:
la source
Cela dépendrait vraiment du modèle de sécurité de vos serveurs Web et DB (c'est-à-dire du logiciel), ainsi que du degré de pare-feu / contrôle d'accès / IDP que vous imposeriez aux deux s'ils étaient sur des serveurs distincts.
Toutes choses étant égales par ailleurs, il est probablement préférable de séparer les deux. En pratique, cependant, au moins dans un environnement LAMP, tant que vous utilisez privsep Apache (si vous n'êtes pas sûr, ne vous inquiétez pas, vous l'êtes) et n'utilisez pas la connexion root à MySQL dans votre webapp, et vous n'avez pas tcp / 3306 exposé au monde extérieur, vous ne gagnez pas vraiment beaucoup de sécurité en déplaçant l'un ou l'autre sur un morceau de silicium différent. Vous bénéficiez cependant de performances et d'avantages de débogage.
Votre question est dans le style qui semble nécessiter une réponse absolue, mais sans plus d'informations (au minimum, de quelles saveurs de système d'exploitation et de serveur Web / DB dont nous parlons), il est même difficile de donner une réponse informative.
la source
Je ne vois pas beaucoup de risques supplémentaires pour la sécurité de mettre la base de données et les serveurs Web sur le même matériel. Si le serveur Web est violé, les données sont accessibles de toute façon. La sécurité n'est pas la raison typique de la ségrégation des niveaux.
Dans les deux cas, vous voulez vous assurer que le serveur de base de données écoute sur les ports non standard, ne répondra qu'aux demandes du serveur Web et que le pare-feu autorise uniquement les requêtes http / s au serveur Web et aucun autre port ou adresse .
Néanmoins, les séparer est une bonne pratique. Chaque serveur est plus facile à gérer et à configurer, et vous pouvez gérer plus facilement les pannes, problèmes, reconstructions, problèmes de performances, etc. Ainsi, vous pouvez envisager deux serveurs virtuels sur le même matériel, qui peuvent ensuite être séparés lorsque les performances ou la capacité l'exigent.
la source
Je ne le ferais pas - mais c'est moi.
Cela dépend de ce qui se trouve devant votre boîte (c.-à-d. Pare-feu, équilibreurs de charge, etc.) et à quel point ils sont «étanches», quelles sont les données réelles (c.-à-d. Impactent maintenant les données accessibles au public à une extrémité, les secrets nationaux à l'autre) , qu'il y ait un impact sur les performances de leur combinaison, la force du réseau entre eux (c.-à-d. les pare-feu inter-niveaux) et la qualité du renforcement du système d'exploitation / des applications qui sera appliqué.
Si vous ne vous attendez pas à ce que ce système doive faire face à une charge trop importante, vous pouvez envisager de virtualiser le système en deux machines virtuelles distinctes; une par fonction - éventuellement avec une troisième machine virtuelle pare-feu uniquement logicielle entre elles. Cela signifierait que même si quelqu'un piratait votre serveur Web, il devrait alors casser le serveur de base de données et, s'il était inclus, une machine virtuelle de pare-feu intermédiaire. Bien sûr, cela réduirait les performances globales du système, mais serait au moins dans une certaine mesure plus sécurisé et pourrait également aider si votre charge devenait de plus en plus exigeant une conception à deux serveurs, car vous pouviez simplement déplacer une machine virtuelle sur la deuxième machine. Le produit ESXi gratuit de VMWare pourrait tout faire assez facilement et il existe déjà des machines virtuelles pare-feu pré-emballées prêtes à être mises en œuvre si vous le souhaitez.
la source