43 votes

Comment pouvez-vous savoir ce que fait réellement un serveur?

J'ai reçu 3 boîtes Linux, 1 orientée vers l'avant avec Apache dessus et les 2 autres qui, autant que je sache, ne font pas grand-chose. Tous fonctionnant sous Redhat.

La question est simple: Comment puis-je savoir ce que fait réellement le serveur? Aucune documentation n'est disponible auprès du créateur.

7 votes

La liste des processus, les écouteurs réseau (peut-être comparer à ce qui aurait dû être en cours d'exécution en se basant sur les scripts d'initialisation) ...

0 votes

"handed" comme accordé? (pour votre propre usage?) - Si c'est le cas, effacez et réinstallez à neuf, utilisez comme vous le souhaitez, est-ce important ce qu'ils ont fait?

1 votes

"handed" tel que donné pour soutien :|

43voto

Anax Points 5163

Débranchez le câble ethernet et voyez qui est contrarié.

Plus sérieusement, les machines mystérieuses comme celle-ci créent beaucoup de surcharge mentale pour une équipe et ne fournissent souvent aucune valeur commerciale. Parlez à votre patron, si personne ne sait ce qu'elle fait, peut-être que personne ne se soucie de ce qu'elle fait.

44 votes

NE L'ÉTEIGNEZ PAS. Débranchez le câble Ethernet, si vous voulez tester en criant. Si vous n'avez jamais eu de boîtier avec un temps de fonctionnement de deux ans échouer à redémarrer, vous le ferez à un moment donné. Ce n'est pas le moment d'ajouter cette frustration à l'équation. (Je copie ceci ici car cela doit être lu.)

3 votes

Vous avez tout à fait raison, j'ai modifié le post pour refléter cela. J'étais un peu facétieux mais je peux toujours être facétieux sans promouvoir le désastre.

8 votes

Avant de débrancher le réseau, il est une bonne idée de sauvegarder une liste des processus en cours d'exécution et des sockets ouverts sur chaque serveur - au cas où quelque chose dépendrait d'une connexion TCP entre les serveurs qui serait restée ÉTABLIE pendant de nombreux mois sans que personne ne pense à automatiser les étapes nécessaires pour l'ouvrir en premier lieu. (Par exemple, si quelqu'un avait besoin d'un transfert de port ssh temporaire puis l'a oublié.)

31voto

Aaron Copley Points 12225

