UTM5+cisco switch

Технические вопросы по UTM 5.0
Munsera
Сообщения: 126
Зарегистрирован: Чт янв 27, 2011 15:29

UTM5+cisco switch

Сообщение Munsera »

Здравствуйте.
Вопсчем вопрос такой.
Можно ли отключить на утм, чтоб он отключился на свиче.
Т.е.
Допустим я через админку отключаю пользователя за неуплату(ну или автоматически он отключается).И хочу чтобы на свиче тот порт к которому он подключен ушел в шутдаун.
Такое возможно? На циске есть управление через snmp. Возможно прикрутить утм к циске??
Ну или как реализовано в данном случае у вас?

tail-n
Сообщения: 101
Зарегистрирован: Пн июн 01, 2009 02:32

Сообщение tail-n »

Привет, нет ничего невозможного.

запилите скрипт :D Вообщем скорее всего можно управлять вашим "cisco switch" через telnet, ssh, snmp ну а обернуть можете в bash, perl и тд. Создаетё правило а админке на отключение/включение абонента с передачей параметров. Ваш запиленный скрипт, берёт данные из предварительно подготовленной вами базы UTM (коммутатор, порт, юзер)
соединяется с коммутатором и делаем своё черное дело за Вас.

Вот как то так. :D

Тока вот закрыть всё это значит лишить юзера возможности оплаты услуг, что не есть гуд. Проще закрыть доступ на локальные ресурсы на l3 , создав скрипт который будет раз в час брать данные из базы утм на наличие юзеров с блокировкой 216 (если мне память не изменяет) потом поместить их в таблицу ipset а уже эту таблицу запихать в iptables ну или что там у вас....
Последний раз редактировалось tail-n Ср фев 16, 2011 01:43, всего редактировалось 1 раз.

Munsera
Сообщения: 126
Зарегистрирован: Чт янв 27, 2011 15:29

Сообщение Munsera »

я управляю через ssh. УТМ у меня установлен на центосе. А где можно почитать о скриптах Утм? Хотябы пример...

tail-n
Сообщения: 101
Зарегистрирован: Пн июн 01, 2009 02:32

Сообщение tail-n »

Munsera писал(а):я управляю через ssh. УТМ у меня установлен на центосе. А где можно почитать о скриптах Утм? Хотябы пример...
Через ssh это конечно хорошо, а что у вас свитчи находятся не managment vlan?

Munsera
Сообщения: 126
Зарегистрирован: Чт янв 27, 2011 15:29

Сообщение Munsera »

У нас делается ручками. Если клиент заблокирован,то инженер руками на роутере пишет его ипку в дени. Вот и все.
Хотелось бы автоматизировать процесс.
Подумав решил, что отрубать пользователя шутдауном на свиче будет лучше.
В любом случае они всегдя звонят и интересуются)))

Munsera
Сообщения: 126
Зарегистрирован: Чт янв 27, 2011 15:29

Сообщение Munsera »

не в мэнеджменте)
Но через трапы snmp можно управлять циской.... хочу как-нить это реализовать... Но хз где и как для УТМ скрипты писать.

З.Ы. может в асю?)

tail-n
Сообщения: 101
Зарегистрирован: Пн июн 01, 2009 02:32

Сообщение tail-n »

У меня нет аськи, вам надо железки засунуть в управляемую подсеть пока не поздно, а то замучаетесь.

Вот пример простого скрипта, который ищет юзера, если у юзера положительный баланс делает одно, иначе другое:


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


<?php
$host = 'localhost'; //Хост MySQL-сервера.
$user = '***'; //Имя пользователя MySQL.
$pass = ****'; //Пароль пользователя MySQL.
$dbname = 'UTM5'; //Имя базы данных MySQL с которой мы будем работать.

$connect = mysql_connect&#40;$host, $user, $pass&#41;; //Устанавливаем соединение с MySQL-сервером
mysql_select_db&#40;$dbname&#41;; //Выбираем нужную базу данных.

