Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Ilya Teterin                         2:5020/400     20 Nov 2002  21:43:23
 To : Vitaly.Lugovsky@ontil.ihep.su
 Subject : Re: Скриптовый язык для netfilter
 -------------------------------------------------------------------------------- 
 
 Wed Nov 20 2002 15:16, Vitaly.Lugovsky@ontil.ihep.su wrote to Ilya Teterin:
 
  VLois>  Опять - не совсем понятна задумка. Язык этот надо компилировать, или
  VLois> достаточно будет интерпретации?
 
 Ассемблировать :) Т.к. в теории я полный ноль, попробую привести примеры.
 
 Строка кода задается правилом iptables. Вот как примерно будет выглядеть
 "программа" для учета трафика с детализацией:
 
 iptables -A act -j mov ls "name" srcip // задать значение локальной переменной
 iptables -A act -j cat lc "name" " " // добавить константу
 iptables -A act -j cat ls "name" dstip // добавить dstip
 iptables -A act -j cat lc "name" " "
 iptables -A act -j cat ls "name" proto
 iptables -A act -j cat lc "name" " "
 iptables -A act -j cat ls "name" sport
 
 // в переменной "name", соответствующий обрабатываемому пакету, лежит "строка
 детализации", содержащая через пробел src ip, dst ip, протокол и порт (если
 есть).
 
 iptables -A act -j add gs $name length
 
 // увеличиваем значение глобальной переменной по имени, задаваемому значением
 локальной переменной name, на значение, соответствующее длине пакета
 
 Значения глобальных переменных можно читать из приложения, допустим, через
 proc. В них будет детализация трафика, попавшего в правило act.
 
 Другой пример - реализация аналога матча width на этом "ассемблере".
 
 iptables -A act -j add gs "width" length // увеличить глобальную переменную
 width на длину пакета
 iptables -A act -j mov gs "jiffies" jiffies // берем число jiffies
 iptables -A act -j div gc "jiffies" 100 // делим на 100
 iptables -A act -m if neq gg "jiffies" "jiffold" -j mov gc "width" 0 //
 сравниваем с глобальной переменной, если не совпадает, обнуляем width
 iptables -A act -m if neq gg "jiffies" "jiffold" -j mov gg "jiffold" "jiffies"
 iptables -A act -m if ge gc "width" 10000 -j DROP // если за секунду счетчик
 достиг 10000, то выкидываем пакет.
 
 По идее, скорость обработки таких правил будет не особо меньше, чем обработка
 обычных правил iptables.
 
 --- ifmail v.2.15dev5
  * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Скриптовый язык для netfilter   Ilya Teterin   20 Nov 2002 13:07:59 
 Re: Скриптовый язык для netfilter   Vitaly.Lugovsky@ontil.ihep.su   20 Nov 2002 16:16:44 
 Re: Скриптовый язык для netfilter   Ilya Teterin   20 Nov 2002 21:43:23 
 Re: Скриптовый язык для netfilter   Vitaly.Lugovsky@ontil.ihep.su   01 Dec 2002 15:40:23 
 Re: Скриптовый язык для netfilter   Master Yoda   21 Nov 2002 10:44:23 
 Re: Скриптовый язык для netfilter   Master Yoda   23 Nov 2002 02:30:24 
 Re: Re: Скриптовый язык для netfilter   Alexandr S. Agranovsky   23 Nov 2002 13:23:39 
 Re: script for netfilter   Aleksey Barabanov   23 Nov 2002 13:45:53 
 Re: Скриптовый язык для netfilter   Ilya Teterin   23 Nov 2002 22:34:04 
 Re: Скриптовый язык для netfilter   Master Yoda   25 Nov 2002 02:55:50 
 Re: Скриптовый язык для netfilter   Ilya Teterin   25 Nov 2002 08:21:23 
 Re: Скриптовый язык для netfilter   Master Yoda   26 Nov 2002 06:40:49 
 Re: Скриптовый язык для netfilter   Igor Plekhov   25 Nov 2002 06:05:00 
 Re: Скриптовый язык для netfilter   Vitaly.Lugovsky@ontil.ihep.su   01 Dec 2002 15:41:49 
Архивное /ru.linux/16679252b5dea.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional