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

Найдите то, что использует всю пропускную способность моих серверов

TL; DR: как я могу глубже изучить свой сервер Mac mini OSX, чтобы определить, какие процессы потребляют такую ​​большую полосу пропускания или откуда исходит весь входящий трафик?

Кэширование ресурсов включено, все ресурсы уменьшены или изображения сжаты, наши страницы потребляют меньше трафика, чем веб-сайт в прошлом месяце (www.vulytrampolines.com), и наш трафик в аналитике такой же.

Предыстория: у нас есть 2x мини-сервера Mac, на которых работает наш веб-сайт / постановка / базы данных и т. Д. После перехода с выделенного сервера в Америке на место колокации в городе потребление пропускной способности каким-то образом учетверенный. Между ними настроен процесс репликации базы данных, а также DNS и различные веб-сайты (например, большие файлы, задачи базы данных, пакеты интрасети и т. Д. Находятся на промежуточном сервере, веб-сайт и база данных находятся на производственном сервере)

На нашем промежуточном сервере 7 ГБ входящего трафика в 3 ДНЯ. Кто-нибудь знает, как проверить источники входящего трафика, чтобы увидеть потенциально, откуда исходит этот последовательный поток входящего трафика при соединении 200k? Мы понятия не имеем. Мы вообще не отправляем ему файлы, единственное, что должно быть активным, - это SSH и процесс репликации базы данных. netstat [см. ниже] показывает, что у нас около 20+ установленных и 30+ close_weight подключений к порту 625. Мы не знаем, как это могло происходить.

Раздражает то, что веб-статистика показывает, что мы не использовали около 11,66 ГБ для HTTP-трафика (там говорится, что в прошлом месяце мы использовали 22 ГБ, но наш исходящий трафик был зарегистрирован как более 100 ГБ). Статистика базы данных говорит, что мы не использовали достаточную пропускную способность, чтобы вызвать проблему.

Это наш промежуточный сервер venus1 (так было уже несколько недель):

Это наш производственный сервер venus2:

netstat -anp tcp выход на venus1. Большинство внешних адресов взяты с наших рабочих IP-адресов. 11211 - это memcached.

