Jump to content

Разделение правил для юзерей


Recommended Posts

Вот, никак не поборю...

 

Чё имеем: UA-IX халява... забугор стоит денег.

Юзера: есть те кто юзает инет по полной (и УА и забугор), а есть те, кто юзает тока УА

 

Надо: давать полный форвард юзерам кто юзает по полной инет и давать тока украину тем, кто на пакете UA-IX и не пускать их далее сегмента UA-IX

 

 

Идея: например eth1=intet | eth0=local | eth1:1=ua-ix

 

Идея 1.1: stargazer передаёт параметр tariff в OnConnect и OnDisconnect. И тогда в скриптах я могу варировать какие мне правила запускать для конкретного тарифного плана. Например переправка юзера на другой интерфейс... Или раздача доступа только к проксе UA-IX

 

Идея 1.2: делаем алиас интерфейса, для него прописываем UA-IX правила, а юзерей с тарифным планом UA-IX роутим через этот интерфейс.

 

...думаю это более чем экономно и должно работать правильно

stg пофику через чё оно уйдёт, главное куда попёр запрос с eth0.

я думаю так... хотя, могу ошибаться

 

подскажите мне как реализовать 2 тарифных плана по типу "всё" и "только УА"

 

 

ЗЫ... пока я вижу только один реальный выход: ставить 2 Stargazer'a для разных юзерей.

Link to post
Share on other sites

я думаю стоит попробовать через передаваемые параметры UserData

передавать к примеру all и ua-ix

 

в онКоннект проверять что в UserData и в зависимости от этого выполнять правила для файрвола.

Link to post
Share on other sites

Max?

 

Что там у тебя под БЗДЁЙ разруливается?

 

Ненадо делать вид что БЗДЯ интелектуально умная и сама знает какого юзера куда пускать.

 

Та не вник в суть вопроса.

 

...так вот дело в том, что никакий юзер даты не передаётся...

 

и оперировать переменными невозможно (кроме как ID, IP, Cach)

Link to post
Share on other sites

Я имелл ввиду что можно прописать правила в фаер которые и будут управлять трафиком при подключении определённого пользователя.. То есть для одного пользователя одни правила в фаер, а для другого другие правила..

Link to post
Share on other sites

Значит так, исходные данные:

 

Есть 100 юзерей.

1 группа: 30 юзают инет полноценный.

2 группа: 70 юзают только UA-IX

 

Переодически люди из 2 группы хотят юзать полностью инет.

Переодически люди из 1 группы хотят юзать только UA-IX.

 

Переодически люди в группах меняются...

Некоторые приходят, некоторые уходят.

 

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

 

Переодически люди шатаются каждый месяц из группы в группу.

 

 

Что необходимо:

 

В зависимости от тарифного плана давать пользователям разный доступ.

 

Например:

 

Группа 1 - полный форвардинг.

Группа 2 - форвард с учётом записи UA-IX списка.

 

 

...прошу ответить знающих людей

умников типа "это можно зделать фаерволом прошу не беспокоить"

 

Если бы я хотел зделать всё так, как Вы мне тут советуете, то мне Старгейзер ненужен, я прекрасно могу сидеть и сутками добовлять удалять правила в цепочках фаера. (при этом крутя пидали динамо-машины для обеспечения сервера эллектричеством)

Link to post
Share on other sites
Поддерживаю Макса!
Ну вот нашёл единомышленника! :) Спасибо за поддержку...
Причем файрволом можно задать для каждого юзверя какие сети ua-ix он может юзать а какие нет! =))

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

Вот как у меня заведено:

на каждого пользователя создан скрипт allow_10.203.0.x.sh и deny_10.203.0.x.sh

В самих скриптах прописаны правила для фаера, роутинга, и форвардинга на squid.

ipfw add xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

 

В Onconnect:

LOGIN=$1

IP=$2

usreip=`echo $2`

sh /..../allow_${userip}.sh

 

В Ondisconnect соответственно удаление этих правил:

ipfw d xxxxxxxx

 

За эту модель огромное спасибо PowerLan.

 

 

Некоторые могут сказать что система громоздка и неповоротлива, но как раз в её громоздкости и есть её гибкость: можно задавать индивидуальные правила для user'ов.

А насчёт создания огромного количества скриптов allow_xxxx и deny_xxxx так я скрипт на перле написал который в режиме диалога нового пользователя создаёт, вот счас работаю над тем чтобы параметры от СТГ2 предовались скрипту, тоесть всё совсем автоматизировать.

