¿Cómo saber qué o quién está usando mi ancho de banda?

17

Para ser honesto, soy pobre en la administración del servidor, pero mi jefe me pidió ayuda. Su servidor tiene un ancho de banda limitado de 2GB / día y hoy recibió una advertencia de la compañía de que lo excedió y usó ... 24GB.

Como es imposible porque era así, me preguntó si podía localizar el problema. No tengo idea de por dónde empezar o qué hacer.

Cualquier información sería útil, ¿cómo puedo averiguar qué está mal?

La máquina se está ejecutando en Ubuntu 12.04. Lo más curioso es que, según los diagramas recibidos del proveedor de alojamiento, solo se utilizó la transferencia saliente.

EDITAR

Gracias por las sugerencias, ejecutaré tcpdump e intentaré examinar el resultado.

kamil
fuente
Publique sus comentarios como un comentario, no en el cuerpo de su pregunta.
EEAA
Aquí está mi pregunta, ¿puedo ejecutar tcpdump en segundo plano, para que recopile datos de digamos un día?
kamil
Puedes, si. Tendría que ejecutarlo desde una sesión de pantalla o algo así. Sin embargo, tenga cuidado ... necesita asegurarse de tener suficiente disco para almacenar todos los datos capturados. Probablemente debería leer la tcpdumppágina de manual y ver cómo configurarla para capturar solo los encabezados TCP / IP, descartando el resto de los datos del paquete.
EEAA

Respuestas:

18

Para un monitoreo inmediato, puede usar iftop . Esto le mostrará las conexiones activas actualmente y el ancho de banda que están utilizando. Una vez que haya identificado una conexión de alto tráfico, busque el número de puerto local y úselo netstatpara encontrar a qué proceso pertenece la conexión.

sudo netstat -tpn | grep 12345

Para un monitoreo a más largo plazo, sugeriría algo como darkstat . Esto puede proporcionarle un desglose por host y puerto que podría permitirle averiguar con qué está relacionado el tráfico.

mgorven
fuente
1
iotop? ¿O estabas pensando en iftop ?
EEAA
@ErikA Uh, sí ... eso es lo que dije!
mgorven
7

Recomiendo instalar ntop.

http://www.ntop.org/

Póngalo en una ubicación de puerta de enlace / enrutador host y observe el tráfico durante un día / semana. Ntop proporciona una interfaz de usuario web donde puede obtener un desglose por IP / puerto / protocolo.

dmourati
fuente
2

Bueno, una captura de paquetes suele ser el primer lugar para comenzar en situaciones como estas. Asegúrese de que tcpdump esté instalado ( $ sudo apt-get install tcpdump) y luego ejecute lo siguiente:

$ sudo tcpdump -w packet.log

Esto escribirá un registro de todos los paquetes en packet.log. Deje que se ejecute durante unos minutos, luego descargue ese archivo e inspeccione con Wireshark . Si el tráfico misterioso sigue ocurriendo, debería ser bastante obvio con una mirada superficial a través de los datos de captura de paquetes.

EEAA
fuente
Usando wireshark use el menú Estadísticas - Puntos finales. Luego puede seleccionar IP o TCP u otras listas y ordenar por cantidad recibida / transmitida por cada punto final. Donde el punto final será la dirección IP o la máquina. Pero algunos puntos finales pueden ser gateway o switch, por lo que tendrían que hacer otro tcpdump y wireshark en ese gateway para rastrear al usuario de ancho de banda.
gaoithe
2

Echa un vistazo a tcpdump . Puede volcar todo el tráfico de red (no solo tcp como su nombre lo sugiere), que luego puede leer con una aplicación como Wireshark. En Wireshark es muy fácil filtrar ciertos tipos de datos e incluso trazar gráficos de las E / S de la red.

Otra herramienta útil podría ser netstat, que muestra una lista de conexiones de red en curso. Quizás hay conexiones que no deberían estar allí. Tcpdump es mucho más útil (captura unos minutos, luego verifica si ya puedes ver la fuente), pero netstat puede darte una visión general rápida.

Al leer esto por cierto, mi primer pensamiento es que tienes malware en tu servidor o que se está utilizando para ataques de amplificación. Pero para examinar esto, primero deberá ejecutar tcpdump.

Editar: Tenga en cuenta que tcpdump probablemente deba ejecutarse como root, tal vez deba usarlo sudo tcpdump.

Otra edición: dado que realmente no puedo encontrar una buena página web para vincular qué ataques de amplificación son en general, aquí hay una versión corta:

Los protocolos como DNS se ejecutan en UDP. El tráfico UDP no tiene conexión y, por lo tanto, puede suplantar fácilmente la dirección IP de otra persona. Debido a que una respuesta DNS generalmente es más grande que la consulta, esto se puede usar para un ataque DoS. El atacante envía una consulta solicitando todos los registros que el servidor DNS tiene en un nombre dado, y le dice al servidor DNS que la solicitud se originó en X. Esta X es el objetivo que el atacante quiere hacer. El servidor DNS luego amablemente responde, enviando la respuesta (grande, digamos 4kB) a X.

Esto es amplificación porque el atacante envía menos datos de los que X realmente recibe. DNS no es el único protocolo con el que esto es posible.

Luc
fuente
1
Si. tcpdump -i any -w /tmp/traffic.pcap. Usando wireshark use el menú Estadísticas - Puntos finales. Ordenar por cantidad recibida / transmitida.
gaoithe
2

La mejor herramienta para esto es probablemente iftop , y fácilmente apt-get'able a través de sudo apt-get install iftop. Mostrará la salida de acuerdo con los nombres de host / IP del culpable:

             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

¡No se olvide de las clásicas y poderosas utilidades sar y netstat en las versiones anteriores * nix!

Otra gran herramienta es nload , una gran herramienta para monitorear el ancho de banda en tiempo real y se instala fácilmente en Ubuntu o Debian con 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
Jamieson Becker
fuente
1

Después de buscar durante bastante tiempo cuál es el problema (más de 60 GB de ancho de banda en pocos días) descubrí que mi servidor era una fuente de ataque DDOS.

En primer lugar, intenté instalar Oracle DB en él, por lo tanto, creé un usuario Oracle. Los piratas informáticos de alguna manera lograron romper el paso para ese usuario (supongo que debería hacerlo más difícil :(), hicieron un directorio oculto debajo de la casa de Oracle, con un crontab allí, que ejecutó manualmente algunos demonios que inundaron el servidor de destino.

Además, los hackers crearon 2 nuevos usuarios en mi servidor: avahi y colord. ¿Qué debo hacer al respecto? Busqué en Google y parece que el software con el mismo nombre no es peligroso, pero eliminé esos usuarios (y Oracle también).

Además, borré toda la casa de Oracle, con todo lo que contiene.

Supongo que necesito asegurar más mi servidor, ya que puede ser atacado nuevamente, ¡gracias a todos por su ayuda!

kamil
fuente
44
borraría su servidor y comenzaría de nuevo, nunca confío en un servidor después de un compromiso. Destrozar el sitio desde la órbita, es la única forma de estar seguro.
El conserje de Unix
Sí, voy a hacer eso, primero copia de seguridad de algunos datos (repositorio svn, scripts útiles)
kamil
asegúrese de que los datos aún tengan integridad, los intrusos deben saber cómo modificar el código fuente y las secuencias de comandos para colocar puertas traseras. Ciertamente compararía la última fuente de svn con una versión recientemente revisada antes de que entrara la intrusión.
The Unix Janitor
0

Capturar todos los paquetes enviados en un día cuando excede su cuota de ancho de banda probablemente no sea el enfoque más sensato: ¿cómo va a obtener los datos del sistema para su análisis?

¿Qué acceso tienes en la caja? ¿Qué puertos están abiertos? ¿Ha verificado los registros de los servicios que se están ejecutando? Algo así como awstats resumirá los registros FTP, HTTP y SMTP (suponiendo que estos servidores estén configurados para registrar los datos en los registros). OTOH mrtg registrará y rastreará el uso de la red por punto final / puerto.

symcbean
fuente