axeopa 26 Опубликовано: 2013-10-26 17:28:33 Share Опубликовано: 2013-10-26 17:28:33 Всім здорова! Роблю на диплом простенький білінг. Кароч то ніфіга не білінг, а тупо веб інтерфейс, сторінки на .cgi з perl та база mysql. Заповнюєш дані користувача, все пишеться в бд, в іншу бд зберігається команда для мк, закріплення IP+MAC, щось типу: /ip arp add disabled=no address=192.168.0.200 mac-address=00:00:23:32:23:47 interface=ether5 comment=qwe на інті ether5 мк звичайно arp-reply-only потім на лінусі через кронтаб дьоргається perl скріпт, який конектиться по телнеті на мк, і виконує нові команди, старі переносить в іншу таблицю, тіпо як історію. далі я думав що зможу банально викл і вкл доступ бонентам командами такого плану /ip arp set disabled=no або /ip arp set disabled=yes вказуючи дальше дані IP та MAC, але виявлюєть що обовязково потрібно мати number [axeopa2@rb_951_2n] > ip arp set numbers: а він завжди дианмічно міняться Вопшім мені треба зараз з сервака на лінуксі через скрипт дістати вивід команди /ip arp print where address=192.168.0.200 && mac-address=00:00:23:32:23:45 дальше я собі той number якось відділю, і поньому буду рубати юзерів. якшо когось буде цікавити мій прожект, після захисту думаю зможу поділитись Ссылка на сообщение Поделиться на других сайтах
ttttt 195 Опубліковано: 2013-10-26 17:36:24 Share Опубліковано: 2013-10-26 17:36:24 Нужен микротик скрипт или перл скрипт? Ссылка на сообщение Поделиться на других сайтах
axeopa 26 Опубліковано: 2013-10-26 17:44:12 Автор Share Опубліковано: 2013-10-26 17:44:12 пер, я вже зробив, зробив масив, присвоїв йому значення команди, виглядає на perl так, але то не весь код: $mikrotik_ip="192.168.0.1"; $t = new Net::Telnet ( Timeout => 13, Dump_log => "./mikrotik.log"); foreach $mk_ip ($mikrotik_ip){ $t->open($mk_ip); $t->login("billadmin", "billadmin"); @comm=$t->cmd("/ip arp print where address=192.168.0.200 && mac-address=00:00:23:32:23:45"); $t->close; print @comm; вивід такий: [root@www home]# perl -w script2.pl 1 /ip arp add disabled=no address=192.168.0.200 mac-address=00:00:23:32:23:47 interface=ether5 comment=qwe Flags: X - disabled, I - invalid, H - DHCP, D - dynamic, P - published # ADDRESS MAC-ADDRESS INTERFACE 0 ;;; jhg 192.168.0.200 00:00:23:32:23:45 ether5 дальше нада придумати як дьорути потрібне значення Ссылка на сообщение Поделиться на других сайтах
ttttt 195 Опубліковано: 2013-10-26 17:50:03 Share Опубліковано: 2013-10-26 17:50:03 Не придумаешь - говори. Ссылка на сообщение Поделиться на других сайтах
axeopa 26 Опубліковано: 2013-10-26 18:07:14 Автор Share Опубліковано: 2013-10-26 18:07:14 ок, ти спец по perl ? Ссылка на сообщение Поделиться на других сайтах
mr.Scamp 41 Опубліковано: 2013-10-26 18:39:19 Share Опубліковано: 2013-10-26 18:39:19 Всім здорова! Роблю на диплом простенький білінг. Кароч то ніфіга не білінг, а тупо веб інтерфейс, сторінки на .cgi з perl та база mysql. Заповнюєш дані користувача, все пишеться в бд, в іншу бд зберігається команда для мк, закріплення IP+MAC, щось типу: /ip arp add disabled=no address=192.168.0.200 mac-address=00:00:23:32:23:47 interface=ether5 comment=qwe на інті ether5 мк звичайно arp-reply-only потім на лінусі через кронтаб дьоргається perl скріпт, який конектиться по телнеті на мк, і виконує нові команди, старі переносить в іншу таблицю, тіпо як історію. далі я думав що зможу банально викл і вкл доступ бонентам командами такого плану /ip arp set disabled=no або /ip arp set disabled=yes вказуючи дальше дані IP та MAC, але виявлюєть що обовязково потрібно мати number [axeopa2@rb_951_2n] > ip arp set numbers: а він завжди дианмічно міняться /ip arp get [find address=192.168.1.2] Ссылка на сообщение Поделиться на других сайтах
UserSide 51 Опубліковано: 2013-10-27 11:06:34 Share Опубліковано: 2013-10-27 11:06:34 Для старых версий следует использовать полный синтаксис: /ip arp get [/ip arp find address=192.168.1.2] Ссылка на сообщение Поделиться на других сайтах
axeopa 26 Опубліковано: 2013-10-27 11:33:50 Автор Share Опубліковано: 2013-10-27 11:33:50 (відредаговано) очь частина /ip arp print 7 ;;; jhg 192.168.0.200 00:00:23:32:23:45 ether5 де 7 то number вводжу в консольці :put [/ip arp get [find address="192.168.0.201"]] то отримую .id=*69;DHCP=false;address=192.168.0.201;comment=kjh;disabled=false;dynamic=false;interface=ether5;invalid=false ;mac-address=00:00:23:32:23:47;published=fals а коли вводжу :put [/ip arp find address="192.168.0.201"] то отримую *69 ************************************************** Коли вводжу потім в консольці наприклад ip arp set numbers=*69 disabled=yes воно його виключає. Я на роботі обслуговую ССR, а дома 951 купив для диплому, там 6.5, тіки починаю знайомитись з скриптами на мк. Ті значення ID вони динамічні ? тобто в процесі вони міняються чи ні ? Відредаговано 2013-10-27 11:36:26 axeopa Ссылка на сообщение Поделиться на других сайтах
jcomm 6 Опубліковано: 2013-10-27 11:46:58 Share Опубліковано: 2013-10-27 11:46:58 (відредаговано) далі я думав що зможу банально викл і вкл доступ бонентам командами такого плану /ip arp set disabled=no або /ip arp set disabled=yes вказуючи дальше дані IP та MAC, А, что фаервол использовать для таких задач уже не модно? Ті значення ID вони динамічні ? тобто в процесі вони міняються чи ні ? Да, они динамически добавляются при добавлении записи.. Відредаговано 2013-10-27 11:47:56 jcomm Ссылка на сообщение Поделиться на других сайтах
axeopa 26 Опубліковано: 2013-10-27 12:03:46 Автор Share Опубліковано: 2013-10-27 12:03:46 (відредаговано) А, что фаервол использовать для таких задач уже не модно? фаєрвол, це здорово, але там потрібно буде робити два види команд, спочатку на add, а потім на set, а якщо буде на set, то палюбасу треба буде знати той number, бо якщо робити завжди на add, то коли юзера через веб off i on то додаються 2 нові правила, які посуті нічо нефільтрують а тупо засмічцють ланцюжок forward у фаєрволі. Цитата Ті значення ID вони динамічні ? тобто в процесі вони міняються чи ні ? Да, они динамически добавляются при добавлении записи.. це що додаються то круто, я ж їх зможу з му дьорнути і закинути в базу, потім для формування команд. Мене цікавить чи ці вже що не не міняються. приклад, якщо є id від 1 до 10, я одного юзера видалив, додав нового, чи в нього id буде 11, чи якись на проміжку від 1 до 10, бо власне з полем number прийме значення якесь на проміжку від 1 до 10. Відредаговано 2013-10-27 12:09:27 axeopa Ссылка на сообщение Поделиться на других сайтах
jcomm 6 Опубліковано: 2013-10-27 13:06:33 Share Опубліковано: 2013-10-27 13:06:33 (відредаговано) приклад, якщо є id від 1 до 10, я одного юзера видалив, додав нового, чи в нього id буде 11, чи якись на проміжку від 1 до 10, Этого я не знаю и не морочу голову о хранении id в БД. Концепция работы у меня такова такова: 1. Берём с микротика id записи по какому-либо уникальному параметру (например, логин пользователя) 2а. Если записи нет (в результате пусто) - она должна быть создана (add) 2b. Если запись есть (в результате, например, *86) - надо обновить запись (set) [-] - Одна лишняя команда, по сравнению с вашей реализацией, [+] - Нет головной боли при хранении актуальных id в БД Відредаговано 2013-10-27 13:07:29 jcomm Ссылка на сообщение Поделиться на других сайтах
jcomm 6 Опубліковано: 2013-10-28 17:59:55 Share Опубліковано: 2013-10-28 17:59:55 (відредаговано) фаєрвол, це здорово, але там потрібно буде робити два види команд, спочатку на add, а потім на set, а якщо буде на set, то палюбасу треба буде знати той number, бо якщо робити завжди на add, то коли юзера через веб off i on то додаються 2 нові правила, які посуті нічо нефільтрують а тупо засмічцють ланцюжок forward у фаєрволі Эмм.. Вы немного заблуждаетесь. Есть такая вещь в MikroTik, Address List зовётся. К примеру, его можно использовать так: /ip firewall filter add chain=forward action=accept in-interface="LAN" out-interface="WAN" src-address-list="ALLOW" /ip firewall filter add chain=forward action=accept in-interface="WAN" out-interface="LAN" dst-address-list="ALLOW" Это добавляется через консоль - правила ограничения доступа. Обратите внимание на параметры src-address-list и dst-address-list. А потом для разрешения доступа вы создаёте запись в адрес листе, а для отключения делаете set disabled=yes или удаляете ее вообще: /ip firewall address-list add address=192.168.1.2 list="ALLOW" disabled=no Это все команды через консоль для примера, а на API, я думаю, что вы сможете сами переделать... Відредаговано 2013-10-28 18:00:15 jcomm Ссылка на сообщение Поделиться на других сайтах
axeopa 26 Опубліковано: 2013-11-03 10:22:04 Автор Share Опубліковано: 2013-11-03 10:22:04 (відредаговано) src-address-list="ALLOW" то я знаю за address-list, схема така що створюється адрес ліст певних групи IP, і вже ним маніпулюється у FW. Мені ж потрібно було, щоб кожною IP можна було окремо маніпулювати. Я це зробив, мені получилось, зараз воно працює так як я хотів. Принцип такий, на *.cgi сторінці запонюєш форму з макою юзвєра, на МК виконуються 2 команди: /ip arp add disabled=no address=192.168.5.101 mac-address=00:00:23:32:23:47 interface=ether5 comment=login /ip dhcp-server lease add server=DHCP_lan5 address=192.168.5.101 mac-address=00:00:23:32:23:47 comment=login все юзверь має доступ в нет. Якщо треба викл/вкл заходиш на іншу *.cgiсторінку, там жмеш ena | disa, формується і додається в crond команда яка його буде ena | disa : /ip arp set disabled=yes address=192.168.5.101 mac-address=00:00:23:32:23:47 comment=login numbers=*b вот, і воно собственно працює, і в мускл пише в окрему табличку всі команди які на мк були відправленні. Згідний що рішення таке собі, на диплом піде на ура. І впринципі для маленької мережі на абонентів так 50-100 його можна використовувати, якщо доробити щоб автоматом виключались користувачі. Ще я туда поставив nfsen з плагіном surfmap. І зробив щоб через веб відправлялись смс на певний номер, через 3g модем huawei, працює то банально просто, через демон sendsms. Відредаговано 2013-11-03 10:50:41 axeopa Ссылка на сообщение Поделиться на других сайтах
jcomm 6 Опубліковано: 2013-11-03 19:02:27 Share Опубліковано: 2013-11-03 19:02:27 (відредаговано) то я знаю за address-list, схема така що створюється адрес ліст певних групи IP, і вже ним маніпулюється у FW. Мені ж потрібно було, щоб кожною IP можна було окремо маніпулювати. Я це зробив, мені получилось, зараз воно працює так як я хотів. Вы ошибаетесь! Несмотря на то, что в адрес листе несколько айпишек, то правила фаервола исполняются отдельно для каждой! А управлять доступом к интернету с помощью ARP - это как использовать вилку, чтобы резать хлеб, вроде можно, но... Відредаговано 2013-11-03 19:02:33 jcomm Ссылка на сообщение Поделиться на других сайтах
axeopa 26 Опубліковано: 2013-11-04 14:19:04 Автор Share Опубліковано: 2013-11-04 14:19:04 Ну чому Ви так кажете, як на мене то класно в тому плані що по мережі небігає всяке сміття, а авторизація відбувається на канальному рівні OSI Ссылка на сообщение Поделиться на других сайтах
nightfly 1 237 Опубліковано: 2013-11-04 16:37:39 Share Опубліковано: 2013-11-04 16:37:39 Ну чому Ви так кажете вочевидь, тому, що знає про що каже. як на мене то класно в тому плані що по мережі небігає всяке сміття, а авторизація відбувається на канальному рівні OSI не бачу жодного взаємозв'язку грамотної сегментації мережі та використання завідомо наркоманських рішень. Ссылка на сообщение Поделиться на других сайтах
axeopa 26 Опубліковано: 2013-11-04 22:17:15 Автор Share Опубліковано: 2013-11-04 22:17:15 деякий народ тут ненадто доброзичливий Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас