mpd и привязка клиента к его IP
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- savio
- лейтенант
- Сообщения: 813
- Зарегистрирован: 2007-11-08 15:46:43
- Откуда: UA
mpd и привязка клиента к его IP
FreeBSD 7.0.
mpd5+freeraduis
нужно разрешить клиенту подключаться к интернету по vpn только со своего рабочего места(компьютера).
другими словами привязать аккаунт(логин и пароль) к конкретному IP-адресу в локальной сети.
есть идеи?
mpd5+freeraduis
нужно разрешить клиенту подключаться к интернету по vpn только со своего рабочего места(компьютера).
другими словами привязать аккаунт(логин и пароль) к конкретному IP-адресу в локальной сети.
есть идеи?
Помни о смерти, все суета сует....
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
-
- проходил мимо
Re: mpd и привязка клиента к его IP
mp5 этим точно нет смысла заниматься
этим должен заниматься ваш биллинг
который получив IP клиента должен проверять по своей базе а потом уже смотреть на денежки итд
и разрешать авторизацию или делать денай
этим должен заниматься ваш биллинг
который получив IP клиента должен проверять по своей базе а потом уже смотреть на денежки итд
и разрешать авторизацию или делать денай
-
- проходил мимо
Re: mpd и привязка клиента к его IP
в таком виде не пойдет?
полтора года прошло: RADIUS - что? где? и как?
Код: Выделить всё
client 192.168.0.55 {
secret = parol
shortname = my_device_name
nastype = other
}
- savio
- лейтенант
- Сообщения: 813
- Зарегистрирован: 2007-11-08 15:46:43
- Откуда: UA
Re: mpd и привязка клиента к его IP
да, прошло, вопрос снова актуален. а решения пока не нашел. такой не подойдет, так как у меня логины и пароли в БД MySql
Помни о смерти, все суета сует....
-
- проходил мимо
Re: mpd и привязка клиента к его IP
во че-то там с базой этой майэскюэльной:
FreeRadius+MySQL
а вот еще со скриптами:
mpd + freeradius + mysql
FreeRadius+MySQL
а вот еще со скриптами:
mpd + freeradius + mysql
- schizoid
- подполковник
- Сообщения: 3228
- Зарегистрирован: 2007-03-03 17:32:31
- Откуда: Украина, Чернигов
- Контактная информация:
Re: mpd и привязка клиента к его IP
ядерный взрыв...смертельно красиво...жаль, что не вечно...
- savio
- лейтенант
- Сообщения: 813
- Зарегистрирован: 2007-11-08 15:46:43
- Откуда: UA
Re: mpd и привязка клиента к его IP
скрипт конечно ваш хорош, только мне нужно что бы впн соединение разрывалось... сколько не пытался сделать это полтора года назад, не получилось......schizoid писал(а):http://forum.lissyara.su/viewtopic.php? ... =75#p34136
Помни о смерти, все суета сует....
- schizoid
- подполковник
- Сообщения: 3228
- Зарегистрирован: 2007-03-03 17:32:31
- Откуда: Украина, Чернигов
- Контактная информация:
Re: mpd и привязка клиента к его IP
Код: Выделить всё
ipfw add deny tcp from IP to me port 1723
ядерный взрыв...смертельно красиво...жаль, что не вечно...
- savio
- лейтенант
- Сообщения: 813
- Зарегистрирован: 2007-11-08 15:46:43
- Откуда: UA
Re: mpd и привязка клиента к его IP
неа, не подойдет.
ситуация.
клиент на работе и дома пользуется нашим инетом. начальство хочет что бы он брал один аккаунт на работе и один дома.
я пробовал через up-script рвать только что подключенное соединение, но что-то ничего не получилось у меня тогда....
ситуация.
клиент на работе и дома пользуется нашим инетом. начальство хочет что бы он брал один аккаунт на работе и один дома.
я пробовал через up-script рвать только что подключенное соединение, но что-то ничего не получилось у меня тогда....
Помни о смерти, все суета сует....
- schizoid
- подполковник
- Сообщения: 3228
- Зарегистрирован: 2007-03-03 17:32:31
- Откуда: Украина, Чернигов
- Контактная информация:
Re: mpd и привязка клиента к его IP
алгоритм опишите, что вы хотите сделать. по пунктам.
в моем скрипте.
1. при подключении клиента определяется ИП с которого подключился, мак-адрес
2. дальше идет проверка на валидность
3. выносится решение
опишите, что вы хотите получить
в моем скрипте.
1. при подключении клиента определяется ИП с которого подключился, мак-адрес
2. дальше идет проверка на валидность
3. выносится решение
опишите, что вы хотите получить
ядерный взрыв...смертельно красиво...жаль, что не вечно...
- savio
- лейтенант
- Сообщения: 813
- Зарегистрирован: 2007-11-08 15:46:43
- Откуда: UA
Re: mpd и привязка клиента к его IP
1. при подключении клиента определяется ИП с которого он подключился
2. дальше идет проверка на валидность(каждому логину соответсвует конкретный ИП)
3. если ИП с которого он подключился не равен ранее заданому(в БД) то reject
2. дальше идет проверка на валидность(каждому логину соответсвует конкретный ИП)
3. если ИП с которого он подключился не равен ранее заданому(в БД) то reject
Помни о смерти, все суета сует....
- schizoid
- подполковник
- Сообщения: 3228
- Зарегистрирован: 2007-03-03 17:32:31
- Откуда: Украина, Чернигов
- Контактная информация:
Re: mpd и привязка клиента к его IP
Надеюсь пользователи в базе? если радиус - то вообще песня.savio писал(а):1. при подключении клиента определяется ИП с которого он подключился
2. дальше идет проверка на валидность(каждому логину соответсвует конкретный ИП)
3. если ИП с которого он подключился не равен ранее заданому(в БД) то reject
1. Определить Ип можно к примеру из таблички CallingStationId. Делаем запрос:
Код: Выделить всё
r_ip=`/bin/echo "select CallingStationId from freeradius.radacct where UserName='$5' and date(AcctStartTime)='$date' and AcctStopTime='0000-00-00 00:00:00' ORDER BY CallingStationId DESC limit 1;" |mysql -s -uЮЗЕР -pПАРОЛЬ`
Код: Выделить всё
ip=`/bin/echo "select ip from freeradius.radcheck where UserName='$5';" |mysql -s -uЮЗЕР -pПАРОЛЬ`
Код: Выделить всё
if [ "$r_ip" = "$ip" ]; then
echo "Good"
else
ipfw table 1 add $r_ip
fi
Код: Выделить всё
ipfw add deny tcp from 'table(1)' to me port 1723
само правило аля:
Код: Выделить всё
ipfw table 1 delete $r_ip
как-то так
ядерный взрыв...смертельно красиво...жаль, что не вечно...
- savio
- лейтенант
- Сообщения: 813
- Зарегистрирован: 2007-11-08 15:46:43
- Откуда: UA
Re: mpd и привязка клиента к его IP
хм.... интересная идея.... буду пробовать
Помни о смерти, все суета сует....
- schizoid
- подполковник
- Сообщения: 3228
- Зарегистрирован: 2007-03-03 17:32:31
- Откуда: Украина, Чернигов
- Контактная информация:
Re: mpd и привязка клиента к его IP
выложу текущий up и down скрипт, может что-то еще почерпнете...
Код: Выделить всё
# cat /usr/local/etc/mpd4/up.sh
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
###параметры получаемые при выполнении скрипта###
##$1 $2 $3 $4 $5
##ng0 inet 192.168.10.100/32 10.0.0.1 eugene
#номер правила
i=`/bin/echo "select id from freeradius.radcheck where UserName='$5';" |mysql -s -uЮЗЕР -pПАРОЛЬ` >> /usr/local/etc/mpd4/test 2>&1
#пакет скорости интернета
bw=`/bin/echo "select bw from freeradius.radcheck where UserName='$5';" |mysql -s -uЮЗЕР -pПАРОЛЬ` >> /usr/local/etc/mpd4/test 2>&1
time=`date "+%H"`
time_start="00"
time_stop="10"
# Увеличение скорости клиентам с полуночи до 10-ти утра
if ( [ $time -lt $time_stop ] && [ $time -ge $time_start ] )
then
if [ $bw = "bw_128" ]
then
bw="bw_384"
elif [ $bw = "bw_384" ]
then
bw="bw_768"
elif [ $bw = "bw_512" ]
then
bw="bw_1024"
elif [ $bw = "bw_1024" ]
then
bw="bw_1536"
fi
fi
echo "" >> /usr/local/etc/mpd4/test 2>&1
date=`date "+%Y-%m-%d"`
r_ip=`/bin/echo "select CallingStationId from freeradius.radacct where UserName='$5' and date(AcctStartTime)='$date' and AcctStopTime='0000-00-00 00:00:00' ORDER BY CallingStationId DESC limit 1;" |mysql -s -uЮЗЕР -pПАРОЛЬ` >> /usr/local/etc/mpd4/test 2>&1
echo "r_ip=$r_ip" >> /usr/local/etc/mpd4/test
r_mac=`/usr/sbin/arp -n $r_ip|awk '{print $4}'` >> /usr/local/etc/mpd4/test 2>&1
echo "r_mac=$r_mac" >> /usr/local/etc/mpd4/test
mac1=`/bin/echo "select mac1 from freeradius.radcheck where UserName='$5';" |mysql -s -uЮЗЕР -pПАРОЛЬ` >> /usr/local/etc/mpd4/test 2>&1
mac2=`/bin/echo "select mac2 from freeradius.radcheck where UserName='$5';" |mysql -s -uЮЗЕР -pПАРОЛЬ` >> /usr/local/etc/mpd4/test 2>&1
mac3=`/bin/echo "select mac3 from freeradius.radcheck where UserName='$5';" |mysql -s -uЮЗЕР -pПАРОЛЬ` >> /usr/local/etc/mpd4/test 2>&1
echo "-------------------------" >> /usr/local/etc/mpd4/test
echo `date` >> /usr/local/etc/mpd4/test
s=`/bin/echo "select $bw from freeradius.bw;" |mysql -s -uЮЗЕР -pПАРОЛЬ` >> /usr/local/etc/mpd4/test 2>&1
echo "Speed is $s Kbit/s" >> /usr/local/etc/mpd4/test
num_in=`expr 500 + $i`
num_out=`expr 700 + $i`
num_block=`expr 800 + $i`
pipe_in=$i
pipe_out=`expr 100 + $i`
echo "For user $5" >> /usr/local/etc/mpd4/test
echo "" >> /usr/local/etc/mpd4/test
#pipe's IN
ipfw add $num_in pipe $pipe_in ip from any to $4 >> /usr/local/etc/mpd4/test 2>&1
#pipe's OUT
ipfw add $num_out pipe $pipe_out ip from $4 to any >> /usr/local/etc/mpd4/test 2>&1
#pipe's speed
ipfw pipe $pipe_in config bw "$s"Kbit/s queue 10 >> /usr/local/etc/mpd4/test 2>&1
ipfw pipe $pipe_out config bw "$s"Kbit/s queue 10 >> /usr/local/etc/mpd4/test 2>&1
echo "" >> /usr/local/etc/mpd4/test
#count
ipfw add $num_in count ip from any to any in via $1 >> /usr/local/etc/mpd4/test 2>&1
ipfw add $num_out count ip from any to any out via $1 >> /usr/local/etc/mpd4/test 2>&1
echo "" >> /usr/local/etc/mpd4/test
echo "Begin test for mac-adress's" >> /usr/local/etc/mpd4/test
if [ "$r_mac" = "$mac1" ]; then
echo "mac1 Goot" >> /usr/local/etc/mpd4/test
elif [ "$r_mac" = "$mac2" ]; then
echo "mac2 Goot" >> /usr/local/etc/mpd4/test
elif [ "$r_mac" = "$mac3" ]; then
echo "mac3 Goot" >> /usr/local/etc/mpd4/test
else
echo "Пользователь $5 подключился с чужого компьютера IP=$r_ip (MAC=$r_mac). Правильный мак: $mac1, $mac2 или $mac3"| mail -s "Bad connections!!!" admin@domain.net.ua
echo "Пользователь $5 подключился с чужого компьютера IP=$r_ip (MAC=$r_mac). Правильный мак: $mac1, $mac2 или $mac3" >> /usr/local/etc/mpd4/test
ipfw add $num_block fwd 192.168.10.100,90 log tcp from $4 to any via vlan113 >> /usr/local/etc/mpd4/test 2>&1
fi
Код: Выделить всё
# cat /usr/local/etc/mpd4/down.sh
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
###параметры получаемые при выполнении скрипта###
##$1 $2 $3
##ng0 inet eugene
#номер правила
i=`/bin/echo "select id from freeradius.radcheck where UserName='$3';" |mysql -s -uЮЗЕР -pПАРОЛЬ`
num_in=`expr 500 + $i`
num_out=`expr 700 + $i`
num_block=`expr 800 + $i`
pipe_in=$i
pipe_out=`expr 100 + $i`
echo "-------------------------" >> /usr/local/etc/mpd4/test
echo `date` >> /usr/local/etc/mpd4/test
echo "Stop for user $3" >> /usr/local/etc/mpd4/test
echo "" >> /usr/local/etc/mpd4/test
ipfw pipe delete $pipe_in >> /usr/local/etc/mpd4/test 2>&1
ipfw pipe delete $pipe_out >> /usr/local/etc/mpd4/test 2>&1
ipfw delete $num_in >> /usr/local/etc/mpd4/test 2>&1
ipfw delete $num_out >> /usr/local/etc/mpd4/test 2>&1
ipfw delete $num_block >> /usr/local/etc/mpd4/test 2>&1
echo "" >> /usr/local/etc/mpd4/test
ядерный взрыв...смертельно красиво...жаль, что не вечно...