Разрыв активной сессии на cisco

Технические вопросы по UTM 5.0
Ответить
Аватара пользователя
KSkostja
Сообщения: 191
Зарегистрирован: Вт ноя 15, 2005 03:06
Откуда: Дальний Восток

Разрыв активной сессии на cisco

Сообщение KSkostja »

Я нашел 2 варианта разрыва активной сессии на циско.

делаю команду
Router# sh vpdn session stat

%No active L2TP tunnels

%No active L2F tunnels

PPTP Session Information Total tunnels 3 sessions 3

LocID---RemID---TunID---Intf---Username---State----Last Chg---Uniq ID
166------512--------174-----Vi8---nikola_xa---estabd---00:07:23----170
167------512--------175-----Vi5---sa-sergey---estabd---00:06:34----171
168------163--------176-----Vi6---ksv----------estabd---00:06:01----172

Варианты разрыва в ручную.

1. clear vpdn tunnel pptp id 176 (значение из TunID)
2. clear int Vi6 (значение из Intf)

Вот только вопрос как зацепить Правила Firewall, чтоб сработал разрыв сессии.
Как должна выглядеть строка clear vpdn tunnel pptp id в утм TunID

bear
Сообщения: 498
Зарегистрирован: Чт ноя 15, 2007 11:53

Сообщение bear »

вызывай свой скрипт и в нем уже делай все что хочеш
у меня в правилах фаервола при изменении блокировки что то типа такого:
/netup/utm5/cos/drop_session.sh ULOGIN
где ULOGIN - логин абонента

Аватара пользователя
KSkostja
Сообщения: 191
Зарегистрирован: Вт ноя 15, 2005 03:06
Откуда: Дальний Восток

Сообщение KSkostja »

я знаю что ULOGIN - логин абонента.
а вот бы узнать переменную TunID.

было бы проше разорвать активную сетию.
тыпа вышла команда
rsh 10.10.10.10 -l root clear vpdn tunnel pptp id 176

Pulse
Сообщения: 945
Зарегистрирован: Вт окт 03, 2006 12:58

Сообщение Pulse »

а что мешает в скрипте определить этот параметр используя ULOGIN ?
я использую ip адрес и передаю его скрипту

Код: Выделить всё

#!/bin/sh
SNMPWALK="/usr/local/bin/snmpwalk"
SNMPSET="/usr/local/bin/snmpset"
LOG="/var/log/cisco-snmp"
COMMUNITY="public"
CISCO="127.0.0.1"
USER_IP="$1"

test -z "$USER_IP" && exit 1
INT_NUM=`$SNMPWALK -v2c -c $COMMUNITY $CISCO .1.3.6.1.4.1.9.9.150.1.1.3.1.3 | grep $USER_IP | awk -F. '{print $10}' | awk '{print $1}'`
test -z "$INT_NUM" && exit 1
$SNMPSET -v2c -c $COMMUNITY $CISCO .1.3.6.1.4.1.9.9.150.1.1.3.1.5.$INT_NUM i 1 >/dev/null 2>&1

exit 1
образец брал толи тут толи на опеннете..

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Сообщение Magnum72 »

Код: Выделить всё

#!/bin/sh

if [ $1 ]; then
        UNAME="$1"
        VPN_NEW=`rsh 10.90.90.90 sh vpdn session stat | grep -iw $UNAME | awk '{print $3}'`
        if [ "$VPN_NEW" ]; then
                rsh 10.90.90.90 clear vpdn tunnel pptp id $VPN_NEW > /dev/null
                rsh 10.90.90.90 clear vpdn tunnel l2tp id $VPN_NEW > /dev/null
                else
                VPN_NEW=`rsh 10.90.90.90 sh vpdn session stat | grep -iw $UNAME | awk '{print $3}'`
                if [ "$VPN_NEW" ]; then
                    rsh 10.90.90.90 clear vpdn tunnel pptp id $VPN_NEW > /dev/null
                    rsh 10.90.90.90 clear vpdn tunnel l2tp id $VPN_NEW > /dev/null
                fi
        fi
fi
exit 0

Код: Выделить всё

#!/usr/bin/perl

use DBI;
if ($#ARGV != 0) {
        print "Usage: close_vpn.pl user_vpn_login\n";
        exit 0;
}
$mysqlserver="10.90.90.91";
$dsn = "DBI:mysql:database=UTM5;host=$mysqlserver";
$dbh = DBI->connect($dsn, "radlogin", "password");
my $login = $ARGV[0];
$sth = $dbh->prepare("SELECT acctsessionid,nasipaddress FROM radutmp WHERE username='$login' ORDER BY acctstarttime DESC");
$sth->execute();
$ref = $sth->fetchrow_hashref();
my ($sess_id,$nasipaddress) = ($ref->{'acctsessionid'},$ref->{'nasipaddress'});
$sess_id = hex($sess_id);
if ($sess_id > 0) {
`/usr/bin/snmpset -c nFrKwGsObePq -v2c $nasipaddress 1.3.6.1.4.1.9.9.150.1.1.3.1.5.$sess_id i 1`;
}
exit 0;

Аватара пользователя
KSkostja
Сообщения: 191
Зарегистрирован: Вт ноя 15, 2005 03:06
Откуда: Дальний Восток

Сообщение KSkostja »

а на PHP есть у вас скрипт, а то perl не используем.

bear
Сообщения: 498
Зарегистрирован: Чт ноя 15, 2007 11:53

Сообщение bear »

до чего ленивый одмин пошел, скрипт элементарный
пишется за пол часа с 2мя перекурами при помощи http://php.net/
готов за 15% от вашей зарплаты написать его

Аватара пользователя
KSkostja
Сообщения: 191
Зарегистрирован: Вт ноя 15, 2005 03:06
Откуда: Дальний Восток

Сообщение KSkostja »

стукни в асю перегаварим.

Аватара пользователя
KSkostja
Сообщения: 191
Зарегистрирован: Вт ноя 15, 2005 03:06
Откуда: Дальний Восток

Сообщение KSkostja »

Кто ни будь дайте вариант на php глянуть.

Аватара пользователя
KSkostja
Сообщения: 191
Зарегистрирован: Вт ноя 15, 2005 03:06
Откуда: Дальний Восток

Сообщение KSkostja »

как вытащить значение TunID из mysql.

Ответить