А у свича похоже отсутствует данный функционал.
Я знаю, пока так и работает, но вот боязно, что ктото может пролезть и "сделать пару звонков в бразилию"
А у свича похоже отсутствует данный функционал.
Здравствуйте. к стати, я думаю по теме... НЕ подскажите ли как можно организовать привязку ip к маку сетевой?
Т.е. чтоб при хотя бы одном несовпадении (мак или ip не верны) пользователю либо блокировался доступ.. либо (в идеале) если от пользователя идёт запрос на 80 порт (по инету он хочет к примеру побродить), то он перенаправлялся на какой-нибудь другой адрес.
Хотя про перенаправление в одной из тем уже было...
Зарание спасибо!
----- СКРИПТ УДАЛЕН -----
ЕСТЬ РЕШЕНИЕ ПРОЩЕ И ЛУЧШЕ: http://wl500g.info/showpost.php?p=59435&postcount=19
Last edited by Mam(O)n; 26-07-2007 at 18:11.
Огромное Вам спасибо. Вечерком попробую. А не подскажите ли ещё, что нужно изменить, чтобы при запросе на 80 порт была переброс на 80 порт, но на ип, отличный от адреса роутера.
Если навскидку, то в том скрипте можно попробовать заменить
наCode:$IPT -t nat -A ${pref}REDIR -p tcp --dport 80 -j REDIRECT --to-port $tport
Code:$IPT -t nat -A ${pref}REDIR -p tcp --dport 80 -j DNAT --to-destination айпиадрес:порт
Одно плохо, встроеный в веб фильтр МАК настраивает так, что не только в инет не пускает остальных, но к самому роутеру и самбе на нем
А
iptables -I FORWARD -m mac --mac-source ! <мой мак> -j DROP
блокирует инет не только всем остальным, но и мне
и в обоих случаях можно поменять МАК
к стати, robocfg пишет, что и br0 и vlan1 помечает пакеты (tagged). Если я правильно понимаю, то помечает он их как раз номером порта? только где его можно поймать? это случаем не MARK в iptables?
Хм... Действительно, не прочитал сначала ответ Rambalac, запустил скрипт и начал радоваться жизни... А оказалось, что данный скрипт вообще "неправильных" пользователей не пускает ни к каким ресурсам роутера. Ни к самбе, ни к ftp, ни к web на том же порту 8080. Но тогда получается и смысла как бы особого нет в этом скрипте? По mac можно отсеять гораздо более простым способом - через web-интерфейс. Перевод гостя на порт 8080 при попытке ломится на 80-й конечно прикольно, но...
Позарез нужен способ допускать любого пользователя к ресурсам самого роутера, но в то же время в инет пускать только "проверенных товарищей"! Есть такая возможность?
Этот скрипт я писал для привязки ip к mac и о том чтоб был доступ к роутеру для других не задумывался. Да и проще можно было сделать, просто какой-то мануал меня ввел в заблуждение, что мак и ip в одном правиле нельзя указывать.
Я думаю что так должно сработать:
Code:iptables -N MAC_FILTER iptables -A MAC_FILTER -s 000.000.000.000 -m mac --mac-source 00:00:00:00:00:00 -j RETURN iptables -A MAC_FILTER -s 111.111.111.111 -m mac --mac-source 11:11:11:11:11:11 -j RETURN ..... iptables -A MAC_FILTER -s nnn.nnn.nnn.nnn -m mac --mac-source nn:nn:nn:nn:nn:nn -j RETURN iptables -A MAC_FILTER -j DROP iptables -I FORWARD -o ! br0 -d ! $(nvram get lan_ipaddr) -j MAC_FILTER
Mam(O)n, спасибо огромное! Все замечательно работает!
Прошу совета.
Мне нужно, чтобы все 5 портов работали как свич (т.е. входили в LAN), и в то же время порт WAN поднимал PPPoE-соединение и раздавался инет.
Могу пояснить зачем. Локальная сеть с одним адресным пространством у меня находится и "внутри" и "снаружи" (т.е. со стороны порта WAN, которым я и подключен к сети). Т.е. чтобы мне без NAT работать с локалкой, порт WAN должен входить в LAN.
Что делаю:
robocfg vlan 1 ports "0 5t" vlan 0 ports "0 1 2 3 4 5t"
Что получаю. Если PPPoE уже установлен, то все работает замечательно. И локалка прекрасно видна, и инет есть.
Если же PPPoE не установлен (ну или разорвался), то установить его уже не удается.
В логах следующее:
Jul 24 16:43:08 kernel: VLAN (vlan1): Underlying device (eth0) has same MAC, not checking promiscious mode.
...skiped....
Jul 24 16:43:09 pppd[592]: Plugin rp-pppoe.so loaded.
Jul 24 16:43:09 pppd[592]: RP-PPPoE plugin version 3.3 compiled against pppd 2.4.2
Jul 24 16:43:09 pppd[593]: pppd 2.4.2 started by root, uid 0
Jul 24 16:43:44 pppd[593]: Timeout waiting for PADO packets
Jul 24 16:43:44 pppd[593]: Unable to complete PPPoE Discovery
Можно ли как-нибудь выйти из этой ситуации?
Похоже, что нельзя дублировать один порт на несколько vlan.
Интересно - почему?
Я же говорю - единственный затык с проблеммой установления ppp-соединения. После того, как оно установлено, объединяю порты и все прекрасно работает. Значит в принципе это возможно!
Я даже скриптик написал, который переконфигурирует vlans в зависимости от наличия ppp-соединения. И прописал его в post-firewall и (на всякий случай) в cron на каждые 5 минут. В результате у меня у меня и инет есть, и все 5 портов как обычный свич работают.
Но это все очень некучеряво, поскольку после разрыва ppp и до момента его установления у меня "падает" локалка. В результате действия скрипта конечно.
Так что это должно работать, потому как работает. Осталось решить только проблему соединения.
И вообще - почему нельзя вешать на один порт несколько vlan? Роутер ведь (про 500gp речь идет) поддерживает до 16 vlan! А портов у нас всего 5 Что мешает нам повесить на один порт несколько vlan? Конечно применительно к моей ситуации случай особый - один порт входит в vlans с очень уж разными свойствами. Но тем не менее...
Ведь на ББ ничто не мешает нам "повесить" на одну сетевую плату хоть с десяток IP из разных подсетей каждый со своей маршрутизацией и устанавливать одновременно с пяток PPPoE? И никакого криминала в этом нет.
Так что уверен - какое-то решение есть. Оно не может не есть.
Очень конечно хочется услышать мнение нашего гуру Oleg.
Last edited by Reyter; 25-07-2007 at 07:11.
А добавить в этот скрипт редирект на порт 8080 нельзя? Очень уж удобная штука...
Попробуй, может так сработает
Code:iptables -t nat -N MAC_FILTER iptables -t nat -A MAC_FILTER -s 000.000.000.000 -m mac --mac-source 00:00:00:00:00:00 -j RETURN iptables -t nat -A MAC_FILTER -s 111.111.111.111 -m mac --mac-source 11:11:11:11:11:11 -j RETURN ..... iptables -t nat -A MAC_FILTER -s nnn.nnn.nnn.nnn -m mac --mac-source nn:nn:nn:nn:nn:nn -j RETURN # Редирект на порт 8080 роутера iptables -t nat -A MAC_FILTER -p tcp --dport 80 -j REDIRECT --to-port 8080 iptables -t nat -A MAC_FILTER -j DROP iptables -t nat -I PREROUTING -d ! $(nvram get lan_ipaddr) -j MAC_FILTER
Last edited by Mam(O)n; 26-07-2007 at 18:16.