Если честно, я плохо разбираюсь в администрировании серверов, но мой босс попросил меня о помощи. Его сервер имеет ограниченную пропускную способность 2 ГБ в день, и сегодня он получил предупреждение от компании, что он превысил ее и использовал ... 24 ГБ.
Поскольку это невозможно, потому что он был в пути, он спросил меня, могу ли я отследить проблему. Я понятия не имею, с чего начать и что делать.
Любая информация будет полезна, как я могу узнать, что не так.
Машина работает под управлением Ubuntu 12.04. Самое любопытное, что согласно схемам, полученным от хостера, использовалась только исходящая передача.
РЕДАКТИРОВАТЬ
Спасибо за предложения, запущу tcpdump и попробую проверить результат
Для немедленного мониторинга вы можете использовать iftop. Это покажет вам активные в настоящее время соединения и используемую ими полосу пропускания. Как только вы определили соединение с высоким трафиком, найдите номер локального порта и используйте netstat
чтобы узнать, к какому процессу принадлежит соединение.
sudo netstat -tpn | grep 12345
Для более длительного мониторинга я бы предложил что-то вроде darkstat. Это может дать вам разбивку по хостам и портам, что может позволить вам выяснить, с чем связан трафик.
Рекомендую установить ntop.
Поместите это в местоположение шлюза хоста / маршрутизатора и наблюдайте за трафиком в течение дня / недели. 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