Страница 1 из 1
IPFW + NeTAMS
Добавлено: 2008-04-09 1:37:01
super-fox
Всем привет! Вот сейчас занялся сервером, который будет людей пускать в интернет, остановился на выборе IPFW + NeTAMS. У меня есть пару вопросов:
1. Настроить файрвол то я настроил, и теперь хочу с помощью divert завернуть трафик на биллинг, чтобы он в свою очередь начал щитать. Но не тут то было:
Код: Выделить всё
Super-foX# ipfw show
00100 0 0 check-state
00200 295916 12289078 divert 8668 ip from 192.168.1.0/24 to any out via rl0
00300 585070 869429562 divert 8668 ip from any to 192.168.0.4 in via rl0
00400 0 0 divert 199 ip from 192.168.1.0/24 to any out via rl0
00500 73 6530 divert 199 ip from any to 192.168.0.4 in via rl0
00600 100 10472 allow ip from any to any via lo0
00700 0 0 allow ip from 192.168.0.13 to any via rl0
00800 0 0 deny ip from any to 127.0.0.0/8
00900 0 0 deny ip from 127.0.0.0/8 to any
01000 0 0 deny log icmp from any to 255.255.255.255 in via rl0
01100 0 0 deny log icmp from any to 255.255.255.255 out via rl0
01200 1759695 1763351065 allow tcp from any to any established
01300 0 0 allow ip from 192.168.1.1 to any out xmit rl0
01400 70 11823 allow udp from any 53 to any via rl0
01500 103 6515 allow udp from any to any dst-port 53 via rl0
01600 0 0 allow udp from any to any dst-port 123 via rl0
01700 0 0 allow tcp from any to 192.168.1.1 dst-port 21 via rl0
01800 8 464 allow icmp from any to any icmptypes 0,8,11
01900 0 0 allow tcp from any to 192.168.0.4 dst-port 22 via rl0
02000 279 13392 allow tcp from any to any via fxp0
02100 1902 191520 allow udp from any to any via fxp0
02200 0 0 allow icmp from any to any via fxp0
02300 259 12432 allow tcp from any to any via rl0
02400 1779 176458 allow udp from any to any via rl0
02500 7 392 allow icmp from any to any via rl0
65535 0 0 allow ip from any to any
Может я просто с правилами напутал? Вот так у меня выглядит правила:
Код: Выделить всё
${FwCMD} add divert 8668 ip from ${NetIn}/${NetMask} to any out via ${LanOut}
${FwCMD} add divert 8668 ip from any to ${IpOut} in via ${LanOut}
${FwCMD} add divert 199 ip from ${NetIn}/${NetMask} to any out via ${LanOut}
${FwCMD} add divert 199 ip from any to ${IpOut} in via ${LanOut}
2. Хочу прикрутить сюда ещё счёт пользователя и чтобы при отрицательном счёте абонента отключало от интернета! Посоветуйте как ето реально можно сделать? Я думал, что заведу в MySQL базу, где будет хранится Логин, Сумма на счету, Тариф. Ну и собственно говоря написать какой нить shell скрипт, который например в 00:00 каждый день будет смотреть в мускл, смотреть какой у абонента тариф и соответственно с етим тарифом снимать денюжку и в крон поставить на выполнение. Или может ктото ещё чтото предложыт? Буду благодарен за советы, а то я в ЮНИКС области новичек!
Re: IPFW + NeTAMS
Добавлено: 2008-04-09 6:56:21
GreenDay
насколько я понял, правило 400 надо поставить до 200
Re: IPFW + NeTAMS
Добавлено: 2008-04-09 9:48:05
schizoid
Код: Выделить всё
divert 199 ip from 192.168.1.0/24 to any out via rl0
divert 8668 ip from 192.168.1.0/24 to any out via rl0
divert 8668 ip from any to 192.168.0.4 in via rl0
divert 199 ip from any to 192.168.0.4 in via rl0
в доке это написано
а на счет пункта 2 - зачем изобретать велосипед? все это умеет нетамс, который вы собсна уже поставили.
читайте доку к нему