tcp4       0      0  122.99.117.18.49712    204.93.223.143.80      ESTABLISHED
tcp4       0      0  122.99.117.18.11211    122.99.117.18.49711    ESTABLISHED
tcp4       0      0  122.99.117.18.49711    122.99.117.18.11211    ESTABLISHED
tcp4       0     52  122.99.117.18.22       59.167.152.67.56106    ESTABLISHED
tcp4       0      0  122.99.117.18.11211    122.99.117.18.49588    ESTABLISHED
tcp4       0      0  122.99.117.18.49588    122.99.117.18.11211    ESTABLISHED
tcp4       0      0  122.99.117.18.49410    122.99.117.19.3306     ESTABLISHED
tcp4       0      0  122.99.117.18.5432     122.99.117.18.58704    ESTABLISHED
tcp4       0      0  122.99.117.18.58704    122.99.117.18.5432     ESTABLISHED
tcp4       0      0  127.0.0.1.58699        *.*                    LISTEN
tcp4       0      0  122.99.117.18.625      110.142.234.238.62055  CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.71.206.61838    ESTABLISHED
tcp4       5      0  122.99.117.18.625      203.206.171.34.61741   CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      110.142.234.238.61270  ESTABLISHED
tcp4       0      0  127.0.0.1.54           *.*                    LISTEN
tcp4       0      0  122.99.117.18.53       *.*                    LISTEN
tcp4       0      0  127.0.0.1.53           *.*                    LISTEN
tcp4       0      0  122.99.117.18.625      110.142.234.238.63980  ESTABLISHED
tcp4       0      0  122.99.117.18.625      203.206.171.34.55282   ESTABLISHED
tcp46      0      0  *.80                   *.*                    LISTEN
tcp4       0      0  *.*                    *.*                    CLOSED
tcp46      0      0  *.443                  *.*                    LISTEN
tcp4       0      0  *.*                    *.*                    CLOSED
tcp4       0      0  122.99.117.18.625      122.99.117.19.50766    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      122.99.117.19.63981    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      110.142.234.238.60214  ESTABLISHED
tcp4       0      0  122.99.117.18.625      27.33.32.204.65196     ESTABLISHED
tcp4       0      0  122.99.117.18.625      110.142.234.238.60274  ESTABLISHED
tcp4       0      0  122.99.117.18.625      122.99.117.19.53201    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      203.206.171.34.59662   CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      122.99.117.19.49869    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      122.99.117.19.53827    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      110.142.234.238.64678  ESTABLISHED
tcp4       0      0  122.99.117.18.625      122.99.117.19.52810    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      110.142.234.238.62510  ESTABLISHED
tcp4       0      0  122.99.117.18.625      122.99.117.19.49909    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      110.142.234.238.56096  ESTABLISHED
tcp4       0      0  122.99.117.18.625      203.206.171.34.53247   ESTABLISHED
tcp4       0      0  122.99.117.18.625      203.206.171.34.62051   ESTABLISHED
tcp4       0      0  122.99.117.18.625      58.111.93.92.59123     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      122.99.117.19.57173    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      203.206.171.34.49352   CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      110.142.234.238.64362  CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      27.33.32.204.59772     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      59.167.152.67.59528    CLOSE_WAIT
tcp4       0      0  *.3306                 *.*                    LISTEN
tcp4       0      0  122.99.117.18.625      27.33.32.204.56812     ESTABLISHED
tcp4       0      0  122.99.117.18.625      110.142.234.238.52987  CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      59.167.152.67.50598    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      110.142.234.238.63339  CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      110.142.234.238.63283  CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      59.167.152.67.61312    ESTABLISHED
tcp4       0      0  122.99.117.18.625      110.142.234.238.52045  CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      122.99.117.19.49172    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      203.206.171.34.50501   CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.93.92.56042     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      27.33.32.204.55882     ESTABLISHED
tcp4       0      0  122.99.117.18.311      58.111.93.92.55875     ESTABLISHED
tcp4       0      0  122.99.117.18.625      203.206.171.34.58776   ESTABLISHED
tcp6       0      0  *.5432                 *.*                    LISTEN
tcp4       0      0  *.5432                 *.*                    LISTEN
tcp4       0      0  122.99.117.18.625      58.111.93.92.52692     ESTABLISHED
tcp4       0      0  122.99.117.18.625      203.206.171.34.57121   CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      27.33.32.204.54673     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      27.33.32.204.53915     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      27.33.32.204.52109     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      27.33.32.204.51807     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      27.33.32.204.65049     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.93.92.64442     ESTABLISHED
tcp4       0      0  122.99.117.18.311      203.206.171.34.51628   ESTABLISHED
tcp4       0      0  122.99.117.18.625      203.206.171.34.51594   ESTABLISHED
tcp4       0      0  122.99.117.18.625      58.111.79.42.62597     ESTABLISHED
tcp4       0      0  122.99.117.18.625      58.111.79.42.62454     ESTABLISHED
tcp4       0      0  122.99.117.18.625      58.111.79.42.58088     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.57305     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.53724     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.62224     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.62064     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.58236     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      203.206.171.34.51320   CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      203.206.171.34.51297   CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      203.206.171.34.50864   CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      110.142.234.238.49800  CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      27.33.32.204.50894     ESTABLISHED
tcp4       0      0  122.99.117.18.625      59.167.152.67.50411    ESTABLISHED
tcp4       0      0  122.99.117.18.625      27.33.32.204.54446     ESTABLISHED
tcp4       0      0  122.99.117.18.625      58.111.79.42.51680     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.60797     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.60729     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      59.167.152.67.49209    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.63371     CLOSE_WAIT
tcp4      81      0  122.99.117.18.625      113.128.44.66.3842     CLOSE_WAIT
tcp4      11      0  122.99.117.18.625      213.57.189.27.55646    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      110.142.234.238.53655  ESTABLISHED
tcp4       0      0  122.99.117.18.625      110.142.234.238.53644  ESTABLISHED
tcp4       0      0  122.99.117.18.625      58.111.79.42.52146     CLOSE_WAIT
tcp4       0      0  127.0.0.1.8005         *.*                    LISTEN
tcp46      0      0  *.8009                 *.*                    LISTEN
tcp46      0      0  *.8080                 *.*                    LISTEN
tcp4       0      0  122.99.117.18.625      58.111.79.42.50716     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      59.167.152.67.49872    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.63218     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.62471     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.64758     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.64646     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.56788     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.56770     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.56017     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.53131     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.52519     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.51215     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.51131     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      59.167.152.67.57058    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      59.167.152.67.56711    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.50975     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.57209     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.54753     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.60786     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.56174     CLOSE_WAIT
tcp4       0      0  *.11212                *.*                    LISTEN
tcp6       0      0  *.11212                *.*                    LISTEN
tcp4       0      0  127.0.0.1.5348         127.0.0.1.49167        ESTABLISHED
tcp4       0      0  127.0.0.1.49167        127.0.0.1.5348         ESTABLISHED
tcp4       0      0  122.99.117.18.5218     122.99.117.18.49166    ESTABLISHED
tcp4       0      0  122.99.117.18.49166    122.99.117.18.5218     ESTABLISHED
tcp46      0      0  *.5268                 *.*                    LISTEN
tcp46      0      0  *.5218                 *.*                    LISTEN
tcp4       0      0  127.0.0.1.5348         127.0.0.1.49163        ESTABLISHED
tcp4       0      0  127.0.0.1.49163        127.0.0.1.5348         ESTABLISHED
tcp4       0      0  127.0.0.1.5348         127.0.0.1.49162        ESTABLISHED
tcp4       0      0  127.0.0.1.49162        127.0.0.1.5348         ESTABLISHED
tcp4       0      0  127.0.0.1.5348         127.0.0.1.49161        ESTABLISHED
tcp4       0      0  127.0.0.1.49161        127.0.0.1.5348         ESTABLISHED
tcp4       0      0  127.0.0.1.5348         *.*                    LISTEN
tcp4       0      0  *.11211                *.*                    LISTEN
tcp6       0      0  *.11211                *.*                    LISTEN
tcp4       0      0  *.88                   *.*                    LISTEN
tcp6       0      0  *.88                   *.*                    LISTEN
tcp6       0      0  *.2000                 *.*                    LISTEN
tcp4       0      0  *.2000                 *.*                    LISTEN
tcp6       0      0  *.4190                 *.*                    LISTEN
tcp4       0      0  *.4190                 *.*                    LISTEN
tcp4       0      0  *.464                  *.*                    LISTEN
tcp6       0      0  *.464                  *.*                    LISTEN
tcp6       0      0  *.25                   *.*                    LISTEN
tcp4       0      0  *.25                   *.*                    LISTEN
tcp4       0      0  *.749                  *.*                    LISTEN
tcp6       0      0  *.749                  *.*                    LISTEN
tcp4       0      0  *.22                   *.*                    LISTEN
tcp6       0      0  *.22                   *.*                    LISTEN
tcp4       0      0  *.5900                 *.*                    LISTEN
tcp6       0      0  *.5900                 *.*                    LISTEN
tcp4       0      0  *.625                  *.*                    LISTEN
tcp6       0      0  *.625                  *.*                    LISTEN
tcp4       0      0  127.0.0.1.631          *.*                    LISTEN
tcp6       0      0  ::1.631                *.*                    LISTEN
tcp4       0      0  *.311                  *.*                    LISTEN

