в отсутствии знаний как сделать правильно "формата лога для такого случая, что бы туда писало сразу IP"
вы делаете exec на каждый ip. iptables-restore -n может подгружать это гораздо быстрее.
с другой стороны - скорость добавления новых ip обычно не критична.
а добавить по одному можно просто - man xargs, man iptables/ipset (примеры есть в форуме)
ну добавлять надо не по одному ip, а наверно "пачками", так как скрипт к примеру запускатся будет каждые 5 минут, ну и наверно там (в black_list) не один ip будет.
как-то так:
if ($http_cookie ~* "id=([^;]+)(?:;|$)" ) {
}
если проверка по if ($http_cookie ~* "id=([^;]+)(?:;|$)" ) {
} не проходит то юзер получает - ошибку 504? как то так?
valsha добавил 08.12.2009 в 17:15
можно пример как сразу в nginx лог писать ip адреса тех у которых нет Useg-Agent'а ?
Спасибо всем за ваши советы/примеры, действительно много прояснилось.
valsha добавил 24.11.2009 в 14:27
zexis: Каким то анализатором логов фиксируете IP адреса ботов и заносите их в фаервол iptables
Как раз в этом месяце столкнулся с проблемой ддоса.
Написал на с++ программу, которая запускается по крону раз в минуту и анализирует лог файл апача access.log.
Находит в нем IP адреса ботов и заносит в iptables.
Атаку из 900 ботов с помощью этой программы заблокировал.
Если вас сейчас ддосят, то могу вам поставить и настроить мою программу.
Заодно программу еще раз бы протестировал.
Если надо пишите в личные сообщения.
Вопрос такой.
У меня система работает таким образом:
1. выделенный сервер
2. на сервере установлен nginx, он работает как прокси и отправляет все запросы на другой выделеный сервер (веб сервер).
valsha, используйте ipset
да за чем там ipset?
нет там для него задач.
НЕ заносит фаервол 1000 адресов в бан, я же говорю там 10 максимум 15 очень простых правил, доступ по ssh, http/thhps и тому подобное.
valsha добавил 12.02.2011 в 13:17
valsha, сколько там правил в iptables ?
если написать достаточно много правил оно и должно примерно вот так тормозить.
правил штук 10-15, не больше.
valsha добавил 12.02.2011 в 13:17
Скорее всего из-за PAE
это проблема всех PAE?
управлять доменами можно?
то есть прописать IP-адрес (виртуальный хост) и т.п ?
var/ftp
drwxr-xr-x 5 root root 4096 Dec 15 20:26 pub
var/ftp/pub
drwxr-xr-x 2 root root 4096 Nov 9 16:16 dir1
drwxr-xr-x 2 root root 4096 Oct 16 14:27 dir2
drwxr-xr-x 4 root root 4096 Dec 9 21:07 dir3
у других файлов и папок тоже самое все.
на данный момент все так же настроено и работает на других 3х фтп серверах, никаких проблем, вот кроме этого VPS.
valsha добавил 20.03.2010 в 02:15
проблема была с SELinux
перевел permissive и все ок.
минут за 15 решили проблему, с которой я мучался довольно долго.
проблема мелкая но такая вредная была :)
рад что обратился к ТС. теперь думаю все должно работать как надо.
а в чем именно проблема?
в отсутствии знаний как сделать правильно "формата лога для такого случая, что бы туда писало сразу IP"
вы делаете exec на каждый ip. iptables-restore -n может подгружать это гораздо быстрее.
с другой стороны - скорость добавления новых ip обычно не критична.
а добавить по одному можно просто - man xargs, man iptables/ipset (примеры есть в форуме)
ну добавлять надо не по одному ip, а наверно "пачками", так как скрипт к примеру запускатся будет каждые 5 минут, ну и наверно там (в black_list) не один ip будет.
как-то так:
if ($http_cookie ~* "id=([^;]+)(?:;|$)" ) {
}
если проверка по if ($http_cookie ~* "id=([^;]+)(?:;|$)" ) {
} не проходит то юзер получает - ошибку 504? как то так?
valsha добавил 08.12.2009 в 17:15
можно пример как сразу в nginx лог писать ip адреса тех у которых нет Useg-Agent'а ?
А вообще зачем это? Может просто на самом сайте проверить и куки и юзер агента и вывести 404 при несоответствии?
наверно да, можно.
но хотелось бы от таких "посетителей" избавлятся и что бы на них уже ресурсы не уходили.
ну начните с выделения отдельного формата лога для такого случая
для отдельного if в каком-то локейшене
просто тупо туда пишите список IP.
на сервере не один веб сайт (разные домены и т.п), хотелось бы более простого решения.
если разговор о том что iptables будет тормозить от большого кол-ва ip забаненых.
так для этого я и хочу использовать ipset.
можно тут подробней?
Добрый день.
Спасибо всем за ваши советы/примеры, действительно много прояснилось.
valsha добавил 24.11.2009 в 14:27
Каким то анализатором логов фиксируете IP адреса ботов и заносите их в фаервол iptables
Как раз в этом месяце столкнулся с проблемой ддоса.
Написал на с++ программу, которая запускается по крону раз в минуту и анализирует лог файл апача access.log.
Находит в нем IP адреса ботов и заносит в iptables.
Атаку из 900 ботов с помощью этой программы заблокировал.
Если вас сейчас ддосят, то могу вам поставить и настроить мою программу.
Заодно программу еще раз бы протестировал.
Если надо пишите в личные сообщения.
Вопрос такой.
У меня система работает таким образом:
1. выделенный сервер
2. на сервере установлен nginx, он работает как прокси и отправляет все запросы на другой выделеный сервер (веб сервер).
3. так же настройки у nginx, по ограничению:
4. на этом же сервере фаервол настроен с iptables +connlimit
5. то есть система примерно как и у систем очистки трафика, на мой веб сервер приходит уже "по идеи" уже чистый трафик.
Соответственно и вопрос.
Как вот ваша система будет анализировать лог файл nginx access.log и банить на фаерволе ботов (нормально ли будет все работать)?
Спасибо.
А что спасет? Редирект тарафика всего на какой то из "сервисов по отмывке трафика" и уже вам возвращают на ваш веб сервер "чистый" трафик?
Такой вариант мне не интересен, потому что я им сейчас пользуюсь :)
Мне интересно как своими силами справится с ddos'ом до 100мегабит, имея примерно один сервер (4ядра,4GB RAM).
Конечно же если на меня будут лить больше 100мегабит я уйду опять к "сервису".