ок. Выкладываю все конфы
stargazer.conf
# Имя файла в котором определяются правила подсчета трафика
rules=/etc/stargazer/rules
# Рабочая директория сервере, тут содержатся данный о тарифах, изерах и админах
WorkDir=/var/stargazer/
# Имя лог файла куда пушутся события
LogFile=/var/stargazer/log/stargazer.log
# Если юзер в течение UserTimeout секунд не подает признаков жизни,
# сервер отключит его (естественно, если клиент был подключен до этого)
UserTimeout=120
# Время через которое сервер повторяет проверку того, жив ли клиент. Также это время
# через которое у клиента обновляется его статитстика. UserDelay должно быть в
# 3...10 раз меньше чем UserTimeout
UserDelay=15
# Эта опция действительна только для сервера работающего со вторым типом тарифных планов
# Она определяет что будет передаватся программе InetAccess от сервера
# FreeMb = 0 - кол-во бесплатных мегабайт в пресчете на цену нулевого направления
# FreeMb = 1 - кол-во бесплатных мегабайт в пресчете на цену первого направления
# FreeMb = 2 - кол-во бесплатных мегабайт в пресчете на цену второго направления
# .................... # FreeMb = 9 - кол-во бесплатных мегабайт в пресчете на цену девятого направления
# FreeMb = cash - кол-во денег на которые юзер может бесплатно качать
# FreeMb = none - ничего не передавать
FreeMb=2
# Время через которое пишется детальная статистика
# возможные значения 3, 2, 1, 1/2, 1/4, 1/6
# 3 - раз в три часа, 1 - раз в чаc, 1/2 - раз в пол часа, 1/6 - раз в 10 мин
StatTime=1/6
# Номер порта по которому сервер слушает обращения конфигуратора
adminPort=8888
# Номер порта по которому сервер ожидает обращения авторизатора
userPort=8888
# Максимальное кол-во юзеров. Эта величина влияет на кол-во # памяти необходимой серверу
MaxUsers=1000
# for FreeBSD only
# Имя интерфейсов на которых нужно вести подсчет трафика
iface=rl0,rl1
# Имена направлений. Пустые имена не будут отображаться
# ни в авторизаторе, ни в конфигураторе
DirName0=Local Network
DirName1=City Network
DirName2=World Network
DirName3=
DirName4=
DirName5=
DirName6=
DirName7=
DirName8=
DirName9=
# Опция определяющая менять ли местами upload и download
TurnTraff=no
#Опция определяющая обнулять трафик в конце месяца или нет
ResetTraff=yes
# "Разамазанное" снятие абонплаты. Каждый день
# 1/30 (1/31, 12/28) часть абонплаты
SpreadFee=no
# День снятия абонплаты
DayFee=1
# День, в который происходит обнуление счетчиков трафика, и
# перехода на новый тариф
DayResetTraff=1
# Владелец, группа и права доступа на файлы
# статистики у пользователей
StatOwner=root
StatGroup=stg_stat
StatMode=644
# Владелец, группа и права доступа на файлы
# конфигурации у пользователей
ConfOwner=root
ConfGroup=root
ConfMode=600
# Владелец, группа и права доступа на логи
# у пользователей
UserLogOwner=root
UserLogGroup=root
UserLogMode=644
# Разрешение на доступ конфигуратором
AdminOrder=allow,deny
AdminAllowFrom=192.168.23.5
AdminDenyFrom=all
# Разрешение на доступ авторизатором
UserOrder=allow,deny
UserAllowFrom=192.168.23.0/24
UserDenyFrom=all
# Запрет на слишком частые обращения на порт авторизатора
FloodControl=yes
OnConnect
#Этот скрипт вызывается в момент, когда пользователь
#успешно прошел авторизацию на сервере. Задач скрипта - перестроить
#файрвол так, что бы пользователь получил доступ в интернет.
#В поле Примечание у абонента я устанавливаю скорость по типу 64Kbit/s
LOGIN=$1
IP=$2
CASH=$3
ID=$4
SPEED=`cat /var/stargazer/users/$LOGIN/conf | grep 'Note=' | cut -d "=" -f2`
fwcmd="/sbin/ipfw -q"
cur_date=`date \+\%Y.\%m.\%d`
cur_time=`date \+\%H:\%M:\%S`
#${fwcmd} pipe `expr $ID + 101` config bw $SPEED
#${fwcmd} add `expr $ID + 501` pipe `expr $ID + 101` tcp from any to $IP via rl0
${fwcmd} add `expr $ID '*' 10 + 10001` allow icmp from $IP to any out via rl0 icmptype 0,3,4,11,12
${fwcmd} add `expr $ID '*' 10 + 10002` allow ip from $IP to any
${fwcmd} add `expr $ID '*' 10 + 10003` allow ip from any to $IP
echo "C `date +%Y.%m.%d-%H.%M.%S` $ID $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log
echo "C `date +%Y.%m.%d-%H.%M.%S` $ID $LOGIN $IP $CASH" >> /var/stargazer/users/allconnect.log
echo "<=;$cur_date;$cur_time;$ID;$LOGIN;$IP;$CASH" >> /home/stat/logs/connect.log
rules
# Локальные ресурсы
ALL 192.168.23.0/24 DIR0
# Трафик на роутер
ALL 10.0.5.34 DIR0
# Городской трафик
#ALL 195.248.160.0/19 DIR1
#ALL 212.86.224.0/19 DIR1
#ALL 213.227.192.0/18 DIR1
#ALL 217.24.160.0/20 DIR1
# Пинг
ICMP 0.0.0.0/0 NULL
# Мир
ALL 0.0.0.0/0 DIR2
rc.firewall
# Определим основные переменные # int_if, serv_if, ext_if . названия интерфейсов, к которым
# подключены соответствующие сети . пользовательская, серверная, внешняя.
#!/bin/sh
fwcmd="/sbin/ipfw -q"
natdcmd="/sbin/natd"
int_if="rl0"
serv_if="rl1"
ext_if="rl1"
Сбрасываем правила ipfw
${fwcmd} -f flush
# Задаем маскарадинг пакетов из пользовательской сети во внешнюю сеть
# опции маскарадинга
# -s для правильной работы таких протоколов как FTP, IRC, DCC
# -m пытаться использовать те же номера портов, которые имеют
# исходящие пакеты. (короче нужно для правильной работы таких протоколов как RPC)
# -u использовать маскарадинг только для немаршрутизируемых
# адресов (192.168.23.0/16 172.16.0.0/12 10.0.0.0/8)
# -a использовать данные IP адрес для макарадинга пакетов.
${natdcmd} -s -m -u -a 10.0.5.34
# Разрешаем ходить ICMP пакетам
${fwcmd} add 10 allow icmp from any to any
# Следующие правила будут блокировать лубой исходящий
# трафик из внутренних сетей во внешние с адресами получателя
# из немаршрутизируемого диапазона (как правило это трафик
# генерирующийся вирусами, выпускать который наружу не
# рекомендуется, что бы не загружать внешний канал).
${fwcmd} add 304 deny ip from any to 192.168.23.0/16 out via ${ext_if}
${fwcmd} add 305 deny ip from any to 10.0.0.0/16 out via ${ext_if}
# ${fwcmd} add 306 deny ip from any to 172.16.0.0/12 out via ${ext_if}
# Следующие правила можно использовать для блокирования
# использования различных прокси серверов в городском
# сегменте сети
# ${fwcmd} add 307 deny log tcp from any to proxy.alkar.net 8080 via ${int_if}
# и т.д
# Следующие правила разрешают конектиться клиентам к серверу
# stargazer на порт 8888 на котором он слушает клиентские соединения
${fwcmd} add 308 allow udp from any to 192.168.23.1 8888 via ${int_if}
${fwcmd} add 309 allow udp from 192.168.23.1 to any via ${int_if}
# Следующие правила разрешают машинам с адресами 192.168.10.2 и
# 192.168.10.18 подключаться к роутеру по протоколу ssh без
# подключения клиентской программы.
${fwcmd} add 310 allow tcp from 192.168.23.5 to 192.168.23.1 22 via ${int_if}
# ${fwcmd} add 311 allow tcp from 192.168.10.18 to 192.168.10.1 22 via ${int_if}
${fwcmd} add 312 allow tcp from 192.168.23.1 to any via ${int_if}
# Блокируем все остальные клиентские запросы к роутеру
${fwcmd} add 320 deny log ip from 192.168.23.0/24 to 192.168.23.1 via ${int_if}
# ${fwcmd} add 321 deny log ip from 192.168.23.0/24 to 192.168.20.1 via ${int_if}
${fwcmd} add 322 deny log ip from 192.168.23.0/24 to 10.0.5.34 via ${int_if}
# Здесь оставляем окно в нумерации для исполнения скриптов юзеров
# Следующее правило определяет что все пакеты проходящие через
# внешний сетевой интерфейс направленный во внешнюю сеть будут
# попадать в правило маскарадинга, описанное выше.
${fwcmd} add 50024 divert natd all from any to any via ${ext_if}
# Следующие правила разрешают роутеру соединяться с использованием
# протокола tcp с внешними сетями.
${fwcmd} add 50029 allow tcp from any to any out via ${ext_if} setup
${fwcmd} add 50030 allow tcp from any to any via ${ext_if} established
# Следующие правила разрешают роутеру соединяться с использованием
# протокола udp с внешними сетями, а также разрешают прохождение
# ДНС трафика через роутер
${fwcmd} add 50031 allow udp from any to any out via ${ext_if}
${fwcmd} add 50032 allow udp from any 53 to any in via ${ext_if}
# Следующее правило разрешает конектиться к роутеру по протоколу
# ssh из внешней сети
# ${fwcmd} add 50033 allow tcp from any to 192.168.30.1 22 via ${ext_if}
# Далее идет запрещающее правило для всего остального
# трафика (т.е. схема файрвола . все что не разрешено
# явно . то запрещено)
${fwcmd} add 65534 deny log ip from any to any