Link to post
Share on other sites
Если бы я хотел зделать всё так, как Вы мне тут советуете, то мне Старгейзер ненужен, я прекрасно могу сидеть и сутками добовлять удалять правила в цепочках фаера. (при этом крутя пидали динамо-машины для обеспечения сервера эллектричеством)

Ты хочешь получить от быка молоко...

 

Если тебе не нравится предложенный вариант, то необходимо убедить автора (либо самому) добавить в переменные передоваемые скриптам переменную TARIF. И будет тебе счастье...

Link to post
Share on other sites

да вы что?

cat /etc/stargazer/onconnect

 

LOGIN=$1

tariff=`grep Tariff= /var/stargazer/users/$LOGIN/conf`

....

 

 

Вот вам и тариф в скрипте. Теперь в зависимости от тарифа, через "if" открываем в фаерволе два разных направления, для двух групп

Link to post
Share on other sites

Да, оно то будет работать... только корявенько.

С таким успехом можно и IP юзерей брать... зачем его передавать в параметрах.

 

Кстати, если можно - попробуй накинуть пару строк, как ты думаешь это будет работать?

Link to post
Share on other sites

это почему же корявенько?

Куда проще сделать 2 тарифа и в зависимости от его названия выполнять те или иные правила.

 

ИМХО самое лучшее решение.

Link to post
Share on other sites

Для фрях могу предложить такой вариант:

Заносишь в ipfw кучу правил типа

allow ip from внут. сетка to тыдынь recv внут. интерфейс

Где, тыдынь - это сетки украины.

И так по одному правилу на каждую сеть.

А в конце правило

deny ip from внут. сетка to any recv внут. интерфейс

Потом, в старгейзере разделяешь юзеров на 2 группы.

 

Потом в OnConnect добавляешь конструкцию типа

group=`grep Group= /var/stargazer/users/$LOGIN/conf`

 

И если юзер принадлежит группу глобалистов, то скрипт перед deny пусть добавляет правило

skipto № ip from any to any

Где, № ставишь больше того, котрый у правила

deny ip from внут. сетка to any recv внут. интерфейс

 

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

deny ip from внут. сетка to any recv внут. интерфейс

 

Если пользователь имеет глобал, то за счет skipto, он перепрыгивает deny и имеет глобал.

Link to post
Share on other sites

Уху, пасиб народ... про grep я както подзабыл... сорри, затуркало.

 

В принцыпе я так и думаю решить всё это.

 

Но суть тут ещё и в том, чтобы не ходить окольными путями а просто дать звоночек автору STG, почемуб не сунуть в конфиг такую хрень, как галочка в конфигураторе напротив каждого параметра юзера с ыункцией "отправлять в скрипт данные или нет".

 

Привожу пример:

 

Есть куча полей, IP, Group, Userdata0, Userdata1, Comments, Tariff и так далее.

Напротив каждой строки есть check box, с функцыей например "use"

 

и далее, при если этот чек стоит - данные этой строки передаются в исполняемые скрипты.

 

Для чего это полезно:

 

1. для решения таких задач как у меня.

2. для построения правил или действий любой сложности

3. для (например) когда положили в Userdata0 - MAC адрес юзера и мозно скриптами разграничит доступ...

4. для постоения вообзе - пользоательских скриптов отдельно и без геммора.

 

вообще, как по мне - было бы, весьма полезно и удобно.

Link to post
Share on other sites

Если каждому пользоателю вдюндить в инфу эти галочки, то получится больше конфигов/жрания оперативки/жратия процессора.

Grep решает проблему в полном соотетствии философии unix.

Незачем изобретать уже изобретенный велосипед.

За счет скриптов UserAdd я могу добавить пользователя в старгейзере, в самой *nix, прописать его в DHCP, DNS и ещё бог знает где ещё.

Скрипты для этого и существуют.

Если кто-то считает писать их геммороем - то это уже другой вопрос.

Link to post
Share on other sites
Вот, никак не поборю...

 

Чё имеем: UA-IX халява... забугор стоит денег.

Юзера: есть те кто юзает инет по полной (и УА и забугор), а есть те, кто юзает тока УА

 

Надо:

Слушай а как ты делил трафик на забугор и нет и при этом сатргазер прикрутил?? можешь научить дурачка мудрости... плз.......

Link to post
Share on other sites

rules:

# Rules Generated on: 2005.02.08-21.20.09

