Home Gentoo Server

Допълнение към Скрипт за следене на трафика

07.04.2014 Posted by Александър Христов

В последно време често ми се налага да рестартирам firewall-a, поради разни промени по мрежата. При което се налага на ново всеки път да добавям правилата за наблюдение на трафика. И не знам вече след кой път ми писна и написах малък скрип за улеснение на нещата.

[code lang=“bash“]
#!/bin/bash
#
# script by alex@hgs.name
##############################################
iptables=“/sbin/iptables“
b_ip=“100″
e_ip=“253″
##############################################

#IP Cicle for traffic monitoring down
ip_tmd_cicle () {
if [ $begin_ip -gt $end_ip ]; then
echo
else
for IP in 192.168.1.$begin_ip ;
do
$iptables -A TRAFFIC_DOWN -j RETURN -d 192.168.1.$begin_ip
begin_ip=$(( $begin_ip+1 ))
ip_tmd_cicle
done
fi
}

#IP Cicle for traffic monitoring upload
ip_tmu_cicle () {
if [ $begin_ip -gt $end_ip ]; then
echo
else
for IP in 192.168.1.$begin_ip ;
do
$iptables -A TRAFFIC_UP -j RETURN -s 192.168.1.$begin_ip
begin_ip=$(( $begin_ip+1 ))
ip_tmu_cicle
done
fi
}

create_rules_down (){
export begin_ip=$b_ip
export end_ip=$e_ip
traffic_down=`iptables -L | grep TRAFFIC_DOWN | awk ‘{print $2}’`
if [ „$traffic_down“ = „TRAFFIC_DOWN“ ]; then
echo -e „\e[1;32m“ Chain TRAFFIC_DOWN exist“\e[0m“
$iptables -I FORWARD -j TRAFFIC_DOWN
ip_tmd_cicle
else
echo -e „\e[1;33m“ Chain TRAFFIC_DOWN not exist and create“\e[0m“
$iptables -N TRAFFIC_DOWN
$iptables -I FORWARD -j TRAFFIC_DOWN
ip_tmd_cicle
fi
}

create_rules_up (){
export begin_ip=$b_ip
export end_ip=$e_ip
traffic_up=`iptables -L | grep TRAFFIC_UP | awk ‘{print $2}’`
if [ „$traffic_up“ = „TRAFFIC_UP“ ]; then
echo -e „\e[1;32m“ Chain TRAFFIC_UP exist“\e[0m“
$iptables -I FORWARD -j TRAFFIC_UP
ip_tmu_cicle
else
echo -e „\e[1;33m“ Chain TRAFFIC_UP not exist and create“\e[0m“
$iptables -N TRAFFIC_UP
$iptables -I FORWARD -j TRAFFIC_UP
ip_tmu_cicle
fi
}

# Starting script
echo -e „\e[1;32m“Starting create traffic monitoring rules, please wait … „\e[0m“
echo
create_rules_down
create_rules_up
echo -e „\e[1;32m“End create traffic monitoring rules.“\e[0m“

[/code]

Някой допълнителни обяснения:
Има проверка за Chain TRAFFIC_UP и Chain TRAFFIC_UP дали съществуват. Ако няма се създават.
Няма проверка в Chain има някакви правила.

Идеята на скрипта е след рестартиране на скрипта за firewall-a в който повечето админи залагат правила за пълно нулиране на firewall-а да се добавят необходимите.