Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

линукс учебник

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

Re: [Lug-bg] Филтриране на Web Crawlers чрез iptables


  • Subject: Re: [Lug-bg] Филтриране на Web Crawlers чрез iptables
  • From: Marian Marinov <mm@xxxxxxxx>
  • Date: Tue, 29 Jul 2008 06:09:16 +0300

On Monday 28 July 2008 22:50:37 Georgi Chorbadzhiyski wrote:
> On 07/28/08 15:55, Веселин Михайлов wrote:
> >   Имам следният въпрос, над който се чудя и не успявам да стигна до
> > работещо решение. Възможно ли е (и как) да се ограничат временно връзките
> > на Web Crawler-те (IP адресите им) чрез лимит?
> >
> >   Рових и четох документация, но нещо ми се изплъзва. Идеята е когато
> > един "паяк" направи определено количество връзки към хоста да бъде
> > блокиран за определено време (примерно час).
> >
> >   Възможно ли е това да стане само с iptables или ще трябва да се пише
> > някакъв допълнителен скрипт/демон който да го прави?
>
> Има доста видове лимити, които можеш да приложиш (connlimit, hashlimit,
> limit) виж man iptables
>
> Ето ти един пример:
>
> iptables -A INPUT -s XX.XX.XX.XX/YY -p tcp --dport 80 --syn -m limit
> --limit 5/hour -j ACCEPT iptables -A INPUT -s XX.XX.XX.XX/YY -p tcp --dport
> 80 -j LOG
> iptables -A INPUT -s XX.XX.XX.XX/YY -p tcp --dport 80 -j REJECT
>
> XX.XX.XX.XX/YY ти е мрежата, която искаш да има достъп до порт
> tcp/80 по 5 пъти на час макс.
>
> Това дето си решил да го правиш не скалира особено, най-малкото
> защото трябва да изровиш на crawler-ите ip мрежите, а не зная те
> колко често се сменят и колко са.


Принципно ако говорим за точно определен Web Crowler или няколко такива които 
познаваш, можеш да направиш един списък с User-Agents на тези web crowlers и 
след това да лимитираш само техните връзки:

<IfModule mod_setenvif.c>
    BrowserMatchCase "XXXCrowler" bad
    BrowserMatchCase "YYYCrowler" bad
</IfModule>

или 
RewriteCond %{HTTP_USER_AGENT} ^XXXCrowler$ [E=bad:yes]
RewriteCond %{HTTP_USER_AGENT} ^YYYCrowler$ [E=bad:yes]

И накрая базирано на тази информация да вкараш трафика през mod_choke.

Или ако предпочиташ mod_limitipconn мога да ти направя и limitipconn да може 
да мачва по env.

А ако искаш директно да го drop-иш: 
BrowserMatchNoCase Webserver_Stress_Tool baduseragents

<Directory /xxx>
 Order allow,deny
 Deny from env=baduseragents
 Allow from all
</Directory>

Надявам се информацията да е полезна за теб и други колеги от листата.

Поздрави
  Мариян
_______________________________________________
Lug-bg mailing list
Lug-bg@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg


 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

Silaw.ORG
http://cilaw.org

NetField Forum
http://netField.ludost.net/forum/

 

 

© Copyright 2006 - 2008 Linux-Bulgaria.ORG

Hosted by "Internet Group" Ltd. - Stara Zagora