web-dev-qa-db-fra.com

Sécuriser un serveur d'Ubuntu frais

Dis que j'ai une nouvelle installation d'Ubuntu, quelles étapes dois-je prendre pour le sécuriser pour être utilisée comme Rails Application Server?

37
Codebeef

Je ne peux pas penser à des modifications spécifiques à Ubuntu, mais voici quelques-uns qui s'appliquent à toutes les distributions:

  1. Désinstallez tous les forfaits inutiles
  2. Utilisez une authentification sans clé publique en SSH
  3. Désactiver les connexions racines via SSH (ne s'applique pas à Ubuntu)
  4. Utilisez les paramètres de production pour PHP (Recommandé php.ini)
  5. Configurez MySQL pour utiliser des sockets uniquement

Bien sûr, cette liste n'est pas complète et vous ne serez jamais complètement sûr, mais cela couvre tous les exploits [~ # ~] i [~ # ~] ont vu dans la vraie vie.

En outre, les exploits que j'ai vus étaient presque toujours liés au code d'utilisateur non sécurisé, pas de configuration non sécurisée. Les configurations par défaut dans des distributions minimales et des serveurs ont tendance à être assez sécurisées.

25
Can Berk Güder

Une chose rapide que je fais tôt est d'installer Denyhosts . Il examinera régulièrement à travers le/var/log/sécurisé, à la recherche de connexions en panne et après quelques échecs, bloquez la propriété intellectuelle. Je l'ai défini pour bloquer après le premier utilisateur sans cessieurs, sur la deuxième tentative de la racine, et après quelques essais pour des utilisateurs réels (au cas où vous vous tromperez, mais vous devriez utiliser une clé publique SSH pour vous connecter).

17
Alister Bulman

Ubuntu est basée sur Debian et j'ai trouvé le Securing Debian Manual Pour être très utile dans les distributions basées sur Debian en vous promenant complètement dans votre système et en vérifiant chaque partie. C'est fondamentalement une réponse vraiment très complète à votre question.

10
Mike McQuaid

J'installure habituellement Rkhunter, qui analyse pour rootkits et fait des vérifications d'intégrité de divers fichiers binaires de système importants. C'est dans le repo standard et courbera tous les jours de Cron. Ce n'est pas parfait, Solidaywise, mais c'est un élément de faible effort à ajouter, et il fournit une mesure de protection.

5
Tim Howland

Installez Logcheck, mais ajustez de sorte que vous ne receviez jamais de messages d'événements réguliers, sinon vous obtiendrez l'habitude d'ignorer les courriels.

Vérifiez que les processus écoutent à l'aide de NetStat et assurez-vous que rien ne fonctionne de fonctionner. De nombreux démons peuvent être configurés uniquement pour écouter sur l'adresse IP interne (ou localhost) au lieu de toutes les interfaces.

4
Mikeage

Faire ce que peut suggérer ...

NMAP l'hôte et désactiver tous les services non essentiels. Utilisez des iptables si nécessaire.

3
Jauder Ho

Utilisez des partitions séparées pour divers répertoires tels que /tmp ou /var et montez-les avec nosuid, nodev et noexec si possible.

3
Cristian Ciupitu

Si vous allez n'importe où sur Internet avec le serveur, installez un système de détection d'intrusion comme Snort.

3
Timo Geusch

Quelques suggestions de pare-feu.

Apprenez à utiliser un pare-feu et les concepts de verrouillage correctement une boîte. La modification des ports par défaut est en grande partie une chose inutile; La configuration appropriée des applications et du pare-feu sont beaucoup plus importantes.

Les deux sont dans les repos ubuntu:

Firehol

a une documentation formidable et une syntaxe très facile à apprendre. J'ai pu installer une passerelle/pare-feu en vingt minutes. La seule raison pour laquelle je me suis éloigné, c'est qu'il ne semble pas être maintenu (dernière libération il y a 2 ans). Cela ne veut pas dire que ça ne marche pas, mais ...

FERM

est un autre. Plus de syntaxe d'iptables, mais même concept. Plus de communauté maintenue que Firehol, mais prend plus de temps à ramasser.

Shorewall

est ce que j'utilise actuellement. Sa documentation est étendue et son format de configuration est tabulaire. Cela m'a fallu environ une heure et demie pour comprendre tous les fichiers nécessaires (6) pour obtenir une exécution de pare-feu/passerelle de travail fonctionnant. C'est assez puissant. Conseil: Les pages de l'homme pour les différents fichiers de configuration sont vraiment utiles!

Toutes ces configurations de pare-feu Charge à partir d'un fichier de configuration. Très efficace, plus facile à utiliser que les iptables directement, et (à mon avis) plus facile à utiliser et à gérer que UFW.

Autre:

  • I Deuxièmement, les recommandations pour l'utilisation clé SSH.

  • Configurez un identifiant.

  • En savoir plus sur Apparmor. Il limite l'accès au fichier d'exécutables à seulement des répertoires spécifiés et des fichiers dont il a besoin. Semblable à Selinux dans le monde Rhel. Il est installé et activé avec des "profils" préconfigurés pour de nombreux programmes bien utilisés.

3
Luke has no name

Ainsi que d'autres suggestions ici, je vais mentionner trois évidentes, mais peut-être la peine d'être mentionnée pour la complétude:

  1. Si vous ne pensez pas que vous avez besoin d'un pare-feu, repensez-y. ufw est simple mais conçu pour Ubuntu et basé sur iptables
  2. Mettre à jour les paquets: au minimum appliquer tous les correctifs de sécurité
  3. Documez ce que vous avez fait pour sécuriser le serveur et pourquoi. Inclure la configuration des processus (automatisés) pour surveiller les journaux, tester la configuration et les mises à jour de sécurité des rapports nécessaires.
2
mas