Liste de contrôle de sécurité pour héberger un site web sur un serveur dédié - Linux


1

Je cherchais depuis longtemps. Mais je ne peux pas trouver une liste de démarrage avancée et recherchée pour comprendre les choses les plus importantes à prendre en compte lors de l'utilisation du serveur d'hébergement dédié pour un site Web/application.

Je travaille avec un collège et nous y avons installé un serveur IBM.

  1. OS: CentOS 6.4
  2. Type d'application: PHP/MYSQL
  3. logiciel d'accès Terminal: PuTTY avec SSH (j'ai créé publique | JETONS) Autres logiciels

que j'ai installés sont:

  1. Virtualmin (m'a aidé à installer la pile LAMP)
  2. Memcached

Fondamentalement, j'ai suivi toutes les étapes que j'ai trouvées dans ce tutoriel sur youtube. Je l'ai trouvé décent de comprendre car il m'a donné un début: http://www.youtube.com/watch?v=lpJfFZoWeho

Mais ce n'était pas le noyau de la sécurité. Je veux juste savoir, comme tous les autres débutants, quelle serait la meilleure liste de contrôle que je pourrais suivre et apprendre pour que les choses soient sécurisées sur des aspects plus larges.

Ce serait une aide précieuse pour tous ceux qui veulent juste commencer.

1

Red Hat fournit un guide de sécurité pour RHEL 6, qui s'applique également à CentOS. Ceci est disponible here. CIS fournit également une liste de contrôle plutôt décente située here.

Cependant, si ce serveur est pour quelque chose d'important à distance, je vous recommande vivement d'engager un expert pour effectuer une vérification complète de votre système pour vous.


1

Conservez votre logiciel corrigé, en particulier un logiciel qui accepte les entrées de sources non fiables (c'est-à-dire les utilisateurs, Internet, toute personne qui n'est pas vous).

Ne laissez que ce qui est nécessaire. Exemple: n'autorisez pas les SSH entrants globaux, autorisez uniquement les connexions de la plage IP de vos bureaux.

Évitez les configurations où les utilisateurs peuvent se mettre en danger. Exemple: nécessite des clés SSH et interdit les mots de passe. Il est facile pour un utilisateur de choisir un mauvais mot de passe, il est beaucoup plus difficile pour lui de choisir une mauvaise clé privée.

Assurez-vous que les requêtes de base de données sont résistantes à l'injection SQL

Assurez-vous que la racine de document est bien défini et vous n'êtes pas au service des plus de fichiers que vous avez l'intention.

Réduire les privilèges vos comptes de base de données ont (ils ne ont pas besoin probablement baisse de table et de créer, par exemple)

Évitez les endroits dans le code où vous prenez l'entrée d'utilisateur et l'exécution ou l'évaluation qu'il

Identifiez vos points faibles et installez des atténuations de protection. Exemple: memcached ne dispose pas de fonctions de contrôle d'accès excellentes, donc reliez-le à localhost ou bloquez les connexions entrantes indésirables avec IPTables.

Supprimez les données appartenant à vos utilisateurs qui n'ont plus de valeur pour vous. Vous ne pouvez pas perdre ce que vous n'avez pas. Dans un environnement d'hébergement, sachez que votre hôte dispose également d'un accès et d'un contrôle sur cet environnement, de sorte que vous ne pouvez pas éviter certains risques. Si elles se comportent mal ou font des erreurs, vous êtes les données et les systèmes seront à risque. Probablement pas bien pour les secrets d'Etat, peut-être un niveau de risque acceptable pour votre site. C'est un jugement que vous devrez faire vous-même.


1

@ Le conseil de Terry est assez solide. Permettez-moi d'offrir une vue plus conceptuelle.

Votre serveur sera sécurisé si tout ce qui fonctionne dessus est comptabilisé et entretenu de manière appropriée. Bien que cela ressemble à une tautologie (il est), il pointe à certains principes généraux:

  • Toujours appliquer les mises à jour de sécurité du fournisseur de logiciels. Les distributions Linux ont des outils pour cela; laissez-les courir.
  • Si possible, n'installez pas un logiciel qui ne provient pas du fournisseur de distribution Linux, car un logiciel supplémentaire signifie un travail supplémentaire pour appliquer des correctifs de sécurité.
  • N'exécutez pas ce dont vous n'avez pas besoin. Une nouvelle installation de système d'exploitation vierge a tendance à générer un certain nombre de services qui ne sont pas strictement nécessaires pour vos opérations. En particulier, utilisez netstat -a pour voir les services accessibles à distance sur votre machine, et lsof pour trouver le processus correspondant.
  • Assurez-vous que, à tout moment, il existe une chaîne de responsabilité correctement définie. Si quelque chose se passe mal, les gens devraient savoir qui contacter et comment. Un serveur sans sysadmin clairement défini est un serveur qui fera bientôt partie d'un botnet, ou l'est déjà. Assurez-vous que lorsque vous partez en vacances, quelqu'un d'autre est disponible pour remplir les tâches d'administration du système.
  • Faire des sauvegardes. Gardez plusieurs sauvegardes successives au lieu de ne garder que la dernière. Cela aide beaucoup pour la récupération après une attaque, ne serait-ce que pour l'analyse post-mortem. N'oubliez pas que votre serveur est destiné à exécuter un service : la disponibilité est un objectif principal. Des sauvegardes fréquentes et complètes peuvent vous aider à mettre le service en ligne plus rapidement.