Lorsque je dois administrer un serveur Linux existant, quelle est la meilleure façon de vérifier s'il est sécurisé?

9

Il existe de nombreux didacticiels sur la configuration d'un nouveau serveur sécurisé.

Mais que se passe-t-il si je dois administrer un serveur que quelqu'un d'autre a configuré il y a quelque temps et que je ne connais pas encore bien sa configuration?

Existe-t-il un outil qui vérifie automatiquement les "suspects habituels" ou une liste de contrôle que je peux parcourir pour m'assurer qu'il n'y a pas de failles de sécurité évidentes? Existe-t-il des services Web qui vérifient à distance les vulnérabilités?

Daniel Rikowski
la source

Réponses:

13

Téléchargez Nessus et effectuez une vérification du réseau. Il vous renseignera sur les vulnérabilités exploitables à distance.

Installez également Ossec ; bien que ce ne soit pas son objectif principal, il trouvera des erreurs de configuration courantes (comptes mal configurés par exemple). Et sa fonction principale - la détection d'intrusion basée sur l'hôte - aidera à trouver si quelqu'un essaie d'exploiter les vulnérabilités.

niXar
la source
5
Nessus n'est plus open-source. Son fork open-source s'appelle openvas.
Anonyme
1
Je connais. Mais il s'agit toujours de l'IIRC gratuit sous forme de bière, et l'affiche n'a jamais dit qu'il ne voulait que du F / OSS.
niXar
+1 Nessus est très bon, j'exécuterais également et Nmap scan charger les résultats dans Nessus pourrait l'aider à détecter quelques vulnérabilités supplémentaires dans certains cas.
Mark Davidson
1
+1 pour OSSEC. Il dispose également d'un module d'audit de rootkit / système que vous pouvez exécuter de manière autonome: ossec.net/rootcheck
sucuri
5