$sql = mysql_query&#40;"SELECT * FROM `accounts` where `id` =1454;"&#41;;//Посылаем SQL запрос на MySQL-сервер.

$result = mysql_result&#40;$sql,0,6&#41;;//Получаем значение ячейки седьмого столбца, первой строки таблицы.
if&#40;$result=="0"&#41;
 echo system&#40;"/etc/init.d/100modup"&#41;;
 
if&#40;$result=="16"&#41;
 echo system&#40;"/etc/init.d/100mod"&#41;;
 

mysql_close&#40;$connect&#41;;//Закрываем соединение с MySQL-сервером

?>
Последний раз редактировалось tail-n Ср фев 16, 2011 01:56, всего редактировалось 1 раз.

Munsera
Сообщения: 126
Зарегистрирован: Чт янв 27, 2011 15:29

Сообщение Munsera »

Всмысле?
Много разных фирм. У них у всех белые ипки. И все подключены к нашему роутеру. если незаплатили - прот в шутдаун - нет инета. А локальные ресурсы у каждого свои, пусть пользуютсо))

Munsera
Сообщения: 126
Зарегистрирован: Чт янв 27, 2011 15:29

Сообщение Munsera »

У меня нет аськи, вам надо железки засунуть в управляемую подсеть пока не поздно, а то замучаетесь.
Поподробнее на этом, пожалуйста. У нас они все в одной подсети. мы им раздаем ипки из диапазона. Просто они белые и все)

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

if&#40;$result=="0"&#41;
 echo system&#40;"/etc/init.d/100modup"&#41;.
вместо "echo..." можно писать как раз команды управления циской? А как скрипт прикрутить к УТМ? Чтоб он постоянно проверял..

tail-n
Сообщения: 101
Зарегистрирован: Пн июн 01, 2009 02:32

Сообщение tail-n »

Всё что указано выше, только поможет Вам понять алгоритм, дальше уже самостоятельно.

tail-n
Сообщения: 101
Зарегистрирован: Пн июн 01, 2009 02:32

Сообщение tail-n »

Munsera писал(а):
У меня нет аськи, вам надо железки засунуть в управляемую подсеть пока не поздно, а то замучаетесь.
Поподробнее на этом, пожалуйста. У нас они все в одной подсети. мы им раздаем ипки из диапазона. Просто они белые и все)

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

if&#40;$result=="0"&#41;
 echo system&#40;"/etc/init.d/100modup"&#41;.
вместо "echo..." можно писать как раз команды управления циской? А как скрипт прикрутить к УТМ? Чтоб он постоянно проверял..
Нет в место /etc/init.d/100modup - ваш скрипт,

ниже пример на перл:

/home/pahom/switch/dattest - список IP адресов в формате:

10.100.10.2
10.100.10.3
....
10.100.10.100 и тд

Скрипт берёт ip адреса из списка логинится на оборудование выполняет ряд команд исваливает.
Реализовано через telnet но это роли не играет, разве что нагрузка больше нежели если это делать через snmp.

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


#!/usr/bin/perl -w
#База с ip свичей
$filepach = '/home/pahom/switch/dattest';
open &#40;FBAZA, $filepach&#41; or die "Ошибка открытия файла $filepach";
while&#40;<FBAZA>&#41; &#123;
	my $swip = $_;
	print $swip;
	my @mac_ip = `&#40;sleep 3; echo admin; sleep 3; echo ***; sleep 5; # Передаем логин, пароль на устройство
		 echo "save all";
		 sleep 20; echo "logout"&#41; | telnet $swip`;
		
	
	%hash = &#40;&#41;;         
&#125;
close&#40;D&#41; or die $!;
close&#40;FBAZA&#41; or die $!;

Munsera
Сообщения: 126
Зарегистрирован: Чт янв 27, 2011 15:29

Сообщение Munsera »

Ну вот смотри.

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

<?php
$host = 'localhost'; //Хост MySQL-сервера.
$user = '***'; //Имя пользователя MySQL.
$pass = ****'; //Пароль пользователя MySQL.
$dbname = 'UTM5'; //Имя базы данных MySQL с которой мы будем работать.

