Como descobrir o que ou quem está usando minha largura de banda?

17

Para ser sincero, sou pobre em administração de servidores, mas meu chefe me pediu ajuda. Seu servidor tem uma largura de banda limitada de 2 GB / dia e hoje ele recebeu um aviso da empresa de que o excedeu e usou ... 24 GB.

Como é impossível porque ele era do jeito, ele me perguntou se eu posso rastrear o problema. Não faço ideia por onde começar ou o que fazer.

Qualquer informação seria útil, como posso descobrir o que está errado.

A máquina está sendo executada no Ubuntu 12.04. O mais curioso é que, de acordo com os diagramas recebidos do hoster, apenas a transferência de saída era usada.

EDITAR

Obrigado por sugestões, vou executar o tcpdump e tentar examinar o resultado

kamil
fonte
Poste seus comentários como um comentário, não no corpo da sua pergunta.
EEAA
Aqui está minha pergunta: posso executar o tcpdump em segundo plano para coletar dados de digamos um dia?
Kamil
Você pode sim. Você precisaria executá-lo em uma sessão de tela ou algo assim. Cuidado, porém ... você precisa ter disco suficiente para armazenar todos os dados capturados. Você provavelmente deve ler a tcpdumppágina de manual e ver como configurá-la para capturar apenas os cabeçalhos TCP / IP, descartando o restante dos dados do pacote.
EEAA

Respostas:

18

Para monitoramento imediato, você pode usar o iftop . Isso mostrará as conexões atualmente ativas e a largura de banda que eles estão usando. Depois de identificar uma conexão de alto tráfego, encontre o número da porta local e use netstatpara descobrir a qual processo a conexão pertence.

sudo netstat -tpn | grep 12345

Para monitoramento de longo prazo, sugiro algo como darkstat . Isso pode fornecer uma análise por host e porta, o que pode permitir que você descubra a que o tráfego está relacionado.

mgorven
fonte
1
iotop? Ou você estava pensando em iftop ?
EEAA
@ ErikA Uh, sim ... foi o que eu disse!
mgorven
7

Eu recomendo instalar o ntop.

http://www.ntop.org/

Coloque isso em um local de gateway / roteador de host e observe o tráfego por um dia / semana. O Ntop fornece uma interface da web na qual você pode obter uma análise por IP / porta / protocolo.

dmourati
fonte
2

Bem, uma captura de pacotes geralmente é o primeiro lugar para começar em situações como estas. Verifique se tcpdump está instalado ( $ sudo apt-get install tcpdump) e execute o seguinte:

$ sudo tcpdump -w packet.log

Isso escreverá um log de todos os pacotes para packet.log. Deixe isso funcionar por alguns minutos, faça o download desse arquivo e inspecione usando o Wireshark . Se o tráfego misterioso ainda está acontecendo, deve ser bastante óbvio com uma rápida olhada nos dados de captura de pacotes.

EEAA
fonte
Usando o wireshark, use o menu Estatísticas - Pontos finais. Você pode selecionar IP ou TCP ou outras listas e classificar por quantidade recebida / transmitida por cada terminal. Onde o terminal será o endereço IP ou a máquina. Mas alguns pontos de extremidade podem ser gateway ou switch, portanto, seria necessário executar outro tcpdump e wireshark nesse gateway para rastrear o usuário da largura de banda.
gaoithe
2

Dê uma olhada no tcpdump . Ele pode despejar todo o tráfego de rede (não apenas o tcp como o nome sugere), que você pode ler com um aplicativo como o Wireshark. No Wireshark, é muito fácil filtrar certos tipos de dados e até plotar gráficos da E / S da rede.

Outra ferramenta útil pode ser o netstat, que exibe uma lista de conexões de rede em andamento. Talvez haja conexões que não deveriam estar lá. O tcpdump é muito mais útil (capture alguns minutos e verifique se você já pode ver a fonte), mas o netstat pode fornecer uma visão geral rápida.

