Изменение скорости на коммутаторе Qtech

Технические вопросы по UTM 5.0
Ответить
georgepapaskiri
Сообщения: 45
Зарегистрирован: Чт мар 16, 2017 12:42

Изменение скорости на коммутаторе Qtech

Сообщение georgepapaskiri »

Добрый день. Нашел в utm5 раздел под названием "Правила Firewall", как я понимаю здесь можно задать триггер, то есть при выполнении определенного события, если выполняются указанные условия, то производится какое-то действие, точнее выполняется какая-либо команда, прописанная в строке "Правила Firewall". Для того чтобы выполнить смену скорости на самом Qtech, мне небходимо выполнить на нем несколько команд:
conf
policy-map P_INET
class C_PORT1
policy 30720 3072 conform-action transmit exceed-action drop

Подскажите пожалуйста как правильно написать эти команды в строке "Правила Firewall"?

Nik0n
Сообщения: 77
Зарегистрирован: Пн сен 14, 2009 13:53
Откуда: Екатеринбург
Контактная информация:

Re: Изменение скорости на коммутаторе Qtech

Сообщение Nik0n »

georgepapaskiri писал(а): Подскажите пожалуйста как правильно написать эти команды в строке "Правила Firewall"?
Пишете bash/perl/php/python/rubby/etc скрипт.
И настраивайте RFW (см. док) на вызов этого скрипта с нужными параметрами на нужные события, которые как раз и настраиваются в этом меню - Правила Firewall.

georgepapaskiri
Сообщения: 45
Зарегистрирован: Чт мар 16, 2017 12:42

Re: Изменение скорости на коммутаторе Qtech

Сообщение georgepapaskiri »

Nik0n писал(а):
georgepapaskiri писал(а): Подскажите пожалуйста как правильно написать эти команды в строке "Правила Firewall"?
Пишете bash/perl/php/python/rubby/etc скрипт.
И настраивайте RFW (см. док) на вызов этого скрипта с нужными параметрами на нужные события, которые как раз и настраиваются в этом меню - Правила Firewall.
а на C# можно написать скрипт? и есть примеры вызова скриптов? В документации только описываются значения событий и переменных, но примеров написания правил нету.

starchik
Сообщения: 461
Зарегистрирован: Сб ноя 22, 2008 22:07

Re: Изменение скорости на коммутаторе Qtech

Сообщение starchik »

georgepapaskiri писал(а):
Nik0n писал(а):
georgepapaskiri писал(а): Подскажите пожалуйста как правильно написать эти команды в строке "Правила Firewall"?
Пишете bash/perl/php/python/rubby/etc скрипт.
И настраивайте RFW (см. док) на вызов этого скрипта с нужными параметрами на нужные события, которые как раз и настраиваются в этом меню - Правила Firewall.
а на C# можно написать скрипт? и есть примеры вызова скриптов? В документации только описываются значения событий и переменных, но примеров написания правил нету.
да хоть на Паскале....

в конфиге rfw5.cfg,
### firewall_path
## Description: Path to the executable file that performs firewall management.
## Possible values: <name of an executable file>
## Required field

georgepapaskiri
Сообщения: 45
Зарегистрирован: Чт мар 16, 2017 12:42

Re: Изменение скорости на коммутаторе Qtech

Сообщение georgepapaskiri »

starchik писал(а):
georgepapaskiri писал(а):
Nik0n писал(а):
georgepapaskiri писал(а): Подскажите пожалуйста как правильно написать эти команды в строке "Правила Firewall"?
Пишете bash/perl/php/python/rubby/etc скрипт.
И настраивайте RFW (см. док) на вызов этого скрипта с нужными параметрами на нужные события, которые как раз и настраиваются в этом меню - Правила Firewall.
а на C# можно написать скрипт? и есть примеры вызова скриптов? В документации только описываются значения событий и переменных, но примеров написания правил нету.
да хоть на Паскале....