Если у вас нет очень хорошая причина не делать этого, пожалуйста, установите брандмауэр на все закрытые порты на вашем Mac Minis немедленно и выставляйте только то, что вам нужно! Я быстро проверил, и все ваши сервисы в настоящее время, похоже, полностью открыты для Интернета (SSH, SMTP, Tomcat, VNC, MySQL и apple-xsrvr-admin (TCP625), безусловно, есть), что является очень плохой идеей.

Большой объем входящего трафика, который вы видите, вполне может быть связан с хакерами / ботами, пытающимися подобрать логины и пароли для ваших сервисов - я часто вижу это на серверах, особенно с SSH (поскольку он часто общедоступен) и напрямую против популярного программного обеспечения, такого как страница WordPress /wp-login.php. Из вашей netstat я вижу, что IP-адреса из Израиля и Китая пытались получить доступ к TCP625 (apple-xsrvr-admin, используемый для DirectoryService, Open Directory Assistant и Workgroup Manager), что не является хорошим признаком. Я надеюсь, что все ваши имена пользователей и пароли надежны, потому что - не пытаюсь показаться здесь паникером, но - брутфорс объемом 7 ГБ, возможно, позволил некоторым плохим людям добраться до вещей, к которым у них не должно быть доступа, независимо от безопасности / исправлять состояние любого программного обеспечения.

