LINUX.ORG.RU
ФорумAdmin

Iptables+trafic+html


0

0

Имеется маскардинг на IPtable, Нормально работает, байтики ссчитает. Интересует вот что, не существует ли чего-нибуль такого, чтобы трафик дёргался из iptables и в HTMLe показывался???

anonymous

ipac-ng поищи

anonymous
()

Если просто графиги загрузки - можно без ipac-ng, сделать через mrtg + свои скрипты на пару строчек :-)

spirit ★★★★★
()

Многоуважаемый spirit был бы благодарен, если покажите как увидеть график загрузки через mrtg и iptables. А загрузку канала?

Pinkf
()

Для того, чтоб mrtg рисовал такие графики, нужно иметь соответствующие правила в сетевом фильтре, которые будут считать траффик.
Значит :
0) если их нет - создаем;
1) желательно читаем документацию http://bog.pp.ru/work/mrtg.html, особенно параметр "Target[target]: внешняя-программа-с-параметрами-в-обратных-кавычках"
2) запускаем iptables -L имя_цепочки --lin - смотрим номера, под которыми у нас идут правила (мне так было проще всего говорить скрипту из каких правил брать информацию)
3) пишем примерно такое (по крайней мере у меня такое есть и работает):

cat /etc/mrtg/scripts/smtp:
-------
#!/bin/bash

# Счетчик почты

iptables='/sbin/iptables'
head='/usr/bin/head'
tail='/usr/bin/tail'
gawk='/bin/gawk'
echo='/bin/echo'

uptime=`/usr/bin/uptime`
host=`/bin/hostname`

# Название цепочек с правилом для подсчета входящих пакетов и исходящих
chain_in='count-in'
chain_out='count-out'
# Номера правил в цепочках $chain_in и $chain_out
rulenum_in_1=7
rulenum_in_2=8
rulenum_out_1=7
rulenum_out_2=8

let n=$rulenum_in_1+2
in1=`$iptables -L $chain_in --line-numbers -vx|$head -$n|$tail -1|$gawk '{print $3}'`
let n=$rulenum_in_2+2
in2=`$iptables -L $chain_in --line-numbers -vx|$head -$n|$tail -1|$gawk '{print $3}'`
let in=$in1+$in2
let n=$rulenum_out_1+2
out1=`$iptables -L $chain_out --line-numbers -vx|$head -$n|$tail -1|$gawk '{print $3}'`
let n=$rulenum_out_2+2
out2=`$iptables -L $chain_out --line-numbers -vx|$head -$n|$tail -1|$gawk '{print $3}'`
let out=$out1+$out2

$echo $in
$echo $out
$echo $uptime
$echo $host
------- end cut -------
P.S. $rulenum_in_1+2 - "+2" из-за того, что iptables выводит заголовок на 2 строки.

4) в mrtg.cfg дописываем такое:
cat /etc/mrtg/mrtg.cfg
------------
...
###
### Подсчет SMTP траффика
###
Target[smtp]: `/etc/mrtg/scripts/smtp`
MaxBytes[smtp]: 12345
Title[smtp]: Анализ SMTP траффика -- server.domain.com
PageTop[smtp]: <H1>Анализ SMTP траффика -- server.domain.com</H1>
<TABLE>
<TR><TD>System:</TD> <TD>server.domain.com</TD></TR>
<TR><TD>Maintainer:</TD> <TD>admin@domain.com</TD></TR>
<TR><TD>Description:</TD><TD>Simple Mail Transfer Protocol</TD></TR>
<TR><TD>ifType:</TD> <TD>SMTP</TD></TR>
<TR><TD>ifName:</TD> <TD>eth0</TD></TR>
<TR><TD>Max Speed:</TD> <TD>12345 Bytes/s</TD></TR>
</TABLE>
...
------- end cut -------

5) indexmaker /etc/mrtg/mrtg.cfg > /путь/куда/ложить/сгенеренный/index.html

6) если запуск mrtg не прописан в cron-е - прописать. Рекомендуют сначала 2 раза вручную запустить mrtg чтоб он создал свои *.log и *.old, хотя нет ничего страшного, если его первым запустит cron.

Вот и все, у меня работает :-)
P.S. Если конечно это то, что вас интересовало.

spirit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.