в конфиге rfw5.cfg,
### firewall_path
## Description: Path to the executable file that performs firewall management.
## Possible values: <name of an executable file>
## Required field
не могли бы вы еще подсказать в каком каталоге этот файл и какое разрешение должно быть у скрипта? а то в visual studio пытался найти подходящее, но что-то не получается.

georgepapaskiri
Сообщения: 45
Зарегистрирован: Чт мар 16, 2017 12:42

Сообщение georgepapaskiri »

Порылся в инете, нашел инфу. Сделал скрипт на питоне (script.py), код скрипта следующий:

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

import getpass
import sys
import telnetlib

HOST = '172.30.1.150'
#user = raw_input&#40;"Enter your remote account&#58; "&#41;
password = "admin"
user = "admin"
int_num = raw_input&#40;"Enter port num&#58; "&#41;

tn = telnetlib.Telnet&#40;HOST,23,1&#41;
tn.read_until&#40;"login&#58; ", 1&#41;
tn.write&#40;user + "\n"&#41;
if password&#58;
    tn.read_until&#40;"Password&#58; ", 1&#41;
    tn.write&#40;password + "\n"&#41;

tn.write&#40;'conf \n'&#41;
tn.write&#40;'int eth 1/'+int_num+ '\n'&#41;
tn.write&#40;'exit \n'&#41;
tn.write&#40;'exit \n'&#41;
tn.write&#40;'write \n'&#41;
#tn.read_until&#40;'',5&#41;
tn.write&#40;'y \n'&#41;
tn.write&#40;'exit \n'&#41;

data = '' 
while data.find&#40;'#'&#41; == -1&#58;
    data = tn.read_very_eager&#40;&#41;
print data
подскажите пожалуйста такой момент. Если я правильно понял, то чтобы биллинг запустил скрипт, то в поле "правила Firewall" надо прописать python script.py? Так? Если да то вопрос такой, как мне заставить биллинг передать в этот скрипт значения для переменных скажем host, int_num, speed? Что-то вроде python script.py host="значение переменной" или???

georgepapaskiri
Сообщения: 45
Зарегистрирован: Чт мар 16, 2017 12:42

Сообщение georgepapaskiri »

слегка изменил скрипт:

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

import getpass
import sys
import telnetlib


HOST = sys.argv&#91;1&#93;
port_num = sys.argv&#91;2&#93;
#user = raw_input&#40;"Enter your remote account&#58; "&#41;
password = "admin"
user = "admin"


tn = telnetlib.Telnet&#40;HOST,23,1&#41;
tn.read_until&#40;"login&#58; ", 1&#41;
tn.write&#40;user + "\n"&#41;
if password&#58;
    tn.read_until&#40;"Password&#58; ", 1&#41;
    tn.write&#40;password + "\n"&#41;

tn.write&#40;'conf \n'&#41;
tn.write&#40;'policy-map P_INET \n'&#41;
tn.write&#40;'class C_PORT'+port_num+'\n'&#41;
tn.write&#40;'policy 20480 2048 conform-action transmit exceed-action drop \n'&#41;
tn.write&#40;'exit \n'&#41;
tn.write&#40;'exit \n'&#41;
tn.write&#40;'exit \n'&#41;
tn.write&#40;'write \n'&#41;
#tn.read_until&#40;'',5&#41;
tn.write&#40;'y \n'&#41;
tn.write&#40;'exit \n'&#41;

data = '' 
while data.find&#40;'#'&#41; == -1&#58;
    data = tn.read_very_eager&#40;&#41;
print data
когда запускаю скрипт следующим образом: python script.py 172.30.1.150 5 скрипт отрабатывает как надо. Попробовал в правилах файерволл создать новое правило, скриншоты прикрепляю, не работает. В чем может быть дело?

https://drive.google.com/open?id=0B_A71 ... 204REt3ZlE

https://drive.google.com/open?id=0B_A71 ... kpHMEpZdEk

georgepapaskiri
Сообщения: 45
Зарегистрирован: Чт мар 16, 2017 12:42

Сообщение georgepapaskiri »