Ao ler isso a propósito, meus primeiros pensamentos são que você possui malware no servidor ou que está sendo usado para ataques de amplificação. Mas, para examinar isso, você precisará executar o tcpdump primeiro.

Edit: Observe que o tcpdump provavelmente precisa ser executado como root, talvez você precise usá-lo sudo tcpdump.

Outra edição: como não consigo realmente encontrar uma boa página da web para vincular o que são ataques de amplificação em geral, aqui está uma versão curta:

Protocolos como o DNS são executados no UDP. O tráfego UDP é sem conexão e, portanto, você pode facilmente falsificar o endereço IP de outra pessoa. Como uma resposta DNS geralmente é maior que a consulta, isso pode ser usado para um ataque de negação de serviço. O invasor envia uma consulta solicitando todos os registros que o servidor DNS possui em um determinado nome e informa ao servidor DNS que a solicitação se originou do X. Esse X é o destino que o invasor deseja DoS. O servidor DNS responde gentilmente, enviando a resposta (grande, digamos, 4kB) ao X.

Isso é amplificação porque o invasor envia menos dados do que o X realmente recebe. O DNS não é o único protocolo com o qual isso é possível.

Luc
fonte
1
Sim. tcpdump -i qualquer -w /tmp/traffic.pcap. Usando o wireshark, use o menu Estatísticas - Pontos finais. Classifique pelo valor recebido / transmitido.
precisa saber é
2

A melhor ferramenta para isso é provavelmente iftop , e facilmente apt-get'able via sudo apt-get install iftop. Ele exibirá a saída de acordo com os nomes de host / IP culpados:

             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ão se esqueça dos utilitários clássicos e poderosos de sar e netstat no antigo * nix!

Outra ótima ferramenta é o nload , uma ótima ferramenta para monitorar a largura de banda em tempo real e facilmente instalada no Ubuntu ou Debian com o 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
fonte
1

Depois de pesquisar por um bom tempo, qual é o problema (mais de 60 GB de largura de banda em poucos dias) descobri que meu servidor era uma fonte de ataque DDOS.

Primeiro de tudo, tentei instalar o Oracle DB nele, portanto criei o usuário Oracle. Os hackers, de alguma forma, conseguiram quebrar o passe para esse usuário (acho que eu deveria dificultar :(), eles criaram um diretório oculto sob o Oracle home, com um crontab lá, que executava manualmente alguns daemon que inundavam o servidor de destino.

Além disso, os hackers criaram 2 novos usuários no meu servidor: avahi e colord. O que devo fazer sobre eles? Pesquisei no Google e parece que o software com o mesmo nome não é perigoso, mas excluí esses usuários (e também o Oracle).

Além disso, eu apaguei todo o oracle em casa, com tudo nele.

Acho que preciso proteger mais meu servidor, pois ele pode ser atacado novamente, obrigado a todos pela ajuda!

kamil
fonte
4
eu limpava o servidor e começava novamente, nunca confio em um servidor após um compromisso. nuke o site da órbita, é a única maneira de ter certeza.
The Unix Janitor
Yupp eu vou fazer isso, em primeiro lugar de backup de alguns dados (svn repositório, scripts de usefull)
kamil
para garantir que os dados ainda tenham integridade, é sabido que os invasores modificam o código-fonte e os scripts para colocar as portas dos fundos. Eu certamente comparar a mais recente fonte svn com uma versão recentemente check-out antes da intrusão entrou.
O Unix zelador
0

Capturar todos os pacotes enviados em um dia em que você excede sua cota de largura de banda provavelmente não é a abordagem mais sensata - como você obterá os dados do sistema para análise?

Que acesso você tem na caixa? Quais portas estão abertas? Você verificou os logs dos serviços em execução? Algo como o awstats resumirá os logs FTP, HTTP e SMTP (assumindo que esses servidores estejam configurados para registrar os dados nos logs). O OTOH mrtg registrará e rastreará o uso da rede por terminal / porta.

symcbean
fonte