Je commencerais par les listes de contrôle «de référence» du Center for Internet Security . Il s'agit de listes de contrôle basées sur le consensus et compilées par des professionnels de la sécurité pour une variété de plateformes et de progiciels. Certains outils mentionnés par les listes de contrôle, ou autrement couramment recommandés, vous aideront dans votre recherche de problèmes de sécurité:

  • Nessus / OpenVAS (scanner de vulnérabilité)
  • Nmap (scanner de ports)
  • TCPdump / Wireshark (capture de paquets libpcap)
  • SNORT (système de détection d'intrusion)

(tcpdump est installé sur de nombreux systèmes Linux par défaut, ou peut être facilement installé à partir d'un référentiel de packages, et possède une page de manuel complète)

S'il s'agit de l'entreprise pour laquelle vous travaillez, assurez-vous que l'analyse de sécurité est autorisée par la direction et que les analyses ne provoqueront pas de panne ou de stupidité d'application. Oui, un simple portscan peut causer des problèmes - portscan les anciennes imprimantes HP Laserjet et elles cracheront des tas de papier.

jtimberman
la source
4

Comme première vérification très rapide:

Courir

netstat -ltnp

en tant que root. Cela vous montrera tous les services à l'écoute sur le réseau:

Cela pourrait vous montrer des choses que vous souhaitez arrêter immédiatement. Ensuite, vous pouvez continuer avec les solutions des autres réponses.

Pour les services qui doivent être exécutés, mais qui ne sont pas accessibles de l'extérieur (comme un serveur de base de données local), envisagez de modifier la configuration afin qu'elle n'écoute que sur localhost / 127.0.0.1. De cette façon, il n'est accessible qu'aux utilisateurs locaux.

sleske
la source
4

Je vérifierais Bastille-Linux sur http://www.bastille-unix.org/ , c'est un ensemble de scripts que vous pouvez exécuter et il vérifiera les paramètres système, les autorisations de fichiers, la configuration utilisateur, etc. Je l'ai utilisé une ou deux fois sur mes propres boîtes, et si trouve des problèmes sur les installations par défaut (principalement r_x sur les utilitaires rsh / rsync). Il sort en html / java + curses / texte plat.

Jimsmithkka
la source
3

Quelle distribution?

Général:

  • Examiner les paramètres iptables et / ou pare-feu
  • Examiner les configurations SSHD
  • Examiner toutes les configurations de service accessibles en externe
  • Assurez-vous que vous utilisez le dernier logiciel disponible
  • Recherchez les vulnérabilités du noyau (uname -a puis google)
  • Examiner les autorisations utilisateur et les autorisations de groupe sur les fichiers modifiables
David Rickman
la source
Pas de distribution spéciale / toutes les distributions
Daniel Rikowski
En outre, vous souhaiterez peut-être récupérer une liste des packages installés. Quelque chose comme dpkg --get-selections> installed_pkgs.txt pour les distributions debian.
David Rickman
2
Vous devrez peut-être également vérifier les fichiers setuid / setgid inhabituels, quels comptes ont des mots de passe définis, quel est leur shell de connexion, etc. pour éliminer les portes dérobées faciles.
mas
Grande suggestion mas, j'ai complètement oublié celle-là, qui est potentiellement un énorme trou.
David Rickman
3

Une autre bonne première vérification consiste à exécuter le nom d' hôte nmap à partir d'un autre hôte sur le réseau. Cela donne une vue extérieure à ce que Netstat a montré sur l'hôte.

kmarsh
la source
3

Si vous êtes inquiet, je vous recommande de suivre les tutoriels que vous avez mentionnés et de reconstruire le serveur. Surtout si vous pensez que l'autre administrateur a peut-être laissé quelque chose de mal. En tant que nouvel administrateur, vous devez de toute façon savoir comment déployer le service qu'il exécute.

Assurez-vous simplement de tout sauvegarder en premier, vous pouvez créer une image de toutes les partitions pour vous assurer de bien faire les choses.

Si votre patron ne vous laisse pas, alors les recommandations de tout le monde me semblent bonnes :-)

Kyle Brandt
la source
+1: Si sa création / configuration n'est pas documentée et que vous avez le temps, alors profitez-en pour la reconstruire. Plutôt que de devoir le faire sous la contrainte à une date ultérieure. Ensuite, vous pouvez être sûr qu'il est sécurisé et qu'il sera documenté pour référence future.
Dan Carley
2

En plus de quelques-unes des très bonnes réponses ici, consultez http://www.sans.org/ . Ils ont de très bons documents si vous êtes prêt à faire une petite lecture pour mieux comprendre la "défense en profondeur".

Certains des prémisses très basiques:

  • garder vos serveurs patchés
  • exécuter uniquement les services qui doivent être exécutés
  • limiter l'accès des utilisateurs au serveur
Greeblesnort
la source
1
N'oubliez pas de limiter également l'accès physique, non seulement depuis le réseau.
iny
1

Essayez également chkrootkit , il vient dans le référentiel standard de la plupart des distributions et est de toute façon très facile à installer. Il vérifiera votre système pour de nombreuses vulnérabilités, rootkits et vers connus.

wazoox
la source
1

Une chose que vous pouvez faire pour avoir une idée du système est de comparer le dossier / etc à une nouvelle installation (avec les mêmes mises à jour appliquées). Cela vous dira ce qui a changé afin que vous puissiez vous concentrer sur vos problèmes de sécurité.

Chris Nava
la source
1

Pour développer ce que mas a dit, voici une simple commande find pour répertorier tous les fichiers setuid et setgid sur le système pour examen.

find / -type f \( -perm -4000 -o -perm -2000 \) -print

Bien sûr, comme d'autres l'ont dit, tout cela suppose que la machine ne dispose pas déjà d'un rootkit ...

Brad
la source
1

Chrootkit / rkhunter sont les longs fruits suspendus. Si vous avez installé un rootkit, tout ce qui est signalé sera compromis et donc pas beaucoup d'aide, alors veuillez les télécharger à partir d'une source connue, n'utilisez pas ceux déjà sur la boîte. Une autre bonne astuce consiste à installer un noyau que vous savez être bon (à partir de packages ou à lancer le vôtre). Vérifiez les portes dérobées (lsof -i et 0 uid comptes non root). L'inspection des règles de pare-feu peut généralement vous en dire beaucoup sur les habitudes des administrateurs précédents. Mettez un wirehark / snort dessus, essayez de repérer quelque chose d'inhabituel. Regardez où vont les journaux. Consultez tous les types de fichiers .profile / .bashrc pour toute commande inhabituelle. Recherchez dans .ssh / known_hosts tous les hôtes douteux.

Marcin
la source