URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 83055
[ Назад ]

Исходное сообщение
"Фильтрация iptables по DHCP leases"

Отправлено Torion , 26-Ноя-08 11:06 
Возникла необходимость фильтровать машины и пускать только те, которые получили ip через dhcpd. Ничего вразумительного нагуглить не удалось, кроме того, что в man dhcpd.conf есть информация, что можно как-то реагировать на события (REFERENCE: EVENTS), но при этом возникнет проблема с динамическим DNS. Может это можно решать через acl squid'а...?
Даже не знаю где копать, может кто-то решал эту задачу?

Содержание

Сообщения в этом обсуждении
"Фильтрация iptables по DHCP leases"
Отправлено Pahanivo , 26-Ноя-08 11:08 
>Возникла необходимость фильтровать машины и пускать только те, которые получили ip через
>dhcpd. Ничего вразумительного нагуглить не удалось, кроме того, что в man
>dhcpd.conf есть информация, что можно как-то реагировать на события (REFERENCE: EVENTS),
>но при этом возникнет проблема с динамическим DNS. Может это можно
>решать через acl squid'а...?
>Даже не знаю где копать, может кто-то решал эту задачу?

Для начала надо четко поставить задачу а не мешать в кучу iptables dhcp dns squid


"Фильтрация iptables по DHCP leases"
Отправлено Torion , 26-Ноя-08 11:12 
>>Возникла необходимость фильтровать машины и пускать только те, которые получили ip через
>>dhcpd. Ничего вразумительного нагуглить не удалось, кроме того, что в man
>>dhcpd.conf есть информация, что можно как-то реагировать на события (REFERENCE: EVENTS),
>>но при этом возникнет проблема с динамическим DNS. Может это можно
>>решать через acl squid'а...?
>>Даже не знаю где копать, может кто-то решал эту задачу?
>
>Для начала надо четко поставить задачу а не мешать в кучу iptables
>dhcp dns squid

Согласен. Четко формулирую: НЕОБХОДИМО ЗАПРЕТИТЬ РАБОЧИМ СТАНЦИЯМ НЕ ПОЛУЧИВШИМ IP ПО DHCP ДОСТУП В ИНТЕРНЕТ


"Фильтрация iptables по DHCP leases"
Отправлено Square , 26-Ноя-08 11:15 
>[оверквотинг удален]
>>>dhcpd.conf есть информация, что можно как-то реагировать на события (REFERENCE: EVENTS),
>>>но при этом возникнет проблема с динамическим DNS. Может это можно
>>>решать через acl squid'а...?
>>>Даже не знаю где копать, может кто-то решал эту задачу?
>>
>>Для начала надо четко поставить задачу а не мешать в кучу iptables
>>dhcp dns squid
>
>Согласен. Четко формулирую: НЕОБХОДИМО ЗАПРЕТИТЬ РАБОЧИМ СТАНЦИЯМ НЕ ПОЛУЧИВШИМ IP ПО DHCP
>ДОСТУП В ИНТЕРНЕТ

тупой вопрос: а зачем такое?


"Фильтрация iptables по DHCP leases"
Отправлено Torion , 26-Ноя-08 11:32 
>[оверквотинг удален]
>>>>решать через acl squid'а...?
>>>>Даже не знаю где копать, может кто-то решал эту задачу?
>>>
>>>Для начала надо четко поставить задачу а не мешать в кучу iptables
>>>dhcp dns squid
>>
>>Согласен. Четко формулирую: НЕОБХОДИМО ЗАПРЕТИТЬ РАБОЧИМ СТАНЦИЯМ НЕ ПОЛУЧИВШИМ IP ПО DHCP
>>ДОСТУП В ИНТЕРНЕТ
>
>тупой вопрос: а зачем такое?

Почему тупой? Вполне правильный вопрос :-)
  Локалка большая на несколько этажей здания и прописывать ручками все машины в dhcp просто нет возможности, поэтому все машины получают адреса и имена в сети динамически. В Инет все ходят через squid. При этом в lightsquid видна четкая привязка имя машины - фамилия сотрудника - отдел - трафик. Начальству нравится...  :-)
  Но некоторые сотрудники ручками прописываю себе ip из пула адресов и при этом естественно не получают динамически имя в dns. В lightsquid светится только ip-адрес с диким трафиком порносайтов или музыки. Бегать по этажам в поисках ушлого юзера явно неправильное решение. Вот и возникла мысль блокировать такие машины.


"Фильтрация iptables по DHCP leases"
Отправлено Square , 26-Ноя-08 12:19 
> В Инет все ходят через squid.

включите авторизацию на прокси.

> Но некоторые сотрудники ручками прописываю себе ip из пула адресов

Отберите у сотрудников право администрировать свои компы.
для этого есть сисадмины..

