BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 28 апр 2024, 01:28

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
СообщениеДобавлено: 26 янв 2007, 15:05 
Не в сети

Зарегистрирован: 29 ноя 2006, 17:56
Сообщения: 7
Карма: 0
Мне наконец удалось решить проблему того, как все это организовать.

Все кто юзает Linux стоит попробывать. Одно условие: все компоненты Linux. С цисками не пробовал. Пока.

Если интересно, расскажу. На мой взгляд, решает более чем на половину проблемы кражи паролей. Если не полностью!
Тестирую уже второй месяц.

Дело в том, что МАС вытягиваю из логов PPPoE сервера, то есть подделав МАС работать ничего не будет. Поправте меня, если не прав

Первый МАС пользователя метится как допустимый и хранится в MySQL базе. Все остальные МАС (Они тоже заносятся в базу) необходимо разрешать операторам абонентского отдела.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 янв 2007, 17:45 
Не в сети

Зарегистрирован: 17 дек 2006, 02:49
Сообщения: 121
Откуда: Из ЛИСа
Карма: 1
Ну, интересно. Как?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 30 янв 2007, 11:06 
Не в сети

Зарегистрирован: 29 ноя 2006, 17:56
Сообщения: 7
Карма: 0
Все просто на самом деле:
1. При аторизации на исполнение уходит скрипт auth-up, он вызывает другой сценарий.
2. Листинг другого сценария:
Код:
#!/usr/bin/perl
use strict;
use Mysql;

my $log_path = "/var/log/messages";

sub GetLog {
    my @lines;
    open (TXTFILE, $_[0]);
    @lines = <TXTFILE>;
    close(TXTFILE);
    return @lines;   
};

my $q = "created";

my @result = grep /\s$q\s/, GetLog ($log_path);
my ($line, $mac_adr) = "";

foreach $line (@result) {
    if ($line =~ /\w+\s+(\w+:\w+:\w+:\w+:\w+:\w+)\s+/) {
   $mac_adr=$1;
    };
};

my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime (time);
my $date = 1900+$year."-".(1+$mon)."-".$mday;
my $login = $ARGV[0];
my $If =  $ARGV[1];
my $MAC_DB = Mysql->Connect("localhost","MAC_base");

my $Res = $MAC_DB->Query("SELECT * FROM center WHERE  login = \"$login\"") or die $Mysql::db_errstr;
my $Count = $Res->rows;
my @Rows;

if ($Count==0) {
    $MAC_DB->Query("INSERT INTO center ( login, mac, date1, accept) VALUES(\"$login\" , \"$mac_adr\", \"$date\", 1)") or die $Mysql::db_errstr;
} else {
    $Res = $MAC_DB->Query("SELECT * FROM center WHERE  login = \"$login\" AND mac = \"$mac_adr\" AND accept = 1") or die $Mysql::db_errstr;
    $Count = $Res->rows;
    if ($Count == 0) {
        $Res = $MAC_DB->Query("SELECT * FROM center WHERE  login = \"$login\" AND mac = \"$mac_adr\" AND accept = 0") or die $Mysql::db_errstr;
   $Count = $Res->rows;
   if ($Count==0) {
       $MAC_DB->Query("INSERT INTO center ( login, mac, date1, accept) VALUES(\"$login\" , \"$mac_adr\", \"$date\", 0)") or die $Mysql::db_errstr;
   };
   system ("/sbin/ifconfig $If down");   
   print "User $login with MAC $mac_adr at $date is disconnected\n";
    };
};


exit;


Лог messages пополняется следующими сообщениями типа:
Код:
Jan 30 09:51:34 gateway pppoe-server[1089]: Session 10 created for client 00:15:f2:3b:5b:30 (10.67.15.10) on eth0 using Service-Name ''

На доли секунды в которые все просиходит, запись о старте сессии является последним сообщением PPPoE сервера


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.359s | 24 Queries | GZIP : On ]