|
Iptables, Snmp i transfer/ruch z poszczególnych komputerów
Luc3k - 12-03-2010 11:41
Utknąłem, liczę na Waszą pomoc. Konfiguruję sobie mrtg i nie mam pomysłu jaki skrypt napisać, żeby wyświetlił mi w konsoli aktualny transfer (z jaką prędkością, lub jaki ruch generuje komputer np. na adresie 10.0.0.213) Dotychczas używałem takiego skryptu, ale to była inna dystrybucja: #!/bin/bash iptables -L mrtg_traffic -v -x -n | grep " $1 " | head -1 | awk '{print $2}' iptables -L mrtg_traffic -v -x -n | grep " $1 " | tail -1 | awk '{print $2}'
po uruchomieniu skryptu ładnie zwracał mi takie wartości: [root@Lan14 bin]# ./ip 192.168.14.105 196552436 19006866
Niestety w Debianie nie ma żadnej wartości "mrtg_traffic". Jak inaczej można taką wartość wyciągnąć z systemu?
PS. Mam zainstalowane SNMP.
MadCow - 12-03-2010 21:43
Hej, W dużym skrócie, mrtg_traffic to tablica iptables, przez która przechodziły pakiety w celu ich zliczania, domyślnie takich tablic w iptables nie ma. Najprościej to poszukaj skryptów ze starej dystrybucji, które generowały iptables (pewnie potrzebny jakiś plik z użytkownikami/ adresami IP).
Po chwili z Google znalazłem:
#!/bin/bash
. /etc/rc.conf
. /etc/rc.d/functions
PID="`pidof -o %PPID -x mrtg.run mrtg`"
mrtg_stop() {
stat_busy "Stopping MRTG"
for i in `cat /etc/mrtg/ipki.txt`; do
iptables -D mrtg_traffic -d $i -j RETURN 2>/dev/null
iptables -D mrtg_traffic -s $i -j RETURN 2>/dev/null
done
iptables -D FORWARD -j mrtg_traffic 2>/dev/null
#----------------------------------------------------------------------------------
iptables -D INPUT -j mrtg_traffic 2>/dev/null
iptables -D OUTPUT -j mrtg_traffic 2>/dev/null
#----------------------------------------------------------------------------------
iptables -F mrtg_traffic 2>/dev/null
iptables -X mrtg_traffic 2>/dev/null
[ ! -z "$PID" ] && kill -9 $PID 2>/dev/null
if [ $? -gt 0 ]; then
stat_fail
else
rm_daemon mrtg
stat_done
fi
}
mrtg_start() {
stat_busy "Starting MRTG"
if [ ! -z "$PID" ]; then
stat_fail
else
add_daemon mrtg
#Na wszelki wypadek...
for i in `cat /etc/mrtg/ipki.txt`; do
iptables -D mrtg_traffic -d $i -j RETURN 2>/dev/null
iptables -D mrtg_traffic -s $i -j RETURN 2>/dev/null
done
iptables -D FORWARD -j mrtg_traffic 2>/dev/null
#----------------------------------------------------------------------------------
iptables -D INPUT -j mrtg_traffic 2>/dev/null
iptables -D OUTPUT -j mrtg_traffic 2>/dev/null
#----------------------------------------------------------------------------------
iptables -F mrtg_traffic 2>/dev/null
iptables -X mrtg_traffic 2>/dev/null
#Start
iptables -N mrtg_traffic
for i in `cat /etc/mrtg/ipki.txt`; do
iptables -A mrtg_traffic -d $i -j RETURN
iptables -A mrtg_traffic -s $i -j RETURN
done
iptables -I FORWARD -j mrtg_traffic
#----------------------------------------------------------------------------------
iptables -I INPUT -j mrtg_traffic
iptables -I OUTPUT -j mrtg_traffic
#----------------------------------------------------------------------------------
/etc/mrtg/mrtg.run &
stat_done
fi
}
case "$1" in
start)
mrtg_start
;;
stop)
mrtg_stop
;;
restart)
mrtg_stop
sleep 3
mrtg_start
;;
*)
echo "Uzyj: $0 {start|stop|restart}"
;;
esac
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|