Мой сервер находится под атаками DDOS, и я хочу заблокировать IP-адрес, который делает это, какие журналы мне нужно искать, чтобы определить IP-адрес атакующего?
Мой сервер находится под атаками DDOS, и я хочу заблокировать IP-адрес, который делает это, какие журналы мне нужно искать, чтобы определить IP-адрес атакующего?
Ответы:
tail -n 10000 yourweblog.log|cut -f 1 -d ' '|sort|uniq -c|sort -nr|more
Посмотрите на верхние IP-адреса. Если кто-то выделяется на фоне других, это будут брандмауэры.
netstat -n|grep :80|cut -c 45-|cut -f 1 -d ':'|sort|uniq -c|sort -nr|more
При этом будут рассмотрены активные в данный момент соединения, чтобы узнать, есть ли какие-либо IP-адреса, подключающиеся к порту 80. Возможно, вам придется изменить cut -c 45-, так как IP-адрес может не начинаться со столбца 45. Если кто-то выполнял поток UDP для ваш веб-сервер, это также подхватит его.
В случае, если ни один из них не показывает какие-либо IP-адреса, которые чрезмерно превышают норму, вы должны будете предположить, что ботнет атакует вас и вам нужно искать определенные шаблоны в журналах, чтобы увидеть, что они делают. Распространенная атака на WordPress сайты:
GET /index.php? HTTP/1.0
Если вы просматриваете журналы доступа для вашего сайта, вы можете сделать что-то вроде:
cut -f 2 -d '"' yourweblog.log|cut -f 2 -d ' '|sort|uniq -c|sort -nr|more
который покажет вам наиболее часто посещаемые URL. Вы можете обнаружить, что они запускают определенный скрипт, а не загружают весь сайт.
cut -f 4 -d '"' yourweblog.log|sort|uniq -c|sort -nr|more
позволит вам увидеть общие UserAgents. Возможно, что они используют один UserAgent в своей атаке.
Хитрость заключается в том, чтобы найти что-то общее с трафиком атаки, которого нет в вашем обычном трафике, а затем отфильтровать это через iptables, mod_rewrite или апстрим с вашим веб-хостом. Если вы получаете Slowloris, Apache 2.2.15 теперь имеет модуль reqtimeout, который позволяет вам настроить некоторые параметры для лучшей защиты от Slowloris.
Несколько хороших советов здесь. Я также добавил бы это:
netstat -an | grep ESTABLISHED | awk '\''{print $5}'\'' | awk -F: '\''{print $1}'\'' | sort | uniq -c | awk '\''{ printf("%s\t%s\t",$2,$1); for (i = 0; i < $1; i++) {printf("*")}; print ""}'\''
Поместите это под псевдонимом (например, nn). Это даст вам «графическую» перспективу ips с более установленными соединениями.
Надеюсь это поможет.
Для тех, кто не мог заставить это работать, я исправил синтаксис, поэтому он работает для меня под Ubuntu:
netstat -an|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|awk '{ printf("%s\t%s\t",$2,$1); for (i = 0; i < $1; i++) {printf("*")}; print ""}'
для защиты моего сервера я использую простой скрипт Fail2Ban
сканирует файлы журналов, такие как / var / log / pwdfail или / var / log / apache / error_log, и блокирует IP, который делает слишком много ошибок пароля. Он обновляет правила брандмауэра, чтобы отклонить IP-адрес.
Какой дистрибутив?
Я думаю, что журнал находится в /var/log/apache2/access.log с Ubuntu ... Возможно, также Debian.
Запустите updatedb как sudo, затем найдите access.log из командной строки.
РЕДАКТИРОВАТЬ: Я считаю, что это произойдет только в том случае, если они бьют вас, запрашивая страницы или напрямую через порт 80. Если они бьют по другим портам, вы не увидите нужную вам информацию, вам нужно будет проверить и посмотреть, какой процесс работает на этом порту и посмотрите журналы подключений для этого процесса.
Если вы находитесь под распределенной DOS, то, безусловно, гораздо больше, чем один IP-адрес для блокировки, и IP-адреса могут быть подделаны, вам лучше спросить своего провайдера, как сказал mfinni . Кроме того, это может быть больше, чем DOS против вашего сервера, но приманка, чтобы скрыть реальную атаку от обнаружения, поэтому убедитесь, что все ваши службы работают под управлением новейшего программного обеспечения. Вы также можете быть заинтересованы в mod_dosevasive для Apache.
Сначала вы должны определить тип DOS. Некоторые атаки являются очень скрытными, но эффективными (slowloris), некоторые из них настолько тяжелы, что могут привести к остановке интернет-провайдера (поток ICMP из-за более высокой пропускной способности, чем у вашего провайдера).
После того, как вы определите тип DOS, позвоните своему провайдеру и спросите его, могут ли они отфильтровать трафик.
Я видел, что ICMP-потоки были настолько сильными, что нам пришлось просить вышестоящего интернет-провайдера отфильтровать IP-адрес назначения через сообщество BGP.