Назад | Перейти на главную страницу

Как узнать, что или кто использует мою пропускную способность?

Если честно, я плохо разбираюсь в администрировании серверов, но мой босс попросил меня о помощи. Его сервер имеет ограниченную пропускную способность 2 ГБ в день, и сегодня он получил предупреждение от компании, что он превысил ее и использовал ... 24 ГБ.

Поскольку это невозможно, потому что он был в пути, он спросил меня, могу ли я отследить проблему. Я понятия не имею, с чего начать и что делать.

Любая информация будет полезна, как я могу узнать, что не так.

Машина работает под управлением Ubuntu 12.04. Самое любопытное, что согласно схемам, полученным от хостера, использовалась только исходящая передача.

РЕДАКТИРОВАТЬ

Спасибо за предложения, запущу tcpdump и попробую проверить результат

Для немедленного мониторинга вы можете использовать iftop. Это покажет вам активные в настоящее время соединения и используемую ими полосу пропускания. Как только вы определили соединение с высоким трафиком, найдите номер локального порта и используйте netstat чтобы узнать, к какому процессу принадлежит соединение.

sudo netstat -tpn | grep 12345

Для более длительного мониторинга я бы предложил что-то вроде darkstat. Это может дать вам разбивку по хостам и портам, что может позволить вам выяснить, с чем связан трафик.

Рекомендую установить ntop.

http://www.ntop.org/

Поместите это в местоположение шлюза хоста / маршрутизатора и наблюдайте за трафиком в течение дня / недели. Ntop предоставляет веб-интерфейс, в котором вы можете получить разбивку по IP / порту / протоколу.

Вероятно, лучший инструмент для этого iftop, и легко apt-get'able через sudo apt-get install iftop. Он будет отображать вывод в соответствии с IP-адресами / именами хостов:

             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

Не забывайте о классических и мощных утилитах sar и netstat в старых версиях * nix!

Еще один отличный инструмент - nload, отличный инструмент для мониторинга пропускной способности в реальном времени, который легко устанавливается в Ubuntu или Debian с помощью 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

Что ж, в подобных ситуациях обычно первым делом следует начинать захват пакета. Убедитесь, что tcpdump установлен ($ sudo apt-get install tcpdump), а затем запустите следующее:

$ sudo tcpdump -w packet.log

Это запишет журнал всех пакетов в packet.log. Дайте ему поработать несколько минут, затем загрузите этот файл и проверьте, используя Wireshark. Если загадочный трафик все еще существует, это должно быть совершенно очевидно при беглом взгляде на данные захвата пакетов.

Посмотри на tcpdump. Он может сбрасывать весь сетевой трафик (не только tcp, как следует из названия), который затем можно прочитать с помощью такого приложения, как Wireshark. В Wireshark очень легко фильтровать определенные типы данных и даже строить графики сетевого ввода-вывода.

Другим полезным инструментом может быть netstat, который отображает список текущих сетевых подключений. Возможно, есть связи, которых здесь быть не должно. Tcpdump гораздо более полезен (захватите несколько минут, затем проверьте, видите ли вы уже исходный код), но netstat может дать вам быстрый обзор.

Кстати, прочитав это, я в первую очередь подумал, что на вашем сервере есть вредоносное ПО или что оно используется для атак усиления. Но чтобы проверить это, вам нужно сначала запустить tcpdump.

Изменить: обратите внимание, что tcpdump, вероятно, необходимо запускать от имени пользователя root, возможно, вам нужно использовать sudo tcpdump.

Еще одно изменение: поскольку я не могу найти хорошую веб-страницу, на которой можно было бы указать, что такое атаки усиления в целом, вот краткая версия:

Такие протоколы, как DNS, работают по UDP. UDP-трафик не требует установления соединения, поэтому вы можете легко подменить чужой IP-адрес. Поскольку ответ DNS обычно превышает размер запроса, его можно использовать для DoS-атаки. Злоумышленник отправляет запрос, запрашивающий все записи DNS-сервера по данному имени, и сообщает DNS-серверу, что запрос исходит от X. Этот X является целью, которую злоумышленник хочет атаковать. Затем DNS-сервер любезно отвечает, отправляя (большой, скажем, 4 КБ) ответ X.

Это усиление, потому что злоумышленник отправляет меньше данных, чем фактически получает X. DNS - не единственный протокол, с помощью которого это возможно.

После долгих поисков, в чем проблема (пропускная способность более 60 ГБ за несколько дней), я обнаружил, что мой сервер был источником DDOS-атаки.

Первым делом я попытался установить на него Oracle DB, поэтому создал пользователя oracle. Хакерам каким-то образом удалось взломать проход для этого пользователя (я думаю, я должен усложнить задачу :(), они создали скрытый каталог под домом Oracle с crontab там, который вручную запускал некоторых демонов, которые наводнили целевой сервер.

Более того, хакеры создали на моем сервере 2 новых пользователя: avahi и colord. Что мне с ними делать? Я googledd и кажется, что программное обеспечение с тем же именем не опасно, но я удалил этих пользователей (и oracle тоже).

Более того, я удалил весь дом oracle со всем, что в нем.

Думаю, мне нужно больше защитить свой сервер, так как он может снова подвергнуться атаке, спасибо всем за помощь!

Захват всех пакетов, отправленных за день, когда вы превышаете квоту полосы пропускания, вероятно, не самый разумный подход - как вы собираетесь получить данные системы для анализа?

Какой у вас доступ к коробке? Какие порты открыты? Вы проверили журналы запущенных служб? Что-то вроде awstats суммирует журналы FTP, HTTP и SMTP (при условии, что эти серверы настроены для записи данных в журналы). OTOH mrtg будет записывать и отслеживать использование сети по конечным точкам / портам.

если вы думаете, что вы ограничиваете полосу пропускания - это apache, я уже добивался успеха с этим инструментом в прошлом

верхняя часть apache

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