Страница 1 из 1

Веб морда для роутера

Добавлено: 2010-12-03 22:21:14
xaker1
Нужно поднять роутер на FreeBSD. Именно на FreeBSD, т.е. готовые ОС (pfsense etc) не подходят.
Нужно:
1) Возможность объединять компьютеры в группы, и блокировать доступ в интернет для определенной группы (нужно собственно блокировать\открывать доступ в интернет 10 машин, остальные должны всегда иметь доступ в интернет) и для определенных машин.
2) Возможность прописывать маршруты.
3) Возможность менять логин\пароль доступа в интернет (PPPoE, L2PT etc).
4) Возможность настроить проброс портов.

Обязательный пункт 1. Остальные желательны.

Подскажите, может есть готовые решения.

Re: Веб морда для роутера

Добавлено: 2010-12-03 22:34:45
Termitnik
Неясно, что автор подразумевает под "готовым решением"? ipfw - готовое решение? )) Или всё вышеперечисленное вы хотите делать через веб?

Re: Веб морда для роутера

Добавлено: 2010-12-03 22:37:12
xaker1
Именно нужно через веб.
ipfw с удовольствием, но увы, тот, кто будет блокировать\разблокировать доступ к интернету с linux\bsd не работал. И консоль для него будет адом)

Re: Веб морда для роутера

Добавлено: 2010-12-03 22:45:39
FreeBSP
набросать пару cgi скриптов с sudo ipfw и хранить зверей в мусе
нечто подобное сейчас делаю, до января планируется закончить

Re: Веб морда для роутера

Добавлено: 2010-12-03 22:55:44
xaker1
Надеюсь сообщите о релизе :)

Re: Веб морда для роутера

Добавлено: 2010-12-03 22:57:38
FreeBSP
пинай меня время от времени, числа так после 15-го
и потом, делается лишь похожее, но не то же самое

Re: Веб морда для роутера

Добавлено: 2010-12-04 0:00:30
Alex Keda
я делал морду к ipfw
примитивную, строк 100 на php заняло
правила в базу, грузить скриптом - веб интерфейс при сменах оставляет чек-файл в /tmp
если файл есть - правила перегружаем и всё.

Re: Веб морда для роутера

Добавлено: 2010-12-04 0:32:35
FreeBSP
ну мне по надо несколько другое, не настолько простое и с возможностями пошире
хочется скрутить вместе netams, radius, ipfw, mpd и нарисовать морду к этому делу
вобщем такой примитивный недобиллинг нарисовать =)

Re: Веб морда для роутера

Добавлено: 2010-12-04 16:20:14
Sun
Совсем примитивным не назовешь ) Делал такое на работе, ток с функционалом поменьше. Пару пхп скриптов, несколько проверок на то что пытаются скормить обработчику, и вызов внешней программы через функцию system(), + пару фенек для логирования того кто что когда и зачем делал. Функционал был следующий: добавлять/удалять правила ipfw, вносить изменения в блэк лист сквида, отображение статистики по пользователю(аля сарг). Жаль дать не могу так как, летом сервер ставил новый старый потом снес под другие задачи, при желании делается за 1-2 дня при условие что с пхп на "вы".

Re: Веб морда для роутера

Добавлено: 2010-12-04 16:24:41
xaker1
Собственно, собирался написать на php узкоспециализированное ПО для нужной задачи, если готовых решений не найду. Посмотрим что получится у FreeBSP. Возможно и напишу.

Основная задача - возможность закрыть\открыть доступ к интернету для 10 машин нажатием на одну кнопку.

Re: Веб морда для роутера

Добавлено: 2010-12-04 17:09:06
FreeBSP
сходу:

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

<?php
$RULENUM=10500; //  первое из правил блокировки

function inc($a) {
  return $a + 1;
}

if (isset($_GET['change']) {
  ob_start();
  exec("/usr/local/sbin/sudo /sbin/ipfw show $RULENUM", $out, $ret);
  if ($ret == 69) { // rule not exist
    exec("/usr/local/sbin/sudo /sbin/ipfw add $RULENUM deny ip from any to table\(42\)", $out, $ret);
    exec("/usr/local/sbin/sudo /sbin/ipfw add " . inc($RULENUM) . " deny ip from table\(42\) to any", $out, $ret);
  } else {
    exec("/usr/local/sbin/sudo /sbin/ipfw delete $RULENUM", $out, $ret);
    exec("/usr/local/sbin/sudo /sbin/ipfw delete " . inc($RULENUM), $out, $ret);
  }
  header('Location: ' . $_SERVER['PHP_SELF']);
  ob_end_clean();
} else {
  echo '<form action="' . $_SERVER['PHP_SELF'] . '?change" method="get"><input type="submit" value="Open/Close"></form>';
}
?>
тока надо разрешить в sudoers разрешить ipfw без пароля для пользователя www

PS это, конечно, шутка, но ТЗ удовлетворяет =)
xaker1 писал(а):Основная задача - возможность закрыть\открыть доступ к интернету для 10 машин нажатием на одну кнопку.

Re: Веб морда для роутера

Добавлено: 2010-12-04 17:13:06
xaker1
Подскажите, на каком порту работает natd, что бы ограничить доступ только в интернет, оставив доступ на pc-роутер с заблокированных машин.
p.s. Ну почему же шутка. На первый взгляд код полностью рабочий, да и на начальных порах вполне может подойти.

Re: Веб морда для роутера

Добавлено: 2010-12-04 17:19:21
FreeBSP
не помню.. 6886 что ли... смотри сам
grep natd /etc/defaults/rc.conf

шутка - потому что нормальные решения не пишутся на форуме в пол-глаза =) оно наверняка конечно рабочее, может только по мелочи что то есть.. но ни авторизации, ни учета.. развивать конечно можно, но в данном варианте это скорее "по приколу" или "шаткая времянка" чем боевое решение

да и натд может не пригодиться, главное - куда в рулсет будут вписываться правила