C'est une question assez large pour le format Serverfault, mais voici un bon début :

  • Vérifiez les processus en cours d'exécution et ceux prévus pour s'exécuter au démarrage du système.
    • Examinez la configuration en cours d'exécution de chacun.
    • Regardez dans les répertoires de données définis. (Peut-être que quelqu'un a installé MySQL et l'a activé, mais il n'y a pas de bases de données.)
  • Vérifiez les tâches planifiées.
  • Vérifiez les journaux pour voir ;
    • qui s'est connecté récemment (et demandez-leur)
    • et pour avoir une idée de ce qui a été en cours d'exécution.

Vous n'avez pas mentionné la version, j'ai donc omis les détails.

8 votes

Il y a quelque chose de plus important que les services qui sont configurés pour démarrer lorsque le système démarre. Quels services sont actuellement en cours d'exécution? Démarrer un service et oublier de le configurer pour qu'il démarre au démarrage n'est pas une erreur difficile à commettre. En relation avec ceci, il est bon de regarder d'autres états du système tels que : les points de montage, la table de routage, les règles iptables. Toutes ces choses pourraient facilement être modifiées pendant que le système est en cours d'exécution sans penser à mettre à jour les fichiers de configuration utilisés lors du démarrage.

0 votes

En outre, je utiliserais un scanner de port pour voir quels ports sont ouverts, puis essayer de s'y connecter en utilisant les outils habituels. Par exemple, si le port 443 est ouvert, vous pourriez essayer d'utiliser un navigateur Web pour s'y connecter. J'ai souvent dû explorer des serveurs apparemment abandonnés et l'un de mes outils préférés pour naviguer rapidement à travers les fichiers de configuration dans /etc et d'autres endroits est d'utiliser "lynx" ou "links" si vous préférez. Ce sont des navigateurs Web basés sur des caractères qui font également un assez bon travail en tant que navigateur de fichiers, avec une navigation pratique à l'aide des touches de curseur.

1 votes

@kasperd Beau jeu pour la course contre des services persistants. Mais, j'ai pensé aux règles du pare-feu, aux points de montage, etc. Ils me semblent être des composants accessoires qui seront déjà liés à l'un des points existants. Votre expérience peut varier.

19voto

Itai Ganot Points 10219

Il y a quelques choses que vous pourriez faire pour essayer de déterminer ce qui se passe sur votre système.

Vous pouvez vérifier sur quels ports votre serveur écoute pour avoir une idée de ce qui se trouve dessus. Une bonne commande à utiliser serait :

 [root@server ~]# netstat -tulpn
Connexions Internet actives (serveurs uniquement)
Proto Recv-Q Send-Q Adresse locale               Adresse distante             Etat     PID/Nom du programme
tcp        0      0 0.0.0.0:139                 0.0.0.0:*                   LISTEN   1880/smbd
tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LISTEN   1911/nrpe
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN   1759/sshd

Comme vous pouvez le voir dans la sortie exemple ci-dessus, il vous présente la version du protocole (tcp ou udp), l'adresse sur laquelle il écoute, le port ouvert et le programme qui écoute.

Dans l'exemple tronqué ci-dessus (une machine serveur), vous pouvez voir que les ports tcp 139, 5666 et 22 sont en écoute. Ils correspondent respectivement à samba, nrpe (agent Nagios) et ssh, et cela est confirmé lorsque vous vérifiez le programme qui écoute sur ce port.

De plus, vous pouvez vérifier la liste des démons qui sont configurés pour démarrer au démarrage. Pour cela, exécutez : chkconfig --list | grep "3:on"

Exemple :

[root@server ~]# chkconfig --list | grep "3:on"
NetworkManager  0:off   1:off   2:on    3:on    4:on    5:on    6:off
acpid           0:off   1:off   2:on    3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
sysstat         0:off   1:on    2:on    3:on    4:on    5:on    6:off
udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off
vncserver       0:off   1:off   2:on    3:on    4:on    5:on    6:off
webmin          0:off   1:off   2:on    3:on    4:off   5:on    6:off
x2gocleansessions       0:off   1:off   2:on    3:on    4:on    5:on    6:off
.
.
.

ou :

service --status-all

5 votes

Je trouve netstat -plunt plus facile à retenir.

2 votes

Aussi, tcpdump peut être utile pour déterminer qui utilise réellement chaque service.

18voto

Konrad Gajewski Points 1488

Une autre méthode consiste à vérifier le répertoire /etc et regarder les dates de modification. Après une nouvelle installation, tous les fichiers de ce répertoire devraient avoir à peu près la même date/heure. Et comme une installation installe généralement beaucoup de choses que les gens n'utilisent généralement pas, seuls les fichiers ayant une date de modification ultérieure reflètent le véritable but du serveur. Si c'est du ext4, vous devriez également pouvoir extraire la date de création des répertoires, donc la tâche pourrait être assez facile.

Une autre méthode consisterait à vérifier les fichiers .bash_history pour voir ce que les administrateurs ont fait. Ce fichier peut fournir une mine d'informations.

7voto

Luke McCarthy Points 31

Vérifiez les règles du pare-feu. Avec un peu de chance, il est configuré pour un mode refus par défaut. Cela signifie qu'il existe une règle explicite pour chaque service autorisé.

C'est mieux que netstat car cela peut également montrer les ports qui sont ouverts, par exemple pour les sauvegardes nocturnes.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X