Информация
Настройка
Новости
Контакты
Новинка
Распродажа
Оплата
Доставка
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • Changelogs
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    RouterOS
    Радиус Прибывает

    Радиус Прибывает

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Радиус Прибывает, RouterOS
     
    jscoulter
    Guest
    #1
    0
    30.11.2006 09:42:00
    Привет всем. Может, кто-нибудь подсказать, что отправлять на порт 1700 для radius incoming, чтобы отключить пользователя? На сайте MikroTik я не нашёл много информации. Спасибо, Jeremy.
     
     
     
    mneumark
    Guest
    #2
    0
    05.12.2006 06:26:00
    Можно использовать Winbox, зайди в интерфейсы, потом в клиентов. На клиенте нажми "удалить" на клавиатуре — это отправит запрос на отключение клиента на Mikrotik. Это то, о чём ты спрашивал?
     
     
     
    jscoulter
    Guest
    #3
    0
    05.12.2006 08:30:00
    Даже близко нет, извини. В разделе "Radius" есть опция входящего соединения, которая слушает порт 1700 или 1770…сейчас точно не помню. Сейчас нужно использовать Telnet через наше приложение, что, честно говоря, работает вполне нормально, но это проблема, если MikroTik решит что-то поменять, например, расположение пользователей или что-то в этом роде. Тогда мне нужно обновлять мой код, а если использовать другой метод, то это стандартный Radius-вызов…ну, стандартный в некотором роде, Jeremy.
     
     
     
    GWISA
    Guest
    #4
    0
    05.12.2006 09:28:00
    /radius incoming
     
     
     
    jscoulter
    Guest
    #5
    0
    05.12.2006 09:37:00
    Ну ладно… да, это местоположение, но в остальном это особо не помогает. В любом случае, выяснилось, что то, что мне нужно отправить, похоже на данные о приостановке/возобновлении работы бухгалтерии, так что я собираюсь это изучить. Я сам написал RADIUS-сервер, поэтому могу просто использовать уже существующий код и немного его модифицировать, и дальше двигаться от этого.
     
     
     
    GWISA
    Guest
    #6
    0
    05.12.2006 09:54:00
    Ой, простите… не прочитал вопрос! Извините, что не могу предоставить больше информации…
     
     
     
    chris-oct
    Guest
    #7
    0
    06.12.2006 16:30:00
    Вот кусочек кода, который я использовал в PHP: $cmd = “echo NAS-IP-Address=$nas_ip_address,User-Name=$mac,Framed-IP-Address=$framed_ip_address,Acct-Session-Id=$acct_session_id | radclient $nas_ip_address:1700 disconnect password123”; Единственный способ получить эти значения — это включить Radius Accounting и вытащить их из базы данных.
     
     
     
    jscoulter
    Guest
    #8
    0
    06.12.2006 18:17:00
    Ну ладно, а что делать с этой строкой кода? Отправлять её сразу на порт (после того, как PHP добавит значения в теги)? Или отправлять эту строку кода в другое приложение, которое отправит данные на порт? Спасибо, Jeremy.
     
     
     
    chris-oct
    Guest
    #9
    0
    06.12.2006 20:10:00
    Этот код использует приложение “radclient” на *nix. Давай уберу PHP из уравнения. Теперь это просто *nix. Может, так будет понятнее. `echo "NAS-IP-Address=<nas_ip_address>,User-Name=,Framed-IP-Address=<framed_ip_address>,Acct-Session-Id=<acct_session_id>" | radclient <nas_ip_address>:1700 disconnect` Всё, что имеет , нужно заменить.
     
     
     
    jscoulter
    Guest
    #10
    0
    06.12.2006 20:46:00
    Да, всё оказалось именно так, как я и ожидал. Не мог вспомнить название приложения, которое упоминалось на сайте, но это оно. Если оно не доступно для Win32, придётся реализовывать свой код…вздыхаю…ну что ж. Jeremy.
     
     
     
    eugenevdm
    Guest
    #11
    0
    04.02.2007 11:02:00
    Крис-Окт, почему ты используешь Acct-Session-Id? Без Acct-Session-Id пользователь отключается, но в логе появляются ошибки. Без Framed-IP-Address всё работает, но выдаёт эту ошибку: "Radius disconnect with no ip provided". RFC гласит, что Framed-IP-Address должен присутствовать, поэтому эта ошибка очевидна. С Framed-IP-Address всё работает, но всё равно сообщает об ошибке в логе: Radius disconnect request for unknown IP 192.168.0.50. IP, 192.168.0.50, это IP клиента, подключенного к высокой площадке, поэтому я не понимаю, почему он сообщает об неизвестном IP. Это точно адрес клиента.
     
     
     
    altere
    Guest
    #12
    0
    09.09.2008 23:19:00
    Ладно, вместо создания новой темы, попробую просто получить свой ответ здесь… Вот что у меня есть в php-скрипте: из командной строки с правильными значениями всё работает отлично. Перед кодом ниже я также вывожу переменные, и они все корректно возвращаются из базы данных, так что я знаю, что информация подтягивается правильно… $cmd = "echo NAS-IP-Address=$nasip,User-Name=$macaddr,Framed-IP-Address=$framedip,Acct-Sess ion-Id=$sessid | /usr/local/bin/radclient $nasip:1700 disconnect somesecret";
    exec($cmd); После этого выводится правильная информация (из моих echo для отладки, не включены выше), происходит пауза, и возвращается: radclient: no response from server for ID 3. Опять же, эта команда отлично работает из командной строки, но я не могу заставить php-скрипт открыть radclient и передать информацию, как положено… Наверное, ошибка парсинга или что-то с кавычками, которые стоят не в том месте… Буду благодарен за любую помощь…
     
     
     
    altere
    Guest
    #13
    0
    09.09.2008 23:49:00
    Не знаю, что я сделал, но теперь это работает. Вот готовый код, если кому-то ещё понадобится. Он запускается сам по себе, но мы используем обёртку из-за особенностей передачи информации Platypus в демон, если кому нужна обёртка – дайте знать. Это базовый скрипт, нет проверки ошибок и он не был протестирован на 100%. Вероятно, в будущем его расширят и будут использовать для сбора другой информации, но пока что – это всё. Используйте его на свой страх и риск.

    killradius - Disconnect Radius Script
    #!/usr/local/bin/php -q
    <?php

    if ($argc != 2 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) {

    ?>

    Этот скрипт будет искать MAC-адрес в таблице radacct и отключать пользователя от соответствующего NAS.

    Пример использования: <? print $_SERVER['PHP_SELF']; ?> 00:00:00:00:00:00

    <?php
    } else {
           $macaddr = $argv[1];

    // Попытаемся подключиться к базе данных....
    $link = mysql_connect("localhost", "dbusername", "dbpassword");
    if (!$link) {
       die('Не удалось подключиться: ' . mysql_error());
       echo 'Ошибка подключения к mysql';
    }
    mysql_select_db("database") or die(mysql_error());

           $query = "SELECT *  FROM `radacct` WHERE `UserName` LIKE '$macaddr' ORDER BY `RadAcctId` DESC LIMIT 0,1";
           $result=mysql_query($query);
           $num=mysql_numrows($result);
    //Закрываем соединение с mysql!
    mysql_close($link);

    $i=0;
    while ($i < $num) {
           // Все наши переменные из запроса.
           $RadAcctId=mysql_result($result,$i,"RadAcctId");
           $AcctSessionId=mysql_result($result,$i,"AcctSessionId");
           $AcctUniqueId=mysql_result($result,$i,"AcctUniqueId");
           $UserName=mysql_result($result,$i,"UserName");
           $Realm=mysql_result($result,$i,"Realm");
           $NASIPAddress=mysql_result($result,$i,"NASIPAddress");
           $NASPortId=mysql_result($result,$i,"NASPortId");
           $AcctStartTime=mysql_result($result,$i,"AcctStartTime");
           $AcctStopTime=mysql_result($result,$i,"AcctStopTime");
           $AcctSessionTime=mysql_result($result,$i,"AcctSessionTime");
           $AcctAuthentic=mysql_result($result,$i,"AcctAuthentic");
           $ConnectInfo_start=mysql_result($result,$i,"ConnectInfo_start");
           $ConnectInfo_stop=mysql_result($result,$i,"ConnectInfo_stop");
           $AcctInputOctets=mysql_result($result,$i,"AcctInputOctets");
           $AcctOutputOctets=mysql_result($result,$i,"AcctOutputOctets");
           $CalledStationId=mysql_result($result,$i,"CalledStationId");
           $CallingStationId=mysql_result($result,$i,"CallingStationId");
           $AcctTerminateCause=mysql_result($result,$i,"AcctTerminateCause");
           $ServiceType=mysql_result($result,$i,"ServiceType");
           $FramedProtocol=mysql_result($result,$i,"FramedProtocol");
           $FramedIPAddress=mysql_result($result,$i,"FramedIPAddress");
           $AcctStartDelay=mysql_result($result,$i,"AcctStartDelay");
           $AcctStopDelay=mysql_result($result,$i,"AcctStopDelay");

    // Следующие 4 строки закомментированы, так как они использовались для отладки.
    //  echo "Username: $UserName\n";
    //  echo "Client IP: $FramedIPAddress\n";
    //  echo "NAS IP Address: $NASIPAddress\n";
    //  echo "AcctSessionId: $AcctSessionId\n";

           // Это команда, которую мы передадим php для выполнения
           $cmd = "echo NAS-IP-Address=$NASIPAddress,User-Name=$UserName,Framed-IP-Address=$FramedIPAddress,Acct-Session-Id=$AcctSessionId | /usr/local/bin/radclient $NASIPAddress:1700 disconnect SomeSecret";
           // Давайте фактически выполним команду сейчас
           exec($cmd);
           $i++;
           }
    }
    ?>
     
     
     
    chimaster
    Guest
    #14
    0
    15.01.2012 07:40:00
    Привет. Я прочитал это с интересом… Кто-нибудь знает, может ли Freeradius отправлять disconnect на NAS-IP-Address, а не на Framed-IP-Address? У меня проблема с несколькими NAS за NAT, но у меня есть доступ к IP-адресу NAS, указанному в src-address в Mikrotik. Однако из-за сетевой архитектуры NAT переводит даже несмотря на то, что RADIUS доступен. Скорее всего, я в итоге буду использовать VPN и только внутренний IP для RADIUS, исключая NAT для RADIUS-трафика, но я подумал, что в качестве временного решения можно использовать NAS-IP вместо Framed… Возможно ли это?
     
     
     
    alphahawk
    Guest
    #15
    0
    16.01.2012 22:52:00
    Chimaster, тут зависит от того, что ты пытаешься отключить. Я знаю, что радиус точки доступа периодически проверяет, чтобы убедиться, что клиенту всё ещё разрешён доступ. По-моему, в freeradius есть опция отключить их при следующей проверке.
     
     
     
    mehdisadighian
    Guest
    #16
    0
    30.10.2016 12:29:00
    pppoe coa: echo User-Name=mehdi,Mikrotik-Rate-Limit="512k/512k" | radclient -d /usr/local/share/freeradius/ -x -F x.x.x.x:3799 coa secret hotspot coa: echo User-Name=mehdi,Framed-IP-Address=“192.168.20.254”,Mikrotik-Rate-Limit="512k/512k" | radclient -d /usr/local/share/freeradius/ -x -F x.x.x.x:3799 coa secret mehdi.sadighian@hotmail.com
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры