Скрипт управления session cisco

Skip to end of metadata
Go to start of metadata
Вы просматриваете старую версию данной страницы. Смотрите текущую версию. Сравнить с текущим  |   просмотр истории страницы

#!/bin/bash

  1. skip crab_syntax

TMPDIR=/tmp/$

Unknown macro: {0##*/}

mkdir -p $TMPDIR

trap __exit EXIT
__exit()

Unknown macro: { local ret=$? rm -f $TMPDIR/*.$$ return $ret }

function __radclient() {
res=$(radclient -c 1 -r 2 -t 1 -x $nas_ip:$coa_port $1 $coa_psw)
ret=$?
set +x
echo "$res" | grep -q "Error-Cause = 0|Error-Cause = 200" && ret=0
echo "$res" | grep -q "Error-Cause = Resources Unavailable" && ret=254
echo "$res" | grep -q "no response from server" && ret=254
if echo "$res" | grep -q "Error-Cause = Session-Context-Not-Found|Missing-Attribute"; then
echo -e "clear subscriber session username $login\nclear subscriber session username $ip"\

ssh_send -q -e "$telnet_enpassword" -t "$telnet_type" -u "$telnet_login" -p "$telnet_password" "$telnet_ip" --port "$
Unknown macro: {telnet_port}

"
fi
echo $res
set -x
return $ret
}

  1. Приходит при создании пользователя в биллинге
  2. И при смене критичных параметров(ip, vlan, port etc.)(с новыми значениями)
  3. Обычно/ используется для ip авторизации
    user_add() {
    :
    }
  1. Приходит при удалении пользователя из биллинга
  2. И при смене критичных параметров(ip, vlan, port etc.)(со старыми значениями)
  3. Обычно используется для ВСЕХ видов авторизации
    user_del()
    Unknown macro: { user_disconnect }
  1. Приходит после авторизации пользователя
  2. Рекомендуется политику пользователя передавать в радиус replay параметрах, А НЕ В ЭТОМ СОБЫТИИ,
  3. т.к. у любого оборудования есть ограничения на колличество отправляемых команд в секунду
    user_accept() {
    echo "Cisco-Account-Info=\"S$
    Unknown macro: {ip}

    :vrf-id=$

    Unknown macro: {vrf}

    \",\
    cisco-avpair+=\"subscriber:service-name=FWPOL_BLOCKED_TRUSTED\",\
    cisco-avpair+=\"subscriber:command=deactivate-service\"" | __radclient coa

    echo "Cisco-Account-Info=\"S$

    :vrf-id=$

    Unknown macro: {vrf}

    \",\
    cisco-avpair+=\"subscriber:service-name=FWPOL_BLOCKED_REDIRECT\",\
    cisco-avpair+=\"subscriber:command=deactivate-service\"" | __radclient coa

    echo "Cisco-Account-Info=\"S$

    Unknown macro: {ip}

    :vrf-id=$

    \",\
    cisco-avpair+=\"subscriber:service-name=FWPOL_ACCEPT\",\
    cisco-avpair+=\"subscriber:command=activate-service\"" | __radclient coa

echo "Cisco-Account-Info=\"S$

Unknown macro: {ip}

:vrf-id=$

Unknown macro: {vrf}

\",\
cisco-avpair+=\"subscriber:service-name=FWPOL_NOSHAPE\",\
cisco-avpair+=\"subscriber:command=activate-service\"" | __radclient coa

}

  1. Приходит при отключении пользователя
  2. Рекомендуется избегать удаления пользователя из списков, для экономии очереди команд на оборудовании
    user_drop() {
    echo "Cisco-Account-Info=\"S$

:vrf-id=$

Unknown macro: {vrf}

\",\
cisco-avpair+=\"subscriber:service-name=FWPOL_ACCEPT\",\
cisco-avpair+=\"subscriber:command=deactivate-service\"" | __radclient coa

echo "Cisco-Account-Info=\"S$

Unknown macro: {ip}

:vrf-id=$

\",\
cisco-avpair+=\"subscriber:service-name=FWPOL_NOSHAPE\",\
cisco-avpair+=\"subscriber:command=deactivate-service\"" | __radclient coa

echo "Cisco-Account-Info=\"S$

Unknown macro: {ip}

:vrf-id=$

Unknown macro: {vrf}

\",\
cisco-avpair+=\"subscriber:service-name=FWPOL_BLOCKED_TRUSTED\",\
cisco-avpair+=\"subscriber:command=activate-service\"" | __radclient coa

echo "Cisco-Account-Info=\"S$

:vrf-id=$

Unknown macro: {vrf}

\",\
cisco-avpair+=\"subscriber:service-name=FWPOL_BLOCKED_REDIRECT\",\
cisco-avpair+=\"subscriber:command=activate-service\"" | __radclient coa

}

  1. Приходит при превышении лимита, либо при отключении услуги
    user_redirect() {
    echo "Cisco-Account-Info=\"S$
    Unknown macro: {ip}

    :vrf-id=$

\",\
cisco-avpair+=\"subscriber:service-name=FWPOL_ACCEPT\",\
cisco-avpair+=\"subscriber:command=deactivate-service\"" | __radclient coa

echo "Cisco-Account-Info=\"S$

Unknown macro: {ip}

:vrf-id=$

Unknown macro: {vrf}

\",\
cisco-avpair+=\"subscriber:service-name=FWPOL_NOSHAPE\",\
cisco-avpair+=\"subscriber:command=deactivate-service\"" | __radclient coa

echo "Cisco-Account-Info=\"S$

:vrf-id=$

Unknown macro: {vrf}

\",\
cisco-avpair+=\"subscriber:service-name=FWPOL_NEGBAL_REDIRECT\",\
cisco-avpair+=\"subscriber:command=activate-service\"" | __radclient coa

echo "Cisco-Account-Info=\"S$

Unknown macro: {ip}

:vrf-id=$

\",\
cisco-avpair+=\"subscriber:service-name=FWPOL_NEGBAL_TRUSTED\",\
cisco-avpair+=\"subscriber:command=activate-service\"" | __radclient coa

}

  1. Приходит после оплаты, если хватило денег на включение услуги
    user_redirect_cancel() {
    echo "Cisco-Account-Info=\"S$
    Unknown macro: {ip}

    :vrf-id=$

    Unknown macro: {vrf}

    \",\
    cisco-avpair+=\"subscriber:service-name=FWPOL_NEGBAL_TRUSTED\",\
    cisco-avpair+=\"subscriber:command=deactivate-service\"" | __radclient coa

    echo "Cisco-Account-Info=\"S$

    :vrf-id=$

    Unknown macro: {vrf}

    \",\
    cisco-avpair+=\"subscriber:service-name=FWPOL_NEGBAL_REDIRECT\",\
    cisco-avpair+=\"subscriber:command=deactivate-service\"" | __radclient coa

    echo "Cisco-Account-Info=\"S$

    Unknown macro: {ip}

    :vrf-id=$

    \",\
    cisco-avpair+=\"subscriber:service-name=FWPOL_ACCEPT\",\
    cisco-avpair+=\"subscriber:command=activate-service\"" | __radclient coa

echo "Cisco-Account-Info=\"S$

Unknown macro: {ip}

:vrf-id=$

Unknown macro: {vrf}

\",\
cisco-avpair+=\"subscriber:service-name=FWPOL_NOSHAPE\",\
cisco-avpair+=\"subscriber:command=activate-service\"" | __radclient coa

}

  1. Приходит при изменении скорости подключения
  2. Или включения\выключении услуги(турбокнопка, ночной форсаж и т.д.)
    user_rate_set() {
    echo "Cisco-Account-Info=\"S$

:vrf-id=$

Unknown macro: {vrf}

\",\
Cisco-Account-Info+=\"QU;$

Unknown macro: {ceil_in}

000;D;$

Unknown macro: {ceil_out}

000\"" | __radclient coa
}

  1. Приходит при отключении пользователя администратором
    user_disconnect() {
  2. на самом деле User-Name cisco игнорирует, но он должен быть и быть не пустым иначе ошибка
    echo "User-Name=\"$login\",Cisco-Account-Info=\"S$
    Unknown macro: {ip}

    :vrf-id=$

\",\
cisco-avpair+=\"subscriber:command=account-logoff\"" | __radclient coa
#TODO_OSV echo "User-name=\"1\",Cisco-Account-Info=\"S10.255.0.2\",cisco-avpair+=\"subscriber:command=account-logoff\"" | radclient 185.8.158.73:3799 coa servicemode
}

  1. Приходит при нажатии кнопки info в учетной записи
    user_info() {
    echo '<pre>' > /tmp/$
    Unknown macro: {user_id}

    _user_info.new

    1. echo "User-Name=\"$login\",Cisco-Account-Info=\"S$
      Unknown macro: {ip}

      :vrf-id=$

      Unknown macro: {vrf}

      \",\

    2. cisco-avpair+=\"subscriber:command=profile-status-query\"" | __radclient coa &>>/tmp/$

    _user_info.new
    ( . $EVENT_HANDLERS_DIR/$

    Unknown macro: {NAS_SCRIPT_NAME%.sh}

    .d/user_info ) >> /tmp/$

    Unknown macro: {user_id}

    _user_info.new || true
    echo '</pre>' >> /tmp/$

    _user_info.new

mv -f /tmp/$

Unknown macro: {user_id}

_user_info.new /tmp/$

_user_info
chown apache:apache /tmp/$

Unknown macro: {user_id}

_user_info
[ "$

Unknown macro: {is_daemon}

" != 1 ] && cat /tmp/$

_user_info

}

  1. Приходит при нажатии кнопки тест в учетной записи
    user_test() {
    echo > "/tmp/$
    Unknown macro: {user_id}

    _user_info"
    echo "User-Name=\"$login\",Cisco-Account-Info=\"S$

    Unknown macro: {ip}

    :vrf-id=$

    Unknown macro: {vrf}

    \",cisco-avpair+=\"subscriber:command=profile-status-query\"" | __radclient coa &>>"/tmp/$

    _user_info"
    cat /tmp/$

    Unknown macro: {user_id}

    _user_info
    }

    1. Хук - вызывается перед каждым событием
      user_event_before() {
      :
      }
    1. Хук - вызывается после каждого события
      user_event_after() {
      :
      }
    1. Приходит при добавлении услуги абоненту
      usluga_add(){
    2. Доступ к социально значимым ресурсам для физиков
      if [ "$usluga_system_type_id" == "15" ]; then
      echo "Cisco-Account-Info=\"S$
      Unknown macro: {ip}

      :vrf-id=$

      Unknown macro: {vrf}

      \",\
      Cisco-Account-Info=\"AFWPOL_FREE_INTERNET\"" | __radclient coa
      fi
      }

      1. Приходит при удалении услуги у абонента
        usluga_del(){
      2. Отмена доступа к социально значимым ресурсам для физиков
        if [ "$usluga_system_type_id" == "15" ]; then
        echo "Cisco-Account-Info=\"S$

      :vrf-id=$

      Unknown macro: {vrf}

      \",\
      cisco-avpair+=\"subscriber:service-name=FWPOL_FREE_INTERNET\",\
      cisco-avpair+=\"subscriber:command=deactivate-service\"" | __radclient coa
      fi
      }

    users_from_nas(){
    :
    }

    1. Приходит при активации услуги
      usluga_activated(){
      :
      }
    1. Приходит при деактивации услуги
      usluga_deactivated(){
      :
      }

    send_cmd() {
    ip=$1
    cmd=user_$

    Unknown macro: {2}

    set -x
    echo "env $env_str"
    $cmd
    set +x
    }

    main() {
    . /usr/local/bin/user_env $ip
    . $oss_pathname/main.ini

    [ -z "$vrf" ] && vrf="global"
    abonent_log_dir="/var/log/abonents/$

    Unknown macro: {abonent_id}

    /"
    mkdir -p "$abonent_log_dir"

    PS4=" \D

    Unknown macro: {%Y-%m-%d %T}

    ssh $

    Unknown macro: {SSH_CLIENT%% *}

    $HOSTNAME rtsh session "$@"[$$]: "

    echo '' >> "$

    Unknown macro: {abonent_log_dir}

    /rtsh_$

    .log"
    send_cmd "$@" 2>&1 | tee -a "$

    Unknown macro: {abonent_log_dir}

    /rtsh_$

    Unknown macro: {user_id}

    .log"
    }

      1. Все функции должны быть определены до подключения ubin_session
        bin_session=$BASH_SOURCE
        ubin_session="$
        Unknown macro: {bin_session//bin/ubin}

        .hook"
        [ -f "$ubin_session" ] && source "$

        Unknown macro: {ubin_session}

        "

  1. пока временно
    if [ "$
    Unknown macro: {is_daemon}

    " != 1 ]; then
    main "$@"
    exit $?
    fi
    oss_pathname=$

    Unknown macro: {EVENT_HANDLERS_DIR%/*}

    #todo export from daemon
    . $oss_pathname/main.ini

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.