Jump to content

Установка Stg


Recommended Posts

В общем на работе завал.

В ближайшие срок нужно поставить:

1) Старгазер + радиус + pppoe (чтобы он считал их трафик по ppp)

2)Скорость разная для тарифов,например,тариф inet256 - скорость инета 256 кб (общая) 32,2 кб (загрузки) ,а на тарифе например inet128 - скорость для инета скорость 128 (16 кб/сек загрузка)

3)Чтобы скорость с сетей 217.10.1.0 - 217.10.4.255 - была 1000 мб/сек (то есть без ограничений) и трафик не считался (точнее считался но как локальный) Тоже самое на сети 87.249.14.0 - 87.249.14.255 и 10.23.64.0 - 10.23.73.255 и 192.168.1.2 (не путать с 1,именно 2) до 192.168.1.197 (ну а вообще можно просто легче сделать 10.23.0.0/16 для поддсетей 10)

4)Авторизация по Авторизатор для Windows и через веб страницу. (статитка баланса)

Все,ваши предложение и цены,готов заплатить,но не больше 1300 руб.

PS. Кто точно не умеет этого делать лучше не писать,т.к хочу профи.

OC Fedora core 8 (Linux)

Mail агент - dj_jack@mail.ru

ICQ - 364921083

Оплату гарантирую через банк или Яндекс Деньги)

Спасибо.

Link to post
Share on other sites
  Quote
Все,ваши предложение и цены,готов заплатить,но не больше 1300 руб.

PS. Кто точно не умеет этого делать лучше не писать,т.к хочу профи.

за такие деньги... это 338 грн

ка минимум в 3-4 раза больше нужно

Link to post
Share on other sites

за такие деньги разве что на фрюхе могу поднять биллинг, шейпер, но без всяких ппп, ну и подсчет трафа настроить. ну еще немного секса с фаерволлом и шейпером.

А то, что Вы описали - стоить будет намного дороже...

Link to post
Share on other sites

Ладно,pppoe выкидываем,я все настроил (кроме фаеревола)

Делал как тут _http://stg.dp.ua/doc20/conf_example_linux.html

Не помогло,считает трафик как нужно мне,но,не отключает инет когда я нажимаю отключиться (инет как был так и есть)

Собственно.

1)Настроить фаеревол чтобы он отключал когда нажимаю офф

2)Скорость инета ограничивал (также как выше написал для тарифа inet128 скорость 128,для 256 скорость 256 и тд)

Сколько хотите?

Я думаю тут не трудно.

И не говорите поставьте Freebsd (не пользуемся ей) только Linux.

Link to post
Share on other sites

1. сделай лучше циклами while, для локального скрипта, iptables

2. в дистрибутиве стг, если не ошибаюсь есть примеры скриптов, с учетов выборке из поля Userdata

Link to post
Share on other sites

Блин,что никто не знает как сделать ограничение скорости на разных тарифах(linux)?

С OnConnect/OnDisconnect разобрался. Теперь отключает и выключает.

Мне только скорость настроить,помогите плиз,готов заплатить даже.

Link to post
Share on other sites

OnConnect

 

#!/bin/bash

int_iface=eth1

# Login
LOGIN=$1

#user IP
IP=$2

#cash
CASH=$3

#user ID
ID=$4

#Selected dirs to connect
DIRS=$5

default_speed=32kbit

# =========== shaping by tariff ===========
#tariff=$(grep -i "^tariff=" /var/stargazer/users/$LOGIN/conf | cut -f 2 -d"=")
#echo "tariff=$tariff" > /var/stargazer/users/$LOGIN/connect.log
#case $tariff in
#	minimum)  speedkb=128kbit;;  # 128 kbit
#	middle)   speedkb=256kbit;;  # 256 kbi
#	maximum)  speedkb=512kbit;;	 # 512 kbit
#	*)		speedkb=$default_speed;;  # default speed
#esac
# ========= shaping by tariff end ========= 

# ========= shaping by userdata0 ==========
speedR=$(grep -i "^Userdata0=" /var/stargazer/users/$LOGIN/conf | cut -f 2 -d"=")
speed=$(echo $speedR | grep "^[0-9]*[0-9]$")

if [ -z "$speed" ] 
then
speedkb=$default_speed
else
speedkb="$speed"kbit
fi
# ======= shaping by userdata0 end ========

declare -i mark=$ID+10

echo "$mark" > /var/stargazer/users/$LOGIN/shaper_mark
echo "$speedkb" > /var/stargazer/users/$LOGIN/shaper_rate

iptables -t mangle -A FORWARD -d $IP -j MARK --set-mark $mark
tc class add dev $int_iface parent 1:1 classid 1:$mark htb rate $speedkb burst 40k
tc filter add dev $int_iface parent 1: protocol ip prio 3 handle $mark fw classid 1:$mark

Link to post
Share on other sites

OnDisconnect

 

#!/bin/bash

int_iface=eth1

# Login
LOGIN=$1

#user IP
IP=$2

#cash
CASH=$3

#user ID
ID=$4

#Selected dirs to disconnect
DIRS=$4

mark=$(cat /var/stargazer/users/$LOGIN/shaper_mark)
rate=$(cat /var/stargazer/users/$LOGIN/shaper_rate)

if [ -n "$mark" ]
then
iptables -t mangle -D FORWARD -d $IP -j MARK --set-mark $mark
while [ $? == 0 ]
do
	iptables -t mangle -D FORWARD -d $IP -j MARK --set-mark $mark
done
fi

tc filter del dev $int_iface parent 1: protocol ip prio 3 handle $mark fw classid 1:$mark
tc class del dev $int_iface parent 1:1 classid 1:$mark htb rate $rate burst 40k

#echo "D `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log

Link to post
Share on other sites

shaper.sh

#!/bin/bash

int_iface=eth1

iptables -t mangle --flush

tc qdisc add dev $int_iface root handle 1: htb
tc class add dev $int_iface parent 1: classid 1:1 htb rate 100mbit ceil 100mbit burst 200k

 

shaper.stop.sh

#!/bin/bash

int_iface=eth1

#iptables -t mangle --flush

tc qdisc del dev $int_iface root handle 1: htb

Link to post
Share on other sites

В OnConnect есть два типа шейпинга.

1. На основании тарифа. Т.е. для каждого тарифа у задана скорость и задано

дефолтное значение, на случай отсутсвия тарифа в списке скоростей или

забывчивости админа.

2. На основании Userdata0. В этом поле просто прописывается число равное

скорости в kbit/sec. Также есть дефолтное значение скорости в 32 kbit/sec

на случай отсутсвия в Userdata0 корректного значения.

 

В скрипте первый способ закомментирован. Для того чтобы выбрать один из них нужно

либо удалить, либо закомментировать строчики между

 

# ========= shaping by tariff ==========

.........

# ======= shaping by tariff end ========

 

и

 

# ========= shaping by userdata0 ==========

.........

# ======= shaping by userdata0 end ========

 

 

и нужную часть расскоментировать, если она закомментрована.

 

Скрипт shaper.sh должен быть выполнен один раз при загрузке системы.

 

Интерфейс обращенный к пользователю определяется в переменной

int_iface=

(присутствует во всех 4-х файлах shaper.sh, shaper.stop.sh, OnConnect и

OnDisconnect !!!)

 

Скорость по умолчанию в OnConnect в переменной default_speed

 

Зависимость скорости от тарифа задается в следующем фрагменте кода:

case $tariff in

minimum) speedkb=128kbit;;

middle) speedkb=256kbit;;

maximum) speedkb=512kbit;;

*) speedkb=$default_speed;;

esac

 

Т.е. тут нужно вместо minimum, ... maximum подставить имена ваших тарифов

и соотв. скорость. Пользователи с тарифами не указанными в списке будут иметь