Re: IPFW + NeTAMS
Добавлено: 2008-04-09 12:34:02
GreenDay
я тут чет советовать полез, а у самого еще нифига не работает
Код: Выделить всё
[root@freebsd /usr/home/greenday]# cat /usr/local/etc/netams.cfg
#NeTAMS 3.4.0 (3146.1) root@freebsd.edinros.local / Tue Mar 11 12:04:13 NOVT 2008
#configuration built Wed Apr 9 15:34:17 2008
#begin
#global variables configuration
debug none
language ru
user oid 05E018 name admin real-name "Sergey" crypted $1$$V.9V6fkEfP593Yd1i.ecr1 email root@localhost permit all
#services configuration
service server 0
login local
listen 20001
max-conn 10
service processor
lookup-delay 30
flow-lifetime 180
policy oid 0A7F65 name ip target proto ip
policy oid 0DF92D name www target proto tcp port 80 81 8080 3128 8888
policy oid 0CA3BD name mail target proto tcp port 25 110 995 587
policy oid 0E938F name icq target proto tcp port 5190
restrict all pass local pass
unit group oid 019E62 name NETWORK acct-policy ip www mail icq
unit net oid 00D2C4 name EDINROS ip 192.168.0.0/24 acct-policy ip www mail icq
unit user oid 08D019 name greenday ip 192.168.0.68 password 123 parent NETWORK acct-policy ip www mail icq
unit user oid 0AA9E7 name ip-88 ip 192.168.0.88
unit user oid 0A9AB7 name ip-85 ip 192.168.0.85
unit user oid 0D1B37 name ip-8 ip 192.168.0.8
unit user oid 09CD39 name ip-71 ip 192.168.0.71
unit user oid 0F81D8 name ip-56 ip 192.168.0.56
unit user oid 0EC9E2 name ip-11 ip 192.168.0.11
unit user oid 064480 name arina ip 192.168.0.79 acct-policy ip www mail icq
unit user oid 038AFD name ip-95 ip 192.168.0.95
unit user oid 0B5C04 name ip-62 ip 192.168.0.62
unit user oid 04F51F name ip-98 ip 192.168.0.98 acct-policy ip www mail icq
unit user oid 00F5F6 name ip-92 ip 192.168.0.92 acct-policy ip www mail icq
unit user oid 028697 name ip-17 ip 192.168.0.17 acct-policy ip www mail icq
unit user oid 0A8EDE name ip-72 ip 192.168.0.72 acct-policy ip www mail icq
unit user oid 08A569 name ip-7 ip 192.168.0.7 acct-policy ip www mail icq
unit user oid 0B73A2 name ip-15 ip 192.168.0.15 acct-policy ip www mail icq
unit user oid 03D5D9 name ip-78 ip 192.168.0.78 acct-policy ip www mail icq
unit user oid 09390E name ip-81 ip 192.168.0.81 acct-policy ip www mail icq
service storage 1
type mysql
host localhost
user netams
password netams
accept all
service data-source 1
type ip-traffic
source divert 199
layer7-detect urls
service monitor 0
monitor to file /tmp/mon_netams.log
monitor unit greenday
monitor unit arina
service login
relogin no
service html
path /usr/local/www/data/stat
run 5min
url http://192.168.0.250/stat/
htaccess yes
client-pages all
display-top 10
account-pages all
service scheduler
oid 08FFFF time 5min action "html"
#end
Код: Выделить всё
[root@freebsd /usr/home/greenday]# ipfw show | grep divert && ipfw show | grep fwd
00452 133577 107711575 divert 199 ip from any to any in via rl1
00500 17174465 14525828395 divert 8668 ip from any to any in via rl1
03500 17465529 2578776098 divert 8668 ip from any to any out via rl1
03550 140405 16680801 divert 199 ip from any to any out via rl1
00451 6131807 1167163148 fwd 192.168.0.250,3128 tcp from 192.168.0.0/24 to any dst-port 80,8888
как видно - пакеты ходят на нетамс, но дальше ничего
в мониторе пусто, странички пустые.. пробовал в базе копаться - тоже ничего
конфиги стандартные, как с оф сайта или со статьи на этом сайте
подскажите в чем может быть проблемка, я просто уже запарился конфиги перебирать..
насколько я помню - работало как то коряво, если libpcap указать.. но мне дайвертом надо
Re: IPFW + NeTAMS
Добавлено: 2008-04-12 1:06:22
super-fox
Чтото у меня невыходит! Когда я ставлю так:
Код: Выделить всё
divert 199 ip from 192.168.1.0/24 to any out via rl0
divert 8668 ip from 192.168.1.0/24 to any out via rl0
divert 8668 ip from any to 192.168.0.4 in via rl0
divert 199 ip from any to 192.168.0.4 in via rl0
То у меня:
Код: Выделить всё
Super-foX# ipfw show
00200 295916 12289078 divert 199 ip from 192.168.1.0/24 to any out via rl0
00300 0 0 divert 8668 ip from any to 192.168.0.4 in via rl0
00400 585070 869429 divert 8668 ip from 192.168.1.0/24 to any out via rl0
00500 73 6530 divert 199 ip from any to 192.168.0.4 in via rl0
И собственно ничего неработает, потому что правило
Код: Выделить всё
divert 8668 ip from 192.168.1.0/24 to any out via rl0
равно 0.
Код: Выделить всё
00300 0 0 divert 8668 ip from any to 192.168.0.4 in via rl0
А если я меняю правило таким образм:
Код: Выделить всё
divert 8668 ip from 192.168.1.0/24 to any out via rl0
divert 199 ip from 192.168.1.0/24 to any out via rl0
divert 8668 ip from any to 192.168.0.4 in via rl0
divert 199 ip from any to 192.168.0.4 in via rl0
то:
Код: Выделить всё
Super-foX# ipfw show
00200 295916 12289078 divert 8668 ip from 192.168.1.0/24 to any out via rl0
00300 0 0 divert 199 ip from any to 192.168.0.4 in via rl0
00400 585070 869429 divert 8668 ip from 192.168.1.0/24 to any out via rl0
00500 73 6530 divert 199 ip from any to 192.168.0.4 in via rl0
собственно НАТ работает нормально, но ничё на НЕТАМС непопадает! Немогу понять почему он блокирует второе правило!
Re: IPFW + NeTAMS
Добавлено: 2008-04-12 22:23:19
schizoid
2 super-fox, нетамс вообще запущен?
конфиг покажите.
Re: IPFW + NeTAMS
Добавлено: 2008-04-13 1:28:43
super-fox
Вот мой netams.cfg
Код: Выделить всё
#NeTAMS 3.4.0 (3146.1) root@localhost / Sat Apr 5 01:20:01 EEST 2008
#configuration built Mon Apr 7 21:25:40 2008
#begin
#global variables configuration
debug none
language ru
user oid 0CACFB name super-fox real-name "Super-foX" crypted $1$$HpXmjtul/3i1.bf.B27bU. email super-fox@i.ua permit all
#services configuration
service server 0
login local
listen 20001
max-conn 6
service processor
lookup-delay 60
flow-lifetime 180
policy oid 0429DE name ip target proto ip
policy oid 05A799 name www target proto tcp port 80 81 8080 3128
policy oid 09193F name mail target proto tcp port 25 110
restrict all pass local pass
unit group oid 012E18 name CLIENTS acct-policy ip www mail
unit host oid 0FA1D5 name superfox ip 192.168.1.13 description " ip 192.168.1.13" email super-fox@i.ua password ghjdthrf acct-policy ipM
unit host oid 0F6C2A name server ip 192.168.0.1 acct-policy ip www mail
unit user oid 014CDD name client1 ip 192.168.0.10 email client1@domain.ru parent CLIENTS acct-policy ip www mail
unit net oid 0DAF11 name LAN ip 192.168.0.0/24 acct-policy ip www mail
service storage 1
type mysql
host localhost
user root
password 1111
accept all
service data-source 0
type ip-traffic
source divert 199
layer7-detect urls
service quota
policy ip
notify soft owner
notify hard owner
notify return owner
service alerter 0
report oid 06100 name rep1 type traffic period day detail simple
smtp-server localhost
service html
path /usr/local/apache/htdocs/stat
run 10min
url http://192.168.0.4/stat/
htaccess yes
client-pages all
account-pages none
service scheduler
oid 08FFFF time 10min action "html"
#end
Нетамс запущен.
Re: IPFW + NeTAMS
Добавлено: 2008-04-13 1:48:45
super-fox
Сори, розобрался, то я недоглядел! Ща вроде всё работает! Вот только меня смущает одно, я так понимаю что diver 199 out и divert 8668 out должны обрабатывать одинкаовое количество пакетов, так как и diver 199 in и divert 8668 in, а у меня немного нетак,ето нормально?
Код: Выделить всё
00100 1703 1515139 divert 199 ip from 192.168.1.0/24 to any out via rl0
00200 1703 1515139 divert 8668 ip from 192.168.1.0/24 to any out via rl0
00300 1092 130694 divert 8668 ip from any to 192.168.0.4 in via rl0
00400 10 897 divert 199 ip from any to 192.168.0.4 in via rl0