тут вообще бывают люди? если да, то подскажите пожалуйста в чем может быть дело? быть может у меня что с конфигурационным файлом не то? Вроде настроил я его как в доке описано:
rfw_name = local (также назван брэндмауер в биллинге)
core_host = 127.0.0.1
core_port = 12758
rfw_login = root (логин используемый при подключении к серверу по ssh)
rfw_password = ****** (пароль используемый при подключении к серверу по ssh)
firewall_type = local
firewall_path=/sbin/ipfw/ (здесь лежит скрипт, который я пытаюсь запустить)
sudo_path=/usr/local/bin/ex (этот параметр я не изменял)

помогите решить проблему, люди добрые.

Nik0n
Сообщения: 77
Зарегистрирован: Пн сен 14, 2009 13:53
Откуда: Екатеринбург
Контактная информация:

Сообщение Nik0n »

georgepapaskiri писал(а):..
rfw_login = root (логин используемый при подключении к серверу по ssh)
rfw_password = ****** (пароль используемый при подключении к серверу по ssh)

...
помогите решить проблему, люди добрые.
Вы вообще ВНИМАТЕЛЬНО читали документацию ?
Видимо нет, т.к. зачем-то стали менять не то что не нужно, а да же вредно!

georgepapaskiri
Сообщения: 45
Зарегистрирован: Чт мар 16, 2017 12:42

Сообщение georgepapaskiri »

Nik0n писал(а):
georgepapaskiri писал(а):..
rfw_login = root (логин используемый при подключении к серверу по ssh)
rfw_password = ****** (пароль используемый при подключении к серверу по ssh)

...
помогите решить проблему, люди добрые.
Вы вообще ВНИМАТЕЛЬНО читали документацию ?
Видимо нет, т.к. зачем-то стали менять не то что не нужно, а да же вредно!
вернул их на стандартные, rfw/rfw, такие были до того как я поменял. Не работает все равно. В доке говорится что это "Логин пользователя для доступа к ядру UTM5", а как узнать какой он? Может его кто менял...

georgepapaskiri
Сообщения: 45
Зарегистрирован: Чт мар 16, 2017 12:42

Сообщение georgepapaskiri »

Разобрался с проблемой. Если кому пригодится, то описываю что было сделано:

1) А файле /netup/utm5/rfw5.cfg прописал следующее:
rfw_name=local (в настройках FIREWALL в биллинге мой брандмауер назван также)
sudo_path=/usr/bin/python (полный путь к приложению, которое будет запускать мой скрипт. В моем случае это python, поскольку на нем написан мой скрипт)
firewall_path=/sbin/ipfw/script.py (полный путь к самому скрипту, который должен выполняться)

Далее в самом биллинге в правилах Firewall создал правило, где выбрал брандмауер local, указал событие включение интернет и в самих правилах указал 2 переменные - USW_IP и USW_PORT

код скрипта следующий:

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

import getpass
import sys
import telnetlib


HOST = sys.argv&#91;1&#93;
port_num = sys.argv&#91;2&#93;
#user = raw_input&#40;"Enter your remote account&#58; "&#41;
password = "admin"
user = "admin"


tn = telnetlib.Telnet&#40;HOST,23,1&#41;
tn.read_until&#40;"login&#58; ", 1&#41;
tn.write&#40;user + "\n"&#41;
if password&#58;
    tn.read_until&#40;"Password&#58; ", 1&#41;
    tn.write&#40;password + "\n"&#41;

tn.write&#40;'conf \n'&#41;
tn.write&#40;'policy-map P_INET \n'&#41;
tn.write&#40;'class C_PORT'+port_num+'\n'&#41;
tn.write&#40;'policy 20480 2048 conform-action transmit exceed-action drop \n'&#41;
tn.write&#40;'exit \n'&#41;
tn.write&#40;'exit \n'&#41;
tn.write&#40;'exit \n'&#41;
tn.write&#40;'write \n'&#41;
#tn.read_until&#40;'',5&#41;
tn.write&#40;'y \n'&#41;
tn.write&#40;'exit \n'&#41;

Ответить