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

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

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.