дефолтную скорость.

 

Скорость ограничевается только для входящего тарафика, однако расширить

эти скрипты для исходящего не составит труда.

Link to post
Share on other sites
  DJ Jack said:
Один вопрос всего.

Напиши свою ICQ или агент.

А так просто огромное спасибо!!!!

Я тайный агент ;)

 

извини, настроить конкретно под твою систему нет времени.

Link to post
Share on other sites

Пардон) Насчет шнайпера разобрался)

Меня интересуют эти коды и файлы.

echo "$mark" > /var/stargazer/users/$LOGIN/shaper_mark

echo "$speedkb" > /var/stargazer/users/$LOGIN/shaper_rate

То есть shaper_mark и shaper_rate в директории вообще нету.

Откуда они берутся? И как их добавлять и что в них писать? (кроме того что добавил файл вручную)

Link to post
Share on other sites

не прикалывайся )

 

echo "$mark" > /var/stargazer/users/$LOGIN/shaper_mark

команда направит вывод переменной $mark в файл директории юзера shaper_mark

echo "$speedkb" > /var/stargazer/users/$LOGIN/shaper_rate аналогично

 

тебе руками ничего не надо никуда забивать.

это для удобства, чтобы можно было делать например выборку уже из директории.

 

заходишь в директорию юзера, а там файлик с его скоростью в настоящий момент

Link to post
Share on other sites

Ну насчет создается,да один файл CXZABA~I и в нем надпись tariff=pnet1024

Все,а хожу по сети со 100 мб/сек,вместо 1024 кб)

shaping by tariff включен. shaping by userdata0 выключен

OnConnect

pnet1024) speedkb=1024kbit;;

Link to post
Share on other sites

Это мои скрипты.

Фаеревол.

#!/bin/bash

 

#Машина в офисе

office=10.23.64.10

 

#Машина администратора

admin=10.23.64.6

 

#Адреса роутера

server0=10.23.64.10

server1=192.168.1.4

server2=10.23.64.10

 

# Адрес файлового архива с mp3 и video

video_serv=192.168.1.4

 

# Интерфейс смотрящий на клиентов

iface_cli=eth1

 

# Интерфейс смотрящий во внешний мир

iface_world=eth0

 

# Интерфейс смотрящий на архив

iface_int=eth1

 

#Порты, на которых работает конфигуратор и авторизатор

conf_port=5555

user_port1=5555

 

echo "1" > /proc/sys/net/ipv4/ip_forward

 

# Очищаем правила файрвола

iptables -t filter -F

iptables -t filter -X

iptables -t nat -F

iptables -t nat -X

 

# Политика по умолчанию DROP: всем всё запрещено

iptables -t filter -P INPUT DROP

iptables -t filter -P FORWARD DROP

iptables -t filter -P OUTPUT DROP

# Защищаем сервер от дос атак.

iptables -A INPUT -p tcp --dport 80 --syn -m recent --rcheck --seconds 5 --hitcount 10 -j DROP

iptables -A INPUT -p tcp --dport 80 --syn -m recent --set -j ACCEPT

 

 

# Разрешаем пингам ходить всюду и всегда

iptables -t filter -A INPUT -p icmp -j ACCEPT

iptables -t filter -A FORWARD -p icmp -j ACCEPT

iptables -t filter -A OUTPUT -p icmp -j ACCEPT

 

# Разрешаем всё на локальном интерфейсе

iptables -t filter -A INPUT -d 127.0.0.1 -j ACCEPT

iptables -t filter -A OUTPUT -s 127.0.0.1 -j ACCEPT

 

# Разрешить серверу общаться со внешним миром

iptables -t filter -A INPUT -i $iface_world -j ACCEPT

iptables -t filter -A OUTPUT -o $iface_world -j ACCEPT

 

# Разрешить видео-серверу обращаться во внешним миром и роутером

iptables -t filter -A INPUT -s $video_serv -j ACCEPT