# DIR0 = Local
# DIR1 = Proxy
# DIR2 = UA-IX
# DIR3 = Internet

# Proxy
TCP_UDP 192.168.17.5:3128 DIR1

# Local
ALL 192.168.0.0/16 DIR0

# UA-IX
ALL 62.16.16.128/26 DIR2
ALL 62.64.64.0/18 DIR2
ALL 62.64.80.0/21 DIR2
ALL 62.64.87.0/24 DIR2
ALL 62.64.88.0/21 DIR2
ALL 62.64.96.0/21 DIR2
...
ALL 217.198.132.0/22 DIR2
ALL 217.198.140.0/22 DIR2
ALL 217.199.224.0/20 DIR2

# Internet
ALL 0.0.0.0/0 DIR3
ICMP 0.0.0.0/0 DIR3

 

для всех - полный инпут и ыорвард, для UA-IX только по таблице UA-IX

 

всё просто, но через ЖЖЖ.

Link to post
Share on other sites

Я всё же не пойму..... судя вашим коментариям

 

"всё просто, но через ЖЖЖ"

 

складывается впечатление что вам нужен дистрибутив ОС который бы отвечал таким требованиям:

1. установка:

а. вставить диск

б. нажать "Установить"

2. Настройка:

а. После установки на экране должна быть одна большая кнопка "НАСТРОИТЬ СЕРВЕР"

б. при нажатии кнопки происходит настройка интуитивно по принципу "не через ЖЖЖ"

3. Дополнительные требования:

а. Биллинг который может всё и что бы не приходилось grep'ать тариф.

б. что бы ничего не надо было делать дополнительно (опять же потому что это будет "через ЖЖЖ")

 

 

Объясните мне плиз почему почти всё что вам предлагают вы говорите что это через ЖЖЖ ?

Link to post
Share on other sites

Имхо, когда человек ленится что-то сделать, то пытается представить это себе и окружающим, что это "через ЖЖЖ", есть пути полегче и вообще, пускай это делают другие, а не он =))

Link to post
Share on other sites

Den_LocalNet Предлагает просто рациональный путь, потому что мыслит рационально и тут я его полностью поддерживаю.

А именно минимальными усилиями решить задачу быстро и без порождения проблем и забот.

Я бы тоже ввел просто новый тариф, пусть даже с такими же цифрами, но с другим названием. И по этому приципу разруливал.

Можно вообще поставить тариф напрвления УА в СТГ - 0 и нет денег - не лезь забугор, Украина есть.

Правда при 0 денег не пройдет и Украина, пусть юзер следит, чтобы не 0 был.

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

Link to post
Share on other sites

Уффф... ладно. забили на тему.

 

Т.к. тут уже не решение проблеммы пошло, а попытки мерятся что круче и ольше руками накатает сриптов, сырцов и т.д. (чёжж вы, ув. Den_LocalNet не катаете сырцы линуха/юниха...)

 

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

 

...тем более что это надо не мне, а посторонним людям.

благо я давно перевёл свою сетку в автопилот. и стг пашет как часики.

Link to post
Share on other sites

Кстати насчёт разделения, я предлагаю Борису продублировать все данные как тариф, направления подсчёта, для пользователя, тоесть по анологии apache всем известного сервера, тоесть есть голобальные установки на уровне сервера, а есть установки на уровне пользователя, тоеть в его конфиге, в конфигураторе это можно реализовать скажем флагом в настройках пользователя: "использовать локальные настройки пользователя" и при установлении этого флага глобальные настройки для этого пользователя отменяются.

Вот как идея?

Link to post
Share on other sites

2Doozer: Я думаю вы мыслите немного в духе "Виндовс". Т.е. вам нужны галочки и т.п. прелести gui. Чем привлекателен (хотя бы лично мне) мир юникс систем - это гибкость... А эта гибкость и заключается в использвании как минимум джентельменского набора grep, awk, sed и т.п.

 

ИМХО если под виндаме в софт не вложили галочку - то зачастую вы попадаете в ситуацию с которой можно лишь смерится......

Link to post
Share on other sites

2Doozer

Вот если внимательно вчитаться в преддожение сделать тариф с ценой 0 такого-то направления, то как раз юзер-счетовод конфигуратором СТГ-шным из-под мастдайки мог бы хоть 10 раз на день менять политику партии.

Но разок все-таки настроить придется админу, без этого никак.

А банальный спор что лучше Уних или мастдайка предлагаю прекратить.

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...