srg555 Posted June 10, 2013 На сервере делается обычный ip unnumbered(для vlan-per-user): ifconfig dummy0 192.168.0.1 netmask 255.255.255.255 up ip route add blackhole 192.168.0.0/24 vconfig add eth1 2 ifconfig eth1.2 up vconfig add eth1 3 ifconfig eth1.3 up sysctl net.ipv4.conf.eth1/2.proxy_arp=1 sysctl net.ipv4.conf.eth1/3.proxy_arp=1 ip route add 192.168.0.2 dev eth1.2 ip route add 192.168.0.3 dev eth1.3 Вроде бы всё хорошо, всё работает, но возникает маленькая проблема, а именно: клиенты могут загаживать arp-таблицу "сервера" путём отправки arp who-has запросов(которые linux изучает и строит свой arp-кеш). например, если клиент, подключенный к сабу eth1.2 отправит who-has запрос типа такого "Request who-has 192.168.0.1 tell 192.168.0.80", то в arp-таблице сервера появится запись: ? (192.168.0.80) at 00:50:56:xx:yy:zz [ether] on eth1.2 Вроде бы ничего страшного, т.к. 192.168.0.80 не маршрутизируется в сторону eth1.2, т.е. абонент этот IP не захватывает(в отличии от классической LAN, когда много клиентов подключаются в один vlan в одну IP-сеть), но с другой стороны, абонент может с лёгкостью переполнять arp-таблицу, выставляя любые IP-адреса себе(и вовсе не обязательно из сети 192.168.0.0/24) В документации на /proc/net нашёл arp_filter, включил его, загаживать arp-таблицу больше клиент не может(сервер теперь не изучает IP от клиента, которых нет в таблице маршрутизации в сторону интерфейса клиента), но и proxy_arp теперь не работает. Можно ли как-нибудь защиться от arp-спуфинга(средствами linux-сервера, DAI и прочее на доступе не предлагать) и не сломать proxy_arp? Пробовал на ядрах 3.2(из репозитория debian7) и 3.10-rc4 vanilla Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
srg555 Posted June 15, 2013 UP. никто не использует ip unnumbered с proxy-arp или всем пофиг на левые записи в arp-таблице? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
tartila Posted June 15, 2013 UP. никто не использует ip unnumbered с proxy-arp или всем пофиг на левые записи в arp-таблице? Поднимите на машине бридж с этим VLAN и отфильтруйте ARP... Собственно, что бы не ломать всякие связи внутри ядра. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
wtyd Posted February 1, 2014 (edited) В описании arp_filter написано: "0 - (default) The kernel can respond to arp requests with addresses from other interfaces." 1 - ядро вроде как должно смотреть роутинг, куда роутится адрес из запроса и напротив варианту 0 наверное перестаёт отвечать "to arp requests with addresses from other interfaces". Наверное включение фильтра и ломает proxy_arp поэтому. Попроуйте другие параметры, относящиеся к работе arp: arp_ignore = 1 или 2 (определяет поведение при генерацииответов, но возможно будет влиять на попадание левых арп в кеш) Ещё можно попробовать proxy_arp_pvlan побробовать -- в принципе то же самое, что proxy_arp, но может слать ответ в тот же саб, откуда прилетел запрос. Не требует наличия proxy_arp, может быть будет работать с arp_filter -- проверять надо. Ещё arptables посмотрите, там вроде бы была фильтрация. Edited February 1, 2014 by wtyd Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...