Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Andrew Grekhov
Зарегистрирован: 29.06.2005 Сообщения: 200
|
Добавлено: Пн Июн 19 2006 15:49 Заголовок сообщения: DHCP, iptables |
|
|
Доброго времени суток!
Заранее прошу прощения за ламерский вопрос.
Дано:
Сеть 192.168.2.0/24.
Есть комп с двумя интерфейсами eth0(к сетки предприятия), eth1 (к отделу).
Все клиены linux 2.4 (и пара 2.2).
Интерфейсы соеденены через бридж.
Проблема 1:
На компе поднят DHCP.
После добавления правила:
Код: |
iptables -A INPUT -d 255.255.255.255 -j DROP
iptables -A FORWARD -d 255.255.255.255 -j DROP
|
клиенты всё равно получают адреса,
пока не опустишь DHCP-сервер.
Почему?
Надо для ограничения цепочки FORWARD, чтобы DHCP использовался только нашим отделом.
Адреса разбросаны по всему сегменту.
Или достаточно
прописать выдачу IP'адреса по МАКу, и запретить "range dynamic-bootp".
Мой DHCP "светить" наружу не будет?
Вопрос 2:
Правда это или нет.
Можно ли с помошью DHCP задать дополнительный маршрут ещё на одну сетку? Например на 10.0.0.0/8. |
|
Вернуться к началу |
|
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Пн Июн 19 2006 16:54 Заголовок сообщения: |
|
|
1. Вот тут пример "открывания" DHCP, тебе надо закрыть. Думаю догадаешься как.
2. На opennet.ru в заголовке новостей есть ответ на твой вопрос. |
|
Вернуться к началу |
|
|
Andrew Grekhov
Зарегистрирован: 29.06.2005 Сообщения: 200
|
Добавлено: Вт Июн 20 2006 10:10 Заголовок сообщения: |
|
|
and3008 писал(а): | 1. Вот тут пример "открывания" DHCP, тебе надо закрыть. Думаю догадаешься как.
|
Прости с ангийским у меня хреновато.
http://www.onlamp.com/lpt/a/3689:
Цитата: |
We have noticed that on some systems where we are using a packet filter, if you set up a firewall that blocks UDP port 67 and 68 entirely, packets sent through the packet filter will not be blocked. However, unicast packets will be blocked. This can result in strange behavior, particularly on DHCP clients, where the initial packet exchange is broadcast, but renewals are unicast - the client will appear to be unable to renew until it starts broadcasting its renewals, and then suddenly it'll work. The fix is to fix the firewall rules as described above.
|
Я писал команду и iptables.
Даже если указать потрты(-sport и -dport)
счётчик в привиле меняется,но на результат
(выдачу IP'адреса) не влияет.
and3008 писал(а): |
2. На opennet.ru в заголовке новостей есть ответ на твой вопрос. |
Ты про
http://www.opennet.ru/opennews/art.shtml?num=2463
?
Не нашёл конкретного примера, там просто
выдаётся каждой подсетке свой ипшник.
Или надо просто в конфиге указать выдачу
по маку двух адресов из двух сеток?
Сегодня вечером попробую. |
|
Вернуться к началу |
|
|
C37
Зарегистрирован: 09.03.2005 Сообщения: 311
|
Добавлено: Вт Июн 20 2006 12:27 Заголовок сообщения: Re: DHCP, iptables |
|
|
Andrew Grekhov писал(а): | Сеть 192.168.2.0/24.
Есть комп с двумя интерфейсами eth0(к сетки предприятия), eth1 (к отделу).
Интерфейсы соеденены через бридж.
На компе поднят DHCP. |
Если сервер dhcp наботает на интерфейсе моста, то, как я себе это вижу, FORWARD тут никак не поможет, поскольку нет пересылки пакетов между интерфейсами, а есть рассылка с двух интерфейсов одновременно.
Если netfilter поддерживает мост, то можно попробвать запретить вход/выход пакетов dhcp на "внешнем" (eth0) интерфейсе. |
|
Вернуться к началу |
|
|
Andrew Grekhov
Зарегистрирован: 29.06.2005 Сообщения: 200
|
Добавлено: Вт Июн 20 2006 13:41 Заголовок сообщения: |
|
|
2 C37
Понимаешь, что выяснилось
iptables eth0 и eth1 вообще не видит, только br0.
Но при создании правил:
[code]
iptables -A INPUT -d 224.0.0.0/3 -j DROP
iptables -A FORWARD -d 224.0.0.0/3 -j DROP
[/code]
ethereal говорит что пакеты с eth0 на eth1 не пролазят.
А ebtables использовать неохота: надо будет все маки нашей подсетки заводить.
(Скорее удасться админа на рутинг раскрутить.Но увы нужен части компов бридж).
Вопрос такой: если приходит пакет на DHCP сервер, и на нём не находится соответсвия его маку, то что делает сервак шлёт какое нибудь ICMP сообщение или молчит?
Надо второе.
Как я сказал уже, закрыть через iptables почему-то не смог. |
|
Вернуться к началу |
|
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Вт Июн 20 2006 13:45 Заголовок сообщения: |
|
|
Ага. У тебя стоит мост. Как фильтровать пакеты у моста - х.з.
По поводу статики через DHCP читать тут:
http://www.opennet.ru/opennews/art.shtml?num=7744
Патч для FreeBSD, на приведенные ссылки и коментарии могут навести на правильное решение.
Готового решения пока нету. |
|
Вернуться к началу |
|
|
C37
Зарегистрирован: 09.03.2005 Сообщения: 311
|
Добавлено: Вт Июн 20 2006 17:32 Заголовок сообщения: |
|
|
1. Linux умеет фильтровать пакеты, проходящие через мост. Надо только включить поддержку этого при компиляции ядра.
2. Если мост и сервер dhcp -- один и тот же компьютер, то фильтрация dhcp внутри него (между eth0 и eth1) -- бред. Надо запрещать прием/рассылку пакетов dhcp на одном из интерфейсов (см. пункт 1).
P.S. Дойдут руки, проверю, сможет ли dhcpd работать на только одном из интерфейсов моста. |
|
Вернуться к началу |
|
|
Andrew Grekhov
Зарегистрирован: 29.06.2005 Сообщения: 200
|
Добавлено: Ср Июн 21 2006 15:55 Заголовок сообщения: |
|
|
Доброго времени суток!
Прошу прощения за то что морочил ВАМ головы.
Итак.
1 Вопрос.
Оказалось что iptables почти прекрасно справляется со своей задачей.
Если запретить FORWARD, то клиент использует DHCP-server что стоит на firewalle(брижде).
Если разрешить, то отвечают оба, притом, что интересно, клиент почему то выбирает тот, что стоит после
моста.
А iptables может запретить только на br0.
eth0 eth1 не видит т.к. это вотчина ebtables.
Ещё интересный момент вылез:
если добавить правило:
Код: |
ebtables -A INPUT -p IPv4 -d Broadcast -j DROP
оно же
ebtables -A INPUT -p 0x0800 -d ff:ff:ff:ff:ff:ff -j DROP
|
то запросы к DHCP-серверу всё равно пролазят. Тут уж понять ничего не могу. С37 сможешь проверить? Указание интерфейса опять ничего не даёт.
2 Вопрос:
and3008 спасибо именно это и имел ввиду. Правда несколько не ожидал, что это очень новая вещь. И увы не хватило квалификации понять что же делает скрипт на перле. Одно радует:
появление DHCP-клиента для винды (статус бета). Ничего, подожду, думаю скоро тема на Цитфоруме вылезет |
|
Вернуться к началу |
|
|
C37
Зарегистрирован: 09.03.2005 Сообщения: 311
|
Добавлено: Пт Июн 23 2006 19:26 Заголовок сообщения: |
|
|
И снова эксперимент на живых людях:
Код: | ebtables -A FORWARD --in-interface eth1 --protocol IPv4 --ip-protocol udp --ip-source-port 68 -j DROP
ebtables -A FORWARD --in-interface eth1 --protocol IPv4 --ip-protocol udp --ip-destination-port 67 -j DROP |
И это работает. Во всяком случае, клиент не может получить/обновить адрес. А нормальное широковещание продолжает функционировать.
Найдено здесь. |
|
Вернуться к началу |
|
|
Andrew Grekhov
Зарегистрирован: 29.06.2005 Сообщения: 200
|
Добавлено: Вт Июн 27 2006 13:50 Заголовок сообщения: Глюк |
|
|
C37 писал(а): | И снова эксперимент на живых людях:
Код: | ebtables -A FORWARD --in-interface eth1 --protocol IPv4 --ip-protocol udp --ip-source-port 68 -j DROP
ebtables -A FORWARD --in-interface eth1 --protocol IPv4 --ip-protocol udp --ip-destination-port 67 -j DROP |
И это работает. Во всяком случае, клиент не может получить/обновить адрес. А нормальное широковещание продолжает функционировать.
Найдено здесь. |
А у меня не работает сам уже непонимаю почему.
FORWARD я отлично закрываю через IPTABLES,а вот INPUT не могу.
Буду копать в сторону апдейта системы.
Больше в голову ничего не лезет. |
|
Вернуться к началу |
|
|
C37
Зарегистрирован: 09.03.2005 Сообщения: 311
|
Добавлено: Вт Июн 27 2006 18:20 Заголовок сообщения: |
|
|
Если мы рассматриваем мост или маршрутизатор, то по логике вещей, INPUT ловит только то, что предназначено самому мосту. |
|
Вернуться к началу |
|
|
|