Перейти к содержимому

Требуется помощь с СТГ


Рекомендованные сообщения

Требудеться помощь у меня стоить stargazer1 мне нужно настроить его так что-бы например с одного ip допустим 192.168.0.240 щиталься трафик для 3-х человек отдельно желательно под пользователями и паролями! допустим пользователь dim, bensan, fil как это сделать подскажите плз а то меня просто с потрахами сожрут! =)

Ссылка на сообщение
Поделиться на других сайтах

Тебя сожрут =))

( по аналогии с фразой "ты умрешь" из одного пошлого анекдота : )

Насколько я понял, в stg1 нет авторизации по паролю. Поэтому такое сделать не получится.

Ссылка на сообщение
Поделиться на других сайтах
Тебя сожрут =))

( по аналогии с фразой "ты умрешь" из одного пошлого анекдота : )

Насколько я понял, в stg1 нет авторизации по паролю. Поэтому такое сделать не получится.

Есть авторизация по паролю в СТГ-1!

Но с одного IP не получится. Дать каждому IP свой. ЧТо в 10/8 или в 192.168/16

адреса закончились?

Пусть меняют IP, есть проги, кот. это делают на ходу, наример MNM

MNM

Ссылка на сообщение
Поделиться на других сайтах

Ну тогда есть еще одни вопрос например в stg2 есть такая функция ? если есть то мне будет проще поставить и настроить stg2 чем мутить еще что-то ? меня просто программа устраивает во всем... а менять еще на что нибудь другое неохото.....

Ссылка на сообщение
Поделиться на других сайтах

Если так нужно сделать разные аккаунты для разных пользователей одного компа, то можно сделать VPN, хотя и правда проще поставить stg2.

Правда он сыроват, если ещё глюки в работе.

Так или иначе, раз stg1 поставленную задачу не решает, нужно ставить что-то другое.

Ссылка на сообщение
Поделиться на других сайтах

Вопрос был по СТГ-1.

Разные пользователи, на мой взляд должны иметь разные адреса.

В перспективе он могут сидеть на разных компах.

Если гора не идет Магомету, Магомет идет к горе.

Можно условия подогнать под готовое решение, а не решать задачу с 0.

СТГ с ВПН не работает.

Ссылка на сообщение
Поделиться на других сайтах
Автору темы нужно несколько пользователей на 1 компе.

Раз VPN не покатит, то нужно и правда ставить stg2. имхо.

А кто или мешает на одном компе юзать несколько ИП?

Еще раз подчеркиваю, вопрос был по СТГ-1.

СТГ-2 все-же еще сыроват для пром. эксплуатации. Да и, насколько я понял человек сидит на СТГ-1.

И может у него не 3 пользователя а несколько десятков или сотня.

Вот попробуй перевести сразу стоко юзерверей на другой биллинг. Расскажи как?

Положить СТГ-1, поднять СТГ-2 это просто.

Даже мона перековертить файло под СТГ-2.

Но Авторизатор-то другой!

Сколько звонков будет?

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

Глюки еще могут быть...

Классная перспектива.

Ссылка на сообщение
Поделиться на других сайтах

