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/
|