Уточните у своего хостинг-провайдера / colo, что у вас есть какая-то удаленная последовательная консоль и / или доступ к VNC, если вы случайно заблокируете себе доступ к своим серверам, затем добавьте абсолютный минимум, необходимый для удаленного администрирования серверов самостоятельно, в наборы правил и брандмауэры, которые, как я предполагаю, еще не установлены. По умолчанию брандмауэр OS X Server блокирует все входящие порты, кроме тех, которые используются для удаленной настройки сервера (TCP22, TCP311, TCP626, TCP625, стандартный пинг ICMP (входящий и исходящий), разрешение DNS-имени UDP53), поэтому вы должны быть в порядке, чтобы его включить прямо, хотя вы захотите заблокировать их еще раз, как только вы это сделаете. Создайте группы адресов, относящиеся к IP-адресу вашего офиса (или сетевому блоку (-ам) IP-адреса вашего интернет-провайдера, если у вашего офиса нет статического IP-адреса), и используйте их для открытия административного доступа (например, SSH, OpenDirectory, VNC) только к ним. Создайте другую группу с одним IP-доступом для 122.99.117.18 и 122.99.117.19 (или 122.99.117.18/31 маску), чтобы общаться друг с другом и разрешить это для репликации MySQL. Откройте для всего мира порты SMTP, HTTP, HTTPS, если они общедоступны. Плотно заблокируйте все, предоставляя разрешение только тем IP-адресам, которым необходим доступ к каждому порту. Сделайте это и для исходящего трафика. Вы должны спланировать это заранее и убедиться, что у вас все в порядке, но сделайте это скорее, а не оставляйте сервер открытой сидячей уткой.

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

Я не уверен, какая у вас версия OS X Server, но предполагая 10.6 или 10.7, этот документ Peachpit может помочь вам начать работу с брандмауэрами.

Как может этот документ поддержки Apple в формате PDF о сетевых службах (см. главу 4 для брандмауэра).

Для более продвинутой конфигурации брандмауэра попробуйте Waterroof или Icefloor, которые предоставляют простой графический интерфейс, вместо того, чтобы возиться с pf в командной строке.


(Отредактируйте, чтобы адресовать правила ipfilter, вставленные с каждого сервера)

Хорошо, начнем с venus1 (122.99.117.18). Очевидная проблема здесь в том, что нет универсальной deny ip from any to any, поэтому нам нужно немедленно это исправить. Из командной строки вы можете выполнить: sudo ipfw add 65534 deny log logamount 1000 ip from any to any

Или сделайте это на вкладке «Настройки администратора сервера» на подвкладке «Дополнительно», если вам неудобно манипулировать правилами ipfw из командной строки (что должно вас нервировать, поскольку это может плохо закончиться, если вы ошибетесь). Должен быть список расширенных правил, несколько похожий на следующий рисунок. Предполагая, что это правило уже существует внизу, отметьте его, чтобы включить его:

