ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Проблема с блокировкой IP адресов, а также с limit_conn



ясно, значит для поставленных задач эти директивы совершенно не годятся. Тогда 
такой вопрос, можно всё-таки каким-то образом решить данный вопрос средствами 
nginx?
Я пользуюсь веб-хостингом, поэтому доступа к файрволлу у меня нет.

> limit_conn и deny работают не на уровне сети, а на кровне nginx'a - он просто 
> будет выдавать ошибки тем ip. 
> А для блокировки ip/отслеживания кол-ва соединений обычно пользуются 
> фаирволлом.
> 
>  25 января 2009 г. 13:38 пользователь Доронин Сергей <nophear@xxxxxxxxx> 
> написал:
> >  Здравствуйте!
> >  У меня на сервере на 8080 порту установлен apache, а на 80 nginx. Иногда 
> > мой сайт подвергается http-флуд атакам, что влечёт за собой множество
> > 
> >  соединений с одного IP. Соответственно мне нужно средствами nginx 
> > ограничивать количество соединений с одного IP и блокировать доступ к сайту
> > 
> >  для некоторых IP адресов. В документации по nginx я нашёл решение обоих 
> > вопросов. Вырезка из nginx.conf:
> > 
> >  # NGINX Server configuration
> > 
> >  worker_processes  3;
> > 
> >  error_log  /home/myhost/logs/error.log;
> > 
> >  pid        /home/myhost/logs/nginx.pid;
> > 
> >  events {
> >     worker_connections  1024;
> >  }
> > 
> > 
> >  http {
> >     include       /usr/local/etc/nginx/mime.types;
> >     default_type  application/octet-stream;
> >     server_names_hash_bucket_size 64;
> > 
> >     access_log  /home/myhost/logs/access.log combined;
> > 
> >     sendfile        on;
> > 
> >     keepalive_timeout  20;
> > 
> > 
> >     limit_zone   one  $binary_remote_addr  10m;
> > 
> >     server {
> >         listen       1.2.3.4:80;
> >         server_name  myhost.nichost.ru www.myhost.nichost.ru;
> > 
> >         limit_conn   one  3;
> > 
> >         allow all;
> >         deny 92.113.238.129;
> >  .....................
> >  Где 1.2.3.4 - IP моего сервера.
> >  С данным конфигом я запускаю nginx. После этого смотрю в netstat и вижу 
> > такую картину:
> > 
> >  [myhost@web48 ~]$ netstat -an|grep ESTABLISH|more
> >  netstat: kvm not available
> >  tcp4       0      0  1.2.3.4.80      62.182.93.42.55050     ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.20928   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.124.46.214.3788     ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.19614   ESTABLISHED
> >  tcp4       0      0  1.2.3.4.80      62.182.93.42.56534     ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      62.182.93.42.64848     ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.19580   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.20842   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      95.79.9.220.3079       ESTABLISHED
> >  tcp4       0    690  1.2.3.4.80      92.126.158.158.49561   ESTABLISHED
> >  tcp4       0    690  1.2.3.4.80      92.126.158.158.49560   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.20807   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.20795   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.19495   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.20776   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      95.79.9.220.3078       ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.20775   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.20774   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      89.250.149.46.61099    ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.20760   ESTABLISHED
> >  tcp4       0    690  1.2.3.4.80      92.243.181.212.17171   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.124.46.214.3784     ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.20735   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.20738   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.20718   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.20708   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.20699   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.20669   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.20666   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.19411   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.20657   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.20633   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.19377   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.19400   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.124.46.214.3780     ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.20599   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.20598   ESTABLISHED
> >  tcp4       0    330  1.2.3.4.80      92.113.238.129.20587   ESTABLISHED
> >  [myhost@web48 ~]$ ps aux|grep nginx
> >  myhost 89909  0.0  0.0 12224  1220  ??  Ss   12:47PM   0:00.00 nginx: 
> > master process /usr/local/sbin/nginx -c /home/myhost/nginx/nginx.conf
> > 
> >  (nginx)
> >  myhost 89910  0.0  0.1 12684  1692  ??  S    12:47PM   0:06.15 nginx: 
> > worker process (nginx)
> >  myhost 89911  0.0  0.0 12500  1508  ??  S    12:47PM   0:08.07 nginx: 
> > worker process (nginx)
> >  myhost 89912  0.0  0.0 12500  1508  ??  S    12:47PM   0:08.19 nginx: 
> > worker process (nginx)
> >  myhost 94547  0.0  0.0  1592   836  p5  S+    1:13PM   0:00.00 grep nginx
> >  [myhost@web48 ~]$
> > 
> >  92.113.238.129 - данный IP не только успешно соединяется с nginx (не 
> > смотря на "deny"), но и делает это параллельно бесконечное множество раз
> > 
> >  (не смотря на limit_zone/limit_conn). Скажите пожалуйста, что я делаю не 
> > так? Почему nginx игнорирует соответствующие директивы в конфигах?
> > 
> >  Заранее, спасибо!
> > 
> 
> 
> 
> -- 
> С уважением, Борис Долгов.
> icq 77556665
> e-mail boris@xxxxxxxxxxx


Зал славы: смотрите лучшее на Яндекс.Фотках http://fotki.yandex.ru/hall-of-fame/



 




Copyright © Lexa Software, 1996-2009.