hotsanic |
Subversion Repositories: |
Rev 1 | Rev 5 | |
---|---|---|
Line 27... | Line 27... | |
} |
} | |
} |
} | |
|
| |
if ( ! defined $IPTABLES) { die time," ",$MODNAME,": IPTABLES not configured in module settings...\n"; } |
if ( ! defined $IPTABLES) { die time," ",$MODNAME,": IPTABLES not configured in module settings...\n"; } | |
|
| |
print "clearing old accounting chains\n"; |
print "\nclearing old and setting up new accounting chains\n"; | |
foreach $dev (split(/,/,$EXTIF)) { |
foreach $prt ("tcp","udp","icmp","all") { | |
if ($IPTABLES =~ /ipchains/) { |
system("$IPTABLES -F acct_ext_$prt > /dev/null"); | |
system("$IPTABLES -D input -i $dev -j acct_ext > /dev/null"); |
system("$IPTABLES -X acct_ext_$prt > /dev/null"); | |
system("$IPTABLES -D output -i $dev -j acct_ext > /dev/null"); |
system("$IPTABLES -F acct_int_$prt > /dev/null "); | |
} |
system("$IPTABLES -X acct_int_$prt > /dev/null"); | |
else { |
system("$IPTABLES -N acct_ext_$prt > /dev/null"); | |
system("$IPTABLES -D INPUT -i $dev -j acct_ext > /dev/null"); |
system("$IPTABLES -N acct_int_$prt > /dev/null"); | |
system("$IPTABLES -D OUTPUT -o $dev -j acct_ext > /dev/null"); |
||
system("$IPTABLES -D FORWARD -i $dev -j acct_ext > /dev/null"); |
||
system("$IPTABLES -D FORWARD -o $dev -j acct_ext > /dev/null"); |
||
} |
||
} |
} | |
system("$IPTABLES -F acct_ext > /dev/null"); |
||
system("$IPTABLES -X acct_ext > /dev/null"); |
||
|
||
foreach $dev (split(/,/,$INTIF)) { |
||
if ($IPTABLES =~ /ipchains/) { |
||
system("$IPTABLES -D input -i $dev -j acct_int > /dev/null"); |
||
system("$IPTABLES -D output -i $dev -j acct_int > /dev/null"); |
||
} |
||
else { |
||
system("$IPTABLES -D INPUT -i $dev -j acct_int > /dev/null"); |
||
system("$IPTABLES -D OUTPUT -o $dev -j acct_int > /dev/null"); |
||
system("$IPTABLES -D FORWARD -i $dev -j acct_int > /dev/null"); |
||
system("$IPTABLES -D FORWARD -o $dev -j acct_int > /dev/null"); |
||
} |
||
} |
||
system("$IPTABLES -F acct_int > /dev/null "); |
||
system("$IPTABLES -X acct_int > /dev/null"); |
||
|
||
print "\nsetting up accounting chains\n"; |
||
system("$IPTABLES -N acct_ext > /dev/null"); |
||
system("$IPTABLES -N acct_int > /dev/null"); |
||
|
| |
# |
# | |
# set up Accounting for unique IPs in subnet... |
# set up Accounting for unique IPs in subnet... | |
# |
# | |
|
| |
print "\naccounting for local targets\n"; |
print "\naccounting for local targets\n"; | |
|
| |
foreach $host (@LOCALDEST) { |
foreach $host (@LOCALDEST) { | |
print " ",$host,"\n"; |
print " ",$host,"\n"; | |
foreach $prt ("tcp","udp","icmp","all") { |
foreach $prt ("tcp","udp","icmp","all") { | |
system("$IPTABLES -A acct_int -s $host -p $prt"); |
system("$IPTABLES -A acct_int_$prt -s $host"); | |
system("$IPTABLES -A acct_int -d $host -p $prt"); |
system("$IPTABLES -A acct_int_$prt -d $host"); | |
} |
} | |
} |
} | |
|
| |
# |
# | |
# set up accounting for dedicated networks to loacl subnet |
# set up accounting for dedicated networks to local subnet | |
# |
# | |
|
| |
print "\naccounting for externel targets\n"; |
print "\naccounting for externel targets\n"; | |
|
| |
foreach $host (@WORLDDEST) { |
foreach $host (@WORLDDEST) { | |
print " ",$host,"\n"; |
print " ",$host,"\n"; | |
foreach $prt ("tcp","udp","icmp","all") { |
foreach $prt ("tcp","udp","icmp","all") { | |
system("$IPTABLES -A acct_ext -s $host -p $prt"); |
system("$IPTABLES -A acct_ext_$prt -s $host"); | |
system("$IPTABLES -A acct_ext -d $host -p $prt"); |
system("$IPTABLES -A acct_ext_$prt -d $host"); | |
} |
} | |
} |
} | |
|
| |
print "\nlinking accounting chains to INPUT/OUTPUT chain\n"; |
print "\nlinking accounting chains to INPUT/OUTPUT chain\n"; | |
foreach $dev (split(/,/,$EXTIF)) { |
foreach $dev (split(/,/,$EXTIF)) { | |
if ($IPTABLES =~ /ipchains/) { |
if ($IPTABLES =~ /ipchains/) { | |
system("$IPTABLES -I input -i $dev -j acct_ext > /dev/null"); |
system("$IPTABLES -I input -i $dev -j acct_ext > /dev/null"); | |
system("$IPTABLES -I output -i $dev -j acct_ext > /dev/null"); |
system("$IPTABLES -I output -i $dev -j acct_ext > /dev/null"); | |
} |
} | |
else { |
else { | |
system("$IPTABLES -I INPUT -i $dev -j acct_ext > /dev/null"); |
foreach $prt ("tcp","udp","icmp","all") { | |
system("$IPTABLES -I OUTPUT -o $dev -j acct_ext > /dev/null"); |
system("$IPTABLES -I INPUT -i $dev -p $prt -j acct_ext_$prt > /dev/null"); | |
system("$IPTABLES -I FORWARD -i $dev -j acct_ext > /dev/null"); |
system("$IPTABLES -I OUTPUT -o $dev -p $prt -j acct_ext_$prt > /dev/null"); | |
system("$IPTABLES -I FORWARD -o $dev -j acct_ext > /dev/null"); |
system("$IPTABLES -I FORWARD -i $dev -p $prt -j acct_ext_$prt > /dev/null"); | |
system("$IPTABLES -I FORWARD -o $dev -p $prt -j acct_ext_$prt > /dev/null"); | ||
} | ||
} |
} | |
} |
} | |
| ||
foreach $dev (split(/,/,$INTIF)) { |
foreach $dev (split(/,/,$INTIF)) { | |
if ($IPTABLES =~ /ipchains/) { |
if ($IPTABLES =~ /ipchains/) { | |
system("$IPTABLES -I input -i $dev -j acct_int > /dev/null"); |
system("$IPTABLES -I input -i $dev -j acct_int > /dev/null"); | |
system("$IPTABLES -I output -i $dev -j acct_int > /dev/null"); |
system("$IPTABLES -I output -i $dev -j acct_int > /dev/null"); | |
} |
} | |
else { |
else { | |
system("$IPTABLES -I INPUT -i $dev -j acct_int > /dev/null"); |
foreach $prt ("tcp","udp","icmp","all") { | |
system("$IPTABLES -I OUTPUT -o $dev -j acct_int > /dev/null"); |
system("$IPTABLES -I INPUT -i $dev -p $prt -j acct_int_$prt > /dev/null"); | |
system("$IPTABLES -I FORWARD -i $dev -j acct_int > /dev/null"); |
system("$IPTABLES -I OUTPUT -o $dev -p $prt -j acct_int_$prt > /dev/null"); | |
system("$IPTABLES -I FORWARD -o $dev -j acct_int > /dev/null"); |
system("$IPTABLES -I FORWARD -i $dev -p $prt -j acct_int_$prt > /dev/null"); | |
system("$IPTABLES -I FORWARD -o $dev -p $prt -j acct_int_$prt > /dev/null"); | ||
} | ||
} |
} | |
} |
} | |
print "\n\nAll done! - accounting should be running now!\n"; |
print "\n\nAll done! - accounting should be running now!\n"; | |
|
| |
|
|