Помните, что правила ipfw идут вниз по списку приоритетов, поэтому правило с приоритетом 1 имеет приоритет над всем остальным. Таким образом, добавление правила «запретить все» на 65534 будет последним в списке, то есть оно будет отклонять соединение только в том случае, если все, что выше, не разрешает что-то первым.

Хорошо, разобравшись с этим, давайте разберемся с некоторыми группами адресов. Вы определили группу адресов 122.99.117.16/29, поэтому 122.99.177.16-22 (где один IP-адрес является шлюзом), который является вашим Mac Minis и другими IP-адресами co-lo. Вероятно, вы захотите определить другую группу адресов для местоположения своего офиса, который, как я предполагаю, имеет статический IP-адрес 59.167.152.67 (или, если ваша работа получает динамический IP, тогда весь сетевой блок Internode равен 59.167.0.0/16). Сделайте это как для venus1, так и для venus2 и добавьте еще для любых других ваших офисов.

После того, как вы определили свои офисные группы, дайте каждому из этих разрешений доступ к TCP22, TCP311, TCP626, TCP625, TCP3283 и TCP5900, чтобы вы всегда могли администрировать свой Minis, даже если вы отключили общий доступ к этим портам. Используя графический интерфейс, перейдите на подвкладку Services в настройках администратора сервера. Измените «Услуги редактирования для:» на адресную группу (ы) вашего офиса, затем отметьте соответствующие поля для указанных выше портов.

Теперь давайте обратимся к еще нескольким проблемным правилам Venus1. Например:

12321    1570      78548 allow tcp from any to any dst-port 3306

Правило 12321 позволяет всему подключаться к MySQL. Отключите это правило для «любой» адресной группы (снова используя вложенную вкладку «Службы») и, пока вы там, любые другие службы, к которым миру не нужен доступ. Вероятно, вы хотите, чтобы TCP25 (почта smtp), TCP / UDP53 (dns), TCP80 (HTTP), TCP443 (HTTPS) были доступны для всех, но нужен ли вам глобальный доступ к TCP8080 (статус сервера tomcat)? Что-нибудь еще? Заблокируйте все это и предоставляйте доступ только к адресным группам вашего офиса и ко-лоу, где это необходимо (например, репликация MySQL).

Не забудьте все проверить! Научитесь использовать Nmap для сканирования портов вашего сервера, чтобы вы могли видеть, что открыто и что закрыто. Сканируйте из разных мест (например, из вашего офиса, ssh'ed на другой сервер, дома через другого провайдера и т. Д.), Чтобы убедиться, что правила работают должным образом. Будьте осторожны, чтобы не запереться, но зафиксируйте все как можно крепче. Перечитайте документ Peachpit, и Apple поддерживает PDF-файл, указанный выше, и по-настоящему изучите материал, он сослужит вам хорошую службу. О, и регулярно следите за своими журналами!

Хорошо, надеюсь, это должно вас увидеть или, по крайней мере, направить вас на лучший путь. Удачи.

Самым быстрым решением было бы просто использовать сниффер пакетов - tcpdump или wirehark (последний имеет графический интерфейс). Если есть какой-то постоянный источник трафика, он, как правило, выделяется. Вы также сможете вникнуть в подробности полезной нагрузки, как только обнаружите источник неизвестного трафика.

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

Порт 625 - это порт управления, используемый продуктами Apple. Из вашего netstat видно, что одна машина (.19) подключается к другой (.18) через порт 625. По некоторым поисковым запросам Google, Mac OS X использует порт 625 для Менеджер рабочей группы (который был заменен в Mountain Lion на Profile Manager).

Также похоже, что множество других машин в Интернете также подключаются к порту 625, вероятно, как попытки взлома. Вы должны как можно скорее установить брандмауэр на свой сервер, чтобы предотвратить вторжение.