« -: Dec 15, 2005, 21:36 »
Здравейте,
имам инсталиран на Slackware 10.2 netacct 0.75, който отчита трафика от БТК АДСЛ модем, генериран от различните юзери на LAN мрежата. Хоста се ползва като gateway, една карта за бтк модема, една за мрежата.
Проблемът ми е, че се отчита (записва се в базата данни) само общият трафик само от модема, т.е. само от адреси 192.168.1.0, 192.168.1.1.. , а не от IP-тата, които са аднати (в случая 10.0.3.1 - 10.0.3.254).
Тъй като съм дилетант и не мога да опиша с две думи, ще дам какви са ми настройките:
в rc.local се изпълняват следните команди:
route.add default gw 192.168.1.1
echo "1" > /proc/sys/net/ipv4/ip_forward
/root/net.pl
Като файла net.pl е със следното съдържание:
#!/usr/bin/perl
$file="./file.user";
$iptables="/usr/sbin/iptables";
print `$iptables -F -t nat`;
print `$iptables -F adsl`;
print `$iptables -N adsl`;
print `$iptables -F FORWARD`;
print `$iptables -A FORWARD -s 10.0.3.0/24 -j adsl`;
print `$iptables -A FORWARD -d 10.0.3.0/24 -j adsl`;
print `$iptables -F masq`;
open(USER, "<$file") || &ErrorMessage;
@ip = <USER>;
close(USER);
print "NoTraffic users setup:\n";
foreach $ip (@ip) {
chomp($ip);
print `$iptables -A adsl -s $ip -j ACCEPT`;
print `$iptables -A adsl -d $ip -j ACCEPT`;
print `$iptables -t nat -A POSTROUTING -o eth1 -s $ip -j MASQUERADE`;
print "$ip \tAdded\n";
};
print "Bqha dobaverni obshto ",$#ip+1," users\n";
sub ErrorMessage {
print "File : nemoje da bade otvoren ili ne sa6testvuva";
};
Конфигурационният файл naccttab на netacct съдържа:
sniff 1 # 0 = not setting PROMISC mode
# 1 = put interface in PROMISC mode
database mysql
mysql_user xxx
mysql_password xxx
mysql_host localhost
mysql_port 0
mysql_database netacct
pidfile /var/run/nacctd.pid
# set pid file
# tis will help if you want to
# two (or more) nacctd on same machine
compactnet 10.0.3.0 255.255.252.0
compactnet 10.0.2.0 255.255.252.0
compactnet 192.168.1.0 255.255.255.252
# log traffic only for these networks
# all other packets are NOT logged
ournet 10.0.3.0 255.255.252.0
ournet 10.0.2.0 255.255.252.0
ournet 192.168.1.0 255.255.255.252
# Ours IP nets for diferenciation of
# peering traffic types
#direct_peer 194.12.233.160 255.255.255.224
# log traffic between 2 or more regional ISP-s
flush 300 # flush every 5 minutes..
fdelay 60 # this defines after how many seconds..
#notdev eth1 # Dont log entries for this device
# Use this on routers that you dont
# log forwarded packets twice.
device eth0
device eth1 # device to put into promiscous mode
# you can specify as many as you want
# and you don't have to specify one
# (e.g. if this runs on your router)
# iflimit eth0 # on machines with multiple interfaces,
# log only packets on this interface
# mutually exclusive with hostlimit
# ignoremask 255.255.255.0
# Ignore traffic on same class C net
ignorenet 127.0.0.0 255.0.0.0
# ignore loopback net
debug 0 # set debugging level
debugfile /tmp/nacctd.debug # where to put debugging info
# Device configuration
# Defines where the real data starts for each type of interface
# First give the name prefix, then the offset in bytes to the start
# of the real data, then the offset of the type field in bytes. If
# there is no type field, just give a 0.
# Don't specify SLIP or PPP devices here, otherwise association of
# dynamic ip-addresses with usernames won't work
# Put device types with more traffic last.
headers tr 40 38
headers lo 14 12
headers isdn 4 0
# headers isdn 14 0 # for hdlc/trans/cisco and hdlc/trans/raw
headers eth 14 12
headers plip 14 12
# hostlimit 12.34.56.78 # log only packets to/from this host
# hostlimit 34.56.78.12 # and this one too
# this option is mutually exclusive with iflimit
Ако някой се е сблъсквал с подобен проблем и/или знае решението ще съм му много благодарен ако го сподели. Търсих и гледах дали няма подобни теми в този форум, даващи отговор на въпроса ми, но не открих.