Работа с ип адресом

xoper nginx-forum на nginx.us
Вт Ноя 1 16:55:44 UTC 2011


Доброго времени суток.
Столкнулся с такой проблемой, сервер
находится под ДДОС атакой уже
несколько суток, вроде эту проблему
победили на уровне nginx'a следующим
образом:
раз в 15 минут парсится access.log и
выбираются плохие адреса с занесением
в файл в виде
ип_адрес 1;
в конфиге нгинкса прописано так:
http
{
..........
    geo $remote_addr $ip_blocklist_out {
        default 0;
        include /home/test/ddos_ip;
   }
   server{
  ................
       if ($ip_blocklist_out = 1){
              rewrite ^/(.*) /index_ddos.htm last;
              return 403;
       }

  ..............
 }
}
Все работает LA с 66 упал до привычных 0.5
но попались юзеры, у которых оказался
хитрый провайдер:
вместо $remote_addr подставляется "общий ип",
а ип адрес пользователя прописывается
в $http_x_forwarded_for, следовательно
конструкция банит всю подсеть
провайдера по $remote_addr.
Так вот вопрос в следующем, как при
наличии ип адреса в $http_x_forwarded_for
учитывать его в geo фильтре а при
отсутствии использовать $remote_addr.
Спасибо.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,217662,217662#msg-217662



Подробная информация о списке рассылки nginx-ru