| Nginx-ru mailing list archive (nginx-ru@sysoev.ru) [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
 Работа с ип адресом
 
To: nginx-ru@xxxxxxxxxSubject: Работа с ип адресомFrom: "xoper" <nginx-forum@xxxxxxxx>Date: Tue, 01 Nov 2011 12:55:44 -0400Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;	d=mickey.jlkhosting.com; s=x; 	h=Date:Sender:From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To;	bh=MV7PyJJOne1sffmRSLVbMUuFv/3yTAD9OH3KldSr4hE=; 	b=pHk6dh+/cIw+eV8fCyPOBPaEzZRlbcztjRlKfD4HfhirItL0WqQcKbMyerz85Tpc4cYnBHRtnfuN4pleQ+Qifu7njs2m+7N+UT37waZRERrqX42NRcX6k00F4LlnavK4; 
 Доброго времени суток.
Столкнулся с такой проблемой, сервер
находится под ДДОС атакой уже
несколько суток, вроде эту проблему
победили на уровне 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 mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
 |