>Вот и возникла мысль блокировать такие машины.


"Фильтрация iptables по DHCP leases"
Отправлено Torion , 26-Ноя-08 12:58 
>> В Инет все ходят через squid.
>
>включите авторизацию на прокси.
>

Угу, это правильная мысль. В планах стоит поднятие AD и авторизация в прокси через ntlm. Но я работаю здесь недавно и есть более приоритетные задачи. Думалось пока по-быстрому заделать эту дыру блокировкой в iptables.

>> Но некоторые сотрудники ручками прописываю себе ip из пула адресов
>
>Отберите у сотрудников право администрировать свои компы.
>для этого есть сисадмины..
>

И это совершенно правильно, но пробежаться по более чем сотне компов и вычистить всё дерьмо за старым админом я пока не в состоянии :-(

>>Вот и возникла мысль блокировать такие машины.

Кроме того, есть обоснованное подозрение, что к какому-то сегменту "присосалась" другая организация, т.к. к сети бегают бродкаст пакеты совсем не моей сети. И если это балуются юзеры "дружественной" организации, то...


"Фильтрация iptables по DHCP leases"
Отправлено Ночной админ , 26-Ноя-08 11:47 
>[оверквотинг удален]
>>>dhcpd.conf есть информация, что можно как-то реагировать на события (REFERENCE: EVENTS),
>>>но при этом возникнет проблема с динамическим DNS. Может это можно
>>>решать через acl squid'а...?
>>>Даже не знаю где копать, может кто-то решал эту задачу?
>>
>>Для начала надо четко поставить задачу а не мешать в кучу iptables
>>dhcp dns squid
>
>Согласен. Четко формулирую: НЕОБХОДИМО ЗАПРЕТИТЬ РАБОЧИМ СТАНЦИЯМ НЕ ПОЛУЧИВШИМ IP ПО DHCP
>ДОСТУП В ИНТЕРНЕТ

Возможно поможет коммутатор с функцией ip source guard


"Фильтрация iptables по DHCP leases"
Отправлено Torion , 26-Ноя-08 11:53 
>>Согласен. Четко формулирую: НЕОБХОДИМО ЗАПРЕТИТЬ РАБОЧИМ СТАНЦИЯМ НЕ ПОЛУЧИВШИМ IP ПО DHCP
>>ДОСТУП В ИНТЕРНЕТ
>
> Возможно поможет коммутатор с функцией ip source guard

Хммм... Спасибо за совет, попробую подробнее взглянуть на свои linksys коммутаторы.

Просто интересно, неужели ни у кого не возникало подобной задачи? Или сейчас все "ночные админы" спят и ответы будут только утром следующего дня? :-)))))


"Фильтрация iptables по DHCP leases"
Отправлено Ночной админ , 26-Ноя-08 12:02 
>>>Согласен. Четко формулирую: НЕОБХОДИМО ЗАПРЕТИТЬ РАБОЧИМ СТАНЦИЯМ НЕ ПОЛУЧИВШИМ IP ПО DHCP
>>>ДОСТУП В ИНТЕРНЕТ
>>
>> Возможно поможет коммутатор с функцией ip source guard
>
>Хммм... Спасибо за совет, попробую подробнее взглянуть на свои linksys коммутаторы.
>
>Просто интересно, неужели ни у кого не возникало подобной задачи? Или сейчас
>все "ночные админы" спят и ответы будут только утром следующего дня?
>:-)))))

Если быть более точным то ip source guard и DHCP snooping помогает такие варианты разруливать.


"Фильтрация iptables по DHCP leases"
Отправлено Pahanivo , 26-Ноя-08 11:57 
>[оверквотинг удален]
>>>dhcpd.conf есть информация, что можно как-то реагировать на события (REFERENCE: EVENTS),
>>>но при этом возникнет проблема с динамическим DNS. Может это можно
>>>решать через acl squid'а...?
>>>Даже не знаю где копать, может кто-то решал эту задачу?
>>
>>Для начала надо четко поставить задачу а не мешать в кучу iptables
>>dhcp dns squid
>
>Согласен. Четко формулирую: НЕОБХОДИМО ЗАПРЕТИТЬ РАБОЧИМ СТАНЦИЯМ НЕ ПОЛУЧИВШИМ IP ПО DHCP
>ДОСТУП В ИНТЕРНЕТ

ну тогда сам пишеш что можно реагировать на события в dhcp - пиши скрипт и реагируй соответственно


"Фильтрация iptables по DHCP leases"
Отправлено Torion , 26-Ноя-08 13:06 
>>Согласен. Четко формулирую: НЕОБХОДИМО ЗАПРЕТИТЬ РАБОЧИМ СТАНЦИЯМ НЕ ПОЛУЧИВШИМ IP ПО DHCP
>>ДОСТУП В ИНТЕРНЕТ
>
>ну тогда сам пишеш что можно реагировать на события в dhcp -
>пиши скрипт и реагируй соответственно

Цитата из dhcpd.conf:
REFERENCE: EVENTS
There are three kinds of events that can happen regarding a lease, and it is possible to  declare  statements  that  occur  when any of these events happen. These events are the commit event, when the server has made a commitment of a certain lease to a client, the release event, when the client has released the server from its commitment, and the expiry event, when the commitment expires.

To  declare a set of statements to execute when an event happens, you must use the on statement, followed by the name of the event, followed by a series of statements to execute when the event happens,  enclosed in  braces. Events are used to implement DNS updates, so you should not define your own event handlers if you are using the built-in DNS update mechanism.

The built-in version of the DNS update mechanism is in a text string towards the top  of  server/dhcpd.c. If you want to use events for things other than DNS updates, and you also want DNS updates, you will have to start out by copying this code into your dhcpd.conf file and modifying it.

Всё понятно или надо переводить?


"Фильтрация iptables по DHCP leases"
Отправлено s_dog , 26-Ноя-08 12:24 
>Возникла необходимость фильтровать машины и пускать только те, которые получили ip через
>dhcpd. Ничего вразумительного нагуглить не удалось, кроме того, что в man
>dhcpd.conf есть информация, что можно как-то реагировать на события (REFERENCE: EVENTS),
>но при этом возникнет проблема с динамическим DNS. Может это можно
>решать через acl squid'а...?
>Даже не знаю где копать, может кто-то решал эту задачу?

ipset


"Фильтрация iptables по DHCP leases"
Отправлено Аноним , 26-Ноя-08 14:38 
>Возникла необходимость фильтровать машины и пускать только те, которые получили ip через
>dhcpd. Ничего вразумительного нагуглить не удалось, кроме того, что в man
>dhcpd.conf есть информация, что можно как-то реагировать на события (REFERENCE: EVENTS),
>но при этом возникнет проблема с динамическим DNS. Может это можно
>решать через acl squid'а...?
>Даже не знаю где копать, может кто-то решал эту задачу?

dhcpd пишет (точно не помню) в /var/lib/... файл с данными кому он че выдал, так вот можно сварганить скрипт, который парсит этот файл, grep'ом и awk'ом и выполняет для каждого ip-адреса правило
iptables -A INPUT -s $addr -p tcp --dport $squid_port -j ACCEPT

получится чето типа
ipaddr="/tmp/adresses #промежуточный файл где будут хранится айпишники
grep _шаблон_адреса_ /var/lib/dhcpd.state > $ipaddr #выцепляем выданные адреса из файла dhcpd
#теперь запускаем цикл и скармливаем ему промежуточный файл с адресами.
while read ipaddress; do
   iptables -A INPUT -s $ipaddress -p tcp --dports 3128 -j ACCEPT
done < $ipaddr

я бы этот куско воткнул в файл с правилами Iptables. ну и конечно политика по умолчанию DROP


"Фильтрация iptables по DHCP leases"
Отправлено daevy , 26-Ноя-08 14:38 
>Возникла необходимость фильтровать машины и пускать только те, которые получили ip через
>dhcpd. Ничего вразумительного нагуглить не удалось, кроме того, что в man
>dhcpd.conf есть информация, что можно как-то реагировать на события (REFERENCE: EVENTS),
>но при этом возникнет проблема с динамическим DNS. Может это можно
>решать через acl squid'а...?
>Даже не знаю где копать, может кто-то решал эту задачу?

dhcpd пишет (точно не помню) в /var/lib/... файл с данными кому он че выдал, так вот можно сварганить скрипт, который парсит этот файл, grep'ом и awk'ом и выполняет для каждого ip-адреса правило
iptables -A INPUT -s $addr -p tcp --dport $squid_port -j ACCEPT

получится чето типа
ipaddr="/tmp/adresses #промежуточный файл где будут хранится айпишники
grep _шаблон_адреса_ /var/lib/dhcpd.state > $ipaddr #выцепляем выданные адреса из файла dhcpd
#теперь запускаем цикл и скармливаем ему промежуточный файл с адресами.
while read ipaddress; do
   iptables -A INPUT -s $ipaddress -p tcp --dports 3128 -j ACCEPT
done < $ipaddr

я бы этот куско воткнул в файл с правилами Iptables. ну и конечно политика по умолчанию DROP


"Фильтрация iptables по DHCP leases"
Отправлено Hetzer , 27-Ноя-08 08:27 
идём в dhcpd.log-и за неделю, 1-минутным скриптом вычерпываем все уникальные MAC (можно по желанию IP) и  формируем статики для dhcpd.
в iptables включаем правила проверки связки mac+ip читая их из конфига dhcpd