iptables -t filter -A FORWARD -s $video_serv -j ACCEPT

iptables -t filter -A FORWARD -d $video_serv -j ACCEPT

iptables -t filter -A OUTPUT -d $video_serv -j ACCEPT

 

# DNS. Замечу, ДНС работает и по TCP и по UDP

iptables -t filter -A INPUT -p tcp --sport 53 -j ACCEPT

iptables -t filter -A FORWARD -p tcp --sport 53 -j ACCEPT

iptables -t filter -A FORWARD -p tcp --dport 53 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT

iptables -t filter -A INPUT -p udp --sport 53 -j ACCEPT

iptables -t filter -A FORWARD -p udp --sport 53 -j ACCEPT

iptables -t filter -A FORWARD -p udp --dport 53 -j ACCEPT

iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT

 

# SSH

iptables -t filter -A INPUT -p tcp -s $office -d $server0 --dport 6282 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp -d $office -s $server0 --sport 6282 -j ACCEPT

iptables -t filter -A INPUT -p tcp -s $admin -d $server0 --dport 6282 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp -d $admin -s $server0 --sport 6282 -j ACCEPT

 

# Stargazer configurator

iptables -t filter -A INPUT -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 --dport $conf_port -j ACCEPT

iptables -t filter -A OUTPUT -p tcp -d 0.0.0.0/0 -s 0.0.0.0/0 --sport $conf_port -j ACCEPT

 

# UDP stargazer InetAccess

iptables -t filter -A INPUT -p udp -s 0.0.0.0/0 --sport $user_port1 -d $server0 -j ACCEPT

iptables -t filter -A OUTPUT -p udp -d 0.0.0.0/0 --dport $user_port1 -s $server0 -j ACCEPT

 

 

# Mail Anent

iptables -t filter -A INPUT -p tcp -s 10.23.0.0/16 -d 194.67.23.196 --dport 80 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp -d 10.23.0.0/16 -s 194.67.23.196 --sport 80 -j ACCEPT

 

 

# Mail Anent 2

iptables -t filter -A INPUT -p tcp -s 10.23.0.0/16 -d 194.186.55.0/24 --dport 2041 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp -d 10.23.0.0/16 -s 194.186.55.0/24 --sport 2041 -j ACCEPT

 

 

 

# DNS

iptables -t filter -A INPUT -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 --dport 53 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp -d 0.0.0.0/0 -s 0.0.0.0/0 --sport 53 -j ACCEPT

 

# Web

iptables -t filter -A INPUT -p tcp -s 10.23.0.0/16 -d 0.0.0.0/0 --dport 80 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp -d 10.23.0.0/16 -s 0.0.0.0/0 --sport 80 -j ACCEPT

 

 

# Icecast

iptables -t filter -A INPUT -p tcp -s 10.23.0.0/16 -d 0.0.0.0/0 --dport 8161 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp -d 10.23.0.0/16 -s 0.0.0.0/0 --sport 8161 -j ACCEPT

 

# DNS 2

iptables -t filter -A INPUT -p udp -s 0.0.0.0/0 --sport 53 -d 0.0.0.0/0 -j ACCEPT

iptables -t filter -A OUTPUT -p udp -d 0.0.0.0/0 --dport 53 -s 0.0.0.0/0 -j ACCEPT

 

# Маскарад

iptables -t nat -A POSTROUTING -d 0.0.0.0/0 -j MASQUERADE

 

OnConnect

 

#!/bin/bash

 

ip=$2

 

iptables -t filter -A INPUT -s $ip -j ACCEPT

iptables -t filter -A FORWARD -s $ip -j ACCEPT

iptables -t filter -A FORWARD -d $ip -j ACCEPT

iptables -t filter -A OUTPUT -d $ip -j ACCEPT

 

#!/bin/bash

 

int_iface=eth1

 

# Login

LOGIN=$1

 

#user IP

IP=$2

 

#cash

CASH=$3

 

#user ID