Правкой кода я делал чтоб с одного ип адреса могли заходить несколько человек, но сделано это всё через место в народе называемое Ж, отсюда глюк :( - иногда пользователи просто не коннектятся (грит пароль не правильный) помогает только перезагрузка старгейзера, руки исправить это не дошли. Для пользователей которые сидят по одному на ип такого вроде не замечено, если надо могу выслать - разбирайся.

Ссылка на сообщение
Поделиться на других сайтах

Если поставить условие, что

- должен работать stg1;

- с одного ip адреса должны выходить с разных аккаунтов;

- в stg1 не поддерживается выход с одного ip адреса разных аккаунтов;

То нужно, и правда, локально править сырцы stg1.

Ссылка на сообщение
Поделиться на других сайтах
Правкой кода я делал чтоб с одного ип адреса могли заходить несколько человек, но сделано это всё через место в народе называемое Ж, отсюда глюк :( - иногда пользователи просто не коннектятся (грит пароль не правильный) помогает только перезагрузка старгейзера, руки исправить это не дошли. Для пользователей которые сидят по одному на ип такого вроде не замечено, если надо могу выслать - разбирайся.

Ну если тебе не трудно то кинь сорсы мне на мыло, а я попробую перековырять и посмотретьт что получиться.... если все будет нормально работать то я вылож это все здесь.... прикол еще в том что пользователи не дозваниваются а просто сидят в одной большой сети.... в сети есть люди которые бы хотели сделать так что-бы за их детей щитался отдельный трафик в отличии от них, а ходить к 100 клиентам и показывать им как меня им ip это довольно сложно, и нудно.... мня во всем устраивает stg1 но я сегодня поробовал поставить и настроить stg2 да он действительно сыроват, я немогу рисковать клиентами нашей сети, потомучто я просто вылечу с работы, а что не есть хорошо как вы понимаете!!!! именно поэтому мне и нужно это поробовать реализовать на stg1, я был бы рад любой помощи! Заранее благодарен

Ссылка на сообщение
Поделиться на других сайтах

ИМХО, проще сделать профайлы для юзверей с разными ИП, чем переезжать на полее продвинутую, но все же бета версию СТГ.

Или править сырцы и доводить до ума.

Тут вопрос что в данной ситации по отношению к юзерам делать.

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

Обычно проще подстроится под систему. Изменить систему под юзера вообще не всегда вожможно.

Ссылка на сообщение
Поделиться на других сайтах

В принцепи есть еще одно решени этой проблемы для этого нужно будет написать такую программу и засунуть ее в автозагрузку!!!!

Загружаеться система запускаеться программа в которая просит ввести логин и пароль в зависимости от логина и пароля ставиться ip адрес программа весит в трее и если ты хочеш сменить пользователя то тебе нужно щелкнуть на программу и нажать логаут!!!

Вопрос только в том где ее найти ?????

Ссылка на сообщение
Поделиться на других сайтах
В принцепи есть еще одно решени этой проблемы для этого нужно будет написать такую программу и засунуть ее в автозагрузку!!!!

Загружаеться система запускаеться программа в которая просит ввести логин и пароль в зависимости от логина и пароля ставиться ip адрес программа весит в трее и если ты хочеш сменить пользователя то тебе нужно щелкнуть на программу и нажать логаут!!!

Вопрос только в том где ее найти ?????

Прога есть такая, называется Multi Network Manager, может не полная функциональность у нее, как тебе хоцца, но ИП и др. настройки свитчит.

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

Если внимательно почитаете мой первый постинг, то найдете там линк на нее.

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

Ссылка на сообщение
Поделиться на других сайтах

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

Сказать, что это технически нереализуемо, т.е. вы, как провайдер, не можете этого сделать. Такое утверждение будет очень близко к правде, ведь используемое вами ПО действительно не обладает такими функциями.

Я думаю, лучше такое решение, чем то, которое будет глючить.

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

Ссылка на сообщение
Поделиться на других сайтах

но это естественно что нужна стабильность и работосбособность.... когда я переключил всех пользователей на stg2 я временно отбекапил stg1 и после того как он у меня клюканулся я в течении 5-ти минут я востоновил систему.... сейчас я это все тестирую на 2-х компах специально выделеных мне для настройки оборудования, на которых я могу делать все что хочу, так что теперь у меня есть из чего выбырать и настраивать мне дали сроки до конца следующей недели что-бы реализовать данный вопрос.... так что я думаю что у меня все получиться в крайнем случаи я потеряю работу..... большое спасибо всем за помощь буду пробовать.... если что нибудь не будет получать обращусь снова!!! Стройте безопастность своего сервера так что-бы вас не взломали!!! удачи!!!

Ссылка на сообщение
Поделиться на других сайтах

Ну если тебе не трудно то кинь сорсы мне на мыло

 

Ниже патч.

Этот патч для sg версии 1.1.4.2 beta5 хотя вообщем для более поздних тоже 90% вероятности будет работать.

 

PS: Я не программер так что прошу не ругать за кривость

diff -Nur old/Common.cpp new/Common.cpp
--- old/Common.cpp      Tue Jul 22 18:03:14 2003
+++ new/Common.cpp      Sat Aug 14 18:09:59 2004
@@ -353,6 +353,45 @@
return -1;
}
//-----------------------------------------------------------------------------
+int FindUserByIPn(unsigned int ip,int pos)
+{
+// Ищем кому принадлежит данный ИП
+for (int i=pos; i<userNum; i++)
+       {
+    if (ip==users[i].IP)
+               {
+               return i;
+               }
+       }
+return -1;
+}
+//-----------------------------------------------------------------------------
+int FindUserByIPc(unsigned int ip)
+{
+// Ищем кому принадлежит данный ИП
+for (int i=0; i<userNum; i++)
+       {
+    if (ip==users[i].IP && users[i].connected==1)
+               {
+               return i;
+               }
+       }
+return -1;
+}
+//-----------------------------------------------------------------------------
+int FindUserByIPc2(unsigned int ip)
+{
+// Ищем кому принадлежит данный ИП
+for (int i=0; i<userNum; i++)
+       {
+    if (ip==users[i].IP && users[i].connecting==1)
+               {
+               return i;
+               }
+       }
+return -1;
+}
+//-----------------------------------------------------------------------------
int FindUserByName(char * login)
{
// Ищем кому принадлежит данный login
diff -Nur old/Common.h new/Common.h
--- old/Common.h        Sat Jan  4 16:29:07 2003
+++ new/Common.h        Sat Aug 14 18:10:28 2004
@@ -84,6 +84,9 @@
char * IPToStr(unsigned int ip);
int a();
int FindUserByIP(unsigned int ip);
+int FindUserByIPn(unsigned int ip,int pos);
+int FindUserByIPc(unsigned int ip);
+int FindUserByIPc2(unsigned int ip);
int FindUserByName(char *);
int ReadServerConf();
void CleanDebugLog();
diff -Nur old/ReciveCl.cpp new/ReciveCl.cpp
--- old/ReciveCl.cpp    Tue Jul 22 17:45:47 2003
+++ new/ReciveCl.cpp    Sun Sep  5 00:25:04 2004
@@ -141,10 +141,11 @@
// Функция вернет 0, в t номер пакета, если он был успешно распознан
// и текст пакета, уже расшифрованный, в buff
// в случае неудачи функция вернет не 0
-
WriteDebugLog("CheckPacket begin", +1);

int pn,l;
+int t1;
+unsigned char buff1[256];

if (!((len==64) || (len==256)))
       {
@@ -152,12 +153,26 @@
    return EBADMSG;
       }

+memcpy(buff1,buff,len);
+
+//WriteServLog("CheckPacket");
// Ищем пользователя с нужным ИП
if ((un=FindUserByIP(ip))==-1)
       {
       WriteDebugLog("CheckPacket end", -1);
       return EBADMSG;
       }
+if ((t1=FindUserByIPc(ip))!=-1)
+       {
+       un=t1;
+       }
+    else
+if ((t1=FindUserByIPc2(ip))!=-1)
+       {
+       un=t1;
+       }
+
+
//---------------------------------
// Расшифровать сообщение
//---------------------------------
@@ -171,8 +186,23 @@
for (int i=0; i<len/8; i++)
    {
       DES_ecb_decrypt(context, (unsigned char *)buff+i*8, recovered+i*8);
-       }
+    }
memcpy(buff, recovered, len);
+if (t1==-1)
+if (strncmp(buff+20,users[un].login,32)!=0)
+while (strncmp(buff+20,users[un].login,32)!=0)
+    {
+    if ((un=FindUserByIPn(ip,un+1))==-1) return EBADMSG;
+    memset(key,0,8);
+    memcpy(buff,buff1,len);
+    strncpy((char *)key, users[un].password, 8);
+    DES_setkey(context, key);
+    for (int i=0; i<len/8; i++)
+       {
+       DES_ecb_decrypt(context, (unsigned char *)buff+i*8, recovered+i*8);
+       }
+    memcpy(buff,recovered,len);
+    }
// Определяем тип пакета
//и содержащиеся в нем данные
for (int i=0; i<9; i++)
@@ -190,6 +220,7 @@
       case CONN_SYN_N:
               memcpy(&l,buff,sizeof(l));
               t=pn;
+//             WriteServLog("CONN_SYN_N");
               if (l!=64)// Сравниваем длину пакета, для CONN_SYN должно быть 64
                       {
                       WriteDebugLog("CheckPacket end", -1);
@@ -200,6 +231,11 @@
                       WriteDebugLog("CheckPacket end", -1);
                       return EBADMSG;
                       }
+               if (users[un].cash<=0)
+                   {
+                   return EBADMSG;
+                   }
+               users[un].connecting=1;
               WriteDebugLog("CheckPacket end", -1);
        return 0;
               break;
@@ -259,6 +295,7 @@
               WriteDebugLog("CheckPacket end", -1);
               return 0;
               break;
+               users[un].connecting=0;
       //------------------------------------------
    }
t=0;
diff -Nur old/SendCl.cpp new/SendCl.cpp
--- old/SendCl.cpp      Tue Jul 22 18:09:34 2003
+++ new/SendCl.cpp      Sun Sep  5 00:24:51 2004
@@ -92,14 +92,17 @@
       memcpy(buffer,mbuf.mtext+8,len);

    sendAddr.sin_family=AF_INET;
-       sendAddr.sin_addr.s_addr=ip;// IP пользователя
+    sendAddr.sin_addr.s_addr=ip;// IP пользователя
    sendAddr.sin_port=htons(settings.userPort);// IP пользователя
-
+if ((un=FindUserByIPc(ip))==-1)
+    if ((un=FindUserByIPc2(ip))==-1)
       if ((un=FindUserByIP(ip))==-1)
               {
+//             if ((un=FindUserByIPc2(ip))==-1)
               continue;
               //return EBADMSG;
               }
+//        WriteServLog("Sending");
       //---------------------------------
       // 3ашифровать сообщение
       //---------------------------------
diff -Nur old/user.h new/user.h
--- old/user.h  Sat Nov 23 17:41:02 2002
+++ new/user.h  Sat Aug 14 18:04:13 2004
@@ -78,7 +78,7 @@
       void OnConnect();
       void OnDisconnect(int);
       int WriteUsersLog(int event);
-
+       int connecting;
private:
       int enabled;    //ДЛя всяких отключений-подключений когда нет денег
       int phase;

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...