$connect = mysql_connect&#40;$host, $user, $pass&#41;; //Устанавливаем соединение с MySQL-сервером
mysql_select_db&#40;$dbname&#41;; //Выбираем нужную базу данных.

$sql = mysql_query&#40;"SELECT * FROM `accounts` where `id` =1454;"&#41;;//Посылаем SQL запрос на MySQL-сервер.

$result = mysql_result&#40;$sql,0,6&#41;;//Получаем значение ячейки седьмого столбца, первой строки таблицы.
if&#40;$result=="0"&#41;
 echo system&#40;"/etc/init.d/100modup"&#41;;
 
if&#40;$result=="16"&#41;
 echo system&#40;"/etc/init.d/100mod"&#41;;
 

mysql_close&#40;$connect&#41;;//Закрываем соединение с MySQL-сервером

?> 
Этот скрипт куда прикручивать?


Вот создал я /home/pahom/switch/dattest с ипками.
Написал скрипт с содержанием :

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

#!/usr/bin/perl -w
#База с ip свичей
$filepach = '/home/pahom/switch/dattest';
open &#40;FBAZA, $filepach&#41; or die "Ошибка открытия файла $filepach";
while&#40;<FBAZA>&#41; &#123;
   my $swip = $_;
   print $swip;
   my @mac_ip = `&#40;sleep 3; echo admin; sleep 3; echo ***; sleep 5; # Передаем логин, пароль на устройство
       echo "save all";
       sleep 20; echo "logout"&#41; | telnet $swip`;
      
   
   %hash = &#40;&#41;;         
&#125;
close&#40;D&#41; or die $!;
close&#40;FBAZA&#41; or die $!; 
Его куда прикручивать? Чмод какой сделать ему?
НЕмного алгоритм обработки не понял..

tail-n
Сообщения: 101
Зарегистрирован: Пн июн 01, 2009 02:32

Сообщение tail-n »

Это только пример.

Здесь:
http://www.netup.ru/download/utm5_20101214.pdf
Стр 160 указаны перемернные которые можно передвать скрипту, если пользвателю в базе утм присвоен брандмауэр и порт,

передать можно так

/root/up.sh start UID SWITCH_IP SWITCH_PORT - включение порта

/root/up.sh stop UID SWITCH_IP SWITCH_PORT - выключение порта

Ну как вы всё реализуете всё зависит от конкретных особенностей сети.

Munsera
Сообщения: 126
Зарегистрирован: Чт янв 27, 2011 15:29

Сообщение Munsera »

Спасибо. Почитаю.

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

<?php
$host = 'localhost'; //Хост MySQL-сервера.
$user = '***'; //Имя пользователя MySQL.
$pass = ****'; //Пароль пользователя MySQL.
$dbname = 'UTM5'; //Имя базы данных MySQL с которой мы будем работать.

$connect = mysql_connect&#40;$host, $user, $pass&#41;; //Устанавливаем соединение с MySQL-сервером
mysql_select_db&#40;$dbname&#41;; //Выбираем нужную базу данных.

$sql = mysql_query&#40;"SELECT * FROM `accounts` where `id` =1454;"&#41;;//Посылаем SQL запрос на MySQL-сервер.

$result = mysql_result&#40;$sql,0,6&#41;;//Получаем значение ячейки седьмого столбца, первой строки таблицы.
if&#40;$result=="0"&#41;
 echo system&#40;"/etc/init.d/100modup"&#41;;
 
if&#40;$result=="16"&#41;
 echo system&#40;"/etc/init.d/100mod"&#41;;
 

mysql_close&#40;$connect&#41;;//Закрываем соединение с MySQL-сервером

?> 
Вот этот скрипт норм кстати. Как бы его прикрутить....

gil
Сообщения: 355
Зарегистрирован: Вт ноя 11, 2008 14:28

Сообщение gil »

думаю, все это за вас никто не сделает.
по крайней мере, бесплатно.
мы можем только подсказать, куда смотреть.

Ответить