ID=$4

 

#Selected dirs to connect

DIRS=$5

 

default_speed=10kbit

 

# =========== shaping by tariff ===========

tariff=$(grep -i "^tariff=" /var/stargazer/users/$LOGIN/conf | cut -f 2 -d"=")

echo "tariff=$tariff" > /var/stargazer/users/$LOGIN/connect.log

case $tariff in

pnet96) speedkb=96kbit;; # 128 kbit

pnet224) speedkb=224kbit;; # 224 kbi

pnet1024) speedkb=1024kbit;; # 1024 kbit

pnet5_5) speedkb=6000kbit;; # 6000 kbit

pnet256b) speedkb=6000kbit;; # 512 kbit

pnet512b) speedkb=512kbit;; # 512 kbit

pnet128b) speedkb=128kbit;; # 512 kbit

pnet96b) speedkb=96kbit;; # 96 kbit

*) speedkb=$default_speed;; # default speed

esac

# ========= shaping by tariff end =========

 

# ========= shaping by userdata0 ==========

#speedR=$(grep -i "^Userdata0=" /var/stargazer/users/$LOGIN/conf | cut -f 2 -d"=")

#speed=$(echo $speedR | grep "^[0-9]*[0-9]$")

 

#if [ -z "$speed" ]

#then

# speedkb=$default_speed

#else

# speedkb="$speed"kbit

#fi

# ======= shaping by userdata0 end ========

 

 

declare -i mark=$ID+10

 

echo "$mark" > /var/stargazer/users/$LOGIN/shaper_mark

echo "$speedkb" > /var/stargazer/users/$LOGIN/shaper_rate

 

iptables -t mangle -A FORWARD -d $IP -j MARK --set-mark $mark

tc class add dev $int_iface parent 1:1 classid 1:$mark htb rate $speedkb burst 40k

tc filter add dev $int_iface parent 1: protocol ip prio 3 handle $mark fw classid 1:$mark

 

OnDisconnect

 

#!/bin/bash

 

ip=$2

 

iptables -t filter -D INPUT -s $ip -j ACCEPT

while [ $? -eq 0 ]

do

iptables -t filter -D INPUT -s $ip -j ACCEPT

done

 

##################################

 

iptables -t filter -D FORWARD -s $ip -j ACCEPT

while [ $? -eq 0 ]

do

iptables -t filter -D FORWARD -s $ip -j ACCEPT

done

 

##################################

 

iptables -t filter -D FORWARD -d $ip -j ACCEPT

while [ $? -eq 0 ]

do

iptables -t filter -D FORWARD -d $ip -j ACCEPT

done

 

##################################

 

iptables -t filter -D OUTPUT -d $ip -j ACCEPT

while [ $? -eq 0 ]

do

iptables -t filter -D OUTPUT -d $ip -j ACCEPT

done

 

#!/bin/bash

 

int_iface=eth1

 

# Login

LOGIN=$1

 

#user IP

IP=$2

 

#cash

CASH=$3

 

#user ID

ID=$4

 

#Selected dirs to disconnect

DIRS=$4

 

mark=$(cat /var/stargazer/users/$LOGIN/shaper_mark)

rate=$(cat /var/stargazer/users/$LOGIN/shaper_rate)

 

if [ -n "$mark" ]

then

iptables -t mangle -D FORWARD -d $IP -j MARK --set-mark $mark

while [ $? == 0 ]

do

iptables -t mangle -D FORWARD -d $IP -j MARK --set-mark $mark

done

fi

 

tc filter del dev $int_iface parent 1: protocol ip prio 3 handle $mark fw classid 1:$mark

tc class del dev $int_iface parent 1:1 classid 1:$mark htb rate $rate burst 40k

 

#echo "D `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log

Link to post
Share on other sites
  ZуXEL said:
php для гипертекстовых страниц, а для системы перл и sh

то ты просто с php мало сталкивался )

оч гибко можно завернуть системные функции

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...