srg555 Posted June 10, 2013 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
srg555 Posted June 15, 2013 Author Posted June 15, 2013 UP. никто не использует ip unnumbered с proxy-arp или всем пофиг на левые записи в arp-таблице? Вставить ник Quote
tartila Posted June 15, 2013 Posted June 15, 2013 UP. никто не использует ip unnumbered с proxy-arp или всем пофиг на левые записи в arp-таблице? Поднимите на машине бридж с этим VLAN и отфильтруйте ARP... Собственно, что бы не ломать всякие связи внутри ядра. Вставить ник Quote
wtyd Posted February 1, 2014 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
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.