web-dev-qa-db-fra.com

Comment savoir quoi ou qui utilise ma bande passante?

Pour être honnête, je suis pauvre en administration de serveur, mais mon patron m'a demandé de l'aide. Son serveur a une bande passante limitée à 2 Go/jour et aujourd'hui, il a reçu un avertissement de la société qu'il la dépassait et utilisait ... 24 Go.

Comme c'est impossible car il était en chemin, il m'a demandé si je pouvais retrouver le problème. Je n'ai aucune idée par où commencer ni quoi faire.

Toute information serait utile, comment puis-je savoir ce qui ne va pas.

La machine fonctionne sur Ubuntu 12.04. Le plus curieux est que, selon les diagrammes reçus de l'hébergeur, seul le transfert sortant a été utilisé.

MODIFIER

Merci pour les suggestions, je vais lancer tcpdump et essayer d'examiner le résultat

17
kamil

Après avoir cherché pendant un certain temps quel est le problème (plus de 60 Go de bande passante en quelques jours), j'ai découvert que mon serveur était une source d'attaque DDOS.

Tout d'abord, j'ai essayé d'installer Oracle DB dessus, j'ai donc créé Oracle user. Les pirates ont réussi à casser la passe pour cet utilisateur (je suppose que je devrais le rendre plus difficile :(), ils ont créé un répertoire caché sous Oracle home, avec une crontab là-bas, qui a exécuté manuellement certains démons qui ont inondé le serveur cible.

De plus, les pirates ont créé 2 nouveaux utilisateurs sur mon serveur: avahi et colord. Que dois-je faire à leur sujet? J'ai googlé et semble que le logiciel du même nom n'est pas dangereux, mais j'ai supprimé ces utilisateurs (et Oracle aussi).

De plus, j'ai supprimé toute la maison Oracle, avec tout en elle.

Je suppose que je dois sécuriser davantage mon serveur, car il peut être attaqué à nouveau, merci à tous pour votre aide!

1
kamil

Pour une surveillance immédiate, vous pouvez utiliser iftop . Cela vous montrera les connexions actuellement actives et la bande passante qu'elles utilisent. Une fois que vous avez identifié une connexion à fort trafic, recherchez le numéro de port local et utilisez netstat pour trouver à quel processus la connexion appartient.

Sudo netstat -tpn | grep 12345

Pour une surveillance à plus long terme, je suggérerais quelque chose comme darkstat . Cela peut vous donner une ventilation par hôte et par port, ce qui pourrait vous permettre de comprendre à quoi le trafic est lié.

19
mgorven

Je recommanderais d'installer ntop.

http://www.ntop.org/

Mettez cela sur un emplacement de passerelle/routeur hôte et surveillez le trafic pendant une journée/semaine. Ntop fournit une interface utilisateur Web où vous pouvez obtenir une ventilation par IP/port/protocole.

7
dmourati

Le meilleur outil pour cela est probablement iftop , et facilement apt-get'able via Sudo apt-get install iftop. Il affichera la sortie en fonction des IP/noms d'hôte coupables:

             191Mb      381Mb                 572Mb       763Mb             954Mb
└────────────┴──────────┴─────────────────────┴───────────┴──────────────────────
box4.local            => box-2.local                      91.0Mb  27.0Mb  15.1Mb
                      <=                                  1.59Mb   761kb   452kb
box4.local            => box.local                         560b   26.8kb  27.7kb
                      <=                                   880b   31.3kb  32.1kb
box4.local            => userify.com                         0b   11.4kb  8.01kb
                      <=                                  1.17kb  2.39kb  1.75kb
box4.local            => b.resolvers.Level3.net              0b     58b    168b
                      <=                                     0b     83b    288b
box4.local            => stackoverflow.com                   0b     42b     21b
                      <=                                     0b     42b     21b
box4.local            => 224.0.0.251                         0b      0b    179b
                      <=                                     0b      0b      0b
224.0.0.251           => box-2.local                         0b      0b      0b
                      <=                                     0b      0b     36b
224.0.0.251           => box.local                           0b      0b      0b
                      <=                                     0b      0b     35b


─────────────────────────────────────────────────────────────────────────────────
TX:           cum:   37.9MB   peak:   91.0Mb     rates:   91.0Mb  27.1Mb  15.2Mb
RX:                  1.19MB           1.89Mb              1.59Mb   795kb   486kb
TOTAL:               39.1MB           92.6Mb              92.6Mb  27.9Mb  15.6Mb

N'oubliez pas les utilitaires sar et netstat classiques et puissants sur les anciens * nix!

Un autre excellent outil est nload , un excellent outil pour surveiller la bande passante en temps réel et facilement installé dans Ubuntu ou Debian avec Sudo apt-get install nload.

Device eth0 [10.10.10.5] (1/2):
=====================================================================================
Incoming:


                               .         ...|
                               #         ####|
                           .. |#|  ...   #####.         ..          Curr: 2.07 MBit/s
                          ###.###  #### #######|.     . ##      |   Avg: 1.41 MBit/s
                         ########|#########################.   ###  Min: 1.12 kBit/s
             ........    ###################################  .###  Max: 4.49 MBit/s
           .##########. |###################################|#####  Ttl: 1.94 GByte
Outgoing:
            ##########  ###########    ###########################
            ##########  ###########    ###########################
            ##########. ###########   .###########################
            ########### ###########  #############################
            ########### ###########..#############################
           ############ ##########################################
           ############ ##########################################
           ############ ##########################################  Curr: 63.88 MBit/s
           ############ ##########################################  Avg: 32.04 MBit/s
           ############ ##########################################  Min: 0.00 Bit/s
           ############ ##########################################  Max: 93.23 MBit/s
         ############## ##########################################  Ttl: 2.49 GByte
3
Jamieson Becker

Jetez un oeil à tcpdump . Il peut vider tout le trafic réseau (pas seulement TCP comme son nom l'indique), que vous pouvez ensuite lire avec une application comme Wireshark. Dans Wireshark, il est très facile de filtrer certains types de données et même de tracer des graphiques des E/S réseau.

Un autre outil utile pourrait être netstat qui affiche une liste des connexions réseau en cours. Il y a peut-être des connexions qui ne devraient pas exister. Tcpdump est beaucoup plus utile (capturez quelques minutes, puis vérifiez si vous pouvez déjà voir la source), mais netstat peut vous donner un aperçu rapide.

En lisant ce propos, mes premières réflexions sont que vous avez un malware sur votre serveur ou qu'il est utilisé pour des attaques d'amplification. Mais pour examiner cela, vous devez d'abord exécuter tcpdump.

Edit: Notez que tcpdump doit probablement être exécuté en tant que root, vous devrez peut-être utiliser Sudo tcpdump.

Un autre montage: comme je ne trouve pas vraiment une bonne page Web pour faire un lien sur les attaques d'amplification en général, voici une version courte:

Des protocoles comme DNS s'exécutent sur UDP. Le trafic UDP est sans connexion et vous pouvez donc très facilement usurper l'adresse IP de quelqu'un d'autre. Parce qu'une réponse DNS est généralement plus grande que la requête, cela peut être utilisé pour une attaque DoS. L'attaquant envoie une requête demandant tous les enregistrements du serveur DNS sur un nom donné, et indique au serveur DNS que la demande provient de X. Ce X est la cible que l'attaquant veut faire. Le serveur DNS répond alors gentiment, envoyant la réponse (grosse, disons 4 Ko) à X.

Il s'agit d'une amplification car l'attaquant envoie moins de données que X n'en reçoit réellement. DNS n'est pas le seul protocole avec lequel cela est possible.

2
Luc

Eh bien, une capture de paquets est généralement le premier point de départ dans des situations comme celles-ci. Assurez-vous que tcpdump est installé ($ Sudo apt-get install tcpdump), puis exécutez ce qui suit:

$ Sudo tcpdump -w packet.log

Cela va écrire un journal de tous les paquets dans packet.log. Laissez-le fonctionner pendant quelques minutes, puis téléchargez ce fichier et inspectez-le à l'aide de Wireshark . Si le trafic mystère est toujours en cours, il devrait être assez évident avec un coup d'œil rapide à travers les données de capture de paquets.

2
EEAA

Capturer tous les paquets envoyés en une journée lorsque vous dépassez votre quota de bande passante n'est probablement pas l'approche la plus judicieuse - comment allez-vous obtenir les données du système pour analyse?

Quel accès avez-vous sur la box? Quels ports sont ouverts? Avez-vous vérifié les journaux des services en cours d'exécution? Quelque chose comme awstats résumera les journaux FTP, HTTP et SMTP (en supposant que ces serveurs sont configurés pour enregistrer les données dans les journaux). OTOH mrtg enregistrera et suivra l'utilisation du réseau par point d'extrémité/port.

0
symcbean

si vous pensez que votre porc de bande passante est Apache, j'ai eu du succès avec cet outil dans le passé

Haut Apache

http://www.howtogeek.com/?post_type=post&p=324

0
The Unix Janitor