[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

блокирование dhcp серверов из сети провайдера



Добрый день.

Столкнулся с проблемой при работе мобильных устройств в локальной сети, которые получают настройки по DHCP.

Подключение к Интернет через pppoe (ppp0) через eth1. Интерфейс ppp0 получает настройки от DHCP сервера провайдера.

Клиенты подключающиеся к локальной сети по wifi посылая запрос *DHCPDISCOVER *получают ответы *DHCPOFFER*не только от DHCP расположенного на шлюзе и обслуживающего внутреннюю подсеть 192.168.0.0, но и от серверов из дургих подсетей например 10.2.2.0, 172.16.0.0.

Трассировка маршрута говорит, что они находятся за шлюзом провайдера (ip шлюза взял из настроек ppp0)

Сегодня целый день пытался написать правило, чтобы отсечь DHCP сервер за шлюзом провайдера, но увы без это не привело меня к решению проблемы.

Проблема обостряется(усложняется) еще следующими факторами:

1. Шлюз и DHCP сервер - это одна и та же машина.
2. Шлюз настраивает ppp0 через DHCP провайдера - так бы и хотелось пока оставить. 3. На внутреннем интерфейсе eth0 работает местный DHPCD обслуживающий локальную сеть. 4. На шлюзе работает NAT да и к тому же и правила iptables писал не я. У меня есть доступ только к iptables-save и root доступ. Посмотреть какие правила добавляются я могу, но вот списочек там конечно не маленький. Их просили не трогать, а добавить блокирующие правила исключительно для решения насущной проблемы. 5. Правил iptables очень много, доступа к интерфейсу настроки firewall я не имею.

Сегодня я перепробывал много различных правил, но пока не смог добиться хоть какой нибудь блокировки внешних DHCP серверов, ответов от них, запросов к ним и т.д.

Единственное, что мне понятно, так это то, что мне надо:

1. Блокировать широковещательные запросы от тех, кто за eth0 (local area network), т.е. запросы к 255.255.255.255 от 0.0.0.0 (tcpdump'ом смотрел какие ip фигурируют в процессе и порты) к порту 67.

    Но опять же не локальному т.е.
    ! --destination 192.168.0.5 --dport 67
    192.168.0.5 - внутрений ip шлюза.

2. Блокировать ответы DHCP серверов (широковещательные ?), точнее наверное их пересылки через шлюз во внутреннюю сеть.

3. Не блокировать внутренний dhcpd. Но поидее ведь его через iptables не заблокируешь, т.к. он работает минуя его. см: dhcpd uses the raw socket, bypassing netfilter.Я правильно понимаю ?

Может как то по другому правильно? Но мне хотя бы так пока.

Если бы это были мои самописные скрипты(/etc/init.d/fw) у меня бы не возникло вопросов. Но тут самописная gui для правил используется которая очень замороченная. Да и к тому же строго велено в не чего не менять, т.к. очень много клиентов и компов завязаны на сервер. Очень много разрешающих в ней правил, которые я не хочу трогать: "мне бы drop в самом начале прописать, через iptables -I INPUT 1 ... или iptables -I FORWARD 1 ...".

Сегодня я проверял кучу правил, но как об стенку горох.

Есть предположение, что проблема в NAT, который может работать до FILTER
и правила для FILTER нужно просчитывать исходя из правил из NAT, PREROUTING и может POSTROUTING.

Есть также предположение, что пакеты средствами iptables тут не обойтись, хотя то ведь в DHCP все просто 68 порт клиента, 67 порт сервера, протокол UDP - пиши не хочу.

Прошу помочь уважаемое сообщество.


--

С Уважением,
специалист по техническому и программному обеспечению,
системный администратор

Скубриев Владимир
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Россия, Ростовская область, г. Таганрог

тел. моб: +7 (918) 504 38 20
skype: v.skubriev
icq: 214-800-502
www: skubriev.ru


Reply to: