У нас есть LTS-сервер Ubuntu 14.04.1 с nginx 1.4.6, на котором размещено несколько десятков веб-сайтов, и мы получили жалобу на злоупотребление от другого сервера с сотнями таких запросов: «POST /wp-login.php HTTP / 1.0», исходящие от нашего сервер. Как я могу проанализировать проблему, чтобы узнать, откуда идет этот трафик? Я пытался прочитать вывод tcpdump, но у меня нет большого опыта с ним, и я не знаю, какие параметры ему передать или как прочитать вывод таким образом, чтобы я мог найти то, что ищу, в эффективный способ. Какие инструменты мне следует использовать и в каком порядке, чтобы проверить, смогу ли я отследить источник проблемы?
Из-за недостатка информации предполагаю следующее.
Что с этим делать?
Своевременно обновлять размещенные веб-сайты - легче сказать, чем сделать, но это важно
Разделите, ваши веб-сайты должны быть максимально изолированы друг от друга (выполнение php не как никто или www-данные, а скорее как уникальные пользователи, таким образом компрометация одного сайта не приведет к компрометации всех сайтов так легко, особенно когда ленивые злоумышленники причиняют вам головную боль)
часто сканируйте и проверяйте вашу систему, вы можете использовать Мальдет для поиска подозрительных файлов злоумышленники могли оставить бэкдоры. Это ни в коем случае не полный пакет для очистки, он найдет кое-что, но основан на сигнатуре, и любая мутация в бэкдоре может легко сделать бэкдор незамеченным для подобных сканеров.
найти и уничтожить; соотноситься; и под этим я подразумеваю, ищите все, что у вас есть, делайте заметки о результатах, исследуйте журналы доступа на наличие упоминаний о доступе к тому, что вы нашли, затем отмечайте IP-адреса, которые обращались к этим плохим файлам; затем проверьте, к каким, возможно, другим файлам имеют доступ эти IP-адреса на вашем сервере. Это, вероятно, откроет еще несколько бэкдоров, подписи которых не совпадают.
Постарайтесь уменьшить поверхность атаки. Области администрирования - это многофункциональные компоненты, и это приводит к множеству ошибок в них. Если вы ограничиваете доступ к областям администрирования только несколькими IP-адресами; или добавьте дополнительный уровень, например базовую аутентификацию, это поможет защитить ваши размещенные сайты от владения.
Держите глаза открытыми, пролистайте этот список, найдите новые методы, которые можно добавить в этот список, чтобы улучшить свои защитные способности.
Простой подход первого уровня - использовать lsof -i @remotehostname
(или удаленный IP-адрес), чтобы узнать, какой пользователь и процесс инициируют соединения с удаленным хостом.
Что касается устного перевода tcpdump
вывод, мне по-прежнему гораздо проще использовать что-то вроде Wireshark для интерпретации захваченного потока TCP. Это также помогает вам сгенерировать синтаксис для использования в tcpdump, чтобы сделать ваши записи более конкретными.