forum.bitel.ru http://forum.bitel.ru/ |
|
ssh сессия в синхронных событиях радиуса http://forum.bitel.ru/viewtopic.php?f=5&t=3806 |
Страница 1 из 1 |
Автор: | dmitry_P [ 05 апр 2010, 15:43 ] |
Заголовок сообщения: | ssh сессия в синхронных событиях радиуса |
Уважаемые, подскажите, можно ли поднимать сессию ссх на шлюз из синхронных событий, типа модуль Dial-UP радиус-аутентификация? Это нужно, например для разблокировки внешнего трафика на промежуточном шлюзе, который блокирует шумовой трафик из мира на неактивные адреса. Сейчас выдается ошибка, типа знать не знаю ни про какую сессию, а на асинхронном событии скрипт отрабатывает штатно |
Автор: | stark [ 05 апр 2010, 19:21 ] |
Заголовок сообщения: | Re: ssh сессия в синхронных событиях радиуса |
теоретически, можно |
Автор: | dmitry_P [ 06 апр 2010, 11:07 ] |
Заголовок сообщения: | Re: ssh сессия в синхронных событиях радиуса |
А можно побольше теории, а лучше практики |
Автор: | stark [ 07 апр 2010, 15:13 ] |
Заголовок сообщения: | Re: ssh сессия в синхронных событиях радиуса |
dmitry_P писал(а): А можно побольше теории, а лучше практики вопрос был - можно; ответ - да . Что вы конретно хотите, что пытались делать и что получили |
Автор: | dmitry_P [ 08 апр 2010, 09:19 ] |
Заголовок сообщения: | Re: ssh сессия в синхронных событиях радиуса |
Не совсем понял к чему такие подробности, но извольте... Стандартный скрипт для передачи команд по ссх на шлюз микротик по событию (в данном случае аутентификация радиус): import bitel.billing.server.radius.*; import bitel.billing.common.*; import bitel.billing.server.util.ssh.*; adrl="deny_parazit_all"; response = event.getResponse(); sip=IPUtils.convertIpToString(response.getIntAttribute( 8 )); login = "xxxx"; timeout = 0 ; pswd = "yyyy"; String host = "xxx.xxx.xxx.xxx"; port = 22; try { mysession = new SSHSessionExec( host, port, login, pswd ); mysession.setTimeout( timeout ); address_list = mysession.command( "ip firewall address-list print without-paging where list=" + adrl ); //это строка 22 if (address_list.indexOf(sip+" ")<0){//probel dlya tochnogo poiska str_find = "/ip firewall address-list find address=\"" + sip + "\" list=" + adrl; cmd_ssh = ":if ([:len [" + str_find + "]] > 0) do={/ip firewall address-list remove [" + str_find + "]}"; print(cmd_ssh); result = mysession.command( cmd_ssh ); } } catch( Exception e ) { throw new RuntimeException( e ); } finally { } Получаем следующее: EXCEPTIONS: Sourced file: Function [id:13; title:Unblock_noise] : Method Invocation mysession.command Sourced file: Function [id:13; title:Unblock_noise] : Method Invocation mysession.command : at Line: 22 : in file: Function [id:13; title:Unblock_noise] : mysession .command ( "ip firewall address-list print without-paging where list=" + adrl ) Target exception: java.lang.NoClassDefFoundError: com/jcraft/jsch/Session at bsh.BSHMethodInvocation.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHAssignment.eval(Unknown Source) at bsh.BSHBlock.evalBlock(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BSHTryStatement.eval(Unknown Source) at bsh.Interpreter.eval(Unknown Source) at ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance.eval(ScriptInstance.java:310) at bitel.billing.server.script.bean.ScriptMachine$SimpleScriptRunner.runScript(ScriptMachine.java:69) at bitel.billing.server.script.bean.ScriptMachine.runScriptImpl(ScriptMachine.java:189) at bitel.billing.server.script.bean.ScriptMachine.runScript(ScriptMachine.java:128) at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:227) at bitel.billing.server.processor.DefaultProcessor.standartAuth(DefaultProcessor.java:207) at bitel.billing.server.processor.dialup.DialUpProcessor.authenticationProcess(DialUpProcessor.java:130) at bitel.billing.server.radius.RadiusRequestThread.processRequest(RadiusRequestThread.java:180) at bitel.billing.server.radius.RadiusRequestThread.run(RadiusRequestThread.java:79) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) На событие, допустим Приход платежа, при исправлении метода получения IP, скрипт отрабатывает нормально |
Автор: | stark [ 09 апр 2010, 13:01 ] |
Заголовок сообщения: | Re: ssh сессия в синхронных событиях радиуса |
dmitry_P писал(а): Не совсем понял к чему такие подробности, но извольте... Если вы хотиет чтобы вам помогали, то нужна информация . телепатически пока не умеем. dmitry_P писал(а): Стандартный скрипт для передачи команд по ссх на шлюз микротик по событию (в данном случае аутентификация радиус): Target exception: java.lang.NoClassDefFoundError: com/jcraft/jsch/Session положите библиотеку jsch.jar из сервера в радиус |
Автор: | snark [ 09 апр 2010, 19:56 ] |
Заголовок сообщения: | Re: ssh сессия в синхронных событиях радиуса |
что нибудь планируется сделать с тем что радиус не видит не свои библиотеки? в первую очередь интересует npay, но ipn, получается (telnet/ssh это ipn?), тоже бы не помешал |
Автор: | dmitry_P [ 10 апр 2010, 09:33 ] |
Заголовок сообщения: | Re: ssh сессия в синхронных событиях радиуса |
Заработало, спасибо. |
Автор: | stark [ 12 апр 2010, 11:33 ] |
Заголовок сообщения: | Re: ssh сессия в синхронных событиях радиуса |
snark писал(а): [offtop]что нибудь планируется сделать с тем что радиус не видит не свои библиотеки? насчте этого не в курсе , пока вроде нет snark писал(а): в первую очередь интересует npay, но ipn, получается (telnet/ssh это ipn?), тоже бы не помешал telnet/ssh - это ядро сервера (server.jar) + библиотеки работы с этими протоколами. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |