Jump to content

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


Recommended Posts

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

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites
Тебя сожрут =))

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

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

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

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

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

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

MNM

Link to post
Share on other sites

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

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites

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

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

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

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

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

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

Link to post
Share on other sites

Автору темы нужно несколько пользователей на 1 компе.

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

Link to post
Share on other sites
Автору темы нужно несколько пользователей на 1 компе.

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

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

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

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

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

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

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

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

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

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

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

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

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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

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

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

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

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

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

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

Link to post
Share on other sites

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

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

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

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

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

Link to post
Share on other sites

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

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

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

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

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

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

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

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

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

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

Link to post
Share on other sites

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

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

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

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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

 

Ниже патч.

Этот патч для 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;

Link to post
Share on other sites

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

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