Проверка IP при заходе на вебку
Проверка IP при заходе на вебку
Кто знает как сделать, чтобы при попытке юзера войти на веб панель проверялся не только логин и пасс, но и проверялось сидит ли уже юзер в онлайне с тем же IP, с которого заходит на веб (REMOTE_ADDR)?
who | grep -i blonde | date; cd $HOME; unzip; touch; strip; finger; mount; fsck; more; yes; uptime; umount; sleep 69
В Abills/mysql/Dv_Sessions.pm в теле sub online() добавляется (добавленный код выделен, а ориентиры показывают куда его вставлять):Kirill писал(а):А как насчёт озвучить поподробнее?
Затем в cgi-bin/index.cgi в sub auth добавляется:if (defined($attr->{USER_NAME})) {
push @WHERE_RULES, "c.user_name LIKE '$attr->{USER_NAME}'";
}
if (defined($attr->{LOGIN})) {
push @WHERE_RULES, "c.user_name='$attr->{LOGIN}'";
}
# Show groups
if ($attr->{GIDS}) {
push @WHERE_RULES, "u.gid IN ($attr->{GIDS})";
}
else {
return 0 if (! $login || ! $password);
require Dv_Sessions;
Dv_Sessions->import();
my $sessions = Dv_Sessions->new($db, $admin, \%conf);
my $list = $sessions->online({ LOGIN => "$login", FRAMED_IP_ADDRESS => "$REMOTE_ADDR" });
if (!$sessions->{TOTAL}) {
$html->message('err', "$_ERROR", 'Access denied');
return 0;
}
if ($conf{wi_bruteforce}) {
$user->bruteforce_list({ LOGIN => $login,
Ну в принципе к Ipn проверка не привязана. Dv авторизация через радиус и затем при попытке веб-логина проверяется соответствие IP. Да и мне бы вариант с формочкой не подошел, т.к. действия Ipn связанные с шейпингом происходят на радиус события.а это разве не здесь регулируется?
who | grep -i blonde | date; cd $HOME; unzip; touch; strip; finger; mount; fsck; more; yes; uptime; umount; sleep 69
а файерволом пускать на вебморду только с туннельных ифейсов не судьба? файерволом туннельного сервера разумеется... под линухом это выглядит где-то так:
Код: Выделить всё
iptables -A INPUT -i ! ppp+ -p tcp -m tcp --dport 9443 -j REJECT --reject-with tcp-reset
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Видел. Там выборка только по IP, а неизвестно кому он в таблице принадлежит. Ради безопасности было решено оставить проверку по логину/паролю и дополнить ее проверкой по IP.~AsmodeuS~ писал(а):В системе есть функция безпарольного входа когда не проверяется проль пользоватея а авторизует его по ип впн сессии
who | grep -i blonde | date; cd $HOME; unzip; touch; strip; finger; mount; fsck; more; yes; uptime; umount; sleep 69
а разве если усер висит на туннеле это не означает что он успешно прошёл авторизацию и ему назначился нужный ип? по-моему гораздо проще написать 1 правило файервола чем править код биллинга... хотя - дело вкусаchtito2 писал(а):Суть задачи в ограничении веб-доступа данного юзера только с того IP, с которым он в данный момент сидит в онлайне. Самое очевидное место для этого как раз таки на уровне приложения.
Мы о разных вещах говорим. Согласно вашему правилу создается впечатление, что под чужим логином войти на вебку сможет любой сидящий юзер, зная его логин/пасс, чего моя версия не даст.
who | grep -i blonde | date; cd $HOME; unzip; touch; strip; finger; mount; fsck; more; yes; uptime; umount; sleep 69
мож я и не совсем тебя понял... сидящий где? авторизованный через ппп/радиус? дык ежли он авторизован (а значит знает логин/пасс) то и ип на туннель ему назначится согласно тому что в базе прописано (тоись тот что нада)... и твои потуги тут не помогут... потому как он зайдёт на вебку через туннель (с ипа назначенного на туннель) другой вопрос в том, что при авторизации через ппп/радиус у меня включён контроль по маку (тоись не только логин/пасс)... да мак тоже не сложно проспуфить - но тут уж без аппаратных средств блокирования никуда не деться... а если ты имеешь ввиду (под сидящий) что это усер подключенный к изернету и заходящий на вебморду напрямую (без авторизации и поднятия туннеля) - дык моё правило как раз такого и не позволяет - только через туннель у меня ваще пппое авторизация и ип адресов на изернетах просто нету - любая работа в сети (неважно локалка или инет) только через туннель (а значит после авторизации по логин/пасс и проверки мака). Спросишь как зайти на вебморду при отрицательном балансе? да очень просто: у меня туннель поднимается и при негативном депозите - только вот правила файервола в этом случае пускают только на вебморду биллинга больше никудапод чужим логином войти на вебку сможет любой сидящий юзер, зная его логин/пасс, чего моя версия не даст.
У меня через машинку трафик проходит в целях шейпинга и обсчета, а терминирует юзеров другой дядя. Трафик вливается в одну дырку, и выливается из другой. Туннель ни что иначе как логический транспорт, и в рамках веб авторизации значения не имеет: там имеют значение ипы. Раньше любой мог ввести на вебке (для попадания в свой личный кабинет) логин/пасс чужого юзера и войти без проверки соответствия ипа HTTP соединения ипу PPPoE. А должники у меня как ни странно обрабатываются через фильтр негативного депозита. И проверка маков у меня тоже включена при PPPoE авторизации, но это уже другая степь...
who | grep -i blonde | date; cd $HOME; unzip; touch; strip; finger; mount; fsck; more; yes; uptime; umount; sleep 69
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Я уже написал что в билинге реализировано пускать пользователя только в свой акаунт пользователя исходя их его ип. двое с одним ип сидеть не могутchtito2 писал(а):Мы о разных вещах говорим. Согласно вашему правилу создается впечатление, что под чужим логином войти на вебку сможет любой сидящий юзер, зная его логин/пасс, чего моя версия не даст.