Re: Проблема с блокировкой IP адресов, а также с limit_conn
Борис Долгов
boris at dolgov.name
Sun Jan 25 14:04:59 MSK 2009
limit_conn и deny работают не на уровне сети, а на кровне nginx'a - он
просто будет выдавать ошибки тем ip.
А для блокировки ip/отслеживания кол-ва соединений обычно пользуются
фаирволлом.
25 января 2009 г. 13:38 пользователь Доронин Сергей <nophear at yandex.ru>написал:
> Здравствуйте!
> У меня на сервере на 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 at 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 at 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 at web48 ~]$
>
> 92.113.238.129 - данный IP не только успешно соединяется с nginx (не смотря
> на "deny"), но и делает это параллельно бесконечное множество раз
>
> (не смотря на limit_zone/limit_conn). Скажите пожалуйста, что я делаю не
> так? Почему nginx игнорирует соответствующие директивы в конфигах?
>
> Заранее, спасибо!
>
>
--
С уважением, Борис Долгов.
icq 77556665
e-mail boris at dolgov.name
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20090125/ef790038/attachment.html>
More information about the nginx-ru
mailing list