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


17

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

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

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

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

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

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


Пожалуйста, оставляйте свои комментарии как комментарии, а не в теле вашего вопроса.
EEAA

Вот мой вопрос, могу ли я запустить tcpdump в фоновом режиме, чтобы он собирал данные, скажем, за день?
Камил

Вы можете, да. Вам нужно будет запустить его из сеанса экрана или что-то в этом роде. Но будьте осторожны ... вам нужно убедиться, что у вас достаточно диска для хранения всех захваченных данных. Вам, вероятно, следует прочитать tcpdumpстраницу руководства и узнать, как настроить ее так, чтобы она захватывала только заголовки TCP / IP, отбрасывая оставшиеся данные пакета.
EEAA

Ответы:


18

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

sudo netstat -tpn | grep 12345

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


1
iotop? Или ты думал о iftop ?
EEAA

@ErikA Э-э, да .. вот что я сказал!
Mgorven

7

Я бы порекомендовал установить ntop.

http://www.ntop.org/

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


2

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

$ sudo tcpdump -w packet.log

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


Используя wireshark, используйте меню Статистика - Конечные точки. Затем вы можете выбрать IP или TCP или другие списки и отсортировать их по количеству, полученному / переданному каждой конечной точкой. Где конечной точкой будет IP-адрес или машина. Но некоторые конечные точки могут быть шлюзом или коммутатором, поэтому для отслеживания пользователей полосы пропускания потребуется другой tcpdump и wireshark на этом шлюзе.
gaoithe

2

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

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

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

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

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

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

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


1
Да. tcpdump -i любой -w /tmp/traffic.pcap. Используя wireshark, используйте меню Статистика - Конечные точки. Сортировать по количеству полученных / переданных.
gaoithe

2

Лучшим инструментом для этого, вероятно, является iftop , и его легко можно использовать с помощью 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

1

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

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

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

Кроме того, я удалил весь дом оракула со всем в нем.

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


4
Я бы стер ваш сервер и начал снова, я никогда не доверяю серверу после компромисса. Обнулить сайт с орбиты, это единственный способ быть уверенным.
Дворник Unix

Да, я собираюсь сделать это, во-первых, резервное копирование некоторых данных (svn-репозиторий, полезные скрипты)
Камил

Убедитесь, что данные все еще сохраняют целостность, злоумышленникам известно, что они изменяют исходный код и сценарии, чтобы разместить задние двери. Я бы, конечно, сравнил последний svn-источник с недавно проверенной версией до того, как проникло вторжение.
The Unix Janitor

0

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

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.